vLLM-Omni 通过 AutoRound 量化加速推理
vLLM-Omni 通过 AutoRound 量化加速推理
TL;DR
vLLM-Omni 现在已全面集成 Intel 的 AutoRound PTQ 算法,为多模态 Omni、扩散视频和多阶段图像生成流水线提供“一次量化,直接服务”的工作流。此次集成可减少高达 62% 的检查点大小,在保持或略微提高准确性的同时,通过 CFG Parallel 执行,在 Intel XPU B60 上实现 1.55–1.67 倍的引导生成加速。
引言
vLLM-Omni 现在支持 AutoRound 量化,提供简单的离线量化步骤,随后即可实现自动运行时检测和无需额外标志的服务。AutoRound 是一种基于微调的训练后量化方法,通过为每个张量设置三个可学习参数来共同优化舍入(rounding)和裁剪(clipping),从而生成在推理时零量化开销的静态检查点。此次集成使得服务 API 与加载普通模型保持一致,因为 vLLM-Omni 会读取检查点元数据,检测到 quantization_config.quant_method = "auto-round",将块重新映射到运行时模块,并选择匹配的计算后端。
模型覆盖范围
经过验证的 AutoRound + vLLM-Omni 生态系统涵盖了三种主要的模态范式。
Omni 多模态模型
这些模型处理统一的文本、视觉和音频处理循环,面临跨模态嵌入对齐的挑战。
- Qwen3-Omni-30B-A3B-Instruct (Intel/Qwen3-Omni-30B-A3B-Instruct-int4-AutoRound) – 大规模旗舰级多模态模型,已在 vLLM-Omni 中集成并验证。
- Qwen2.5-Omni-7B (Intel/Qwen2.5-Omni-7B-int4-AutoRound) – 轻量级、低延迟的跨模态引擎,已在 vLLM-Omni 中集成并验证。
扩散与多阶段图像生成
- GLM-Image (Intel/GLM-Image-int4-AutoRound) – 多阶段文本到图像流水线,已在 vLLM-Omni 中集成并验证。
- FLUX.1-dev (vllm-project-org/FLUX.1-dev-AutoRound-w4a16) – 高保真扩散 Transformer (DiT),已在 vLLM-Omni 中集成并验证。
- BAGEL-7B-MoT (Intel/BAGEL-7B-MoT-int4-AutoRound) – 检查点已可用;运行时集成正在进行中。
- Ovis-Image-7B (Intel/Ovis-Image-7B-int4-AutoRound) – 检查点已可用;运行时集成正在进行中。
视频扩散
Wan2.2 系列代表了最先进的时空视频生成模型,其 AutoRound INT4 检查点已在 vLLM-Omni 中得到验证:
- I2V-A14B (Intel/Wan2.2-I2V-A14B-Diffusers-int4-AutoRound)
- T2V-A14B (Intel/Wan2.2-T2V-A14B-Diffusers-int4-AutoRound)
- TI2V-5B (Intel/Wan2.2-TI2V-5B-Diffusers-int4-AutoRound)
使用方法
通过将所有量化和微调操作保持在离线状态,生产代码可以专注于高性能推理。
使用量化模型进行推理
对于 FLUX.1-dev,Python API 与普通的 vLLM-Omni 加载方式镜像一致;仅检查点路径有所不同。
from vllm_omni import Omni
from vllm_omni.inputs.data import OmniDiffusionSamplingParams
if __name__ == '__main__':
omni = Omni(model="vllm-project-org/FLUX.1-dev-AutoRound-w4a16")
outputs = omni.generate(
"A cat sitting on a windowsill",
OmniDiffusionSamplingParams(num_inference_steps=28, guidance_scale=3.5),
)
outputs[0].images[0].save("output.png")
对于 Wan2.2 视频模型,服务是标准的 vLLM-Omni 命令;请求使用与 BF16 变体相同的视频端点。
vllm serve Intel/Wan2.2-T2V-A14B-Diffusers-int4-AutoRound --omni --port 8091
curl -X POST "http://127.0.0.1:8091/v1/videos/sync" \
-F 'prompt=Cherry blossoms swaying gently in the breeze, cinematic motion' \
-F 'width=832' -F 'height=480' -F 'num_frames=48' \
-F 'num_inference_steps=40' -F 'guidance_scale=5.0' \
--output t2v_output.mp4
对于像 Qwen2.5-Omni 这样的 Omni 模型,OpenAI 兼容的聊天接口保持不变。
vllm serve Intel/Qwen2.5-Omni-7B-int4-AutoRound --omni --port 8091
curl -s http://localhost:8091/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "Intel/Qwen2.5-Omni-7B-int4-AutoRound",
"messages": [{"role": "user", "content": "What is 2 + 3?"}],
"max_tokens": 128
}'
vLLM-Omni 会自动从检查点中检测量化元数据;对于预量化的 AutoRound 模型,不需要单独的 --quantization 标志。
量化新模型
新检查点使用 AutoRound 工具离线生成,然后由 vLLM-Omni 直接提供服务;在服务期间不会发生校准或量化。
# FLUX.1-dev
auto-round \
--model black-forest-labs/FLUX.1-dev \
--scheme W4A16 \
--batch_size 1 \
--disable_opt_rtn \
--dataset coco2014 \
--iters 0
# Wan2.2-T2V-A14B
auto-round \
--model_name Wan-AI/Wan2.2-T2V-A14B-Diffusers \
--format auto_round \
--scheme W4A16 \
--iters 100 \
--nsamples 32 \
--batch_size 1 \
--num-inference-steps 3 \
--guidance-scale 5.0 \
--dataset coco2014 \
--output_dir Wan2.2-T2V-A14B-Diffusers-int4-AutoRound
# Qwen3-Omni-30B-A3B-Instruct
auto-round \
--model Qwen/Qwen3-Omni-30B-A3B-Instruct \
--bits 4 \
--group_size 128 \
--format auto_round \
--iters 200 \
--lr 5e-3 \
--output_dir tmp_qwen3_omni_w4a16 \
--trust_remote_code
生成的检查点在 config.json 中包含量化元数据:
{
"quantization_config": {
"quant_method": "auto-round",
"bits": 4,
"group_size": 128,
"sym": true,
"packing_format": "auto_round:auto_gptq"
}
}
AutoRound 和 vLLM 指导建议,128 个校准样本和大约 200 次优化迭代通常足以实现稳定收敛,尽管更大或更敏感的模型可能会受益于更多的微调。
质量验证
对于扩散模型,vLLM-Omni 提供了一个比较工具,用于在 BF16 参考模型和量化候选模型之间进行相同种子的回归测试。
python -m vllm_omni.quantization.tools.compare_diffusion_trajectory_similarity \
--task t2i \
--reference-model black-forest-labs/FLUX.1-dev \
--candidate-model vllm-project-org/FLUX.1-dev-AutoRound-w4a16 \
--prompt "a cup of coffee on the table" \
--height 512 --width 512 \
--num_inference_steps 20 \
--seed 142 \
--output-json /tmp/flux_similarity/result.json
定量评估:准确性与质量
只有在保留模型核心智能的情况下,量化才是有用的;我们进行了广泛的多模态回归测试。
Omni 多模态评估 (OmniBench)
使用 evalscope 在 100 个高度复杂的模态任务(结合了图像和音频模态)上进行评估,W4A16 模型比 BF16 基准获得了略高的 OmniBench 综合评分。

