MLLM2021· ICML 2021· CLASSIC

CLIP: Learning Transferable Visual Representations

Radford et al.

4 亿图文对 + 对比学习——零样本图像分类能和监督训练的 ResNet 匹敌。

arXiv:2103.00020
#multimodal#contrastive#vision-language#foundational

核心贡献

  • 01双塔架构:Image Encoder + Text Encoder,独立处理
  • 02对比学习目标:真实图文对相似度高,错配图文对相似度低
  • 034 亿规模网络图文对训练(WIT dataset)
  • 04零样本分类:把类名变成 prompt("a photo of a {class}"),和图像向量比余弦相似度
  • 05成为所有现代多模态模型的视觉基础(LLaVA、BLIP、Stable Diffusion 都用 CLIP encoder)

架构与训练

双塔结构

text
1Image → [ViT/ResNet] → image_emb
2Text → [Transformer] → text_emb
3→ cosine_sim(image_emb, text_emb)

两个 encoder 独立;训练时共享 temperature τ 的 softmax

对比损失(InfoNCE)

一个 batch 的 N 对 (image, text) 构成 N×N 相似度矩阵。对角线是正样本,其他都是负样本:

L=12Ni[logesii/τjesij/τ+logesii/τjesji/τ]L = -\frac{1}{2N}\sum_i \left[ \log \frac{e^{s_{ii}/\tau}}{\sum_j e^{s_{ij}/\tau}} + \log \frac{e^{s_{ii}/\tau}}{\sum_j e^{s_{ji}/\tau}} \right]

前一项:每张图要匹配到正确文本;后一项:每段文本要匹配到正确图。两个方向对称。

零样本分类

训练完不做下游微调。分类任务:

  1. 把类名变 prompt:["a photo of a cat", "a photo of a dog", ...]
  2. 用 text encoder 编码所有 prompt
  3. 给定测试图,用 image encoder 编码
  4. 余弦相似度最高的 prompt 对应的类即预测

关键因素

  • 规模:4 亿图文对(之前最大数据集只 1500 万)
  • 覆盖面:网络上几乎所有视觉概念都覆盖
  • 对比学习 vs 生成式:对比学习只需判断对错,比生成高效得多
面试视角

面试考点

"对比学习为什么 work?" 信号来自"什么应该相似"和"什么不应该相似"——比纯监督信号丰富。本质是在学一个语义对齐的联合向量空间

"为什么 batch size 对 CLIP 这么重要?" 对比学习每个正样本需要大量负样本。batch=1024 比 batch=256 效果显著好。这也是 CLIP 训练基础设施要求高的原因。

"CLIP 的局限?"

  • 细粒度不敏感(难区分"金毛"和"拉布拉多")
  • 组合能力弱("红色的球在绿色的桌子上" 不一定理解)
  • 文字识别弱(不能 OCR)

"CLIP vs BLIP vs ALIGN?"

  • CLIP: 双塔对比,零样本分类强
  • BLIP: 加生成头,同时做图像 caption 和对齐
  • ALIGN: 和 CLIP 思路一样但更大规模(10 亿)

"CLIP 在 VLM 里扮演什么角色?" CLIP 的 vision encoder 被几乎所有现代 VLM 用作视觉主干(LLaVAQwen-VLInternVL 都用)。CLIP-ViT-L/14 是事实标准选择。

"为什么 LLaVA 不用纯 ViT 而用 CLIP-ViT?" CLIP-ViT 已经和语言对齐,和 LLM 的表征空间更接近,仅需一层 projection 就能用。纯 ViT 要从头对齐。

相关论文