星河东莞网站建设,做组织架构图的网站,福田瑞沃自卸车,爆破wordpress密码ChatGLM3是智谱AI和清华大学KEG实验室联合发布的新一代对话预训练模型。ChatGLM3-6B是ChatGLM3系列中的开源模型#xff0c;在保留了前两代模型对话流畅、部署门槛低等众多优秀特性的基础上#xff0c;ChatGLM3-6B引入了如下特性#xff1a;
更强大的基础模型#xff1a;C…ChatGLM3是智谱AI和清华大学KEG实验室联合发布的新一代对话预训练模型。ChatGLM3-6B是ChatGLM3系列中的开源模型在保留了前两代模型对话流畅、部署门槛低等众多优秀特性的基础上ChatGLM3-6B引入了如下特性
更强大的基础模型ChatGLM3-6B的基础模型ChatGLM3-6B-Base采用了更多样的训练数据、更充分的训练步数和更合理的训练策略。在语义、数学、推理、代码、知识等不同角度的数据集上测评显示ChatGLM3-6B-Base具有在10B以下的基础模型中最强的性能。更完整的功能支持ChatGLM3-6B采用了全新设计的Prompt格式除正常的多轮对话外。同时原生支持工具调用Function Call、代码执行Code Interpreter和Agent任务等复杂场景。更全面的开源序列除了对话模型ChatGLM3-6B外还开源了基础模型ChatGLM3-6B-Base、长文本对话模型ChatGLM3-6B-32K。
模型列表
ChatGLM3-6B
https://huggingface.co/THUDM/chatglm3-6b
ChatGLM3-6B-Base
https://huggingface.co/THUDM/chatglm3-6b-base
ChatGLM3-6B-32K
https://huggingface.co/THUDM/chatglm3-6b-32k
环境安装
首先需要下载本仓库
git clone https://github.com/THUDM/ChatGLM3
cd ChatGLM3
然后使用 pip 安装依赖
pip install -r requirements.txt
其中transformers库版本推荐为 4.30.2torch推荐使用2.0及以上的版本以获得最佳的推理性能。
代码调用
可以通过如下代码调用ChatGLM模型来生成对话
from transformers import AutoTokenizer, AutoModel
tokenizer AutoTokenizer.from_pretrained(THUDM/chatglm3-6b, trust_remote_codeTrue)
model AutoModel.from_pretrained(THUDM/chatglm3-6b, trust_remote_codeTrue, devicecuda)
model model.eval()
response, history model.chat(tokenizer, 晚上睡不着应该怎么办, historyhistory)
print(response)
网页版demo
cd basic_demo
python web_demo.py
命令行工具
cd basic_demo
python cli_demo.py
API部署
ChatGLM3实现了OpenAI格式的流式API部署可以作为任意基于ChatGPT应用的后端比如ChatGPT-Next-Web。可以通过运行仓库中的openai_api.py进行部署
cd openai_api_demo
python openai_api.py
运行openai_api_request.py进行测试
cd openai_api_demo
python openai_api_request.py
使用Curl测试
curl -X POST http://127.0.0.1:8000/v1/chat/completions \
-H Content-Type: application/json \
-d {\model\: \chatglm3-6b\, \messages\: [{\role\: \system\, \content\: \You are ChatGLM3, a large language model trained by Zhipu.AI. Follow the users instructions carefully. Respond using markdown.\}, {\role\: \user\, \content\: \你好给我讲一个故事大概100字\}], \stream\: false, \max_tokens\: 100, \temperature\: 0.8, \top_p\: 0.8}
低成本部署
模型量化
默认情况下模型以FP16精度加载运行需要大概13GB显存。如果GPU显存有限可以尝试以量化方式加载模型使用方法如下
model AutoModel.from_pretrained(THUDM/chatglm3-6b,trust_remote_codeTrue).quantize(4).cuda()
模型量化会带来一定的性能损失经过测试ChatGLM3-6B 在 4-bit 量化下仍然能够进行自然流畅的生成。
CPU部署
如果没有GPU硬件也可以在CPU上进行推理但是推理速度会更慢需要大概32GB内存使用方法如下
model AutoModel.from_pretrained(THUDM/chatglm3-6b, trust_remote_codeTrue).float()
多卡部署
如果有多张 GPU但是每张GPU的显存大小都不足以容纳完整的模型那么可以将模型切分在多张GPU上。 首先安装accelerate:
pip install accelerate
然后通过如下方法加载模型
from utils import load_model_on_gpus
model load_model_on_gpus(THUDM/chatglm3-6b, num_gpus2)
即可将模型部署到两张GPU上进行推理。可以将num_gpus改为你希望使用的GPU数默认是均匀切分的也可以传入device_map参数来自己指定。