草庐IT

部署运行ai智障写作记录【ChatRWKV】

lyk_dtf 2023-09-13 原文

文章目录


前言

看到知乎一篇教程,
大佬自己弄得ai小说续写,用我的18年老笔记本居然也跑起来了,1.5b模型续写效果:

以下只是记录,正文请跳转知乎原文查看:https://zhuanlan.zhihu.com/p/609154637


一、环境安装

【建议先把pip源切换为国内清华源】

1.python环境:Python 3.10。

使用anaconda创建环境,选择3.10.x

2.安装一些 pip 库numpy 、tokenizers 、prompt_toolkit

不要安装错了环境

两种方式:
1、cmd 命令行切换到刚刚新建的python3.10环境,执行下面安装命令

conda activate python310
pip install numpy tokenizers prompt_toolkit

2、在anaconda ui界面安装
选择对应环境,右上角输入需要的包安装,打勾是已经安装的

3.安装pytorch 1.13.1+CUDA 11.7

我笔记本是1050,虽然拉,不过也有几百个cuda核心

安装pytorch,应该也可以使用上面的方式安装,但是怕版本不对,或者其他原因,还是建议使用下面命令行安装

pip install torch --extra-index-url https://download.pytorch.org/whl/cu117 --upgrade

我装的时候2.4Gb左右,还好下载速度快一般10分钟左右就安装好了

二、运行记录

1、下载代码

环境安装完成后把代码拉下来:

git clone https://github.com/BlinkDL/ChatRWKV

如果本地装了git,进入你想要存放代码的文件夹,地址栏输入cmd,回车
然后在命令行界面输入上面代码拉取就好了,代码本身并不大

2、下载训练参数

根据你的显存下载对应的训练参数,我的1050网上查是2g,但是这里看又有4g,不是很清楚为什么

不同显存下载不同规模参数,4g刚好可以下载1.5B 参数,后面我也不自量力的下载了中模型,改了下参数后确实运行起来了,但是生成速度太感人了,10个汉字能跑1分钟……
只有4g的话还是跑跑小模型就好了

模型链接里面有许多链接,不用全部下载,下载【其中的 EngChn-testNovel 模型】

下载小说模型(这些链接里面有很多模型,选其中的 EngChn-testNovel 模型):

大模型:7B 参数,效果最佳,推荐 14G
显存,小显存也可以跑,显存越少越慢:https://huggingface.co/BlinkDL/rwkv-4-pile-7b/tree/main
(炼了40%,炼完会更强)

中模型:3B 参数,效果中上,推荐 6G 显存,小显存也可以跑,显存越少越慢:
https://huggingface.co/BlinkDL/rwkv-4-pile-3b/tree/main

小模型:1.5B 参数,效果中等,推荐 3G 显存: https://huggingface.co/BlinkDL/

比如小模型1.5B,下载这个就好了,
令人惊喜的是下载速度嘎嘎快,给作者好评!!要是放github,把模型拉下来都要好久

3、编辑代码运行

下载好之后,使用vs打开源代码v2文件夹里面的chat.py,按照下面更新(作者难得良心的写了这么多中文注释……)

设置 CHAT_LANG = 'Chinese'

设置 args.MODEL_NAME = 'C:/xxx/xxx/RWKV-4-Pile-7B-EngChn-testNovel-xxx-ctx2048-20230xxx'
这个 MODEL_NAME 改成你下载的模型文件的路径和名字(不需要 .pth 扩展名),注意路径用 /(不要用 \)。

默认的 args.strategy = 'cuda fp16' 代表模型全部加载进显卡。

如果显存报错说不够,改成 args.strategy = 'cuda fp16 *12+' 试试(注意数字后面有个加号!)。
然后尽量调大12(只要不报错,这个数字越大,模型运行越快)。
但不要太极限(如果太极限,有可能生成时显存不够),建议试到极限,然后减1或2。
用这个方法,3G显存也能跑7B模型(不过会挺慢,以后会更快)。

还可以试试 'cuda fp16 *12 -> cpu fp32' 也是尽量调大12。可以比较哪种的速度快。

实测:
cuda fp16 就只会使用显卡,显卡gpu会占满,速度很快,但是容量只有4g,大于4g模型会报错
cuda fp16 *12+ 会使用显卡和内存一起,可以运行大于4g的模型,但是速度奇慢

上面都弄好了就可以跑起来了,下面是他跑起来的样子:






作者还有个api_demo.py,不过没写注释,看不懂……,如果跑起来应该就能想chatgpt一样对外提供api了吧,那倒是蛮实用的


总结

参考链接:
https://zhuanlan.zhihu.com/p/609154637

https://huggingface.co/BlinkDL/rwkv-4-pile-1b5/tree/main

https://github.com/BlinkDL/ChatRWKV

