首先声明,基础较好的同学可以直接去看ChatGLM的官方,里面写得也很详细:GitHub - THUDM/ChatGLM-6B: ChatGLM-6B: An Open Bilingual Dialogue Language Model | 开源双语对话语言模型
本地环境安装
在上述的ChatGLM-6B官方项目里,提供了requirements.txt文件。将项目克隆到本地,直接命令行:pip install -r requirements.txt 即可,这样环境就安装好了。
我的pytorch包是自己手动安装的,没有通过它的文档自动安装。
建议用conda新建一个虚拟环境来独立管理,防止包的冲突,这是一个好的习惯。
如果你不打算本地跑模型,那本地环境不搭建也是可以的,直接跳过这步!
本地模型下载
方法一:代码直接调用
可以通过如下代码,直接调用 ChatGLM-6B 模型:
from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True)
model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).half().cuda()
model = model.eval()
response, history = model.chat(tokenizer, "你好", history=[])
print(response)
#你好👋!我是人工智能助手 ChatGLM-6B,很高兴见到你,欢迎问我任何问题。
response, history = model.chat(tokenizer, "晚上睡不着应该怎么办", history=history)
print(response)
#晚上睡不着可能会让你感到焦虑或不舒服,但以下是一些可以帮助你入睡的方法:
#1. 制定规律的睡眠时间表:保持规律的睡眠时间表可以帮助你建立健康的睡眠习惯,使你更容易入睡。尽量在每#天的相同时间上床,并在同一时间起床......
该方法虽然看似方便,但需要非常好的网络和足够的耐心,建议不要尝试,直接跳到方法二。
方法二:从本地加载模型
我们可以先将模型下载到本地,再通过方法一中的代码调用模型,这样会快很多,方法如下:
下载模型也分为两种方法:
方法1. 从Hugging Face Hub下载完整模型(需科学上网)
ChatGLM3-6B的模型地址:https://huggingface.co/THUDM/chatglm3-6b
可使用Git LFS工具克隆到本地(不一定能成功,需多次尝试)
git lfs install
git clone https://huggingface.co/THUDM/chatglm3-6b
或者最简单的就是给它们全部手动下载下来:
我是直接手动下载的,18个文件,大约等个15分钟就好了。
如果这种方法不行,还可以先下载模型实现,再下载模型参数,也就是分两步将完整的模型下载下来(见方法2)。
方法2. 从Hugging Face Hub先下载模型实现,再下载模型参数
使用Git LFS工具下载模型实现:
GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/THUDM/chatglm3-6b
再手动下载模型参数文件:ChatGLM-6B模型参数
将下载的模型参数文件替换到本地的chatglm3-6b目录下即可(也就是你下的模型实现)。
最后你本地的chatglm3-6b目录就是完整的模型:
如果你想在本地跑你的模型,那最后的最后,将完整的模型下载下来之后,别忘了修改代码中的路径!
也就是这两个位置,要改成你本地的chatglm3-6b目录所在的路径:
改完后运行这段代码,模型就可以在你的本地跑起来了。
至于后续怎么使用网页版,怎么使用命令行,怎么调用API,去看官方文档去:ChatGLM-6B官方
云服务器部署
除了在本地跑,我们还可以借助AutoDL提供的GPU算力,很便宜,才1块多1h。
GPU的规格选择上,可以参考ChatGLM给出的官方数据:
具体怎么租用不过多阐述,去看AutoDL的官方说明:AutoDL帮助文档
第一步:先租一个合适的容器,配置好环境
打开快捷工具栏的JupyterLab
上传requirements.txt文件(也就是ChatGLM官方github项目里的那个),然后
pip install -r requirements.txt
环境就轻松搞定啦!(这里pytorch我是用的容器自带的,没有通过requirements文档下载)
第二步:上传本地的模型
通过JupyterLab上传只能传单个的文件,不能传文件夹,而且你还看不见文件传的过程,无法判断是否已经上传成功,很不好用。
所以根据AutoDL的官方帮助文档,我最后选择用百度网盘来上传完整的模型,具体怎么上传还是看官方说明:AutoDL帮助文档-上传数据
(注意:非百度网盘会员会上传得非常慢!)
将刚刚下载到本地的模型,上传到AutoDL容器中,最后可以在这个autodl-tmp目录下找到自己上传的东西:
第三步:在容器中加载模型
模型上传到容器中后,和本地一样,我们依旧要先找到chatglm3-6b目录的所在路径:
找到后,在代码里面修改路径,运行,像这样:
直至这一步,模型就算成功部署到容器中啦!