NYCU-MLLab's picture
Upload folder using huggingface_hub
4a28d4d verified
|
Raw
History Blame Contribute Delete
5.05 kB

llm-compressor 支持

本指南旨在介绍如何使用 LMDeploy 的 TurboMind 推理引擎,运行经由 vllm-project/llm-compressor工具量化后的模型。 目前支持的 llm-compressor 量化模型包括:

  • int4 量化(例如 AWQ、GPTQ)

上述量化模型通过 TurboMind 引擎可以在以下 NVIDIA GPU 架构上运行:

Compute Capability Micro-architecture GPUs
7.0 Volta V100
7.2 Volta Jetson Xavier
7.5 Turing GeForce RTX 20 series, T4
8.0 Ampere A100, A800, A30
8.6 Ampere GeForce RTX 30 series, A40, A10
8.7 Ampere Jetson Orin
8.9 Ada Lovelace GeForce RTX 40 series, L40, L20
9.0 Hopper H20, H200, H100, GH200
12.0 Blackwell GeForce RTX 50 series

LMDeploy 将持续跟进并扩展对 llm-compressor 项目的支持。

本文的其余部分由以下章节组成:

模型量化

llm-compressor 提供了丰富的模型量化用例,请参考其教程选择 LMDeploy 支持的量化算法,完成模型量化工作。 LMDeploy 也内置了通过 llm-compressor 对 Qwen3-30B-A3B 进行 AWQ 量化的脚本,供大家进行参考:

# 创建 conda 环境
conda create -n lmdeploy python=3.10 -y
conda activate lmdeploy

# 安装 llm-compressor
pip install llmcompressor

# 下载 lmdeploy 源码,运行量化用用例
git clone https://github.com/InternLM/lmdeploy
cd lmdeploy
python examples/lite/qwen3_30b_a3b_awq.py --work-dir ./qwen3_30b_a3b_awq

在接下来的章节中,我们以此量化模型为例,介绍模型部署、评测精度等方法

模型部署

离线推理

量化后的模型,通过以下几行简单的代码,可以实现离线批处理:

from lmdeploy import pipeline, TurbomindEngineConfig
engine_config = TurbomindEngineConfig()
with pipeline("./qwen3_30b_a3b_4bit", backend_config=engine_config) as pipe:
    response = pipe(["Hi, pls intro yourself", "Shanghai is"])
    print(response)

关于 pipeline 的详细介绍,请参考这里

在线服务

LMDeploy api_server 支持把模型一键封装为服务,对外提供的 RESTful API 兼容 openai 的接口。以下为服务启动的示例:

lmdeploy serve api_server ./qwen3_30b_a3b_4bit --backend turbomind

服务默认端口是23333。在 server 启动后,你可以通过 openai SDK 访问服务。关于服务的命令参数,以及访问服务的方式,可以阅读这份文档

精度评测

我们将 Qwen3-8B (Dense) 与 Qwen3-30B-A3B (MoE) 的 AWQ 对称/非对称量化模型通过 LMDeploy 部署为服务,并使用 opencompass 在多个学术数据集上评测。结果显示:Qwen3-8B 的非对称量化整体优于对称量化,而 Qwen3-30B-A3B 在两种量化方式间差异不显著;Qwen3-8B 在对称/非对称量化下与 BF16 模型的精度差异小于 Qwen3-30B-A3B。与 BF16 相比,量化模型在长输出数据集,比如 aime2025 (平均 17,635 tokens)、LCB (平均 14,157 tokens),精度下降更明显;在中短输出数据集,比如 ifeval (平均 1,885 tokens),mmlu_pro (平均 2,826),精度符合预期。

dataset Qwen3-8B Qwen3-30B-A3B
bf16 awq sym awq asym bf16 awq sym awq asym
ifeval 85.58 83.73 85.77 86.32 84.10 84.29
hle 5.05 5.05 5.24 7.00 5.47 5.65
gpqa 59.97 56.57 59.47 61.74 57.95 57.07
aime2025 69.48 64.38 63.96 73.44 64.79 66.67
mmlu_pro 73.69 71.73 72.34 77.85 75.77 75.69
LCBCodeGeneration 50.86 44.10 46.95 56.67 50.86 49.24

复现方式可以参考这份文档