记录一下平时在使用LMDeploy中可能会经常用到的一些命令以及选项
一、核心子命令功能架构
lmdeploy serve
├── api_server # API服务部署核心模块
├── gradio # 网页交互界面生成模块
├── api_client # 客户端SDK生成模块
└── docker # 容器化部署模块
二、常用子命令详解
1. API服务部署(api_server)
# 基础启动命令
lmdeploy serve api_server /root/models/internlm2_5-7b-chat
--model-format hf # 指定HF格式模型
--server-port 23333 # 设置服务端口
--server-name 0.0.0.0 # 允许访问的主机IP,表示不限制
--tp 2 # 双卡张量并行推理,根据实际显卡数量与情况设置
# 生产级配置示例
lmdeploy serve api_server ./workspace_tm
--quant-policy 4 # 混合量化策略选择
--concurrency 64 # 最大并发请求数
--max-batch-size 32 # 动态批处理上限
--allowed-ips 192.168.1.0/24 # IP白名单访问控制
--ssl-cert ./ssl_cert.pem # 启用HTTPS加密通信
--api-key YOUR_SECRET_KEY # 接口访问鉴权密钥
--dynamic-split-size 2048 # 长文本分块处理阈值(解决OOM问题)
2. 网页交互界面(gradio)
# 连接本地API服务
lmdeploy serve gradio http://localhost:23333 --server-port 6006 # 网页端访问端口,通过该IP与端口访问交互界面
# 远程服务对接并使用api-key验证鉴权
lmdeploy serve gradio https://api.example.com/v1 --server-port 6006 --api-key YOUR_KEY # 鉴权密钥配置
3. 客户端集成(api_client)
# 生成Python客户端代码
lmdeploy serve api_client http://localhost:23333 --output-dir ./client_code --lang python # SDK生成路径
# 快速测试接口
curl -X POST http://localhost:23333/v1/chat/completions
-H "Content-Type: application/json"
-d '{"messages":[{"role":"user","content":"你好"}]}'
4. 容器化部署(docker)
# 构建模型专属镜像
lmdeploy serve docker build
--model ./workspace_tm # TurboMind格式模型
--image-name lmdeploy:v0.5.3 # 镜像标签设置
# 启动容器服务
docker run -p 33337:23333 lmdeploy:v0.5.3
三、生产级参数配置
四、服务监控与调试
# 实时性能监控
lmdeploy serve monitor --interval 10 # 10秒刷新间隔
# 服务日志查看
tail -f ~/.cache/lmdeploy/logs/api_server_23333.log
# 健康检查接口
curl http://localhost:23333/v1/health