因公司发展需要,领导让我们研究清华开源语言大模型chatglm。因为之前没接触过,所以很多概念都不清楚,在自己摸索中,搭建的过程中也踩了很多坑。特此记录下,以备后续学习过程中参考。
一、安装CUDA和CUDNN
正常我们电脑会安装显卡驱动程序,但很少会安装CUDA。CUDA(Compute Unified Device Architecture),是显卡厂商NVIDIA推出的运算平台。CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。换句话说CUDA是NVIDIA推出的用于自家GPU的并行计算框架,也就是说CUDA只能在NVIDIA的GPU上运行,而且只有当要解决的计算问题是可以大量并行计算的时候才能发挥CUDA的作用。
1,建议将自己的显卡驱动程序升级到最新版,可以通过Official Drivers | NVIDIA来下载符合自己条件的最新版显卡驱动。
2,准备下载CUDA程序,要根据自己的显卡和显卡驱动版本号来决定安装哪个版本,具体的匹配情况见下图
这里强烈不建议安装最新版,理由后面会说,当前,先找到几个满足条件的CUDA版本号,如我的显卡驱动版本号是546,那么理论上,这里所有的CUDA版本我都能用,好,锁定几个较新的版本,就12.0以上吧。程序不大,网速允许的话,也可以把他们都下载下来,我下载安装12.1版本。下载路径:CUDA Toolkit 12.3 Update 2 Downloads | NVIDIA Developer
3、下载CUDNN,这个更小,下载路径:Access Denied | NVIDIA Developer,将12. x版本下载下来即可。解压后,把里面的dll文件复制到CUDA安装对应的目录下面即可。
安装完成后,打开命令控制台,用nvcc -V命令检查是否安装成功。
二、下载ChatGLM3_Package
ChatGLM3的github下载地址:https://github.com/THUDM/ChatGLM3
选择下载为zip压缩包,然后解压到你自己指定的目录。
安装anaconda配置python环境
这里选用清华大学开源软件镜像站:https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/
下载的速度更快。
点击下载链接:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
按时间倒序排,找到最新的.exe进行下载。
安装anaconda时,只需要注意一下你存放的路径,其他都直接默认next即可。
这里,第二个自动帮你添加环境变量的选项,如果是图个方便的话可以勾选,但环境变量可以后期进行设置,更加明确些;
第三个是将anaconda设置为系统的python3.11,选择确认即可。
安装可能需要花上一段时间,请稍等。这里已经显示安装完成,点击Next。
这里的两个选项可以不进行勾选,大多都是推广的软件,勾选了后续也会关闭。
在系统环境变量中找到Path,新建以下的目录路径,完成之后点击确定。
E:\Anaconda
E:\Anaconda\Scripts
E:\Anaconda\Library\bin
E:\Anaconda\Library\mingw-w64\bin
E:\Anaconda\Library\usr\bin
同样,打开命令提示符,输入conda --version或conda info查看当前conda版本信息。
如果提示conda不是内部或外部命令,那一般是,Anaconda的环境变量没配置好。需要好好检查一下。
三、阅读README.md进行环境依赖
打开到README.md的目录,在E:\ChatGLM3-main\composite_demo\README.md,如果安装的文件夹不同,路径可能会发生改变。打开README.md。
执行以下命令新建一个 conda 环境并安装所需依赖
conda create -n chatglm3-demo python=3.11
conda activate chatglm3-demo
pip install -r requirements.txt
conda install -c huggingface huggingface_hub
请注意,本项目需要 Python 3.10 或更高版本。
注意,坑来了!!!!!!!!!!!!
坑1:这里直接用“pip install -r requirements.txt”命令的话,在下载pytorch的话,会很慢很慢~
解决方案:用国内清华镜像下载,pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
坑2:安装完成后,通过版本检查,很有可能安装的torch是CPU版本而不是GPU版本,调用cuda.is_available()命令时返回false。
原因:cuda版本、python版本无法锁定唯一一个torch版本,会默认给安装CPU版本(版本号:2.1.2 + cpu),网络搜索:cuda.is_available()返回false会有很多方法,最根本原因就是无法在torch官网根据当前环境锁定一个版本,所以会默认装CPU版本。
解决方案:首先把已安装的torch卸载掉,pip uninstall torch,然后到官网下载适合自己版本的whl文件,下载地址:download.pytorch.org/whl/torch/
如我的cuda是12.1,通过anaconda安装的python版本是3.11,所以下载这个文件即可
下载完成后,到下载目录,用“pip install 文件名 ”命令安装即可;
坑3:torchvision版本不符合
解决方案:与torch版本问题类似,手动下载安装即可。
四、下载ChatGLM3训练模型
可以在E:\ChatGLM3-main目录下右键打开Git Bash Here,
下面用 Git LFS 从 Hugging Face Hub 将模型下载到本地,
git lfs install
git clone https://huggingface.co/THUDM/chatglm3-6b
如果你从 HuggingFace 下载比较慢,也可以从 ModelScope 中下载。
git lfs install
git clone https://www.modelscope.cn/ZhipuAI/chatglm3-6b.git
下载模型需要等待较长时间,毕竟内存比较大。
下载完毕后,打开下载到的目录,目录内容如下。
五、配置模型对应的环境变量
复制上面打开的文件夹目录路径,我这里是E:\ChatGLM3-main\chatglm3-6b
同样,打开环境变量,在系统变量中新建变量。
变量名:MODEL_PATH
变量值:E:\ChatGLM3-main\chatglm3-6b
再新建一个环境变量,
变量名:IPYKERNEL
变量值:chatglm3-demo
六、启动运行ChatGLM3
运行以下命令在本地加载模型并启动 demo:
streamlit run main.py
如果已经在本地下载了模型,可以通过 export MODEL_PATH=/path/to/model 来指定从本地加载模型。如果需要自定义 Jupyter 内核,可以通过 export IPYKERNEL=<kernel_name> 来指定。
这里的两步就是对应的上面两步新建环境变量。
输入streamlit run main.py后等待加载完毕。
加载完毕,已经可以顺利的看到我们的ChatGLM3页面了。