qwen3-omni

Qwen3-Omni 采用 Thinker-Talker MoE 架构 实现端到端原生多模态。输入层通过 AuT音频编码器 (650M,12.5Hz低帧率) 和 SigLIP2视觉编码器 (540M) 统一编码为连续特征,经 TM-RoPE时序对齐 后送入Thinker。
Thinker是 30B-A3B的MoE模型,48层128专家,每token仅激活3B,负责多模态联合推理,输出文本token和高层多模态特征。关键创新是Talker不再依赖文本表示,而是直接接收Thinker的多模态特征,实现内容生成与语音合成的解耦,支持外部干预和独立风格控制。
Talker是 3B-A0.3B的MoE模型,自回归生成码本0,经 MTP模块 并行预测残差码本1-14,最后通过 轻量因果ConvNet (Code2Wav,200M) 流式合成波形,端到端延迟仅 234ms。
相比Qwen2.5-Omni,升级包括:MoE稀疏激活、自研AuT替代Whisper、多码本语音合成、以及四模态全SOTA零退化的性能表现。

  1. 整体架构图解
    graph LR
    Audio[输入音频] --> Encoder[音频编码器 (Audio Encoder)]
    Encoder --> Projector[模态投影层 (Projector)]
    Projector --> LLM[Qwen3 LLM (核心大脑)]
    TextIn[文本输入] --> Embed[文本嵌入]
    Embed --> LLM

    subgraph 输出分支
    LLM --> TextHead[文本头 (Text Head)] --> TextOut[文本输出]
    LLM --> AudioHead[音频头 (Audio Head / Flow Matching)] --> AudioOut[音频输出]
    end

  2. 关键组件详解
    音频编码器 (Audio Encoder):
    通常基于改进的 Whisper Encoder 或 Conformer 结构。
    作用:将原始波形或 Log-Mel 频谱图转换为离散的音频 Token 或连续的音频 Embedding。
    特点:支持多语言、降噪、情感识别。
    模态投影层 (Modality Projector):
    一个轻量级的 MLP 或 Q-Former。
    作用:将音频特征映射到 Qwen3 LLM 的文本语义空间,让 LLM 能“听懂”音频。
    核心基座 (Qwen3 LLM):
    基于 Qwen3 的 Dense 或 MoE 架构。
    作用:进行逻辑推理、指令遵循、上下文理解。它同时处理文本 Token 和音频 Token。
    输出头 (Heads):
    文本头:标准的 LM Head,输出文本 Token (用于 ASR 任务或对话回复)。
    音频头 (Omni 特性):如果是真正的 Omni 模型,会包含一个 解码器 (Decoder),如 Flow Matching (流匹配) 或 VQ-VAE Decoder,直接将 LLM 的输出映射回声波或声学特征 (用于 TTS 任务)。

组件 架构 参数量 关键特性
AuT Encoder-Decoder 650M 12.5Hz,20M小时训练,动态窗口
Vision Encoder SigLIP2-So400M 540M 动态帧率,时序对齐音频
Thinker MoE 30B-A3B 30B (激活3B) TM-RoPE,解耦Talker输入
Talker MoE 3B-A0.3B 3B (激活0.3B) 直接接收多模态特征
MTP Dense Transformer 80M 残差码本并行,14-18ms
Code2Wav 因果ConvNet 200M 替代DiT,3-5ms流式合成

Whisper

Whisper 是一个基于 Transformer Encoder-Decoder 架构的端到端语音模型。它直接将音频波形映射为文本序列,支持多语言识别、翻译和语音活动检测(VAD)。
输入:16kHz 单声道音频波形(Waveform)。
输出:离散的文字 Token 序列(包含时间戳、语言标签、特殊控制符)

从输入到输出对应步骤:

  1. 第一步:音频预处理 (Audio Preprocessing)
项目 内容
输入 任意长度原始音频(.wav, .mp3 等)
操作 重采样 → 统一 16kHz
归一化 → 振幅缩放至 [-1, 1]
切片 → 30秒片段,不足则零填充
输出形状 [Batch, 480,000] (30s × 16,000 samples/s)
  1. 第二步:特征提取 (Feature Extraction)
项目 内容
操作 计算 Log-Mel Spectrogram(对数梅尔频谱图)
流程 STFT → 时域转频域
Mel Filter Bank → 80个梅尔滤波器
取对数 → 压缩动态范围
维度变化 时间:480,000 采样点 → 3,000 帧
频率:80 通道
输出形状 [Batch, 80, 3000]
意义 模型的"图像"输入,保留时序与频谱特征
  1. 第三步:Encoder 编码 (Feature Encoding)
