Qwen3-Omni量化指南#

Qwen3-Omni模型可采用FP8(static、dynamic) 方式进行模型压缩,以下是详细的量化配置与操作说明。

FP8 量化(W8A8)#

Qwen3-Omni的FP8量化采用per-tensor粒度,支持thinker与talker的llm模块的动态量化(dynamic)和静态量化(static)两种模式;可通过quantization.quant_talker控制是否量化talker。

配置参数说明#

FP8量化的配置文件可参考路径:configs/qwen3_omni/fp8_staticconfigs/qwen3_omni/fp8_dynamic,核心参数如下:

model配置#

  • name:模型名称,固定填写Qwen_Omni

  • model_path:可填写hugging face模型卡片名称或者本地路径。

  • use_audio_in_video: 用于控制是否使用源视频的音频轨道

  • attn_implementation: 模型中要使用的注意力实现,默认值为default,设为flash_attention_2可以降低GPU显存占用

compression配置#

  • name:压缩策略类型,固定选择量化模式PTQ

  • quantization.name:量化算法类型,根据需求选择fp8_static(静态量化)或fp8_dynamic(动态量化)。

  • quantization.bits:量化比特数,FP8量化固定填写8

  • quantization.quant_method:权重量化粒度,FP8量化固定为per-tensor

  • quantization.quant_talker:是否量化Qwen3-Omni的talker LLM模块,默认false;设为false时仅量化thinker。

dataset配置#

  • name:数据集类型,固定选择OmniDataset

  • data_path:数据集路径,支持jsonl文件路径。自定义数据集需参考dataset/omni_fake_data/fake_data.json格式。

启动量化流程#

若在model配置中设置了attn_implementationflash_attention_2,需要另外安装FlashAttention 2

pip install -U flash-attn --no-build-isolation

# ldd --version 如果 < 2.32,可降到 2.7.4.post1 以下版本
pip install flash-attn==2.7.4.post1 --no-build-isolation

通过以下命令启动FP8量化校准:

# 动态FP8量化
python3 tools/run.py -c configs/qwen3_omni/fp8_dynamic/qwen3_omni_fp8_dynamic.yaml
# 静态FP8量化
python3 tools/run.py -c configs/qwen3_omni/fp8_static/qwen3_omni_fp8_static.yaml

模型部署#

vllm#

vLLM框架支持Qwen3-Omni的FP8(per-tensor)量化模型部署,只部署Thinker,可参考以下命令:

vllm serve $model_path --port 8021 -tp 4 --gpu-memory-utilization 0.8

要部署完整的Qwen3-Omni,参考vllm-omni的部署方式:https://docs.vllm.ai/projects/vllm-omni/en/latest/user_guide/examples/online_serving/qwen3_omni/

transformers#

参考:https://github.com/QwenLM/Qwen3-Omni?tab=readme-ov-file#transformers-usage