ESC
输入关键词搜索文章
目录

Vision-Language Pre-training

2021–2026 · 从对比学习到多模态大模型
五大范式、七篇核心论文、一条完整的演进路线
7核心论文
5技术范式
2021–2026时间跨度
1/54BLIP-2 vs Flamingo 参数比
引论
VLP 要解决的根本问题是什么?

人类感知世界的方式是天然的"多模态"——我们同时用眼睛看、用耳朵听、用语言表达。但在 AI 的世界里,视觉和语言长期是两个独立王国:计算机视觉模型处理像素,NLP 模型处理 token,两者互不相通。

Vision-Language Pre-training(VLP)的目标就是打通这两个王国。通过大规模图文配对数据的预训练,让模型学会一个视觉和语言共享的表征空间——图像和文本在这个空间里可以"对话"。

为什么这件事重要?因为一旦视觉和语言被统一到同一空间,模型就能做到很多之前做不到的事:给你一张图,它能检索相关文本;给你一段描述,它能找到对应图片;甚至能像人一样"看图说话"、"看图推理"、"看图回答问题"。

2021 年 CLIP 的出现标志着一个新起点。此后五年,这个领域经历了五次范式跃迁,每一次都在解决上一次留下的结构性瓶颈。

CLIP 方法总图
图 0:CLIP 的对比预训练与 zero-shot prediction 总图(来源:CLIP arXiv source, main-diagrams.pdf;MiniMax MCP 已辅助理解)
一句话预览:CLIP 解决了"能不能对齐",BLIP 解决了"能不能同时理解和生成",BLIP-2/Flamingo 解决了"能不能用现成大模型高效桥接",LLaVA 解决了"能不能像人一样对话式交互",SigLIP 解决了"能不能更高效地训练"。
范式一 · 对比学习
CLIP → ALIGN → SigLIP:用"什么配什么"来学习对齐

为什么对比学习是起点?

VLP 的第一步是建立视觉和语言之间的基本"对齐"。最直觉的方法就是对比学习:给模型一批图文对,让它学会判断哪些图片和哪些文本是匹配的。匹配的对在嵌入空间中拉近,不匹配的推远。

这就像教一个小孩认识世界:指着猫的图片说"这是一只猫",指着狗的图片说"这是一条狗"。通过大量正反例的对比,模型自然学会视觉和语言的对应关系。

CLIP:证明"规模就是一切"

CLIP(OpenAI, 2021)用双塔架构(ViT 图像编码器 + Transformer 文本编码器)在 4 亿网络爬取的图文对上做 softmax 对比训练。核心损失函数是 InfoNCE:

\(\mathcal{L}_{i2t} = -\frac{1}{N} \sum_{i=1}^N \log \frac{\exp(S_{ii}/\tau)}{\sum_{j=1}^N \exp(S_{ij}/\tau)}\)

其中 \(S_{ij}\) 是第 \(i\) 张图和第 \(j\) 段文本的余弦相似度,\(\tau\) 是温度参数,\(N\) 是 batch size。分母中的全局归一化是关键——模型需要在整个 batch 中"找到"正确的配对。

CLIP 的核心贡献不在算法创新(对比学习不是新东西),而在规模:4 亿图文对 + 大 batch size(32768)证明了"足够多的噪声数据 + 简单的对比目标"足以学到强大的视觉-语言表征。零样本 ImageNet 分类 76.2% top-1,与监督训练的 ResNet 相当。

但 CLIP 留下两个问题:1)只有编码能力,没有生成能力;2)softmax 对比损失对 batch size 的巨大依赖(32768 是硬件门槛)。

SigLIP:解耦 batch size 与损失函数

SigLIP(Google DeepMind, 2023)针对第二个问题提出了一个优雅的解法:把 softmax 多分类换成 sigmoid 二元分类。每个图文对独立判断"是否匹配",不依赖 batch 内其他样本:

\(\mathcal{L} = -\frac{1}{n} \sum_{i=1}^{n} \log \frac{1}{1 + e^{z_{ij}(-t) + b}}\)

内存开销从 batch size 的平方增长降为线性增长。在 WebLI(10B 图文对)上训练,零样本 ImageNet 约 88% top-1。

反直觉的是,sigmoid loss 在小 batch size 下的性能远好于 softmax 在小 batch size 下的性能。这意味着:资源有限的研究者也能训练出有竞争力的对比学习模型。

