Stanford CS336 Lecture 17: Multimodal Language Modeling

Multimodal Modeling 概述

多模态模型旨在超越文本到文本的能力,向能够摄取并输出任何模态组合(包括文本、图像、音频和视频)的“全能模型”(omni models)迈进。由于 Transformer 是这些模态在大规模应用中最有效的架构,因此主要的挑战在于如何将非文本数据转换为 Transformer 可以处理的 token(无论是离散的还是连续的)。

基础:CLIP 和 SigLIP

现代视觉语言模型 (VLMs) 高度依赖于将图像映射到与文本兼容的语义空间的编码器。

CLIP (Contrastive Language Image Pre-Training)

CLIP 旨在利用来自网络的海量噪声图像-文本对。它使用对比学习目标:给定一批图像-文本对,模型会最大化正确图像-文本对之间的点积,同时最小化批次中所有其他对的点积。

  • 架构: CLIP 通常使用 Vision Transformer (ViT) 作为图像编码器,将图像切分为 patch(例如 14x14)并将其作为 token 进行处理。文本编码器是 GPT-2 风格的 transformer。
  • 关键结果: CLIP 证明了通过利用有机网络数据,零样本(zero-shot)图像分类的表现可以优于在 ImageNet 等精选数据集上训练的模型。
  • 局限性: CLIP 需要非常大的 batch size(例如 32,000),因为 softmax 操作是在整个 batch 中进行的,这使得并行化和分解变得困难。

SigLIP (Sigmoid Loss for Language Image Pre-Training)

SigLIP 通过将多类 softmax loss 替换为更简单的 sigmoid loss 对 CLIP 进行了改进。SigLIP 不再是将一张图像与一批文本进行排序,而是将每个图像-文本对视为一个二分类问题(对齐或不对齐)。

  • 效率: 这种改变使 loss 与 batch size 解耦,从而允许更高效的训练,并在较小的 batch size 下也能获得更好的性能。
  • 并行化: SigLIP 通过在 pod 中轮转文本 embedding,在不需要单个设备承载完整 batch 的情况下计算负样本,从而实现了更好的分布式计算。

视觉语言模型 (VLM) 架构

大多数开源 VLM 遵循一种模板:一个预训练的视觉编码器、一个作为解码器的语言模型 (LLM),以及一个将视觉 embedding 映射到 LLM token 空间的“投影器”(projector)或适配器(adapter)。

LLaVA (Large Language-and-Vision Assistant)

LLaVA 展示了如何将 CLIP 编码器与 Vicuna (基于 Llama) 的 LLM 缝合在一起。

  • 数据合成: LLaVA 使用 GPT-4 基于 MS COCO 的人工标注标题生成合成对话、详细描述和复杂推理。
  • 训练阶段:
    1. 对齐阶段: 视觉编码器和 LLM 是冻结的;仅训练 projector(一个线性矩阵 $W$)以将图像向量映射到文本 embedding 空间。
    2. 微调阶段: 视觉编码器保持冻结,但 projector 和 LLM 会在合成的多模态数据上进行共同训练。

LLaVA OneVision 和 AnyRes

为了处理高分辨率图像和 OCR,LLaVA OneVision 引入了 AnyRes。AnyRes 不再将图像下采样到固定的正方形(例如 336x336),而是将图像切分为多个具有编码器原生分辨率的 crops,然后拼接结果向量。这使得模型能够保留细粒度的细节,同时保持对不同图像长宽比的适应性。

Qwen-VL 系列

Qwen-VL 及其后续版本 (Qwen-2, Qwen-3) 进一步完善了 VLM 流程:

  • 动态分辨率: Qwen-2 实现了一个系统,根据图像大小将图像映射到可变数量的 token,通过压缩 patch 来管理上下文长度。
  • Multimodal RoPE (M-RoPE): 为了处理 3D 时空数据(高度、宽度和时间),Qwen 使用了多维旋转位置编码 (Rotary Positional Embedding)。Qwen-3 通过交错维度来确保所有轴都暴露在低频和高频中。
  • 显式时间戳: Qwen-3 引入了显式时间 token(例如 "0 seconds")来帮助模型引用视频中的特定时刻。
  • 深度融合: 后期版本不再使用简单的 projector,而是使用更复杂的适配器 (DeepStack) 将视觉 embedding 直接集成到 LLM 的残差流中。

原生多模态:Chameleon 方法

虽然大多数 VLM 是仅输出文本的“缝合”模型,但 Meta 的 Chameleon 尝试通过将一切离散化为 token 来实现原生多模态。

  • VQ-VAE (Vector Quantized Variational Autoencoder): 图像被映射到一个离散的 codebook(例如 8,000 个原型向量)。图像变成了一个离散 token 序列,就像文本一样。
  • 统一训练: 由于图像现在也是 token,单个 transformer 可以被训练来预测下一个 token,无论它是文本还是图像。这允许交错的图像-文本生成。
  • 挑战: 由于图像 token 与文本 token 相比具有极高的熵,这种方法在训练稳定性方面存在问题。此外,由于离散化,它也会丢失细粒度的信息(如 OCR 中的微小文本)。

技术权衡总结

Feature Stitched VLMs (LLaVA/Qwen) Native Multimodal (Chameleon)
Input Continuous embeddings $\rightarrow$ Projector $\rightarrow$ LLM Discrete tokens $\rightarrow$ LLM
Output Text only Interleaved Text & Images
Output Method LLM Token Prediction LLM Token Prediction
Information Loss Low (Continuous encoders) High (Discretization)
Training Stability High Low (Entropy mismatch)

Sources