有关部署运行ai智障写作记录【ChatRWKV】的更多相关文章

  1. ruby - 如何从 ruby​​ 中的字符串运行任意对象方法? - 2

    总的来说,我对ruby​​还比较陌生,我正在为我正在创建的对象编写一些rspec测试用例。许多测试用例都非常基础,我只是想确保正确填充和返回值。我想知道是否有办法使用循环结构来执行此操作。不必为我要测试的每个方法都设置一个assertEquals。例如:describeitem,"TestingtheItem"doit"willhaveanullvaluetostart"doitem=Item.new#HereIcoulddotheitem.name.shouldbe_nil#thenIcoulddoitem.category.shouldbe_nilendend但我想要一些方法来使用

  2. ruby - 如何每月在 Heroku 运行一次 Scheduler 插件? - 2

    在选择我想要运行操作的频率时,唯一的选项是“每天”、“每小时”和“每10分钟”。谢谢!我想为我的Rails3.1应用程序运行调度程序。 最佳答案 这不是一个优雅的解决方案,但您可以安排它每天运行,并在实际开始工作之前检查日期是否为当月的第一天。 关于ruby-如何每月在Heroku运行一次Scheduler插件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/8692687/

  3. ruby-on-rails - 如何在 ruby​​ 中使用两个参数异步运行 exe? - 2

    exe应该在我打开页面时运行。异步进程需要运行。有什么方法可以在ruby​​中使用两个参数异步运行exe吗?我已经尝试过ruby​​命令-system()、exec()但它正在等待过程完成。我需要用参数启动exe,无需等待进程完成是否有任何ruby​​gems会支持我的问题? 最佳答案 您可以使用Process.spawn和Process.wait2:pid=Process.spawn'your.exe','--option'#Later...pid,status=Process.wait2pid您的程序将作为解释器的子进程执行。除

  4. ruby - 无法运行 Rails 2.x 应用程序 - 2

    我尝试运行2.x应用程序。我使用rvm并为此应用程序设置其他版本的ruby​​:$rvmuseree-1.8.7-head我尝试运行服务器,然后出现很多错误:$script/serverNOTE:Gem.source_indexisdeprecated,useSpecification.Itwillberemovedonorafter2011-11-01.Gem.source_indexcalledfrom/Users/serg/rails_projects_terminal/work_proj/spohelp/config/../vendor/rails/railties/lib/r

  5. ruby - Sinatra:运行 rspec 测试时记录噪音 - 2

    Sinatra新手;我正在运行一些rspec测试,但在日志中收到了一堆不需要的噪音。如何消除日志中过多的噪音?我仔细检查了环境是否设置为:test,这意味着记录器级别应设置为WARN而不是DEBUG。spec_helper:require"./app"require"sinatra"require"rspec"require"rack/test"require"database_cleaner"require"factory_girl"set:environment,:testFactoryGirl.definition_file_paths=%w{./factories./test/

  6. ruby-on-rails - 每次我尝试部署时,我都会得到 - (gcloud.preview.app.deploy) 错误响应 : [4] DEADLINE_EXCEEDED - 2

    我是Google云的新手,我正在尝试对其进行首次部署。我的第一个部署是RubyonRails项目。我基本上是在关注thisguideinthegoogleclouddocumentation.唯一的区别是我使用的是我自己的项目,而不是他们提供的“helloworld”项目。这是我的app.yaml文件runtime:customvm:trueentrypoint:bundleexecrackup-p8080-Eproductionconfig.ruresources:cpu:0.5memory_gb:1.3disk_size_gb:10当我转到我的项目目录并运行gcloudprevie

  7. ruby-on-rails - Rails 5 Active Record 记录无效错误 - 2

    我有两个Rails模型,即Invoice和Invoice_details。一个Invoice_details属于Invoice,一个Invoice有多个Invoice_details。我无法使用accepts_nested_attributes_forinInvoice通过Invoice模型保存Invoice_details。我收到以下错误:(0.2ms)BEGIN(0.2ms)ROLLBACKCompleted422UnprocessableEntityin25ms(ActiveRecord:4.0ms)ActiveRecord::RecordInvalid(Validationfa

  8. ruby-on-rails - 无法让 rspec、spork 和调试器正常运行 - 2

    GivenIamadumbprogrammerandIamusingrspecandIamusingsporkandIwanttodebug...mmm...let'ssaaay,aspecforPhone.那么,我应该把“require'ruby-debug'”行放在哪里,以便在phone_spec.rb的特定点停止处理?(我所要求的只是一个大而粗的箭头,即使是一个有挑战性的程序员也能看到:-3)我已经尝试了很多位置,除非我没有正确测试它们,否则会发生一些奇怪的事情:在spec_helper.rb中的以下位置:require'rubygems'require'spork'

  9. ruby-on-rails - before_filter 运行多个方法 - 2

    是否有可能:before_filter:authenticate_user!||:authenticate_admin! 最佳答案 before_filter:do_authenticationdefdo_authenticationauthenticate_user!||authenticate_admin!end 关于ruby-on-rails-before_filter运行多个方法,我们在StackOverflow上找到一个类似的问题: https://

  10. ruby-on-rails - Ruby on Rails 可以部署在 Azure 网站上吗? - 2

    我可以在Azure网站上部署RubyonRails吗? 最佳答案 还没有。目前仅支持.NET和PHP。 关于ruby-on-rails-RubyonRails可以部署在Azure网站上吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/12964010/

随机推荐