解读 Qwen2.5-Omni 的全模态设计:用时间对齐多模态 RoPE 同步音视频时间戳、音频编码器改为分块注意力、视觉编码器引入 Flash Attention 与 token 合并,并通过滑窗 DiT 实现流式语音生成。
Qwen2.5-Omni 技术报告摘要
论文:Qwen2.5-Omni Technical Report
团队:Qwen Team
时间:2025.03(arXiv:2503.20215)
页数:20页
1. 预训练 Recipe
训练策略
| 项目 | 详情 |
|---|---|
| 架构 | Thinker-Talker:Thinker(Transformer Decoder LLM + Vision Encoder + Audio Encoder) + Talker(Dual-track Autoregressive Decoder) |
| Thinker | 负责处理text/audio/video输入,生成high-level representations和text |
| Talker | 接收Thinker的hidden representations,流式生成离散speech tokens |
| 端到端 | Thinker和Talker共享历史context,作为single model端到端训练和推理 |
| 预训练阶段 | 三阶段 |
三阶段预训练:
| 阶段 | 策略 |
|---|---|
| Stage 1 | 锁定LLM参数,仅训练vision encoder和audio encoder;使用大量audio-text和image-text pairs增强语义理解 |
| Stage 2 | 解冻所有参数,使用更广泛的多模态数据全量训练 |
| Stage 3 | 使用32K序列长度数据,增强长序列理解能力 |
关键设计:TMRoPE (Time-aligned Multimodal RoPE)
目的:同步视频输入与音频的时间戳
做法:将音频帧和视频帧按时间交错排列(interleaved manner)组织序列
在此基础上应用位置编码,使模型原生对齐音视频的时间维度
关键设计:Block-wise Processing
Audio encoder:从全序列attention改为每2秒一个block的block-wise attention
Vision encoder:使用flash attention + MLP merger(合并相邻2×2 tokens为1个),patch size=14
目的:支持chunked-prefill流式推理,解耦长序列处理
关键设计:Streaming Codec Generation (Sliding Window DiT)
使用Flow-Matching DiT模型将speech code转为mel-spectrogram
限制DiT的receptive field为4个block(lookback 2 + current1+ lookahead 1)的sliding window block attention
再用modified BigVGAN从mel重建waveform
目的:降低首包延迟,支持流式音频输出
训练数据
| 项目 | 详情 |
|---|---|
| 数据类型 | image-text, video-text, video-audio, audio-text, text corpus |
| 多模态提示 | 用natural language prompts替代hierarchical tags(沿用Qwen2-Audio做法) |
| 具体数据量 | 原文未详述 |
Infra设计
| 项目 | 详情 |
|---|---|
| 原文未详述 | - |
2. 后训练 Recipe
Thinker 后训练
| 项目 | 详情 |
|---|---|
| 方法 | ChatML格式的instruction fine-tuning |
| 数据 | 纯文本对话 + 视觉模态对话 + 音频模态对话 + 混合模态对话 |
Talker 后训练(三阶段)
Stage 1: In-Context Learning (ICL) Training
- 除文本supervision外,执行speech continuation task (NTP)
- 使用包含多模态context和spoken responses的大量对话数据
- Talker学习从语义表示到语音的单调映射
- 同时学习上下文适当的prosody/emotion/accent等属性
- 实施timbre disentanglement防止模型将特定声音与罕见文本模式关联
Stage 2: DPO for Speech Stability
- 目的:缓解预训练数据中label noise和发音错误导致的hallucination
- 做法:对每个(request, response text, reference speech)三元组,生成多组speech,按WER和标点停顿错误率打分排序,构建(x, y_w, y_l) triplet
- 用标准DPO loss优化
Stage 3: Multi-speaker Instruction Fine-tuning
- 让Talker采用特定voice
- 提升自然度和可控性
3. RL Recipe
| 项目 | 详情 |
|---|---|
| 仅Talker的DPO | 基于WER和标点停顿错误率构造偏好对,属于offline RL |
| Thinker无独立RL | 报告未涉及Thinker的强化学习 |
4. 关键亮点
- Thinker-Talker架构:解耦理解/文本生成(Thinker)与语音生成(Talker),避免text和speech token训练互相干扰,同时保持端到端
- TMRoPE:时间对齐的多模态位置编码,音视频帧交错排列实现原生时间同步
- Sliding Window DiT:限制receptive field的流式codec生成,降低首包延迟
- Block-wise Encoder:Audio encoder 2秒/block、Vision encoder flash attention,支持chunked-prefill流式推理
- Speech DPO:基于WER+标点停顿错误率构造偏好对,增强语音稳定性
- 统一全模态:单模型处理text+image+audio+video输入,同时流式生成text+speech输出