对比学习范式演进:CLIP 证明"对比学习 + 大规模数据"可行 → ALIGN 证明数据规模可以补偿数据质量(1.8B 噪声对)→ SigLIP 证明损失函数本身可以更高效(sigmoid 替代 softmax)。三步走完了"可行性 → 规模化 → 效率优化"的完整闭环。
范式二 · 统一理解与生成
BLIP:让一个模型同时擅长两件事

CLIP 的根本局限

CLIP 的双塔架构天生只能做"编码"——它能把图像和文本映射到同一空间并比较相似度,但不能生成文本。这意味着 CLIP 做不了 image captioning(看图说话),也做不了 VQA(看图回答问题)。在 VLP 的版图上,只覆盖了"理解"这一半。

当时的方案是各做各的:encoder-only 模型(CLIP)做检索,encoder-decoder 模型(SimVLM)做生成。但 BLIP 问了一个更好的问题:能不能用一个模型同时做好两件事?

MED:三种模式共享参数

BLIP(Salesforce, ICML 2022)提出 MED(Multimodal Mixture of Encoder-Decoder)。一个模型通过切换 self-attention mask 实现三种功能模式:

  1. Unimodal Encoder:标准 BERT 式编码器,用 ITC(Image-Text Contrastive)损失对齐视觉-语言表征
  2. Image-Grounded Text Encoder:插入 cross-attention 注入视觉信息,用 ITM(Image-Text Matching)损失做细粒度图文匹配
  3. Image-Grounded Text Decoder:因果 self-attention 做自回归生成,用 LM(Language Modeling)损失

三种模式共享 embedding、cross-attention 和 FFN 参数,仅 self-attention 层分叉。这迫使模型学习"通用的视觉-语言交互方式",而非针对单一任务的特化表示。

CapFilt:从噪声中提炼信号

BLIP 解决的另一个问题是数据质量。Web 爬取的图文对噪声严重。CapFilt(Captioning and Filtering)用预训练模型来改进训练数据:

  • Captioner:为 web 图像生成合成 caption
  • Filter:过滤噪声 caption

关键工程发现:Captioner 和 Filter 必须独立训练。共享参数会导致 confirmation bias——Filter 倾向认可自己生成的 caption,即使它是噪声。

定量突破

BLIP 在相同 14M 数据量下比 ALBEF 在 COCO 检索上提升 +3.0% TR@1。更惊人的是数据效率:BLIP 用 14M 数据在 Flickr30K 零样本检索达到 94.8% TR@1,远超 CLIP 用 400M 数据的 88.0%。CapFilt 的数据质量提升比堆数据量有效得多。

BLIP 的局限:仍然需要端到端训练整个模型。当视觉编码器和语言模型都越来越大时,计算成本不可接受。这就是 BLIP-2 要解决的问题。

范式三 · 高效桥接
BLIP-2 / Q-Former:冻结大模型,只训练一座桥
BLIP-2 Q-Former 架构
图 1:BLIP-2 的 Q-Former 架构——轻量桥接模块连接冻结 ViT 和冻结 LLM(来源:BLIP-2, Fig.1)

端到端训练为什么越来越不可行?

BLIP 的 MED 证明了统一理解和生成的可行性,但有一个隐含前提:整个模型端到端训练。当 ViT 从 ViT-B 涨到 ViT-g、LLM 从 BERT-base 涨到 175B 时,端到端训练的成本变为天文数字。

一个自然的思路:冻结已有的视觉编码器和语言模型,只训练一个轻量"桥接模块"连接它们。但这带来三个挑战:模态鸿沟(冻结 ViT 和冻结 LLM 之间的语义差距)、灾难性遗忘(解冻 LLM 会破坏语言能力)、信息瓶颈(ViT 输出维度远大于 LLM 能处理的长度)。

Q-Former:学会"问对问题"的信息漏斗

Q-Former(Querying Transformer, 188M 参数)的核心比喻是信息漏斗:32 个可学习 query embeddings 通过 cross-attention 从冻结 ViT 的海量输出中,只提取与语言最相关的视觉信息。输出仅为 32×768,远小于 ViT-L 的 257×1024。

为什么是 32 个 queries?这是一个刻意的信息瓶颈——迫使模型做出选择,只保留最重要的视觉信息。如果 queries 太多,模型会偷懒直接搬运视觉特征。

BLIP-2 两阶段训练
图 2:BLIP-2 的两阶段训练流程——Stage 1 做视觉-语言对齐,Stage 2 做视觉到语言生成(来源:BLIP-2, Fig.2)

两阶段训练:为什么跳过 Stage 1 会崩?

