LMDeploy:OpenMMLab 高性能大模型压缩部署工具包安装与使用指南
一、官方信息
| 项目名称 | LMDeploy |
| 仓库地址 | https://github.com/InternLM/lmdeploy |
| 官方网站 | https://lmdeploy.readthedocs.io |
| 最新更新 | 持续迭代(2026-09-19) |
| Star 数 | 6k+ |
| 项目定位 | 上海人工智能实验室 InternLM 团队出品,面向 NVIDIA GPU 的量化、编译、推理一体化部署引擎,TurboMind 后端性能业界领先 |
二、项目背景
LMDeploy 由上海人工智能实验室 InternLM 团队开发,最初为了支撑书生·浦语大模型的产业化落地,逐渐发展成通用大模型部署框架。它的核心是 TurboMind 推理引擎,通过 FasterTransformer 风格的 Kernel 优化、W4A16/W8A8 量化、Paged Attention、连续批处理等技术,在 NVIDIA A100/H100 上实现比 vLLM 更高的吞吐。
LMDeploy 提供从模型量化、性能 profiling、命令行对话、OpenAI 兼容 API 到 Gradio WebUI 的完整链路,对 Qwen、InternLM、Llama、DeepSeek、GLM、Yi 等国产和开源模型支持尤其友好,是国内大模型私有化部署的首选工具之一。
三、核心特性
- TurboMind 高性能引擎:PagedAttention + 连续批处理,吞吐比原生 PyTorch 高 3~5 倍。
- W4A16 / W8A8 量化:4bit 权重 + FP16 激活,显存减半且精度损失极小。
- KV Cache 量化:KV Cache 也支持 4bit/8bit,进一步省显存。
- OpenAI 兼容 Server:一条命令起 API,支持流式、多模态、工具调用。
- 量化工具链:
lmdeploy lite auto_awq一键把 HF 模型量化成 4bit。 - 多模型支持:Qwen2/2.5、Llama3、DeepSeek-V2/V3、InternLM2、GLM4、Mistral、Phi3 等。
- Android 端侧推理:提供 NCNN 后端,可把量化模型部署到手机。
四、环境要求
- 操作系统:Linux(Ubuntu 20.04/22.04)
- Python:3.8 ~ 3.12
- GPU:NVIDIA 显卡,算力 ≥ 7.0(V100/T4/RTX20+/A10/A100/H100 均可),显存按模型大小
- CUDA:11.3 / 11.8 / 12.0 / 12.2
- 驱动:≥ 525
五、详细部署步骤
方式一:pip 安装(推荐)
# 建议新建 conda 环境
conda create -n lmdeploy python=3.10 -y
conda activate lmdeploy
# 安装(默认 CPU + CUDA 12.x 轮子)
pip install lmdeploy
# 验证
lmdeploy version
# 或指定 CUDA 版本
pip install lmdeploy[all]==0.7.0 --index-url https://pypi.org/simple方式二:Docker 部署
# 拉取官方镜像
docker pull openmmlab/lmdeploy:latest
# 启动(挂载模型目录)
docker run -d \
--name lmdeploy \
--gpus all \
-p 23333:23333 \
-v /path/to/models:/models \
openmmlab/lmdeploy:latest \
lmdeploy serve api_server /models/Qwen2.5-7B-Instruct \
--server-name 0.0.0.0 \
--server-port 23333 \
--tp 1方式三:源码编译(开发用)
git clone https://github.com/InternLM/lmdeploy.git
cd lmdeploy
pip install -e . --no-build-isolation
# 编译 TurboMind kernel
mkdir -p build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j$(nproc)
cd ..
pip install -e .第一步:量化模型(可选但强烈推荐)
# 把 HuggingFace 模型量化成 4bit AWQ
lmdeploy lite auto_awq \
/path/to/Qwen2.5-7B-Instruct \
--work-dir ./Qwen2.5-7B-Instruct-W4A16
# 量化完成后工作目录包含:
# config.json, model.safetensors, tokenizer 等第二步:命令行对话测试
# 直接跑 HuggingFace 模型
lmdeploy chat /path/to/Qwen2.5-7B-Instruct
# 跑量化后的模型
lmdeploy chat ./Qwen2.5-7B-Instruct-W4A16
# 指定 GPU 显存比例
lmdeploy chat ./Qwen2.5-7B-Instruct-W4A16 --cuda-max-batch-size 64 --cache-max-entry-count 0.8第三步:启动 OpenAI 兼容 API 服务
lmdeploy serve api_server ./Qwen2.5-7B-Instruct-W4A16 \
--server-name 0.0.0.0 \
--server-port 23333 \
--tp 1 \ # 张量并行数(多卡时设置)
--session-len 8192 \ # 最大上下文
--cache-max-entry-count 0.8 \ # KV cache 占显存比例
--deploy-name qwen25 \ # API 中使用的模型名
--log-level INFO
# 启动后访问:
# Swagger 文档: http://IP:23333/docs
# OpenAI API: http://IP:23333/v1/chat/completions
# /v1/models 列出可用模型API 调用示例
curl http://localhost:23333/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "qwen25",
"messages": [{"role":"user","content":"介绍一下 LMDeploy"}],
"max_tokens": 512
}'启动 Gradio WebUI
# 启动 WebUI(自动连接本地 api_server)
lmdeploy serve gradio ./Qwen2.5-7B-Instruct-W4A16 \
--server-name 0.0.0.0 \
--server-port 8888
# 浏览器访问 http://IP:8888六、常见问题(FAQ)
Q1:报 "CUDA error: no kernel image is available"?
A:GPU 算力不在支持列表。lmdeploy 预编译轮子支持 sm70+,老卡(如 K80)需源码编译并指定 -DCMAKE_CUDA_ARCHITECTURES。
Q2:量化时报 OOM?
A:量化过程需要加载 FP16 模型,7B 模型至少需要 16GB 显存。可用 --batch-size 1 减小批量,或在 CPU 上量化(较慢)。
Q3:多卡张量并行怎么设?
A:--tp 2 即 2 卡张量并行,--tp 数量必须等于实际 GPU 数量。70B 模型推荐 tp=4 或 tp=8。
Q4:支持连续批处理吗?
A:默认开启,无需配置。并发请求由 TurboMind 自动调度。
Q5:如何跑 DeepSeek-V3/R1 这种 MoE 模型?
A:最新版已支持,需多卡部署,示例:lmdeploy serve api_server deepseek-ai/DeepSeek-V3 --tp 8 --session-len 32768。
七、跳转链接
- GitHub 仓库:https://github.com/InternLM/lmdeploy
- 官方文档:https://lmdeploy.readthedocs.io
- Docker 镜像:https://hub.docker.com/r/openmmlab/lmdeploy
- InternLM 主页:https://internlm.intern-ai.org.cn