vLLM-Omni 透過 AutoRound 量化加速推理
vLLM-Omni 透過 AutoRound 量化加速推理
TL;DR
vLLM-Omni 現在已全面整合 Intel 的 AutoRound PTQ 演算法,為多模態 Omni、擴散影片(diffusion video)以及多階段圖像生成流水線提供「一次量化,直接服務」的工作流程。此整合可減少高達 62% 的檢查點(checkpoint)大小,同時保持或略微提升準確度,並透過 CFG Parallel 執行,在 Intel XPU B60 上實現 1.55–1.67 倍的引導生成(guided generation)加速。
簡介
vLLM-Omni 現在支援 AutoRound 量化,提供簡單的離線量化步驟,隨後即可自動進行運行時檢測與服務,無需額外標記。AutoRound 是一種基於微調的訓練後量化(post-training quantization)方法,透過每個張量三個可學習參數來共同優化捨入(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 基準與量化候選模型之間進行相同種子(same-seed)的回歸測試。
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 更快的引導生成
分類器自由引導 (Classifier-Free Guidance, 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 的快速採用!