auto-round
Intel 开源的 SOTA 大模型量化工具,通过符号梯度下降实现 2-4bit 低比特高精度压缩,
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
Intel 开源的 SOTA 大模型量化工具,通过符号梯度下降实现 2-4bit 低比特高精度压缩,
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
2025 年,一个 70B 参数的 Llama-3 模型在单卡 A100(80GB)上跑起来还算流畅——但当你想把它部署到显存更小的 GPU,或者在本地 CPU 机器上跑一个 7B 模型时,"内存不够"的报错几乎必然出现。大模型的体积是落地的第一道坎,而**量化(Quantization)**正是解决这道坎的核心手段:把 FP32/FP16 的权重压缩到 INT4/INT2,在精度损失最小化的前提下,把模型体积和内存需求砍掉 4-8 倍。
AutoRound 就是这个领域的"尖子生"。它由 Intel 团队开发,采用符号梯度下降(Sign Gradient Descent)作为核心算法,在 2-4bit 超低比特宽度下实现了当前最高的精度保持率,支持 CPU、Intel GPU、NVIDIA GPU、Intel Gaudi 等多硬件平台,并与 vLLM、SGLang、HuggingFace Transformers 三大主流推理框架无缝对接。

图1:AutoRound 整体架构,支持多后端推理与多格式导出
GPTQ、AWQ、RTN(Round-to-Nearest)是此前最常见的三种量化方法。RTN 最简单但精度最差;GPTQ 精度好但量化速度极慢;AWQ 精度与速度兼顾,但在极低比特(如 W2A16)时表现不稳。这些方法有一个共同问题:它们在极低比特(如 INT2/INT4)下,量化误差会沿着网络层累积,导致模型最终精度下降明显。
AutoRound 提出了一个聪明的改进:不再是简单的"四舍五入",而是在量化前对权重做一次符号梯度下降微调。具体来说,它在权重周围引入了一个可学习的偏移量,通过几轮梯度更新,让这个偏移量使得量化后的权重与原始权重的 KL 散度最小。
论文引用:
AutoRound 支持极为丰富的量化配置:
| 量化方案 | 说明 | 适用场景 |
|---|---|---|
| W4A16 | 权重 INT4,激活 FP16 | 内存受限的 GPU 推理 |
| W4A8 | 权重 INT4,激活 INT8 | 更激进的压缩 |
| W2A16 | 权重 INT2,激活 FP16 | 极致压缩,精度风险高 |
| FP8_BLOCK | Block-wise FP8 量化 | 新型 GPU 架构优化 |
| MXFP4/NVFP4 | MX/NV 浮点格式 | H100/Blackwell 架构 |
| GGUF | 导出为 GGUF 格式 | llama.cpp 生态兼容 |
从 v0.13.0 版本起,auto-round-rtn 工具默认启用免模型架构量化(Model-Free Mode),用户无需了解模型内部结构即可完成量化,进一步降低了使用门槛。
这是 AutoRound 区别于其他量化工具的核心优势之一:
量化后的模型可以导出为多种格式,生态兼容性强:
vLLM:2025 年 12 月,AutoRound 已正式进入 LLM-Compressor(vLLM 官方量化后端),使用方式极其简单:
from llmcompressor.transformers import auto_init_model
from llmcompressor.modifiers.autoround import AutoRoundModifier
model, tokenizer = auto_init_model(...)
AutoRoundModifier.apply(model, granularity="block", scheme="W4A16", ...)
SGLang:同样在 2025 年底完成集成,支持以 RTX mode 直接量化并推理。
AutoRound 在 PyPI 上有官方发布包,支持一键安装:
pip install auto-round
从源码安装需要 C++ 编译环境(setup.py 中设置了 CC=g++):
git clone https://github.com/intel/auto-round.git
cd auto-round && pip install -e .
最简单的方式是使用命令行工具 auto-round-rtn,只需一行命令即可完成量化:
auto-round-rtn --model meta-llama/Llama-3-8B-Instruct --bits 4 --batch_size 8
参数说明:
--model:HuggingFace 模型 ID 或本地路径--bits:权重量化位数(默认 4)--dataset:校准数据集,默认使用 NeelNanda/pile-10k--iters:微调迭代次数,默认 200--seqlen:序列长度,默认 2048--scheme:量化方案,如 W4A16、FP8_BLOCK量化过程需要 GPU 显存约 2-4GB(取决于模型大小),CPU 量化模式(RTN)则可以在极低显存下运行,但精度会有所下降。
Python API 提供了更精细的控制:
from auto_round import AutoRound
autoround = AutoRound(
model=model,
tokenizer=tokenizer,
bits=4,
group_size=128,
iters=200,
seqlen=2048,
)
autoround.quantize()
autoround.save_quantized_model("output_path")
核心依赖:
可选依赖(按推理后端):
AutoRound 在 INT4 上表现稳定,但在 INT2(W2A16)下,不同模型差异较大。论文和文档中明确标注:W2A16 只在部分模型(如 Llama-3、Qwen2.5)上经过充分验证,其他模型使用前需要自行评估精度损失。
相比 RTN,AutoRound 的符号梯度下降微调阶段需要额外的计算时间(通常 5-30 分钟,取决于模型规模和迭代次数)。虽然官方提供了优化策略(如低显存模式 --low_gpu_mem_usage),但量化本身的计算成本仍然不低。
某些特殊模型架构(如含有自定义层的模型)可能不完全兼容 AutoRound 的自动量化流程,此时需要手动配置 layer_config 参数,对每一层单独指定量化方案。
AutoRound 的发布填补了 Intel 在大模型量化领域的关键一环。从 2023 年论文发表到 2025 年底集成进 vLLM 官方生态不过两年时间,GitHub Star 数在 2026 年初已达到 1450+(不含 PIFS 平台 1911 的历史峰值),这个增速在纯算法类工具中相当可观。
更重要的是,AutoRound 所代表的符号梯度量化(SignGD)方向已被学术界广泛认可,多个工作(如 QuaRot、SpinQuant)在其基础上进行扩展。可以预见,未来超低比特量化(INT2/W2A8)的突破,很可能就是从 AutoRound 的技术路线上演化而来。
如果你想尝试 AutoRound,推荐从以下路径开始:
体验极速量化:使用默认 RTN 模式,无需 GPU,5 分钟出结果
auto-round-rtn --model meta-llama/Llama-3-8B-Instruct --bits 4
完整量化流程:有 NVIDIA GPU 的情况下,使用 AutoRound 符号梯度微调,获得最优精度
auto-round-rtn --model meta-llama/Llama-3-8B-Instruct --bits 4 --iters 200
vLLM 集成:在生产环境中使用量化模型
pip install llmcompressor
# 使用 LLM-Compressor 调用 AutoRound 量化