Emu3:图片、视频、文本、控制信号统一模型

1. 整体框架:纯 next-token prediction + 离散统一 token 空间

Emu3 的核心贡献是完全抛弃了传统的 compositional(CLIP encoder + LLM)或 diffusion 架构,而是将所有模态(文本、图像、视频)转化为统一的离散 token 序列,然后用一个decoder-only Transformer 在这个序列上做标准的 next-token prediction(自回归预测下一个 token)。

统一的关键在于:

  • 所有模态都映射到同一个离散 token 空间(共享 codebook/vocabulary)。
  • 所有任务(理解 + 生成)都用同一个目标函数:cross-entropy next-token prediction。
  • 没有模态特定的头、fusion 模块或外部 encoder(如 CLIP、T5)。

这使得模型天然支持:

  • 文本 → 图像/视频 生成(T2I/T2V)
  • 图像/视频 → 文本 理解(I2T/V2T)
  • 交错多模态生成(interleaved image-text)
  • 甚至视语动作建模(vision-language-action for robotics)

2. 统一 Tokenizer

Emu3 使用两个 tokenizer,但共享同一个离散空间:

(1) 文本 Tokenizer

  • 基于 Qwen 的 byte-level BPE tokenizer。
  • 词汇表大小:151,643 个常规文本 token + 211 个 special/control token(用于分隔模态、meta 信息等)。
  • 总共享词汇表最终为 184,622(文本 + 视觉 token ID 空间)。

(2) 视觉 Tokenizer(Unified Vision Tokenizer)

  • 基于 SBER-MoVQGAN 架构(改进版 MoVQGAN)。
  • Codebook 大小:32,768(即所有视觉 token 的可能取值范围是 0~32,767)。
  • 输出固定长度:4,096 个离散 token(无论输入图像/视频分辨率或时长)。
  • 压缩比率
    • 空间:8×8(即每 8×8 像素块 → 1 token)
    • 时间(视频):4×(每 4 帧 → 1 帧的 token 表示)
  • 支持任意分辨率和时长:encoder 先将任意大小的图像/视频下采样到固定网格(例如 512×512 或对应视频),再量化成 4,096 token。
  • 关键改进(相比纯图像 tokenizer):
    • 在 encoder 和 decoder 中各加入两个 temporal residual 层,使用 3D 卷积核,实现时间维度的下采样和更好的视频重建。
    • 训练目标:L2 + LPIPS perceptual loss + GAN loss + commitment loss。
    • 训练数据:LAION 高清图像 + InternVid 视频。

统一性体现:视觉 token 的 ID 直接占用文本词汇表的高位部分(最后 32,768 个 ID),这样整个模型的 embedding layer 是共享的——文本 token 和视觉 token 都从同一个 embedding 矩阵查找向量。

3. 模型架构(Decoder-only Transformer)

  • 完全 decoder-only,类似于 Llama-2。
  • 参数量:8.49B(32 层,hidden 4096,intermediate 14336,32 heads,GQA 8 kv-heads)。
  • 唯一修改:embedding layer 扩展到 184,622 个 token(包含视觉 token)。
  • 其他标准设计:
    • RMSNorm
    • SwiGLU activation
    • RoPE positional embedding
    • Dropout 0.1(对训练稳定性至关重要,消融显示无 dropout 会 collapse)
    • 无 qkv/linear bias

为什么 decoder-only 就够了?

  • 论文对比实验显示:从零训练的 decoder-only(只吃离散视觉 token)在图像理解任务上能追平晚融合的 encoder+LLM 架构(LLaVA-style),说明不需要预训练的 CLIP encoder 作为强先验。

4. 多模态数据序列化格式(如何把不同模态拼成一个序列)

这是统一训练的关键——所有样本都被格式化为一个长的 token 序列:

标准格式(以图像为例):

[BOS] {caption text} [SOV] {meta text} [SOT] {vision tokens (4096个)} [EOV] [EOS]
  • [BOS]/[EOS]:序列起止。
  • caption text:自然语言描述(有时放在视觉后,支持 I2T)。
  • [SOV]:Start of Vision。
  • meta text:纯文本描述分辨率、视频则额外包括帧率和时长(例如 "resolution: 512x512, fps: 24, duration: 5s")。
  • [SOT]:Start of Token(视觉 token 开始)。
  • vision tokens:4,096 个离散 ID。
  • [EOV]:End of Vision。
  • 额外特殊 token:
    • [EOL]:图像中的行分隔(row break)。
    • [EOF]:视频中的帧分隔(frame break)。

视频:同样是 4,096 个 token,但时间维度已压缩。

双向数据:约一半数据把 caption 放在视觉 token 之后,强制模型同时学习 language→vision 和 vision→language 映射。

动作模态扩展(Robotics)

  • 使用 FAST tokenizer 将连续动作序列离散化为 token(codebook 1024)。
  • 动作 token 占用文本 tokenizer 的最后 1024 个 ID。
  • 序列示例:vision → action → vision → action(交错)。

5. 预训练细节(Pretraining)

  • 从零开始(不使用预训练 LLM 或 CLIP 初始化,主要实验)。
  • 数据混合:文本 + 图像-文本对(T2I 和 I2T) + 视频-文本对(T2V 和 V2T)。
  • 损失
    • 标准 cross-entropy next-token prediction。
    • 视觉 token 损失权重 0.5,文本 1.0(防止视觉 token 数量多主导优化)。
  • 三阶段 curriculum
    1. Stage 1:短上下文(5120),无 dropout,快速收敛。
    2. Stage 2:加 dropout 0.1,稳定优化。
    3. Stage 3:长上下文(65,536),引入视频数据,context parallelism 4。
  • 总训练 token:约 12T+。
  • 并行策略:tensor pp=2, pipeline pp=1, context pp=1→4。

6. 后训练(Post-training)

  • 生成任务(T2I/T2V):
    • Quality Fine-Tuning (QFT):只监督视觉 token,提升分辨率到 720p。
    • Direct Preference Optimization (DPO):联合 CE + DPO loss,对齐人类偏好。
  • 理解任务
    • 两阶段:(1) I2T(图像-文本对 + 纯文本,忽略视觉 token loss);(2) 视觉指令微调。
  • 其他扩展(interleaved、robotics):直接在预训练权重上微调,序列中交错多种模态 token。

7. 推理优势

  • 继承 LLM 推理框架(vLLM + FlagScale)。
  • 支持 Classifier-Free Guidance(CFG):同时喂 conditional 和 unconditional prompt。
  • 边设备只做 tokenization,传离散 ID 到服务器(token-centric infrastructure)。

总结:为什么能统一?

  • 离散统一表示:所有模态 → 同一离散空间(32k 视觉 + 152k 文本)。
  • 单一自回归目标:next-token prediction 天然支持因果生成和条件理解。
  • 无模态特定组件:不需要 diffusion denoise、CLIP projector、Q-Former 等。
  • 消融实验证明:这种极简设计在规模化后能匹配/超越传统 diffusion + compositional 架构。
posted @ 2026-02-03 01:00  ylifs  阅读(27)  评论(0)    收藏  举报