17. 多模态对齐的 Projector 怎么设计?MLP、Q-Former、Resampler 各有什么取舍?

整理多模态对齐 Projector 的设计方式,以及 MLP、Q-Former、Resampler 的取舍。

简单回答

Projector(也叫 Connector、Adapter)是 VLM 中连接视觉编码器和 LLM 的核心组件,负责把 visual token 映射到 LLM 的输入空间。三种主流设计:MLP(Linear Projector)最简单直接,保留所有 spatial token,token 数多但信息损失少;Q-Former 用可学习的 Query token 做注意力聚合,大幅压缩 token 数但有信息压缩损失;Resampler 类似 Q-Former 但更轻量。实际工程选型的核心 trade-off 是:保留更多 visual token 带来更好的细粒度视觉理解,但更多 token 增加 LLM 推理成本和延迟。

详细解答

Projector 的核心作用

VLM 的基本架构是 Vision Encoder → Projector → LLM。Vision Encoder(如 CLIP ViT-L)输出 spatial token 序列(如 256 个 token,每个 1024 维),LLM 期望的输入是文本 token 的 embedding(如 4096 维)。两者的维度不同,而且 visual token 和 text token 的语义空间没有对齐——Projector 的任务就是解决这两个问题:维度变换 + 语义对齐。

Projector 训练的好坏,直接决定了 LLM 能多好地"理解"视觉信息。一个好的 Projector 应该:不损失重要的视觉语义,让 LLM 处理 visual token 和处理文本 token 一样自然。

MLP Projector:简洁高效的基线

最简单的 Projector 是 1~3 层 MLP(多层感知机),对每个 visual token 独立做线性变换:

每个 visual token 独立处理,不同 token 之间没有交互,输出 token 数和输入一样(完整保留 256 个 spatial token)。

LLaVA 1.5 的选择:LLaVA 1.5 对比了 Linear Projector 和 MLP Projector,发现 2 层 MLP 在各类 benchmark 上效果明显优于线性变换(因为 MLP 能做非线性变换),同时比 Q-Former 实现更简单、训练更稳定。这是一个"简单方案效果反而好"的经典案例,LLaVA 系列从此一直用 MLP Projector。

优势:实现简单;训练稳定(没有额外的 Attention 参数);保留所有 visual token,细粒度信息损失少;对每个 token 独立变换,推理时可以高效并行。

劣势:输出 token 数等于输入 token 数(256 个 visual token 全部送进 LLM),在使用 Dynamic Resolution 时 token 数爆炸(12 个 tile × 256 = 3072 token),LLM 推理成本很高。

Q-Former:信息压缩的学习式聚合

Q-Former(Querying Transformer,BLIP-2 提出)是一个完整的 Transformer 模块,包含一组可学习的 Query token(固定数量,比如 32 个)。这些 Query token 通过 Cross-Attention 和 Self-Attention 从 visual token 中聚合信息:

输出是固定数量的 Query token(比如 32 个),不管输入 visual token 有多少(256 或 1024),输出始终是 32 个 token 送给 LLM。

BLIP-2 的三段式训练:第一阶段训练 Q-Former 做视觉语言对齐;第二阶段固定 Q-Former,训练后续的生成模型。Q-Former 作为轻量级"信息提取器",是 BLIP-2 能用很少参数取得强效果的关键。

优势:大幅压缩 token 数(从 256 压到 32),LLM 推理速度快很多;Q-Former 可以学习"哪些视觉信息对当前问题更重要"的注意力模式;对计算资源受限的场景特别友好。

劣势:信息压缩必然有损失——32 个 query token 无法完整表达 256 个 spatial token 的细粒度信息,在需要精细视觉定位的任务上(OCR、密集区域描述)效果不如 MLP;训练更复杂,Q-Former 的 Query token 初始化和训练策略对效果影响大;Cross-Attention 的计算模式和 LLM 的推理优化(KV Cache)不太契合,工程优化难度更高。

Resampler:Q-Former 的轻量化版本

Resampler(Flamingo、Perceiver-Resampler)的设计思路和 Q-Former 类似,用固定数量的 latent query token 通过 Cross-Attention 聚合 visual token,但结构比 Q-Former 更轻量(通常只有 Cross-Attention,没有完整的 Self-Attention 层),参数更少,训练更稳定。

Flamingo 是最早把 Resampler 用于 VLM 的工作,用 64 个 latent token 处理图片,实现了在语言模型参数冻结的情况下只训练 Resampler 就取得不错的效果。Idefics 系列是 Flamingo 的开源复现。

实际选型趋势

当前主流 VLM 的趋势是从 Q-Former 转向更简单的 MLP + Pixel Shuffle 组合:

  • MLP 保证语义信息完整性
  • Pixel Shuffle 在 MLP 之前做 spatial token 压缩(相邻 4 个 token 合并为 1 个),把 256 → 64 token
  • 两者结合在效果和速度之间找到更好的平衡

InternVL 2.0 就是这个路线:PixelShuffle 压缩 + MLP Projector,效果和推理速度都优于 Q-Former 方案。

面试时可以这样答

Projector 是 VLM 里连接视觉编码器和 LLM 的桥梁,核心设计点是:保留多少 visual token、损失多少信息。

MLP 最简单,对每个 visual token 独立线性变换,保留所有 256 个 spatial token,细粒度信息损失少,LLaVA 1.5 就用的这个,效果比复杂方案还好。缺点是 token 数多,Dynamic Resolution 下可能 3000 多个 token 进 LLM,推理慢。

Q-Former 用可学习的 Query token 通过 Cross-Attention 聚合,把 256 个 token 压成固定 32 个,LLM 推理快很多,但信息有压缩损失,细粒度任务(OCR、定位)效果不如 MLP。

现在的主流趋势是 MLP + Pixel Shuffle 组合——先把相邻 4 个 spatial token 合并成 1 个(token 数变 1/4),再过 MLP,在效果和速度之间取得更好的平衡。InternVL 2.0 就是这个做法,效果明显好过 Q-Former 方案。

常见追问

  1. Q-Former 的 Query token 是完全可学习的吗?初始化策略对效果有影响吗?
  2. 如果要做视频 VLM,Projector 怎么修改来处理时序信息?
  3. Projector 在多阶段训练中分别要不要解冻?第一阶段只训 Projector 有没有什么局限?