lmdeploy部署chatglm3模型并对话
- 环境准备
- 创建虚拟环境
- 安装组件
- 下载模型
- chat启动模型并对话
- 启动成api_server服务并对话
- 启动成gradio服务
环境准备
使用30% A100 来运行chatglm3模型,采用lmdeploy来启动。
创建虚拟环境
# 创建虚拟环境
conda create -n langchain python=3.11 -y# 激活环境
conda activate langchain
安装组件
pip install -r requirements.txt
requirenments.txt 内容
langchain
modelscope
ipykernel
xtuner
lmdeploy
下载模型
download_model.py:
用于从魔搭下载chatglm3模型
from modelscope import snapshot_download
model_dir = snapshot_download("ZhipuAI/chatglm3-6b-32k", revision = "v1.0.0")
# 运行下载代码
python download_model.py
模型会下载到 /root/.cache/modelscope/hub/ZhipuAI/chatglm3-6b-32k
chat启动模型并对话
直接采用lmdeploy chat启动并对话交互
lmdeploy chat /root/.cache/modelscope/hub/ZhipuAI/chatglm3-6b-32k
显存使用20多G
启动成api_server服务并对话
# 通过api_server方式启动成一个API服务
lmdeploy serve api_server /root/.cache/modelscope/hub/ZhipuAI/chatglm3-6b-32k \--server-name 127.0.0.1 \--model-name chatglm3-6b-32k
启动后,运行在127.0.0.1的23333端口,使用的是fastAPI服务器
通过curl来访问这个api,对话:
curl -X 'POST' \'http://127.0.0.1:23333/v1/chat/completions' \-H 'accept: application/json' \-H 'Content-Type: application/json' \-d '{"model": "chatglm3-6b-32k","messages": [{"content": "hi,什么是股票","role": "user"}],"temperature": 0.7,"top_p": 1,"logprobs": false,"top_logprobs": 0,"n": 1,"max_tokens": null,"stop": null,"stream": false,"presence_penalty": 0,"frequency_penalty": 0,"user": "string","repetition_penalty": 1,"session_id": -1,"ignore_eos": false,"skip_special_tokens": true,"top_k": 40
}'
文本补全
curl -X 'POST' \'http://127.0.0.1:23333/v1/completions' \-H 'accept: application/json' \-H 'Content-Type: application/json' \-d '{"model": "chatglm3-6b-32k","prompt":"今天天气不错" }'
注:具体的API可以访问23333端口来查看
启动成gradio服务
注意在lmdeploy 0.3.0上启动没问题,在0.4.2上启动会报错
lmdeploy serve gradio /root/.cache/modelscope/hub/ZhipuAI/chatglm3-6b-32k
启动后,就可以浏览器访问127.0.0.1:6006
lmdeploy 0.4.2上错误: