PaperReading: CLIP series
paperreading
本文字数:3.5k 字 | 阅读时长 ≈ 15 min

PaperReading: CLIP series

paperreading
本文字数:3.5k 字 | 阅读时长 ≈ 15 min

这篇文章只回答四个问题:模型吃什么数据、结构怎么搭、loss 怎么算、它相对 CLIP 改了什么。背景和完整实验表不展开。

CLIP 系列首次发布时间、方法继承与组件影响关系图

节点按首次 arXiv 时间排列;实线表示直接方法延续,虚线表示范式、目标或 teacher 影响,不代表 checkpoint 继承。

一页总览

方法 训练数据(论文主设定) 核心架构 训练目标 真正新增的能力
CLIP WIT,400M Web 图文对 image encoder + text Transformer 双向 softmax contrastive loss 开放词表分类、图文检索
CoCa JFT-3B 标签 + ALIGN 1.8B alt-text image encoder + unimodal / multimodal decoder contrastive + captioning 在检索之外增加生成与融合表征
LiT 4B 私有图文对;另有 CC12M + YFCC 公共实验 冻结预训练 image tower,只训练 text tower CLIP 式 contrastive loss 保住强视觉表征,低成本完成语言对齐
EVA 29.6M 公开图像;CLIP-L/14 作 teacher 1B vanilla ViT masked CLIP feature regression 强 image encoder 与 dense visual feature
EVA-CLIP Merged-2B / LAION-2B EVA 初始化 image tower + 预训练 text tower CLIP 式 contrastive loss 更快、更稳地训练大规模 CLIP
SigLIP WebLI 英文子集 CLIP 式 dual encoder pairwise sigmoid loss 降低全局 softmax 的通信与显存依赖
SigLIP 2 WebLI:10B images、12B alt-texts、109 languages dual encoder;训练期挂 decoder 与 EMA teacher sigmoid + LocCa + self-supervised losses 多语言、定位、OCR 与 dense prediction

先记住三条主线:

  1. 全局对齐 → 生成与局部理解:CLIP → CoCa;
  2. 如何得到并保护强 image tower:CLIP → LiT,以及 EVA → EVA-CLIP;
  3. softmax 对比学习 → 独立配对判断 → 稠密监督:CLIP → SigLIP → SigLIP 2。

CLIP:建立图文双塔范式

核心配置

CLIP 的图文对比预训练与 zero-shot 分类流程

一个 batch 形成图文相似度矩阵;推理时,类别 prompt 就是动态分类器。

损失函数

给定一个包含 \(N\) 对图文的 batch,归一化后的图像、文本表示为 \(x_i,y_i\),相似度为

\[ s_{ij}=\frac{x_i^\top y_j}{\tau}. \]

对角线 \((i,i)\) 是正样本,其余 \(N^2-N\) 项是 batch 内负样本。CLIP 同时做 image-to-text 与 text-to-image 分类:

\[ \mathcal{L}_{\text{CLIP}} =-\frac{1}{2N}\sum_{i=1}^{N} \left[ \log\frac{e^{s_{ii}}}{\sum_j e^{s_{ij}}} \mathrel{+} \log\frac{e^{s_{ii}}}{\sum_j e^{s_{ji}}} \right]. \]

\(\tau\) 对应的 logit scale 可学习。关键不是“把正样本拉近”这一句,而是:每张图必须在一整行文本中找到唯一正确项,每段文本也必须在一整列图像中找到唯一正确项

推理链路

class name → prompt templates → text encoder → class embeddings
image      → image encoder                  → image embedding
                                  cosine similarity → argmax

因此 zero-shot classification 本质上是 image-to-text retrieval。prompt ensemble 能降低单一措辞带来的方差;ViT-L/14@336px 在 ImageNet zero-shot 上达到 76.2% top-1。

一句话结论:CLIP 用自然语言替代固定分类头,但它主要学习的是全局 embedding,对生成、定位和 patch-level dense feature 都没有直接监督。


CoCa:在双塔对齐上增加生成路径

核心配置

CoCa 统一视觉分类、图文对齐和图像描述生成

同一个计算图同时覆盖 single encoder、dual encoder 与 encoder-decoder 三种使用方式。

损失函数

CoCa 直接相加两类目标:

