Loading...

文章背景图

LMDeploy:OpenMMLab 高性能大模型压缩部署工具包安装与使用指南

2026-09-19
0
- 字
- 分钟
|

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。

七、跳转链接

评论交流

文章目录