清华开源中英双语对话模型ChatGLM2-6B本地安装笔记
首先,直接上资源,网盘中是ChatGLM2-6B源码及模型文件:
链接:https://pan.baidu.com/s/1DciporsVT-eSiVIAeU-YmQ
提取码:cssa
官方的Readme已经很详尽了,再写点安装博客有点画蛇添足。本着记录自己的工作内容的初衷,还是写一写吧,毕竟输出才是最好的学习。
本文记录了本地安装ChatGLM2-6B的过程,本地是用了一张RTX4070 12G的显卡,对于这个模型有点勉强,但是在实际运行中发现Win11系统给了共享GPU存储,这让我这个12G的显卡也运行了13G的模型,目前看是能正常运行,没有爆显存的问题。官方也提供了int4的模型,可以在6G显存上运行起来,由于我这边已经运行起来了,所以没有在考虑使用int4模型。下图是我模型加载之后的GPU占用情况,就很神奇。。。
1. Conda复制虚拟环境
conda creat -n new_env_name --copy old_env_name
创建ChatGLM运行环境,因为ChatGLM使用pytorch框架,所以使用Conda复制一个Pytorch的虚拟环境,以便在安装所需依赖完成之后不会对其他环境依赖造成破坏。
2. 添加PIP镜像源
由于安装依赖需要使用pip,为加速访问,所以配置PIP镜像源
配置PIP镜像源要切换到对应的虚拟环境上,如conda activate chatglm2
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
另外,还有其他镜像源可供使用
阿里云 https://mirrors.aliyun.com/pypi/simple/
豆瓣 http://pypi.douban.com/simple/
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/
Conda配置镜像源的工作在之前的Pytorch安装中已经写过了,可以参考。
3. 下载代码
- Github上克隆代码
git clone https://github.com/lordum/ChatGLM2-6B.git
4. 下载模型
启动模型的过程中,程序会自动去Huging Face官网下载模型bin文件,但是由于网络的原因,很可能会下载失败,官方提供了一个清华的下载地址(https://cloud.tsinghua.edu.cn/d/674208019e314311ab5c/),但是这个地址只有模型,很多配置文件会找不到,需要去Hugging Face官网下载(https://huggingface.co/THUDM/chatglm2-6b/tree/main);如果直接运行可能会遇到下面的问题1所列的问题。我这边将所有的文件打包,放在百度网盘上(链接:https://pan.baidu.com/s/1DciporsVT-eSiVIAeU-YmQ 提取码:cssa ),需要的可以自取。
下载完之后将model目录下面的模型及配置文件全部拷贝到代码目录下面,不需要新建文件夹之类的,直接和原有代码放在一块就好了。
5.依赖安装
首先是安装requirement,requirement.txt中的依赖可以根据自己环境进行调整,比如我这边由于复制了pytorch的环境,可以将其中的pytorch行删除。这里pip安装也是用的国内镜像源,可以大幅提高安装速度,前面已经介绍了添加方式。
官方推荐了 transformers
库版本推荐为 4.30.2
,torch
推荐使用 2.0 以上的版本,以获得最佳的推理性能。
pip install -r requirements.txt
6.应用
官方文档提供了多种应用方法,我们一般选择web界面运行,官方代码中提供了两个web_demo,web_demo.py是一问一答形式了,答案是统一给出的,web_demo2.py是流式回答,答案是流式传输的。需要注意的是,两种方式都要安装必要的依赖;为了更贴近实用,我们选择web_demo2.py来运行。
@AdamBear 实现了基于 Streamlit 的网页版 Demo web_demo2.py
。使用时首先需要额外安装以下依赖:
pip install streamlit streamlit-chat
模型运行默认去Hugging Face上去拉取模型文件,如果使用本地的文件,需要修改一下模型加载语句:
将15、16行改成本地代码路径就可以加载了
然后通过以下命令运行:
streamlit run web_demo2.py
经测试,如果输入的 prompt 较长的话,使用基于 Streamlit 的网页版 Demo 会更流畅。
安装遇到的问题
1. ValueError: Unrecognized configuration class <class ‘transformers_modules.chatglm-6b.co
问题描述
在部署ChatGLM过程中,出现了如下bug信息。
ValueError: Unrecognized configuration class <class ‘transformers_modules.chatglm-6b.configuration_chatglm.ChatGLMConfig’> to build an AutoTokenizer.
问题原因
我是通过清华云盘下载的模型参数(具体情况如下),里面缺失了很多重要的配置文件。
解决方案
可以通过Hagging Face官网下载完整的配置文件,然后将其放在与模型参数相同的位置。
https://huggingface.co/THUDM/chatglm2-6b/tree/main
参考文章:https://blog.csdn.net/weixin_40964597/article/details/131074884