\[ \mathcal{L}_{\text{CoCa}} =\lambda_{\text{Con}}\mathcal{L}_{\text{Con}} +\lambda_{\text{Cap}}\mathcal{L}_{\text{Cap}}, \qquad \mathcal{L}_{\text{Cap}} =-\sum_t\log p(y_t\mid y_{<t},I). \]

论文主设定为 \(\lambda_{\text{Con}}=1,\lambda_{\text{Cap}}=2\)。

image → ViT → 1-query pooler   ───────────────┐
                                               ├→ contrastive loss
text  → unimodal decoder → [CLS] embedding ───┘
                  │
                  └→ multimodal decoder ← 256-query visual tokens
                                      └→ captioning loss

一句话结论:CoCa 没有放弃 CLIP 的双塔检索,而是让同一套 image/text computation 继续进入 multimodal decoder,以很小的目标冲突换来 captioning、VQA 和融合表征。


LiT:锁住 image tower,只学习语言如何读取视觉空间

核心配置

论文用两个字母表示 image/text tower:L 是 pretrained + locked,U 是 pretrained + unlocked,u 是 random + unlocked。LiT 对应 Lu

为什么冻结反而更好

clean / self-supervised image data → strong image encoder ── freeze ──┐
                                                                     ├→ contrastive alignment
noisy Web text                 → trainable text encoder ─────────────┘

Uu 能把图文训练集的 contrastive loss 降得更低,却会损害 image representation 的 few-shot quality 和 OOD alignment;Lu 则迫使文本塔适应既有视觉空间,避免 noisy Web pairs 改写已经很强的视觉表示。

image tower 固定后还可以离线预计算 embedding。使用 ViT-g/14 时,LiT 达到 85.2% ImageNet zero-shot 和 82.5% ObjectNet;只看 300M 图文样本时已达到 81.7% ImageNet zero-shot。

一句话结论:当 image encoder 已经足够强、图文数据的主要价值只是提供概念名称时,freeze 是一种表征保护策略,而不只是省算力。


EVA:用 masked CLIP feature 预训练强视觉塔

EVA 本身是 vision-only pretraining,不是图文双塔;它与 CLIP 系列的联系是使用 CLIP vision feature 作监督,并能作为 EVA-CLIP 的视觉初始化。

核心配置

损失函数

设 mask 位置集合为 \(\mathcal{M}\),student 在位置 \(k\) 的输出为 \(h_k\),CLIP teacher 的目标特征为 \(c_k\),\(P\) 是 linear projection:

\[ \mathcal{L}_{\text{EVA}} =-\frac{1}{|\mathcal{M}|}\sum_{k\in\mathcal{M}} \frac{(Ph_k)^\top c_k}{\lVert Ph_k\rVert_2\lVert c_k\rVert_2}. \]

masked image → EVA student → masked-position features ── linear projection ─┐
full image   → frozen CLIP-L/14 teacher → target patch features ────────────┴→ cosine loss

与像素重建相比,CLIP target 带有高层语义;与纯 feature distillation 相比,mask prediction 又迫使模型从可见 patch 推断结构。论文发现 continuous feature regression 已经足够,不需要额外 tokenizer,也不需要单独的 post-distillation pipeline。

一句话结论:EVA 的关键产物是一个兼顾语义与局部结构的强 image encoder,它为下一步大规模 CLIP 训练提供更好的起点。


EVA-CLIP:不改 loss,改初始化与训练 recipe

核心配置

这里的 50% masking 来自 FLIP 思路:被移除的是输入 image tokens,图文配对目标没有改变。它减少 attention 计算并允许更大 batch,不等同于 EVA 的 masked feature reconstruction。

与 LiT 的区别

LiT EVA-CLIP
image tower 完全冻结 强初始化后继续训练
目标 保护已有视觉空间 让视觉空间继续适配大规模图文数据
主要收益 稳健、可预计算 更高上限、更快收敛

在 ViT-B/16 ablation 中,EVA initialization 用约一半 seen samples 带来 1.8 个点提升;换成 LAMB 再提升 0.7 个点;50% token masking 约损失 0.7 个点,但训练速度约提升 2 倍;FlashAttention 再减少约 15% 时间。最终 430M 参数的 EVA-02-CLIP-L/14+ 在 6B samples seen 后达到 80.4%,5.0B 参数 E/14+ 在 9B samples seen 后达到 82.0% ImageNet zero-shot。

