折腾ChatGLM的几个避坑小技巧( 二 )


折腾ChatGLM的几个避坑小技巧

文章插图
 
 
上面就是坑人的前期准备,实际上避开英伟达驱动这个坑,后面的安装还是很顺利的 。在系统的选择上,我还是建议选择Debian兼容的Ubuntu,新版的Ubuntu的aptitude十分智能,能够帮你解决大量软件的版本兼容问题,实现部分软件的自动降版本 。
下面的安装过程完全按照安装指南就可以顺利完成了,要注意的是替换/etc/apt/sources.list里面的安装源的工作最好按照指南完成,一方面安装速度会快很多,另外一方面也避免出现软件版本兼容性的问题 。当然不替换也不一定会影响后面的安装过程 。
 
 
折腾ChatGLM的几个避坑小技巧

文章插图
如果你顺利地通过了前面的各道关卡,那么你就进入到了最后一步,启动web_demo了 。执行python3 web_demo.py可以启动一个WEB对话的例子 。这时候如果你是个穷人,只有一张12GB显存的3060,那么你就一定会看到上面的报错了,哪怕你把PYTORCH_CUDA_ALLOC_CONF设置为最小的21,也无法避开这个报错 。这时候你就不能偷懒了,必须简单地改写一下python脚本 。
折腾ChatGLM的几个避坑小技巧

文章插图
 
 
默认的web_demo.py是使用FP16的预训练模型的,13GB多的模型肯定无法装载到12GB现存里的,因此你需要对这个代码做一个小的调整 。
 
折腾ChatGLM的几个避坑小技巧

文章插图
你可以改为quantize(4)来装载INT4量化模型,或者改为quantize(8)来装载INT8量化模型 。这样你的显卡内存就够用了,而且可以支持你做各种对话了 。
要注意的是,web_demo.py启动后,模型的下载工作才真正开始,因此要下载13GB的模型,需要相当长的时间,你可以把这项工作放到半夜做,或者你直接用迅雷等下载工具预先从hugging face上下载模型 。如果你对模型一无所知,不太会安装下载的模型,你也可以修改代码中的模型名称,THUDM/chatglm-6b-int4,直接从网上下载只有不到4GB的INT4量化模型,这样会快很多,反正你的破显卡也跑不起FP16的模型 。
至此,你可以通过网页与ChatGLM对话了,不过这一切只是折腾的开始 。只有你能够把你的微调模型训练出来了,那么你的ChatGLM的入坑之旅才会真正开始 。玩这种东西还是需要大量的精力和金钱的,入坑要慎重 。
最后我还是十分感谢清华大学KEG实验室的朋友,他们的工作让更多的人可以低成本地使用大语言模型 。




推荐阅读