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_static 和 configs/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_implementation为flash_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