Skip to content

Intel 量化支持

AutoRound 是 Intel 专为大型语言模型(LLMs)设计的先进量化算法。它能够生成高效的 INT2、INT3、INT4、INT8、MXFP8、MXFP4、NVFP4GGUF 量化模型,在准确性和推理性能之间取得平衡。AutoRound 也是 Intel® Neural Compressor 的一部分。如需更深入的介绍,请参阅 AutoRound 分步指南

主要特性

✅ 卓越的准确性
即使在 2–3 比特下也能提供强劲性能 示例模型
✅ 快速的混合 Bits/Dtypes 方案生成
可在数分钟内自动完成配置
✅ 支持导出 AutoRound、AutoAWQ、AutoGPTQ 和 GGUF 格式
✅ 支持 10 多种视觉语言模型(VLMs)
逐层混合比特量化,实现细粒度控制
RTN(Round-To-Nearest,就近舍入)模式,可快速量化,但会有轻微精度损失
多种量化配方:best、base 和 light
✅ 高级工具,如即时打包和支持 10 多种后端

Intel 平台上支持的配方

在 Intel 平台上,AutoRound 配方正按格式和硬件逐步启用。目前,vLLM 支持:

  • W4A16:仅权重量化,4 比特权重与 16 比特激活值
  • W8A16:仅权重量化,8 比特权重与 16 比特激活值

未来的版本将支持更多配方和格式。

模型量化

安装

uv pip install auto-round

使用 CLI 进行量化

auto-round \
 --model Qwen/Qwen3-0.6B \
 --scheme W4A16 \
 --format auto_round \
 --output_dir ./tmp_autoround

使用 Python API 进行量化

from transformers import AutoModelForCausalLM, AutoTokenizer
from auto_round import AutoRound
model_name = "Qwen/Qwen3-0.6B"
autoround = AutoRound(model_name, scheme="W4A16")
# 最佳精度,速度降低 4-5 倍,low_gpu_mem_usage 可节省约 20GB 显存但速度降低约 30%
# autoround = AutoRound(model, tokenizer, nsamples=512, iters=1000, low_gpu_mem_usage=True, bits=bits, group_size=group_size, sym=sym)
# 速度提升 2-3 倍,在 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'(默认), 'auto_gptq', 'auto_awq'
autoround.quantize_and_save(output_dir, format="auto_round")

在 vLLM 中部署 AutoRound 量化模型

vllm serve Intel/DeepSeek-R1-0528-Qwen3-8B-int4-AutoRound \
 --gpu-memory-utilization 0.8 \
 --max-model-len 4096

Note

目前要在 Intel GPU/CPU 上部署 wNa16 模型,请添加 --enforce-eager

使用 vLLM 评估量化模型

lm_eval --model vllm \
 --model_args pretrained="Intel/DeepSeek-R1-0528-Qwen3-8B-int4-AutoRound,max_model_len=8192,max_num_batched_tokens=32768,max_num_seqs=128,gpu_memory_utilization=0.8,dtype=bfloat16,max_gen_toks=2048,enforce_eager=True" \
 --tasks gsm8k \
 --num_fewshot 5 \
 --batch_size 128