AutoRound¶
AutoRound 是英特尔(Intel)先进的量化算法,旨在生成高效的 INT2、INT3、INT4 和 INT8 量化大型语言模型,在准确性和部署性能之间取得最佳平衡。
AutoRound 对基于 Transformer 的模型应用仅权重(weight-only)量化,从而显著节省内存并加速推理,同时保持接近原始模型的准确性。它支持广泛的硬件平台,包括 CPU、Intel GPU、HPU 和支持 CUDA 的设备。
请参阅 AutoRound 指南了解更多详情。
主要特性
✅ 支持 AutoRound、AutoAWQ、AutoGPTQ 和 GGUF
✅ 支持 10+ 种视觉-语言模型 (VLM)
✅ 支持逐层混合位量化,实现精细控制
✅ 支持 RTN (Round-To-Nearest) 模式,实现快速量化,并伴有轻微的准确性损失
✅ 支持多种量化方案:最佳 (best)、基础 (base) 和轻量 (light)
✅ 提供高级实用工具,例如即时打包(immediate packing)和对 10+ 种后端的支持
安装¶
模型量化¶
对于 VLM,请在 CLI 用法中更改为 auto-round-mllm
,在 API 用法中更改为 AutoRoundMLLM
。
CLI 用法¶
auto-round \
--model Qwen/Qwen3-0.6B \
--bits 4 \
--group_size 128 \
--format "auto_round" \
--output_dir ./tmp_autoround
API 用法¶
from transformers import AutoModelForCausalLM, AutoTokenizer
from auto_round import AutoRound
model_name = "Qwen/Qwen3-0.6B"
model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype="auto")
tokenizer = AutoTokenizer.from_pretrained(model_name)
bits, group_size, sym = 4, 128, True
autoround = AutoRound(model, tokenizer, bits=bits, group_size=group_size, sym=sym)
# the best accuracy, 4-5X slower, low_gpu_mem_usage could save ~20G but ~30% slower
# autoround = AutoRound(model, tokenizer, nsamples=512, iters=1000, low_gpu_mem_usage=True, bits=bits, group_size=group_size, sym=sym)
# 2-3X speedup, slight accuracy drop at W4G128
# autoround = AutoRound(model, tokenizer, nsamples=128, iters=50, lr=5e-3, bits=bits, group_size=group_size, sym=sym )
output_dir = "./tmp_autoround"
# format= 'auto_round'(default), 'auto_gptq', 'auto_awq'
autoround.quantize_and_save(output_dir, format="auto_round")
使用 vLLM 运行量化模型¶
以下是在 vLLM 中运行 AutoRound 格式的一些示例代码
from vllm import LLM, SamplingParams
prompts = [
"Hello, my name is",
]
sampling_params = SamplingParams(temperature=0.6, top_p=0.95)
model_name = "Intel/DeepSeek-R1-0528-Qwen3-8B-int4-AutoRound"
llm = LLM(model=model_name)
outputs = llm.generate(prompts, sampling_params)
for output in outputs:
prompt = output.prompt
generated_text = output.outputs[0].text
print(f"Prompt: {prompt!r}, Generated text: {generated_text!r}")
致谢¶
特别感谢 AutoGPTQ、AutoAWQ、GPTQModel、Triton、Marlin 和 ExLLaMAV2 等开源低精度库,它们提供了低精度 CUDA 内核,并已被 AutoRound 利用。