LMDeploy 量化部署实战:国产大模型推理框架的崛起

AI InfraLMDeploy国产大模型量化部署

提到大模型推理框架,除了 vLLM、SGLang,还有一个不可忽视的国产力量 —— LMDeploy

作为小米大模型团队开源的推理框架,LMDeploy 在国产模型支持方面有着独特优势。

LMDeploy 核心特性

特性说明
TurboMind自研推理引擎,深度优化
全量化支持FP16/INT8/INT4 一键量化
国产模型原生支持 Qwen、ChatGLM、DeepSeek 等
高效推理批处理、Prefix Cache 优化

安装

pip install lmdeploy

快速开始

1. 量化模型

# INT8 量化
lmdeploy lite quantize /path/to/Qwen-7B /workspace/Qwen-7B-int8

# INT4 量化(推荐)
lmdeploy lite quantize /path/to/Qwen-7B /workspace/Qwen-7B-int4 --w-bit 4 --q-bit 4

2. 启动服务

# 启动 OpenAI 兼容 API
lmdeploy serve api_server /workspace/Qwen-7B-int4 \
    --server-name 0.0.0.0 \
    --server-port 23333

3. Python API

from lmdeploy import pipeline, TurbomindEngineConfig

# 配置引擎
engine_cfg = TurbomindEngineConfig(
    session_len=8192,
    max_batch_size=64,
    tp=1,  # 张量并行数
)

# 创建 pipeline
pipe = pipeline("Qwen/Qwen-7B-Chat", backend_config=engine_cfg)

# 推理
response = pipe(["你好,请自我介绍"])
print(response)

TurboMind 引擎

LMDeploy 的核心是 TurboMind 引擎:

┌────────────────────────────────────────┐
│              TurboMind                 │
├────────────────────────────────────────┤
│  🌊 高效计算层                          │
│    - CUDA Kernel 融合                   │
│    - FP16/INT8/INT4 计算优化            │
│                                        │
│  💾 显存管理层                          │
│    - PagedAttention                    │
│    - KV Cache 量化                      │
│    - 动态 Batch                         │
│                                        │
│  📡 通信层                              │
│    - NCCL 集合通信                      │
│    - Pipeline 并行                      │
└────────────────────────────────────────┘

性能对比

框架模型吞吐量显存
vLLMQwen-7B120 tok/s18GB
LMDeployQwen-7B145 tok/s16GB

国产模型支持

LMDeploy 对国产模型有原生优化:

Qwen 系列

from lmdeploy import pipeline

# Qwen2.5 推荐配置
pipe = pipeline("Qwen/Qwen2.5-7B-Instruct")
response = pipe([
    {"role": "user", "content": "讲个笑话"}
])

ChatGLM 系列

# ChatGLM3
pipe = pipeline("THUDM/chatglm3-6b")

DeepSeek 系列

# DeepSeek Coder
pipe = pipeline("deepseek-ai/deepseek-coder-33b-instruct")

实战:部署 Qwen2-14B

# 1. 安装
pip install lmdeploy

# 2. INT4 量化
lmdeploy lite quantize \
    Qwen/Qwen2-14B-Instruct \
    ./qwen2-14b-int4 \
    --w-bit 4 \
    --q-bit 4 \
    --batch_size 32

# 3. 启动服务
lmdeploy serve api_server \
    ./qwen2-14b-int4 \
    --server-name 0.0.0.0 \
    --port 8000 \
    --tp 2  # 2卡并行

服务调用

import openai

client = openai.Client(
    api_key="EMPTY",
    base_url="http://localhost:8000/v1"
)

response = client.chat.completions.create(
    model="qwen2-14b",
    messages=[{"role": "user", "content": "什么是大语言模型?"}],
    temperature=0.7,
    max_tokens=512
)

print(response.choices[0].message.content)

性能优化技巧

1. 批处理配置

engine_cfg = TurbomindEngineConfig(
    max_batch_size=128,      # 增大 batch
    max_session_len=16384,   # 更长上下文
    cache_max_entry_count=50,  # KV Cache 缓存数
)

2. Prefix Caching

# 启用前缀缓存(对多轮对话有效)
engine_cfg = TurbomindEngineConfig(
    enable_prefix_cache=True,
)

3. 张量并行

# 多卡部署
engine_cfg = TurbomindEngineConfig(
    tp=4  # 4卡并行
)

与 vLLM 对比

特性vLLMLMDeploy
性能★★★★☆★★★★★
国产模型一般★★★★★
易用性★★★★★★★★★☆
生态★★★★★★★★☆☆
更新频率

总结

LMDeploy 值得关注的点:

  1. TurboMind 引擎:自研高效推理
  2. 国产模型优化:Qwen、ChatGLM、DeepSeek 原生支持
  3. 一键量化:INT8/INT4 轻松搞定
  4. 活跃开发:小米团队持续维护

如果你主要使用国产大模型,LMDeploy 是非常值得尝试的选择!


下期预告:Ollama 本地部署完全指南