Stage 1: Vision-Language Representation Learning。Q-Former 连接冻结 ViT,联合优化 ITC + ITG + ITM 三个目标。ITG 是关键创新:迫使 queries 提取"对生成文本有用的视觉信息"。

Stage 2: Generative Learning。Q-Former 连接冻结 LLM(OPT/FlanT5),输出经 FC 层投影为 soft visual prompts 前置于 LLM 输入。

消融实验证明:跳过 Stage 1 直接做 Stage 2,OPT 会发生严重的灾难性遗忘。原因在于,未经预训练的 Q-Former 输出对 LLM 来说是纯噪声,LLM 为适应噪声会大幅调整权重,破坏语言能力。Stage 1 的价值在于:先让 Q-Former 学会输出"LLM 能理解的东西"。

54 倍的效率超越

模型可训练参数VQAv2 zero-shot
Flamingo-80B10.2B56.3%
BLIP-2 (ViT-g + FlanT5-XXL)108M65.0% (+8.7)

54× 更少可训练参数,性能反超 Flamingo-80B。这证明了"冻结大模型 + 精心设计的轻量桥接"范式的巨大效率优势。

BLIP-2 的局限:在 OK-VQA(依赖外部知识)上不如 Flamingo-80B,说明更大的 LLM 在需要开放世界知识的任务上仍有优势。两阶段训练也增加了工程复杂度。

范式四 · Few-shot 学习
Flamingo:冻结 LLM + 视觉注入的另一种哲学
Flamingo 架构
图 3:Flamingo 的架构——Perceiver Resampler 压缩视觉特征,Gated XAttn 注入冻结 LLM(来源:Flamingo paper / lucidrains)

与 BLIP-2 的根本区别

Flamingo(DeepMind, NeurIPS 2022)和 BLIP-2 都采用"冻结 LLM + 视觉桥接"思路,但设计哲学截然不同。BLIP-2 追求参数效率(用最少的可训练参数达到最强性能),Flamingo 追求规模最大化(用最大的 LLM 获得最强的 few-shot 能力)。

三大架构创新

Perceiver Resampler:64 个可学习 latent queries 通过 cross-attention 从冻结 NFNet 视觉编码器提取特征,输出固定 64 个视觉 token。与 Q-Former 的 32 queries 类似,但规模更大。

Gated XATTN-DENSE:在冻结 LM 层间插入 cross-attention 层,让文本能"看到"视觉 token。关键创新是 tanh gating:输出乘以 \(\tanh(\alpha)\)\(\alpha\) 初始化为 0。训练初期等价于原始 LLM(视觉注入为零),随训练进行 \(\alpha\) 逐渐增大。这保证了训练稳定性。

Image-causal masking:每个 text token 只 cross-attend 到紧邻其前的图像,通过 LM self-attention 间接依赖之前所有图像。训练时最多 5 张图,推理时泛化到 32 张。

交错数据:Few-shot 能力的秘密

Flamingo 的 few-shot 能力不只来自架构,更来自训练数据。核心数据集 M3W(43M 网页的交错图文序列)保留了图片在文本中的原始位置关系。消融实验证实:去掉 M3W 后 few-shot 性能大幅下降。

在 6/16 任务上,Flamingo-80B 的 32-shot 性能超越了对应任务的 fine-tuned SOTA。这意味着仅用 32 个示例的 prompting 就逼近了需要完整训练集的微调方法。

Flamingo vs BLIP-2:两种哲学的碰撞

维度FlamingoBLIP-2
连接器Perceiver Resampler (64 token)Q-Former (32 token)
注入方式LM 层间 cross-attnSoft visual prompt
训练单阶段 (LM only)两阶段 (对齐 → 生成)
可训练参数1.4–10.2B108M
核心优势大规模 LLM 的知识极致参数效率

两者不是谁替代谁的关系。Flamingo 的 Perceiver Resampler 和 Gated XAttn 直接启发了 BLIP-2 的 Q-Former 设计;BLIP-2 用更少的参数在 VQAv2 上反超 Flamingo,但在需要更多外部知识的 OK-VQA 上 Flamingo 仍有优势。

范式五 · 视觉指令微调
LLaVA:极简架构 + GPT-4 数据
LLaVA 架构
图 4:LLaVA 的架构——MLP 连接器将 CLIP 视觉特征投影到 LLM 空间(来源:LLaVA, Fig.1)

从"任务特异"到"通用对话"

