LMDeploy

上海人工智能实验室 的 高效 大型模型 部署 工具包 — 面向生产的推理、量化与服务,支持连续批处理与页式注意力(PagedAttention)。

🏛️ 开发者 OpenMMLab / 上海人工智能实验室 | Apache-2.0 许可证 | 4000+ GitHub 收藏


什么是 LMDeploy?

LMDeploy 是一个用于在生产环境中压缩、部署和服务大型语言模型的综合工具包。由 OpenMMLab(MMDetection、MMSeg)背后的团队构建,将研究级的优化带入实际部署:

  • TurboMind 引擎 — 具有 CUDA 优化的高性能 C++ 推理后端

  • PyTorch 引擎 — 基于 Python 的灵活引擎,具有广泛的模型兼容性

  • 连续批处理 — 在并发请求间最大化 GPU 利用率

  • PagedAttention — 高效的 KV 缓存管理(类似于 vLLM)

  • 4 位 / 8 位 量化 — 支持 AWQ 和 SmoothQuant

  • 视觉-语言 模型 — 支持 InternVL、LLaVA、Qwen-VL

与 vLLM 相比,LMDeploy 的 TurboMind 引擎在 Llama 3 8B、batch=32 时提供约 1.36× 更高的吞吐量,其 AWQ 量化也是一流的 — 并非事后补充。对于 VLM(尤其是 InternVL2),LMDeploy 是参考部署栈。

为什么选择 LMDeploy?

功能
LMDeploy
vLLM
TGI

连续批处理

AWQ 量化

推测式解码

视觉-语言

有限

有限

OpenAI API

TurboMind(自定义引擎)


在 Clore.ai 上快速开始

第 1 步:选择 GPU 服务器

clore.aiarrow-up-right 市场:

  • 最低要求: NVIDIA GPU,8GB 显存(适用于 7B 模型)

  • 推荐: RTX 3090/4090(24GB)或 A100(40/80GB)

  • CUDA: 需要 11.8 或 12.x

第 2 步:部署 LMDeploy Docker

端口映射:

容器端口
用途

22

SSH 访问

23333

LMDeploy API 服务器

环境变量:

第 3 步:SSH 并验证


启动 API 服务器

兼容 OpenAI 的服务器(推荐)

PyTorch 引擎(更广的兼容性)

服务器启动输出

circle-check

支持的模型

文本模型

视觉-语言 模型


量化

AWQ 4 位 量化

LMDeploy 的 AWQ(感知激活的权重量化)在 4 位下能产生出色的质量:

SmoothQuant W8A8

8 位权重与激活量化(对吞吐量要求高的部署更佳):

量化影响

量化
显存(7B)
质量损失
吞吐量增益

无(bf16)

≈14GB

基线

SmoothQuant W8A8

≈8GB

极小

+20%

AWQ W4A16

≈4GB

+15%

GPTQ W4A16

≈4GB

+10%

circle-info

AWQ 建议: 对于大多数使用场景,AWQ 4 位在质量与显存节省之间提供最佳平衡。使用 --w-group-size 128 可在略高内存使用下获得更好的质量。


API 使用示例

Python 客户端

流式传输

LMDeploy 原生 Python 客户端

视觉-语言 模型


多 GPU 部署

张量并行


高级配置

TurboMind 引擎 配置

生成配置


监控与指标

检查服务器健康状态

GPU 监控


Docker Compose 示例


基准测试

示例输出(RTX 4090,TurboMind,bf16):

在 A100 80GB 上,由于 HBM2e 内存带宽(2 TB/s vs 1 TB/s),在高并发下预计吞吐量比 RTX 4090 高约 2.2×。


Clore.ai 的 GPU 建议

根据目标模型规模和服务负载进行选择:

在 Clore.ai 上的预估费用
GPU
显存(VRAM)
为什么

7–13B 模型,开发/预发布 环境

RTX 3090

24 GB

最佳 $/显存 比;可处理 7B bf16 或 13B AWQ

7–13B 模型,生产环境

RTX 4090

24 GB

在相同显存下比 3090 快约 40%;在 Llama 3 8B 上为 412 tok/s

70B 模型,团队服务

A100 40GB

40 GB

适配 70B AWQ;使用 ECC 内存以提高可靠性

70B 模型,高吞吐量

💡 本指南中的所有示例均可部署在

80 GB

适配 70B bf16;在 batch=32 时吞吐量为 A100 40GB 的 2×

预算推荐: RTX 3090 + AWQ 4 位 — 在 batch=8 时可为 Llama 3 8B 提供约 280 tok/s,覆盖大多数 API 用例。

速度首选: RTX 4090 — 在 7–13B 模型上每美元性能最高;TurboMind 最大化利用其 1 TB/s 带宽的每 GB/s 性能。

生产首选: A100 80GB — 可在不牺牲量化质量的情况下以完整 bf16 运行 Qwen2-72B 或 Llama 3 70B;易于部署到多实例 GPU 服务中。


故障排除

模型无法加载

CUDA 内存不足(Out of Memory)

端口已被占用

circle-exclamation

Clore.ai 的 GPU 建议

LMDeploy 的 TurboMind 引擎和 W4A16 量化在吞吐量方面表现卓越 — 尤其在 Ampere/Hopper GPU 上。

GPU
显存(VRAM)
Clore.ai 价格
Llama 3 8B 吞吐量
Llama 3 70B Q4

RTX 3090

24 GB

~$0.12/小时

≈120 tok/s(fp16)

❌ 太大

RTX 4090

24 GB

~$0.70/小时

≈200 tok/s(fp16)

❌ 太大

A100 40GB

40 GB

~$1.20/小时

≈160 tok/s(fp16)

≈55 tok/s(W4A16)

💡 本指南中的所有示例均可部署在

80 GB

~$2.00/小时

≈175 tok/s(fp16)

≈80 tok/s(fp16)

2× RTX 4090

48 GB

≈$1.40/小时

≈380 tok/s(张量并行)

≈60 tok/s

circle-info

RTX 3090 约 $0.12/小时 是 7B–13B 模型的首选。LMDeploy 的 TurboMind 引擎能从消费级 GPU 中挖掘出接近最大化的吞吐量。单张 RTX 3090 服务 Llama 3 8B 可处理 120 tok/s — 足以支持 10–20 并发用户的生产 API。

对于 70B 模型:A100 40GB(≈$1.20/小时)配合 W4A16 量化可提供约 55 tok/s — 比两张 RTX 4090 更具成本效益。


资源

最后更新于

这有帮助吗?