如何让设计行业的人看懂的LLM部署要求
没想到自己有一天会写这样的文档——
不过倒是说不定哪一天就被招安去大模型了
LLM基础介绍:
首先,LLM(大语言模型)是深入我们日常生活的一个AI应用。
AI根据任务处理可以分为两大类,一个是识别处理类模型(如腾讯的图片文字识别,微信小程序的花鸟分类),一个是生成式模型(根据内容要求生成图像文本等数据)。
对于生成式模型,我们需要准备的技术过程有如下几个方面:
1. AI环境搭建
就像游戏内容的编写需要一个编程环境,AI也需要一个编程环境,而且是和用户的硬件(显卡,CPU)高度相关的一个环境。
对于一个AI项目,考虑组内使用的4090,首先推荐CUDA编译环境。
按住win+R输入cmd打开terminal。
输入如下指令:
nvidia-smi
可以得到目前的显卡可安装的最高驱动的信息。
如果安装过驱动了,可以试试下面的指令:
nvcc -V
当然,对于4090,CUDA12的驱动绰绰有余。但是以防万一,我需要得知你们的显卡部署情况。如果是用了NV-link,相当于有48G可用显存。(感觉写了废话,有钱4090真就无所谓?)
然后注意,大部分的AI支持的是linux编译环境,如果系统是win11的话,建议使用wsl2子系统(PS:好像这个runner的bash脚本会自动配置不过我还没用过)。
wsl2的话,同样是在命令行使用wsl --update来更新子系统。
https://www.bilibili.com/video/BV1Qz4y1M7jz?share_source=copy_web
编译环境之外,需要安装一个Python的编译器。这边推荐anaconda和pycharm的组合(Runner都解决了)。
以防万一,这边给一下基本的环境部署问题:
首先是创建虚拟环境——然后是安装对应的库(推荐pytorch1.13.1+cu117)——最后是安装rwkv。
看了有一个链接:RWKV语言模型从入门到放弃,保姆级Training、Fine-tuning、Lora入坑教程 - 知乎
感觉话有点多了。这边还是下一节详细讲述。
2. 数据集整理
需要AI学东西,就要喂给AI数据。数据集要符合AI训练的格式。首先大语言模型是一个对话生成补全模型。
什么意思?
对于大部分大模型,包括RWKV,也就是类似如下的格式:
Q:你论文写完没
A:草拟吗,写不完
Q:别写了,出去玩
A:玩锤子,写论文
那你们要做知识库。那也是知识库的模型,比如说一个问:如何解释论文写不完。另一个回答论文写不完的原因(学术化回答)。
具体的格式是json格式。也有TXT的格式支持,找到一个比较好的介绍文档如下:
使用RWKV-Runner进行模型训练(二)数据集准备 | InsectMk的个人空间
注意,不符合格式,就训练/微调不了。
搜集数据怎么办?
首先是爬虫(你可能遇到校园网问题,header问题,身份认证问题。)
要是你实在不缺时间和劳动力,说自己手头能检索的论文就很多,,也可以一个个整理。
至于说的国内文献和国外文献,权威性什么的,在训练过程中不重要。。考虑到写论文,可以自由编写国内国外的数量比为7:3,权威性采用了那些顶刊顶会,引用次数都超过了20+什么的。。这种其实可以瞎编。
然后整理成上述格式的话,建议结合现有的AI大模型整理(你不会想着手动一个个整理成对话框吧。)
3. 模型部署:
首先,我不提倡你们从0开始训练、为什么?:举个例子,ImgNET那边的训练数据就高达几百TB(你正常电脑就1TB的存储)整个电脑搭进去都不够用。其次,显卡能力不足,就算是训练目前最轻量级的几个大模型,DeepSeek就用了上千个H100服务器,(H100一个顶8个A100,一个A100顶4个4090),更不谈从0开始训练需要的技术积累(就算我亲自下场也难办)。
所以这边给出的技术建议是(现有模型+数据微调)。通俗来说,一个是从0带一个婴儿,另一个是让高考生选一个喜欢的专业深耕,谁能更容易胜任一个特殊岗位呢。
那么问题就是,找到合适的模型。
模型的格式有pth,onnx什么的很多,我也不科普,因为下面的Runner比较无脑操作。你只需要明白,根据显存选择低一倍B级的模型(经验之谈,你不希望报错CUDA is out of Memory的),如一张4090有24G的显存(如果你们的4090不是改装版),那么就选择小于12B的大模型训练。
选择模型的途径有很多,好像runner也有自动提供的模型。如果有中意的也可以去hugging face里面找。
网址是 BlinkDL/rwkv-4-world at main
4. 模型微调
有模型和数据集了就可以微调了。(虽然基本上下载完之后不需要啥微调)
—— 非工科生走到这一步已经不错了,可以放弃微调写论文了。
关于调整有博客讲得很详细。使用RWKV-Runner进行模型训练(一)环境搭建 | InsectMk的个人空间
看不懂可以放弃(什么)我也不清楚小白具体会遇到什么问题
经验类的我只说几点:大部分参数保持默认,如果Loss曲线抖动就降低学习率,如果爆显存就降低batch_size。如果loss平滑就增大学习率,然后rwkv用的是adam优化器。其他的超参数讲解起来比较麻烦,可以网上搜搜adam优化器的参数如何调整。
RWKV Runner
首先,目标需求是训练,我给出相应的说明参考博客:
————————————————
https://blog.csdn.net/qq_39803142/article/details/140521009
PS:截取原文注意的事项,首先2*4090的显存倒是超过了限制,但是要考虑数据集的质量。
1、模型训练占用资源多,依赖包安装C盘需要25-35G空闲,显卡显存、利用率经常满负荷,不开启虚拟内存/调整wslconfig配置经常内存爆满。
2、调试费时费力,参数较多,模型训练的最终结果不尽人意。
3、基底模型选择受硬件条件制约,内存、显存易成为主要瓶颈,本人电脑7b模型无法训练,期待有更优化的模型。
4、模型训练速度与显卡性能成正比,与模型大小成反比。
5、目前Runner仅支持RWKV-4模型的训练,RWKV-5、RWKV-6暂不支持。
之前的参考视频和RWKV的链接应该都给了,预祝顺利。
被迫任务
虽然想说有些确实不必要,但是拿钱办事。
文献参考
国内文献:国外文献 = 7:3(根据领域需要的期刊语言,可反向比,偏向哪个语言就用哪个语言的文献作为主要选择)
研究资料/创作资料时间,近5年占4成,本世纪(2000s)一共占8成。
标准:权威性:参考SCI的2区以上文章以及各顶刊顶会
被引用次数:超过15+
文献数量:100+(个人建议更多,如果可以整理成很多对话文档的话可以减少)
(建议根据自己行业调整)
注意事项
1.环境部署能用rwkv-runner的自动部署就尽量别自己手调,遇到报错就复制报错代码到网上搜
2.数据集不是善差事,尤其是整理成需要的数据集。建议先用最简单的一个文件试试程序能否跑通再尝试去搜集大量数据集。感觉困难的话就纯粹一个模型也能正常生成语料的,不必勉强。
3.训练时间很长,电脑不能中途关机,训练效果也很容易一言难尽,这个和模型,超参数,数据集质量息息相关,不要太过钻牛角尖。如果能训练一个很好的模型,都可以去一些小公司做项目了。其次,该部分相当工程类,不必过度苛求。