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上错误: