前置知识: 多模态AI

MIO与任意到任意流式多模态模型

00:00
12 min Advanced

理解MIO如何通过四种分词器和一个Transformer实现任意模态间的流式转换

MIO与任意到任意流式多模态模型

GPT-4o发布了一个大多数开放模型无法复制的产品:一个能听语音、看视频并实时语音回复的agent。到2024年底,开放生态系统的答案是MIO (Wang等人, 2024年9月)。MIO将文本、图像、语音和音乐分词,在交错序列上训练一个因果Transformer,并实现任意模态到任意模态的生成。AnyGPT (Zhan等人, 2024年2月)是概念验证;MIO是规模化版本;Unified-IO 2 (Allen AI, 2023年12月)是带有视觉+动作接地能力的表亲。本课程阅读任意到任意模式——四种分词器,一个Transformer,流式友好解码。

类型: 学习 语言: Python (stdlib, 四模态token分配器 + 流式解码循环) 前置知识: Phase 12 · 11 (Chameleon), Phase 6 (语音与音频) 时间: ~120分钟

学习目标

  • 设计托管文本、图像、语音和音乐token且无冲突的共享词表。
  • 比较SEED-Tokenizer(图像)和SpeechTokenizer残差VQ(语音)在压缩与重建权衡上的差异。
  • 解释构建任意到任意生成能力的四阶段课程。
  • 说出三种开放任意到任意方案及其主要权衡:MIO、AnyGPT、Unified-IO 2。

问题

统一多模态模型容易声称但难以大规模构建。到2024年大多数”任意到任意”系统是管道式的:视觉模型 → 文本表示 → 语音模型 → 音频。每跳丢失信息、增加延迟、复杂化训练。GPT-4o的演示视频展示了亚秒响应的单模型替代方案;开放系统落后数月。

工程挑战:

  • 每种模态的分词器必须存在,压缩到足够无损以重建,并以Transformer可消费的速率产生token。
  • 单一词表必须为文本(32k+)、图像(16k+)、语音(4k+)、音乐(8k+)分配空间。至少四万以上条目。
  • 训练数据必须覆盖每个输入-输出对(文本→图像、图像→语音、语音→图像等)或模型必须组合。
  • 推理必须足够快地流式输出token以满足对话延迟(<500ms首音频字节时间)。

概念

四种模态的四种分词器

MIO的分词器栈:

  • 文本:标准BPE,词表约32000。
  • 图像:SEED-Tokenizer (2023)——带离散码本的量化VAE,4096条目,每张图像32x32 token。
  • 语音:SpeechTokenizer残差VQ (2023)——将16kHz波形编码为8个层次化码本;第一层是粗粒度内容,后续层添加韵律和说话人身份。
  • 音乐:类似残差VQ(Meta的MusicGen / Encodec家族),4-8个码本。

每种模态产生整数token。token在共享词表中获得不相交的ID范围:

text:   0..31999
image:  32000..36095  (4096个图像token)
speech: 36096..40191  (4096个语音基础token,加残差层)
music:  40192..48383  (8192个音乐token)
sep:    48384..48390  (<image>, <speech>, <music>, </...>, 等)

总计:约48k词表。输入嵌入和输出投影覆盖全部。

流式解码

语音生成使用残差VQ。Transformer预测基础(层0)语音token;并行解码的残差量化器预测后续层。每个层0 token大约是16kHz下50ms的音频。

流式模式:

  1. 用户对麦克风说话;实时音频分词器每50ms发出语音token。
  2. MIO在token到达时消费(prompt预填充 + 增量前向)。
  3. 输出token在生成时流出;并行语音解码器以约50-150ms延迟将它们转换为音频样本。
  4. 首音频字节时间:MIO论文中约300-500ms,接近GPT-4o的约250ms。

Mini-Omni (arXiv:2408.16725)、GLM-4-Voice (arXiv:2412.02612)和Moshi (arXiv:2410.00037)是互补的流式语音LLM设计。Moshi特别在单GPU上实现了160ms往返。

四阶段课程

MIO的训练课程:

  1. 阶段1——对齐。大规模模态对语料:文本-图像、文本-语音、文本-音乐。每对使用自己的token词表段。训练共享词表。
  2. 阶段2——交错。多模态交错文档(带图像+视频的博客、带转录的播客等)。训练跨模态上下文。
  3. 阶段3——语音增强。额外音频数据提升语音质量而不丢失文本能力。
  4. 阶段4——SFT。跨模态指令微调:VQA、标题生成、叙述、语音到语音对话。

跳过阶段会退化特定能力:跳过阶段2模型失去跨模态上下文;跳过阶段3语音质量差。

视觉思维链

MIO引入视觉思维链:模型发出中间图像token作为推理步骤。对于”猫在爬树吗?“模型:

  1. 发出<image> token渲染场景(来自输入图像或草图)。
  2. 发出文本分析草图。
  3. 发出最终答案。

渲染的中间图像作为草稿板。空间推理任务的基准改善。该想法映射了文本推理的思维链。

任意到任意竞争者

  • AnyGPT (arXiv:2402.12226):4种模态(文本、图像、语音、音乐),类似设计。
  • Unified-IO 2 (arXiv:2312.17172):添加视觉动作输出、深度、法线。更多任务多样性,更小规模。
  • NExT-GPT (arXiv:2309.05519):LLM + 模态特定扩散解码器。非单模型方法。
  • CoDi (arXiv:2305.11846):可组合扩散;通过共享潜变量的任意到任意。

MIO最接近纯token任意到任意。AnyGPT是其概念祖先。

延迟预算

对于对话产品,每个组件的延迟都很重要:

  • 麦克风到音频token:约50ms。
  • 预填充(音频token + 历史):8B模型上约100ms。
  • 首个输出token:约50ms。
  • 并行残差VQ + 语音解码器:约100-150ms。

首音频字节总时间:最低约300ms。GPT-4o声称约250ms。Moshi声称160ms。MIO/AnyGPT在公开基准上约400-600ms。

为什么任意到任意仍然困难

即使在2026年,开放任意到任意模型在两个轴上落后于封闭模型:

  • 语音质量。残差VQ分词器是有损的;对话语音相比ElevenLabs级别的声音听起来机械。
  • 跨模态推理。要求模型”唱出你看到的”仍然比纯视觉任务更频繁地失败。

这些是开放研究问题。Qwen3-Omni(课程12.20)是2025年最先进的开放尝试。

实践

code/main.py

  • 定义四模态词表分配并打印。
  • 通过分词器路由器路由多模态输入列表(文本、图像、音频片段、音乐)。
  • 模拟文本到语音响应的流式解码并计算延迟。
  • 给定编码器、预填充和解码器延迟计算预期首音频字节时间。

输出

本课程产生outputs/skill-any-to-any-pipeline-auditor.md。给定产品(输入模态、输出模态、延迟目标),它审计MIO家族设计选择并计算延迟预算。

练习

  1. 你的产品接受语音输入返回语音输出端到端延迟预算目标是什么?列出花费时间组件

  2. SpeechTokenizer残差VQ使用8个码本。提出为什么并行解码残差层是必要的(vs顺序)以及它带来什么延迟节省。

  3. 你的词有32k文本 + 4k图像 + 4k语音。添加8k音乐和约10个分隔符。隐藏维度4096时嵌入矩阵参数成本是少?

  4. 视觉思维链发出中间图像。什么类型问题受益?什么类型被额外token损害?

  5. 阅读Moshi (arXiv:2410.00037)。描述其”内心独白”技术并与MIO的视觉思维链比较。

关键术语

术语常见说法实际含义
任意到任意多模态输入/输出接受和发出文本图像、语音和音乐的任意方向单一模型
残差VQ”语音分词器码本分词化,每层添加信息;基础层是内容,后续层是韵律
SEED-Tokenizer图像代码”MIO使用的4096条目码本离散图像分词器
视觉思维链”视觉草稿板”模型在最终答案前生成中间图像作为推理步骤
首音频字节时间”TTFAB”用户语音到首个音频输出延迟;<500ms才有话感
阶段课程训练方案”对齐 → 交错 → 语音增强 → SFT,按此顺序

延伸阅读

知识检测

学习进度

-- 已学文档
--% 知识覆盖率

学习推荐

专注模式