多阶段扩散评估 (TIIF-Bench)
对于多阶段文本到图像系统,性能通过评估对齐、构图和保真度的 9 个结构化子属性进行了量化。
所有轴向的平均准确性下降约为 ~1.3%,在生产部署的可接受容差范围内。
视频生成评估 (Wan2.2)
由于时间一致性漂移,视频流水线在朴素标量量化下非常脆弱;AutoRound 通过多个维度的客观指标进行了评估。
在 W4A16 AutoRound 下,文本到视频变体 (T2V-A14B) 在结构一致性指标上显示出微小改进,这与“裁剪优化可能提供正则化效应”的假设一致。
性能、占用与服务基准
VRAM 占用优化
W4A16 AutoRound 的首要收益是大幅减少检查点大小和执行内存占用。
W4A16 将量化权重存储从 BF16 基准缩减到原始权重占用的约四分之一,提供了内存余量。端到端加速取决于工作负载之前在多大程度上受限于内存容量或带宽。
用内存余量换取延迟降低
虽然第 5.1 节确立了 W4A16 的首要内存收益,但本案例研究展示了这种内存余量如何转化为架构优势——实现能够提供超出纯计算节省所能预测的实际吞吐量增益的 GPU 分配策略。所有基准测试均在 Intel XPU B60 上进行。
W4A16 将最低硬件要求从 4 个 GPU 降低到仅 1 个 GPU
BF16 FLUX.1-dev transformer (23 GB) 在包含运行时激活后超过了单个 B60 的 24.4 GB 容量——它需要 TP=4(全部四个 GPU)来提供服务。W4A16 的 7 GB transformer 可以轻松容纳在单个 GPU 上,并留有 19% 的余量。
W4A16 + CFG Parallel = 1.55x - 1.67x 更快的引导生成
无分类器引导 (CFG) 要求每步运行两次去噪过程——一次使用提示词,一次使用负提示词。由于 BF16 在张量并行下占用了全部 4 个 GPU,这些过程必须顺序运行(2X 延迟)。W4A16 可以在 TP=2 下运行,释放 2 个 GPU。这使得 CFG Parallel 成为可能——在两个 GPU 组中同时运行两个引导分支。
关键洞察:W4A16 在扩散工作负载中的价值超出了内存范畴;内存余量支持的并行策略产生的端到端加速,要大于纯去量化开销所能预测的数值。
结论
AutoRound 非常适合 vLLM-Omni,因为它尊重算子的需求:离线检查点生成、自动运行时检测、可预测的内存节省,以及在部署前验证质量的途径。其结果是一个实用的低比特服务工作流,涵盖了 vLLM-Omni 生态系统的重要部分,从 FLUX 和 Wan 到 GLM、BAGEL、Ovis 和 Qwen Omni。 对于更广泛的社区,量化已经成熟成为基础架构;随着 AutoRound 在模型家族和硬件架构之间扩大兼容性,它为平衡多模态性能、部署成本和输出质量提供了一条有效的路径。 正在进行的工作包括更广泛的格式支持以及在模型家族和硬件目标上的持续扩展。目前正在探索为 Linear 和 MoE 模块提供额外的量化格式(如 MXFP4 和 MXFP8),以及注意力层的低比特技术(例如 SageAttention)。这些改进将在不久的将来进一步提升多模态服务的效率和灵活性。
致谢
特别感谢来自 vLLM-Omni 团队的 Hongsheng Liu、Shunyang Li 和 WeiQing Chen,以及来自 Intel 的 Chendi Xue,感谢他们在将 AutoRound 集成到 vLLM-Omni 过程中提供的巨大支持。我们也非常感谢 vLLM-Omni 社区对 AutoRound 的快速采用!