BLIP-2 和 Flamingo 解决了"如何让 LLM 理解图像",但交互方式仍是任务特异的——VQA 就回答问题,captioning 就生成描述。NLP 领域的 instruction tuning 已经证明了:用多样化的指令数据微调 LLM,可以让模型学会按人的意图行动。LLaVA 问了一个简单的问题:能不能把 instruction tuning 扩展到多模态?

极简到令人惊讶的架构

CLIP ViT-L/14(冻结)→ 简单 MLP(可训练)→ Vicuna LLM(可训练)

没有 Q-Former 的信息瓶颈,没有 Perceiver Resampler 的 learned queries,没有 Gated XAttn 的复杂注入。就是一个 MLP。

为什么这么简单还能工作?因为数据质量LLM 能力才是瓶颈,不是连接器复杂度。当 LLM 足够强(Vicuna)、数据足够好(GPT-4 生成),MLP 就足以把 CLIP 视觉特征投影到 LLM 的语义空间。

反直觉发现:LLaVA 的简单 MLP 在很多任务上表现优异,直接导致了后续 MLLM 的设计范式转变——大家都用简单投影层,不再追求复杂的桥接模块。复杂连接器 ≠ 更好的性能。

GPT-4 当老师

LLaVA 用纯语言的 GPT-4 将 COCO 的 image-text pairs 转化为 158K 多模态指令数据:

类型数量描述
Conversation58K多轮对话,关于图像内容
Detail Description23K详细描述图像内容
Complex Reasoning77K需要逻辑推理的问题

这个范式——用强 LLM 生成训练数据来训练多模态模型——成为后续几乎所有 MLLM 的标准操作。LLaVA-NeXT、InstructBLIP、Qwen-VL 都沿用了这条路线。

LLaVA-13B 在 ScienceQA 上达到 92.53% 准确率,首次超越人类的 88.48%。

补充 · 细粒度对齐
GLIP:从图像级到对象级

CLIP 只看"全局",细节怎么办?

CLIP 做的是图像级对齐:整张图和整段文本的相似度。当你需要定位图片中的具体对象时("图中的狗在哪里?"),CLIP 就无能为力了。

GLIP(Microsoft, CVPR 2022)的核心洞察:目标检测本质上就是一种定位(grounding)任务。如果把"检测"和"定位"统一,就能利用大规模图文对数据训练检测器。

检测 = 定位

GLIP 将检测器的分类头替换为 region-word 对齐得分:

\(S = O \cdot P^{T}\)

当输入"dog"时做检测,输入"the brown dog sitting on the left"时做定位。同一个模型、同一个损失函数。

通过 deep fusion(图像-语言编码器间的 cross-attention)使视觉表征具有语言感知能力,再加上 self-training(为 24M web 数据生成 78.1M 伪标注 grounding box),GLIP 实现了 zero-shot COCO 检测 49.8 AP,超越监督 Faster R-CNN 7.8 个点。

GLIP 的贡献从粒度维度补充了 VLP:CLIP 做图像级对齐,BLIP 做图像级 + 细粒度匹配,GLIP 直接推进到对象级/区域级。

对比分析
连接器、训练目标与关键结果

连接器架构对比

方法连接器可训练参数训练策略核心思想
Flamingo (2022)Perceiver Resampler + Gated XAttn1.4–10.2B单阶段 (LM)64 queries + tanh gating
BLIP-2 (2023)Q-Former (信息瓶颈)188M两阶段 (对齐→生成)32 queries + 瓶颈压缩
LLaVA (2023)MLP / Linear极少两阶段 (对齐→指令微调)最简单的线性投影

训练目标对比

目标使用者作用
ITC (Image-Text Contrastive)CLIP, BLIP, BLIP-2, SigLIP对齐视觉-语言表征空间
ITM (Image-Text Matching)BLIP, BLIP-2细粒度图文匹配
LM (Language Modeling)BLIP, Flamingo, LLaVA生成能力
ITG (Image-grounded Text Gen)BLIP-2视觉条件文本生成
Grounding LossGLIP区域-词对齐

关键定量结果(零样本)

