BLIP-2 / Q-Former
BLIP 证明了统一理解和生成的可行性,但它有一个隐含前提:整个模型端到端训练。当视觉编码器从 ViT-B 涨到 ViT-g、语言模型从 BERT-base 涨到 175B 时,端到端训练的计算成本变得天文数字级别。
一个自然的思路浮现:能不能冻结已有的视觉编码器和语言模型,只训练一个轻量的"桥接模块"来连接它们?
但这带来了三个新问题:
- 模态鸿沟:冻结的视觉编码器输出的视觉表征和冻结的 LLM 期望的语言输入之间存在巨大语义差距。LLM 从未见过图像,冻结后更难适应新模态。
- 灾难性遗忘:如果直接解冻 LLM 做 VLP 微调,LLM 的语言能力会迅速退化。
- 信息瓶颈:视觉编码器输出的特征维度(如 ViT-L 的 257×1024)远大于 LLM 能处理的输入长度。如何在保留关键信息的同时大幅压缩?
BLIP-2 的 Q-Former 就是解决这三个问题的答案。
Q-Former(Querying Transformer)的核心比喻是一个信息漏斗:它从冻结视觉编码器的海量输出中,只提取与语言最相关的视觉信息。
具体来说,Q-Former 有 32 个可学习 query embeddings。这些 queries 通过 cross-attention 从冻结 ViT 的特征中"提问"——每个 query 学会关注视觉场景中与语言任务最相关的一个方面。最终输出仅为 32×768,远小于 ViT-L 的 257×1024。
为什么是 32 个 queries?
这是一个信息瓶颈设计。如果 queries 太多,模型可能偷懒——直接把视觉特征"搬运"过去,不学习有效的压缩。32 个 queries 迫使模型做出选择:只保留最重要的视觉信息。消融实验证实了这个瓶颈的必要性。
双子 transformer 结构
Q-Former 由两个共享 self-attention 层的子 transformer 组成:
- Image Transformer:32 个 queries 通过 cross-attention 从冻结图像编码器提取特征
- Text Transformer:可作为文本编码器(双向 mask)或文本解码器(因果 mask)
两者通过 shared self-attention 交互,使得 queries 能够根据文本内容动态调整对视觉信息的提取策略。
Stage 1: Vision-Language Representation Learning
Q-Former 连接冻结的视觉编码器,联合优化三个目标(继承自 BLIP 的设计):
| 目标 | Attention Mask | 作用 |
|---|---|---|
| ITC | Unimodal(query 和 text 互不可见) | 对齐 query 输出和文本表征 |
| ITG | Multimodal causal(query 间可见,text 因果) | 训练 query 提取生成所需的视觉信息 |
| ITM | Bidirectional(全部可见) | 细粒度图文匹配 |
ITG 是关键创新:它让 queries 被迫提取"对生成文本有用的视觉信息",而不只是低级视觉特征。这意味着 Stage 1 结束后,32 个 queries 已经学会了用"语言友好的方式"编码视觉信息。
Stage 2: Vision-to-Language Generative Learning
Q-Former 连接冻结的 LLM(OPT 或 FlanT5)。通过一个 FC 层将 Q-Former 的 32 个 query 输出投影到 LLM 的文本嵌入维度,作为 soft visual prompts 前置于文本 embedding。
- Decoder-based LLM(OPT):language modeling loss
- Encoder-decoder LLM(FlanT5):prefix language modeling loss
消融实验:两阶段不可或缺
跳过 Stage 1 直接做 Stage 2,OPT 会发生严重的灾难性遗忘——性能随训练急剧下降。原因在于:未经 Stage 1 预训练的 Q-Former 输出对 LLM 来说是纯噪声,LLM 为了"适应"这些噪声会大幅调整自己的权重,破坏原有语言能力。
Stage 1 预训练了 Q-Former 的视觉-语言对齐能力,为 Stage 2 提供了良好的初始化——Q-Former 已经学会输出"LLM 能理解的"视觉表征。
零样本 VQA(VQAv2 test-dev)
| 模型 | 可训练参数 | VQA acc |
|---|---|---|
| Flamingo-80B | 10.2B | 56.3 |
| BLIP-2 (ViT-g + FlanT5-XXL) | 108M | 65.0 |
54× 更少可训练参数,性能反超 Flamingo-80B 达 8.7%。这证明了"冻结大模型 + 精心设计的轻量桥接"范式的巨大效率优势。
零样本 Image Captioning(NoCaps)
| 模型 | Overall CIDEr |
|---|---|
| SimVLM huge (1.8B 数据) | 112.2 |
| BLIP-2 (ViT-g + OPT2.7B) | 119.7 |
图文检索(Flickr30K zero-shot)
| 模型 | TR@1 | IR@1 |
|---|---|---|
| BLIP ViT-L | 96.7 | 86.7 |
| BLIP-2 (ViT-L) | 97.6 (+0.9) | 89.7 (+3.0) |
可扩展性
更强的视觉编码器或更强的 LLM 都持续提升性能:
- ViT-g > ViT-L(同 LLM 下)
- FlanT5 > OPT(同视觉编码器下)
- 更大的 LLM(同家族内)> 更小的 LLM
这验证了 BLIP-2 作为通用框架的灵活性——随着上游模型进步,BLIP-2 可以"免费"获得性能提升。
BLIP-2 确立了"冻结大模型 + 轻量桥接"的 VLP 范式。在此之前,VLP 意味着端到端训练整个模型。BLIP-2 证明了:只需要一个精心设计的桥接模块,就可以让从未见过图像的 LLM 获得视觉理解能力。
Q-Former 的信息瓶颈思想直接影响了后续几乎所有 MLLM 的连接器设计。LLaVA 的 MLP projector、InternVL 的投影层等都可以看作 Q-Former 思想的简化版——放弃信息瓶颈的复杂性,用更简单的方式连接视觉和语言。
BLIP-2 的局限也值得注意:在 OK-VQA(依赖外部知识)上不如 Flamingo-80B,说明更大的 LLM 在需要开放世界知识的任务上仍有优势。此外,两阶段训练增加了工程复杂度。
BLIP-2 的关键不是“把视觉特征线性投影到 LLM”,而是在投影之前插入一个会主动提问的模块。Q-Former 的 32 个 learnable queries 并不对应固定图像 patch,而是在训练中学会“该向图像询问什么”。有的 query 可能关注对象,有的关注属性,有的关注关系,有的关注能支撑生成文本的全局语义。
如果直接把 ViT patch token 输入 LLM,信息量太大且噪声很多;如果只做平均池化,细粒度信息会损失。Q-Former 处在两者之间:它保留跨注意力的选择能力,又用 32 个 query 设置了明确的信息瓶颈。
两阶段训练是 BLIP-2 的另一个核心。Stage 1 使用 ITC、ITG、ITM 训练 Q-Former 与文本空间对齐;Stage 2 才把 Q-Former 输出接入冻结 LLM。论文的消融指出,如果跳过 Stage 1,OPT 会出现灾难性遗忘。原因很直观:随机 Q-Former 的输出对 LLM 来说像噪声前缀,LLM 为适应它会破坏原有语言建模能力。
graph TD A[冻结视觉编码器] --> B[Q-Former 32 queries] C[文本] --> B B --> D[Stage 1: ITC + ITG + ITM] D --> E[视觉语言对齐后的 queries] E --> F[线性投影为 soft visual prompts] F --> G[冻结 LLM] G --> H[VQA / Caption / 对话生成]
BLIP-2 的结果之所以有说服力,是因为它把“可训练参数”从规模竞争中剥离出来。Flamingo-80B 可训练参数约 10.2B,VQAv2 zero-shot 为 56.3;BLIP-2 仅 108M 可训练参数达到 65.0。这说明桥接模块只要设计得当,不必让整个系统端到端训练。它也为后续 MLLM 的 projector 路线提供了依据。
如果把 BLIP-2 和 LLaVA 放在一起看,最容易产生的问题是:既然 LLaVA 用 MLP 就能工作,Q-Former 是否过度设计?答案取决于训练条件。Q-Former 适合在需要较强视觉信息选择能力、LLM 冻结且数据不完全指令化的场景中使用;MLP 则适合在强 LLM 和强指令数据支撑下做简单对齐。
Q-Former 的价值在于“选择”。它不是把所有视觉 token 等权转换,而是用 query 从视觉特征中抽取语言相关信息。这对 VQA、captioning 这类需要从图像中挑选证据的任务很自然。MLP 的价值在于“简单可扩展”:当数据足够强时,LLM 可以在后续层里自行学习如何解释视觉前缀。
因此,BLIP-2 的历史意义不只是提出 Q-Former,而是把 VLP 的工程目标从“训练一个完整多模态模型”改成“找到一个足够好的视觉语言接口”。后来的大量工作都在这个接口上做取舍:更强视觉编码器、更长视觉 token、更简单 projector、更大指令数据。


MiniMax 对图 A 的理解确认:左侧对应 Vision-and-Language Representation Learning,右侧对应 Vision-to-Language Generative Learning。图中雪花表示冻结的 Image Encoder 与 LLM,Q-Former 是核心可训练桥接模块。图中只画了少量 query 方块,实际论文使用 32 个 learnable queries;Q-Former 到 LLM 之间的线性投影也在图中被简化。
参考来源
- Li, J. et al. "BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models." CVPR 2023. arXiv:2301.12597
- 代码仓库: salesforce/LAVIS