项目 内容
架构 32层 Transformer Encoder(Whisper Large)
关键组件 Conv1d Stem → 两层卷积,步长2,时间压缩 3000→750
Positional Embedding → 正弦位置编码
Self-Attention (双向) → 每帧可见全部上下文
输出形状 [Batch, 750, d_model](d_model=1280)
作用 捕捉全局语义,生成音频深层表示 Memory States (K, V)
  1. 第四步:Decoder 解码 (Text Generation)
项目 内容
架构 堆叠 Transformer Decoder(自回归生成)
输入 ① Encoder 输出 → 作为 Cross-Attention 的 K/V
② 上一时刻 Token → 作为 Query(含特殊令牌)
关键机制 Masked Self-Attention → 单向因果,防信息泄露
Cross-Attention → 文字"关注"对应音频时段
Positional Embedding → 文本位置编码
输出 每步生成 Logits [Batch, 1, vocab_size]
  1. 第五步:后处理与采样 (Post-processing & Sampling)
项目 内容
操作 采样 → Greedy / Beam Search 选最高概率 Token
解析特殊令牌 → 时间戳、结束符检测
文本拼接 → Token ID 转字符串,去空格
特殊令牌 <|startoftranscript|>, <|en|>, <|transcribe|>, <|notimestamps|>, <|0.00|>, <|endoftext|>
最终输出 带时间戳的文本段落
示例 [00:00:01 --> 00:00:04] Hello world

以下是 Whisper 流式推理特性与性能瓶颈的 Markdown 格式总结:


⚡ Whisper 流式推理:瓶颈与优化方案


一、核心瓶颈分析

瓶颈类型 具体表现 根本原因
延迟 (Latency) 首字延迟高达 30s,必须听完才能转录 Encoder 需完整 30s 上下文做双向 Attention;Decoder 依赖 Encoder 全局输出
显存带宽 (Memory Bandwidth) 高并发下 GPU 带宽打满,吞吐量上不去 Decoder 自回归,每 Token 都需读取巨大 Encoder Memory (KV Cache),Memory-Bound
边界效应 (Boundary Artifacts) 切片处识别不准,句子截断 30s 硬切分破坏长句语义连贯性,卷积/Attention 在边界信息缺失
卷积算子效率 Conv1d 流式小 Batch 下效率低 卷积难充分利用 Tensor Cores,流式 Padding 处理复杂

二、优化落地方案

1. 流式切片策略 (Streaming Chunking)

项目 内容
问题 如何不等待 30s 即输出?
方案 Sliding Window Inference(滑动窗口)
机制 ① 切小块(2s/5s)送入 30s 窗口(历史 + 当前 + lookahead)
增量计算:KV Cache 复用历史 Encoder 输出,只算新增 Feature
效果 延迟从 30s → 200ms~1s

2. 量化 (Quantization & Distillation)

项目 内容
INT8/FP8 量化 Encoder 权重 + Activation 量化(SmoothQuant),减显存压带宽
结果 显存占用 ↓50%,推理速度 ↑2-3x

3. 算子融合与编译优化

技术 作用
Conv-to-GEMM im2col 转换 Conv1d 为矩阵乘,TensorRT/vLLM 加速
Kernel Fusion 融合 LayerNorm + Bias + Activation,减少 CUDA Kernel 启动
PagedAttention 借鉴 LLM 优化,管理 Decoder KV Cache,解决长语音显存碎片

4. 端点检测联动 (VAD Integration)

项目 内容
方案 前置轻量 VAD(如 Silero VAD)
机制 ① 检测到人声才触发 Whisper
② 自动切断静音,避免无意义 30s 推理
收益 无效计算大幅降低,算力成本 ↓30%-50%

三、方案对比速查

优化方向 核心手段 主要收益 适用场景
降低延迟 Sliding Window + KV Cache 复用 30s → 亚秒级 实时会议、直播字幕
提升吞吐 量化 + 蒸馏 + PagedAttention 2-3x 加速,省显存 高并发 API 服务
消除边界 重叠窗口 + 上下文拼接 句子完整性提升 长音频转录
节省算力 VAD 前置过滤 30%-50% 成本削减 语音交互设备

💡 面试金句

  • 延迟瓶颈:"Whisper 的 Encoder 是双向注意力,必须等 30s 音频到齐才能开始算,这是流式的根本矛盾"
  • 带宽瓶颈:"Decoder 每生成一个 Token 都要读一遍 Encoder 的 KV Cache,是典型的 Memory-Bound,不是算力不够"
  • 优化核心:"滑动窗口降延迟,量化提吞吐,VAD 过滤省成本"