折腾ChatGLM的几个避坑小技巧

我昨天说从数据技术嘉年华回来后就部署了一套ChatGLM,准备研究利用大语言模型训练数据库运维知识库,很多朋友不大相信,说老白你都这把年纪了,还能自己去折腾这些东西?为了打消这些朋友的疑虑,我今天把这两天折腾ChatGLM的过程分享给大家,也为有兴趣折腾一下ChatGLM的朋友讲一下避坑的一些技巧 。
ChatGLM-6B是基于清华大学 KEG 实验室与智谱 AI 于2023年联合训练的语言模型 GLM 开发而成,是一个大型的语言模型,其针对用户的问题和要求提供适当的答复和支持 。上面的回答是ChatGLM自己回答的,GLM-6B是一个开源的62亿参数的预训练模型,其特点是可以在比较小的硬件环境下本地运行 。这一特性可以让基于大语言模型的应用可以走进千家万户 。KEG实验室的目的是要让更大的GLM-130B模型(1300亿参数,与GPT-3.5相当)能够在一个8路RTX 3090的低端环境中完成训练 。
【折腾ChatGLM的几个避坑小技巧】

折腾ChatGLM的几个避坑小技巧

文章插图
 
如果这个目标真的能实现,那么对想基于大语言模型做一些应用的人来说绝对是一个福音 。目前的ChatGLP-6B的FP16模型大约13G多一点,INT-4量化模型不到4GB,完全可以在一块6GB显存的RTX 3060TI上运行 。
折腾ChatGLM的几个避坑小技巧

文章插图
在部署前我不太了解这些情况,因此买了一块不上不下的12GB的RTX 3060,于是完成安装部署后仍然无法运行FP16的模型 。早知道在自己家里做测试验证,直接买块价格更便宜的3060TI就可以了 。而如果要运行无损的FP16模型,就必须上24GB显存的3090了 。
折腾ChatGLM的几个避坑小技巧

文章插图
 
如果你仅仅是想在自己的机器上测试一下ChatGLP-6B的能力,那么你可能不需要直接去下载THUDM/ChatGLM-6B模型,在huggingface上有一些打包好的量化模型可以下载 。模型下载速度很慢,你可以直接下载int4的量化模型 。
我这次安装是在一台I7 8核的PC机上完成的,显卡为12G显存的RTX 3060,因为这台电脑是我的工作电脑,因此我把ChatGLM安装在了WSL子系统上 。在windows WSL 子系统上安装ChatGLM比直接在linux环境中安装要复杂一些 。其中最大的坑是显卡驱动的安装 。直接在Linux上部署ChatGLM的时候,需要直接安装NVIDIA的驱动程序,通过modprobe来激活网卡驱动就可以了 。而在WSL上安装则大有不同 。
 
折腾ChatGLM的几个避坑小技巧

文章插图
ChatGLM可以在Github上下载,在网站上也有一些简单的文档,甚至包含一个在WINDOWS WSL上部署ChatGLM的文档 。只不过如果你是这方面的小白,完全按照这个文档去部署,会遇到无数的坑 。
折腾ChatGLM的几个避坑小技巧

文章插图
 
Requriements.txt文档里列出了ChatGLM使用的主要开源组件的清单与版本号,其核心是transformers,需要版本4.27.1,实际上要求没有这么严格,略低一点也没太大问题,不过安全起见还是用相同的版本为好 。Icetk是做Token处理的,cpm_kernels是中文处理模型与cuda的核心调用,protobuf是结构化数据存储的 。Gradio是用于利用Python/ target=_blank class=infotextkey>Python快速生成AI应用的框架 。Torch就不用我多做介绍了 。
ChatGLM可以在没有GPU的环境中使用,利用CPU和32GB的物理内存来运行,不过运行速度很慢,仅仅能够用来做个演示验证而已 。要想玩ChatGLM最好还是配备一块GPU 。
在WSL上安装ChatGLM最大的坑是显卡驱动,在Git上ChatGLM的文档十分不友好,对于不太了解这个项目或者没有做过此类部署的人来说,文档实在太坑 。实际上软件部署并不麻烦,而显卡驱动就十分有技巧性 。
因为是在WSL subsystem上部署,因此LINUX只是一个仿真系统,并不是完整的LINUX,因此英伟达的显卡驱动只需要在WINDOWS上安装,不需要在WSL里激活 。不过在WSL的LINUX虚拟环境中还是需要安装CUDA TOOLS 。WINDOWS上的英伟达驱动一定要安装官网上的最新驱动,而不能使用WIN10/11自带的兼容性驱动,因此从官网上下载最新驱动并安装一定不要省略 。
 
折腾ChatGLM的几个避坑小技巧

文章插图
 
安装完WIN的驱动后就可以直接在WSL里安装cuda tools了,安装完毕后,运行nvidia-smi如果能够看到上面的界面,那么恭喜你,你已经成功地避开了第一个坑 。实际上在安装cuda tools时候还会遇到几个小坑 。那就是你的系统中必须安装合适版本的gcc,gcc-dev和make等编译相关的工具,如果缺少这些组件,cuda tools的安装会失败 。


推荐阅读