一句话结论:EVA-CLIP 的贡献是一套 billion-scale CLIP recipe,而不是新的模型接口或损失函数。


SigLIP:把全局多分类改成独立二分类

核心配置

损失函数

令 \(z_{ij}=1\) 表示匹配 pair,\(z_{ij}=-1\) 表示不匹配:

\[ \mathcal{L}_{\text{SigLIP}} =-\frac{1}{N}\sum_{i=1}^{N}\sum_{j=1}^{N} \log\sigma\left(z_{ij}\left(t x_i^\top y_j+b\right)\right). \]

\(t\) 是可学习 scale,\(b\) 是可学习 bias。论文默认初始化为 \(t=10,b=-10\):一个 batch 只有 \(N\) 个 positive,却有 \(N(N-1)\) 个 negative,负 bias 能在训练初期反映这种类别先验,避免优化被海量负样本带偏。

CLIP SigLIP
问题定义 每行/列找唯一正确项 每个 pair 独立判断 match / mismatch
归一化 row/column softmax sigmoid,无候选间归一化
分布式计算 通常需要全局 logits 可 ring exchange / chunk 累加
batch size 同时决定候选集合 与 loss 定义解耦,32k 已基本饱和

推理时仍按 image-text similarity 排序。sigmoid(logit) 是每个 pair 的独立 matching score,不是候选类别上和为 1 的概率分布

一句话结论:SigLIP 最重要的不是换了激活函数,而是把 batch 内全局多分类拆成可独立计算的 pair classification,从而降低大规模分布式训练的通信和显存压力。


SigLIP 2:保留双塔接口,把局部监督塞进训练阶段

核心配置

SigLIP 2 在 SigLIP 双塔上加入 LocCa decoder 与自监督 teacher

Sigmoid 与 LocCa loss 全程训练;self-distillation 和 masked prediction 只在最后 20% 加入。

分阶段训练目标

前 80% 训练把 SigLIP 与 LocCa 等权相加:

\[ \mathcal{L}_{0:80\%} =\mathcal{L}_{\text{SigLIP}}+\mathcal{L}_{\text{LocCa}}. \]

LocCa decoder cross-attend 到 pooling 前的 image tokens,同时学习三件事:

最后 20% 加入 image-only self-supervised objectives:

\[ \mathcal{L}_{80:100\%} =\mathcal{L}_{\text{SigLIP}}+\mathcal{L}_{\text{LocCa}} +\alpha\left(\mathcal{L}_{\text{distill}}+0.25\mathcal{L}_{\text{mask}} \right). \]

这两个目标直接优化 pooling 前的 patch features,因此 segmentation、depth estimation 等 dense tasks 能受益;LocCa 则主要补 localization、OCR 与 region semantics。

Resolution adaptation 与 NaFlex

相同规模下,SigLIP 2 普遍优于 SigLIP:例如 B/16@224 的 ImageNet zero-shot 从 76.2% 提升到 78.2%,So400m/14@384 达到 84.1%,g/16@384 达到 85.0%。更重要的是,提升同时出现在 retrieval、VLM vision encoder、open-vocabulary detection、segmentation 与 depth estimation,而不只是 ImageNet。

一句话结论:SigLIP 2 的设计重点是“训练重、发布轻”——用 decoder 和 teacher 提供局部监督,最终仍保持可直接替换 SigLIP 的双塔推理接口。


如何选择

需求 更直接的选择 原因
zero-shot classification / 大规模检索 CLIP、SigLIP 双塔可离线编码;SigLIP 更易做分布式 pairwise loss
已经有很强的视觉 backbone,只需语言对齐 LiT image feature 可冻结和预计算
从头构建高质量视觉 backbone EVA masked CLIP feature 同时提供语义与局部结构
训练更大的 CLIP EVA-CLIP 强初始化 + LAMB + token masking + FlashAttention
captioning / VQA / 融合式理解 CoCa multimodal decoder 在模型内保留
localization、OCR、segmentation 或 VLM vision encoder SigLIP 2 训练期显式优化 region 与 patch-level features

最后可以把整组论文压缩为一句话:CLIP 定义全局图文对齐;CoCa 给它生成路径,LiT/EVA/EVA-CLIP处理视觉塔的保护、预训练与扩展,SigLIP 重写配对损失,SigLIP 2 再把局部、多语言和稠密表征补齐。

Sep 06, 2026
Aug 01, 2026