ChatGLM3-6B大语言模型离线执行
模型准备
一般而言,模型和模型参数可以通过如下三个模型源进行相应的下载:
HuggingFace | ModelScope | WiseModel
本实例中,使用的是HuggingFace的源下载,相应的地址如下:
HuggingFace
环境准备
从HuggingFace下载下来的模型,实际上是包含两个实际的模型库,为了保证模型的准确运行,我们需要对相应的模型库进行选择,例如,我们使用的是PyTorch的模型,因此需要删除另外一个使用safetensors的模型,删除的内容包括:
- 模型数据文件
- 模型的配置文件
这些工作准备好后,直接安装requirements.txt 文件的相应安装包即可 。
快速代码调用
-
目录切换
cd C:\VM\Chatbot\ChatGLM3-main
-
加载相应的模块库文件
from transformers import AutoTokenizer, AutoModel
-
生成token
tokenizer = AutoTokenizer.from_pretrained(r"C:\VM\Chatbot\ChatGLM3-main\THUDM\chatglm3-6b", trust_remote_code=True)
-
模型的调用
CPU调用
model = AutoModel.from_pretrained(r"C:\VM\Chatbot\ChatGLM3-main\THUDM\chatglm3-6b", trust_remote_code=True).float()
GPU调用
model = AutoModel.from_pretrained(r"C:\VM\Chatbot\ChatGLM3-main\THUDM\chatglm3-6b", trust_remote_code=True,device='cuda').float()
-
模型实例化
model = model.eval()
-
模型测试
response, history = model.chat(tokenizer, "Hello", history=[])
print(response)
response, history = model.chat(tokenizer, "晚上睡不着应该怎么办", history=history)
print(response)
执行完成后,系统的运行界面输出结果如下,说明运行成功。
异常处理
requests.exceptions.ProxyError: (MaxRetryError("HTTPSConnectionPool(host='huggingface.co', port=443): Max retries exceeded with url: /THUDM/chatglm3-6b/resolve/main/tokenization_chatglm.py (Caused by ProxyError('Unable to connect to proxy', OSError('Tunnel connection failed: 407 Proxy Authentication Required')))"), '(Request ID: 2bb04d30-be98-4bc9-aba4-0fbcce94da13)')
处理方案
- 检查是否正确的配置了模型地址- 已经将模型地址指向本地;
- 检查模型的地址和执行的程序的文件目录等级是否在同一级;
eg:
模型地址为:C:\VM\Chatbot\ChatGLM3-main\THUDM\chatglm3-6b,那么我们的执行程序需要放到: C:\VM\Chatbot\ChatGLM3-main才能保证正常运行。
参考资源
ChatGLM3模型