模型VQAv2COCO Caption CIDErFlickr30K TR@1特殊指标
CLIP ViT-L88.0ImageNet 76.2%
BLIP ViT-L77.54 (ft)105.196.7数据效率: 14M > 400M
Flamingo-80B82.0 (32-shot)113.86/16 超越 fine-tuned
BLIP-2 (ViT-g)65.0121.697.6108M 参数
GLIP-LCOCO det 49.8 AP
SigLIPImageNet ≈88%
graph LR
    subgraph 2021
        CLIP["CLIP
对比学习
双塔编码器"] end subgraph 2022 BLIP["BLIP
统一理解+生成
MED 三模式"] Flamingo["Flamingo
冻结LLM+注入
Few-shot"] GLIP["GLIP
对象级对齐
检测=定位"] end subgraph 2023 BLIP2["BLIP-2
Q-Former
信息瓶颈"] LLaVA["LLaVA
视觉指令微调
MLP连接"] SigLIP["SigLIP
Sigmoid Loss
效率优化"] end CLIP -->|"只有编码
没有生成"| BLIP CLIP -->|"batch依赖
效率低"| SigLIP BLIP -->|"端到端训练
成本高"| BLIP2 Flamingo -->|"Perceiver
启发"| BLIP2 Flamingo -->|"冻结LLM
范式"| LLaVA BLIP2 -->|"复杂连接器
是否必要?"| LLaVA CLIP -->|"图像级对齐
不够细"| GLIP
图 5:VLP 五大范式的演进路线图(mermaid 绘制)
演进脉络
五年范式跃迁的底层逻辑

回顾 2021-2026 的演进,可以看到清晰的"问题 → 解法 → 新问题"链式推进:

2021:对比学习范式确立。CLIP 证明了大规模对比学习的可行性。但 CLIP 只能编码不能生成,且训练对 batch size 要求极高。

2022:统一 + Few-shot + 细粒度三线并进。BLIP 统一了理解和生成,Flamingo 证明了冻结 LLM 的 few-shot 学习,GLIP 从图像级推进到对象级。三条线各自独立推进。

2023:收敛与简化。BLIP-2 的 Q-Former 将 Flamingo 的 Perceiver Resampler 简化为更高效的信息瓶颈;LLaVA 的 MLP 进一步将 Q-Former 简化为最简单的投影层。SigLIP 从训练效率角度优化了对比学习。四条线开始收敛。

2024-2026:开源追平 + 新前沿。InternVL、Cambrian-1 等开源模型达到 GPT-4V 级性能。多模态 Agent 能力、视频理解、统一 tokenizer 的理解+生成成为新方向。

一条底层规律:VLP 的每一次范式跃迁,本质上都是在重新分配计算开销。CLIP 把开销放在数据规模上,BLIP 把开销放在多任务训练上,BLIP-2 把开销转移到冻结的大模型上(训练开销极低但推理时使用大模型),LLaVA 把开销转移到数据质量(GPT-4 生成)上。连接器从复杂到简单,数据从噪声到精心构造。
展望
开放问题与未来方向
  1. 连接器的最优设计:Q-Former vs MLP vs Perceiver?LLaVA 证明了简单连接器在好数据+好 LLM 下足够,但随着任务复杂度提升(视频理解、多轮推理),是否需要更复杂的连接器?
  2. 视觉编码器的 scaling:当前 ViT 参数远小于 LLM(ViT-L 300M vs LLaVA 的 Vicuna-13B),视觉侧是否需要 scaling up?视觉编码器能力不足是否是瓶颈?
  3. 统一理解+生成:当前方案用 LLM 做生成、用 CLIP 做理解,两者的表征空间是否需要统一?BAGEL 等工作正在探索统一 tokenizer 的方案。
  4. 数据工程的天花板:CapFilt/self-training/合成数据的上限在哪?GPT-4 生成的指令数据引入了 GPT-4 的偏差,如何避免?
  5. 视频理解:当前方案多为帧级编码,缺乏精细时序建模。视频的时空复杂性需要新的架构设计。
  6. 多模态 Agent:VLM 如何与工具使用、规划、记忆等 Agent 能力融合?从"看图说话"到"看图行动"的跨越。

参考来源

  • Radford, A. et al. "Learning Transferable Visual Models From Natural Language Supervision." ICML 2021. arXiv:2103.00020 (CLIP)
  • Li, J. et al. "BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation." ICML 2022. arXiv:2201.12086
  • Li, J. et al. "BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models." CVPR 2023. arXiv:2301.12597
  • Alayrac, J-B. et al. "Flamingo: a Visual Language Model for Few-Shot Learning." NeurIPS 2022. arXiv:2204.14198
  • Li, L.H. et al. "Grounded Language-Image Pre-training." CVPR 2022. arXiv:2112.03857 (GLIP)
  • Zhai, X. et al. "Sigmoid Loss for Language Image Pre-Training." ICCV 2023. arXiv:2303.15343 (SigLIP)
  • Liu, H. et al. "Visual Instruction Tuning." NeurIPS 2023. arXiv:2304.08485 (LLaVA)