跳到内容

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(轻量)

✅ 先进的实用工具,如即时打包 (immediate packing) 以及对 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")

# 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 中部署 AutoRound 量化模型

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

注意

要在 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