大模型ChatGLM-6B实现本地部署
一、写在前面:
1、 确保你的电脑中已安装git,git lfs。
2、确保你的电脑满足以下任一一种配置:
(1)内存不低于32G,大显存显卡无要求。
(2)内存不低于16G,显存不低于8G。
3、若满足2(2),则请确保你的显卡驱动和cuda、cudnn已经安装,并且相互之间版本对应。若满足2(1),则跳过3往下看。若两者都不满足,隔着屏幕我都能看到您那伤心而无助的脸庞,不过我还是要告诉您,不要浪费您宝贵的时间,不用继续往下看了。
二、ChatGLM-6B下载:
下载主要下载两部分,项目代码下载和模型权重下载。
1、项目代码下载地址:https://github.com/THUDM/ChatGLM-6B/
2、模型权重下载:本次下载的时INT4量化的模型方法如下,按照以下三个步骤完成下载:
(1)第一步:模型依赖文件下载:
进出ChatGLM-6B目录下,运行以下命令(官方提供的命令中,镜像地址是:https://huggingface.co,而这个地址我们很难访问,所以,把这个镜像地址换成:https://hf-mirror.com,就变成了下面这条命令):
GIT_LFS_SKIP_SMUDGE=1 git clone https://hf-mirror.com/THUDM/chatglm-6b-int4
执行完成后在你当前目录下,会产生如下图所示的文件夹,文件夹中是加载模型的依赖文件。
(2)第二步:模型权重下载:
模型参数下载地址:https://cloud.tsinghua.edu.cn/d/674208019e314311ab5c/,进去之后,页面如下图所示,将蓝色框里面的文件全部下载下来。
(3)第三步:将第二步下载的所有文件,复制到第一步中所产生的文件夹(chatglm-6b-int4)中,就变成了如下这样:
三、项目所需要的环境配置:
常规操作,安装requirements.txt文件即可,命令如下:
pip install -r requirements.txt
四、项目运行:
本次介绍两种运行方式
第一种:在主项目目录下新建一个py文件,参考官方写入代码如下:
from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained("chatglm-6b-int4", trust_remote_code=True)
model = AutoModel.from_pretrained("chatglm-6b-int4", trust_remote_code=True).half().cuda()
model = model.eval()
response, history = model.chat(tokenizer, "你是谁", history=[])
print(response)
脚本中“你是谁”这里面可以写你的问题,response是返回的结果。
第二种:运行网页版本,在运行之前,先安装 gradio,高版本gradio会报错,选择低版本安装:
pip install gradio==3.40.0
运行web_demo.py脚本,启动web页面:
python web_demo.py
结果如下,此时就可以使用了:
五、遇到的主要问题及解决
问题1:下载模型、模型配置文件时,官方提供的很多命令无法下载,愿意是官方提供的镜像地址是https://huggingface.co,我们无法访问。
解决:我找到了新的镜像地址:https://hf-mirror.com。将下载时链接地址里面有:https://huggingface.co的全部换成:https://hf-mirror.com。
问题2:启动项目时,有时会直接退出,这是因为你上次执行时,系统还没有释放资源,虽然你自己去看的时候已经释放资源了,其实没有释放完全。这种情况在windows中比较常见,Linux中从未遇到过。
解决:重新释放资源,或着重启。
问题3:web_demo.py脚本时报错,大概gt…没有style属性,这是因为gradio版本搞了。
解决:安装低版本gradio,如:
pip install gradio==3.40.0