目录
前文写了RWKV-Runner工具的模型本地使用,今天简单介绍下工具的训练、设置使用。
思考再三要不要写训练,先说结论:综合时间、硬件资源考虑普通人可以但没必要参与训练,直接下载模型使用即可。
训练
结论
思考再三要不要写训练,先说结论:
综合时间、硬件资源考虑普通人可以但没必要参与训练,直接下载模型使用即可。显卡(显存12G以上)、内存(32G以上)可以尝试训练。
硬件制约了基底模型的选择,基底模型决定了最终训练质量的高低。
我的配置CPU:AMD Ryzen7 5800h,显卡:NVIDIA RTX3060 Laptop ,显存:6g,内存:16g
如何得出这个结论?
1、模型训练占用资源多,依赖包安装C盘需要25-35G空闲,显卡显存、利用率经常满负荷,不开启虚拟内存/调整wslconfig配置经常内存爆满。
2、调试费时费力,参数较多,模型训练的最终结果不尽人意。
3、基底模型选择受硬件条件制约,内存、显存易成为主要瓶颈,本人电脑7b模型无法训练,期待有更优化的模型。
4、模型训练速度与显卡性能成正比,与模型大小成反比。
5、目前Runner仅支持RWKV-4模型的训练,RWKV-5、RWKV-6暂不支持。
训练前提须知
依赖包安装
首次进入训练会要求安装依赖,需完全跟随工具提示。C盘需预留至少30-40G空间
1、工具会尝试开启windows WSL功能,会要求管理员权限,点击确认,在弹出的窗口完成激活后,重启电脑。已开启WSL功能,可忽略。
建议cmd窗口执行wsl --update 更新,并执行wsl --set-default-version 2将默认版本设为2
2、回到工具,再次点击训练,工具会检查是否安装Ubuntu,没有一般windows用户则直接点击安装,自动呼出Microsoft Store并跳转至Ubuntu安装界面,点击安装即可(此处建议直接点击安装不要做多余的操作)。服务器的Windows需要cmd命令自行安装Ubuntu。
3、继续点击训练按钮,将为Linux配置训练环境,会联网下载多个组件,保证网络畅通。下载速度可能稍慢,需耐心等待。
数据处理
数据路径、此表路径需参照帮助文档。不过多赘述。注意txt文本需要点击转换按钮,呼出cmd窗口后等待运行完成即可。
训练参数
基底模型:即为要训练的模型,lora模型为训练完成的保存模型,选择后可合并。合并有时会遇到模型不匹配等,目前想到的是lora模型在基底模型训练完成生成后,合并需与原基底模型一起合并。
显卡数量:有几个填几个
精度:通常推荐bf16
上下文长度:通常在4096以下,依据训练数据量的大小
每轮训练步数:一轮训练的步数,Loss曲线中,一个节点就是一轮,更小的步数会有更细粒度的Loss节点和权重
训练轮次:训练多少轮后停止
保存间隔轮次:每训练多少轮存一个lora模型文件
学习率:一般没必要改,改的话需参照其他大佬的资料,一个合适的学习率可以帮助模型快速收敛到最优解,而过高或过低的学习率都可能导致训练效果不佳
LoRA R:可训练的参数量,模型较大的或有较多的训练数据,可以适当增加LoRA R,如16,32
微批次大小:看显存富裕程度,数据较多,可以适当增大此项,如2,4,8
如果训练过程中提示内存不足,需要自己配置.wslconfig文件,分配更多的内存空间。 配置完成后需重启电脑。路径:C:\Users\用户名 新建txt文件,改格式为.wslconfig
# Settings apply across all Linux distros running on WsL 2
[wsl2]
# Limits VM memory to use no more than 4 GB, this can be set as whole numbers using GB or MB
memory=30GB
# Sets amount of swap storage space to 8GB, default is 25% of available RAM
swap=30GB
开启训练
设置
首次训练建议先下载0.1b模型进行训练,检查能否开启训练。最低的模型训练完成后可逐步增加1.5、3B、7B、14B模型训练。
简单试用,轮次可降低2轮,保存2轮,起始0轮。具体可视时间、模型等增加。
开启训练
点击训练按钮,开始读取模型,这一步可能稍慢。
出现loss图,表示开始训练
附GPU占用图
训练完成
训练完成会新增一个lora模型文件,且GPU占用已显著降低。训练完成未避免wsl未关闭,可点击停止按钮或cmd输入wsl --shutdown以终止。
训练完成的模型路径在lora-models下,可自行删除
设置
runner工具设置页面提供了较多选择,如有疑问最好参考官方文档。
语言:可选中英日
显示缩放:可选50%、75%、100%、125%、150%、175%、200%
深色模式:是否开启
自动检查更新:默认开启
使用Gitee更新源:默认开启
使用阿里云Pip镜像源:视自身网络条件开启,有时阿里云也很慢
允许外部访问API(必须重启服务):视自身条件开启
自定义模型路径 :改变文件路径,不建议更改
自定义Python路径 :改变文件路径,不建议更改
API URL 、API Key、API聊天模型名、API续写模型名、核心 API URL :个人理解是部署为服务端为外部访问开启入口,建议参考官方文档进行更改
关于
runner工具作者josStorer (josc146) · GitHub提供了众多链接,大家可依据需要查阅。
附链接:
本项目源码及介绍页:
https://github.com/josStorer/RWKV-Runner
作者: @josStorer
演示与常见问题说明视频: https://www.bilibili.com/video/BV1hM4y1v76R
相关仓库:
RWKV-5-World: https://huggingface.co/BlinkDL/rwkv-5-world/tree/main
RWKV-4-World: https://huggingface.co/BlinkDL/rwkv-4-world/tree/main
RWKV-4-Raven: https://huggingface.co/BlinkDL/rwkv-4-raven/tree/main
ChatRWKV: https://github.com/BlinkDL/ChatRWKV
RWKV-LM: https://github.com/BlinkDL/RWKV-LM
RWKV-LM-LoRA: https://github.com/Blealtan/RWKV-LM-LoRA
RWKV-v5-lora: https://github.com/JL-er/RWKV-v5-lora
MIDI-LLM-tokenizer: https://github.com/briansemrau/MIDI-LLM-tokenizer
ai00_rwkv_server: https://github.com/cgisky1980/ai00_rwkv_server
rwkv.cpp: https://github.com/saharNooby/rwkv.cpp
web-rwkv-py: https://github.com/cryscan/web-rwkv-py
web-rwkv: https://github.com/cryscan/web-rwkv
最后
AI的训练离不开庞大的硬件资源的支撑,也离不开研究人员的调试优化。普通人不增加硬件资源的情况下,无法比拟一般的商用AI模型。
我个人理想的训练硬件是RTX 4090/A 6000,拥有大显存,内存128G以上,不过这种情况下AI付费似乎更具性价比。
在硬件资源贫瘠或有限的情况下,如何训练出理想的AI模型,寻找最优解要做好费时费力的准备。说不定你想要的模型,他人/商业公司早已训练完成。这也是我一开始建议普通人没必要介入训练的原因。
总结
AI飞速发展,一定程度上解放了人类双手,快速答疑、快速响应的背后离不开持久的训练、优化。
硬件资源制约了AI训练、启动、响应速度,普通人只得不断调试,在已有硬件条件下寻求最优解。
最后期望模型可一步步优化,提升资源利用率。希望普通人也能享受AI带来的科技红利。
最最重要的要感谢B站UP国服第一海豹,关于RWKV-Runner我翻阅了众多视频、资料等,他的回答在全网上最详尽、详细。本人回答不过锦上添花,文章可能多有遗漏,感谢包涵,也感谢指出。