测试本地部署ChatGLM-6B | ChatGPT
ChatGLM-6B介绍
ChatGLM-6B是一款中英双语的开源对话语言模型,使用General Language Model (GLM)架构,具有超过62亿的参数。通过模型量化技术,用户可以在消费级的显卡上进行本地部署,最低显存需求为6GB(INT4量化级别)。该模型类似于ChatGPT,专注于中文问答和对话,经过将近1T的中英双语标记符训练,并结合监督微调、反馈自助和人类反馈强化学习等技术,ChatGLM-6B已经能够生成非常符合人类偏好的回答。不同于其他模型,ChatGLM-6B旨在提供自然流畅、多样化的对话体验,实现人机交互的真正智能化。
部署
环境要求:
ChatGLM-6B 也支持CPU的推理,本文部署在linux GPU环境部署。
环境安装
``` shell
conda create -n py38 python=3.8
source activate py38
git clone https://github.com/THUDM/ChatGLM-6B.git
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
├── api.py
├── cli_demo.py
├── cli_demo_vision.py
├── examples
├── FAQ.md
├── improve
├── LICENSE
├── limitations
├── MODEL_LICENSE
├── PROJECT.md
├── ptuning
├── README_en.md
├── README.md
├── requirements.txt
├── resources
├── UPDATE.md
├── utils.py
├── web_demo2.py
├── web_demo_old.py
├── web_demo.py
└── web_demo_vision.py
```
模型和配置下载:
ChatGLM-6B的模型的配置已经托管在huggingface上(https://huggingface.co/THUDM/chatglm-6b/tree/main),也可从清华云中下载模型文件(https://cloud.tsinghua.edu.cn/d/fb9f16d6dc8f482596c2/)
本次部署将模型和配置放在ckpt文件夹中
![md-2023-05-31-19-46-08.png](https://ucc.alicdn.com/pic/developer-ecology/abb7gqinvjggw_7bf3e14c577d46a1836fe449d85ae9a5.png)
测试
测试主要是加载tokenizer和模型,将目录改为本地的目录如
ckpt
,耐心等待加载完模型就可以测试了
from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained("./ckpt", trust_remote_code=True, revision="")
model = AutoModel.from_pretrained("./ckpt", trust_remote_code=True, revision="").half().cuda()
model = model.eval()
response, history = model.chat(tokenizer, "你好", history=[])
print(response)
本文为半精度部署,显存占用为13G
ChatGLM-6B的应用
- ChatGLM-MNN: 一个基于 MNN 的 ChatGLM-6B C++ 推理实现,支持根据显存大小自动分配计算任务给 GPU 和 CPU
- JittorLLMs:最低3G显存或者没有显卡都可运行 ChatGLM-6B FP16, 支持Linux、windows、Mac部署
- InferLLM:轻量级 C++ 推理,可以实现本地 x86,Arm 处理器上实时聊天,手机上也同样可以实时运行,运行内存只需要 4G 基于或使用了 ChatGLM-6B 的开源项目:
- langchain-ChatGLM:基于 langchain 的 ChatGLM 应用,实现基于可扩展知识库的问答
- 闻达:大型语言模型调用平台,基于 ChatGLM-6B 实现了类 ChatPDF 功能
- chatgpt_academic: 支持ChatGLM-6B的学术写作与编程工具箱,具有模块化和多线程调用LLM的特点,可并行调用多种LLM。
- glm-bot:将ChatGLM接入Koishi可在各大聊天平台上调用ChatGLM