02. 图文对齐是什么意思?CLIP、SigLIP 等对比学习方法起什么作用?
图文对齐、CLIP 与 SigLIP 的基本原理和作用。
简单回答
图文对齐(Vision-Language Alignment)是让模型学会"图片和文本的语义对应关系"——看到一张猫的图片和"一只橘猫在晒太阳"这句话,知道它们描述的是同一件事。CLIP 和 SigLIP 通过对比学习实现这个对齐:把匹配的图文对在特征空间中拉近、不匹配的推远。它们训练出来的视觉编码器成为了后续 VLM 的"标准视觉前端",其对齐质量直接影响 VLM 的图像理解能力。
详细解释
图文对齐要解决什么问题
图像和文本是两种完全不同的信号——图像是像素矩阵,文本是离散的 token 序列。模型要理解"这张图片里有什么"并用文本描述,前提是它要能在某个共享的语义空间中把两者关联起来——一张狗的图片和"dog"这个词应该在语义空间中离得近,和"airplane"离得远。
这个"共享语义空间"的学习过程就是图文对齐。它是所有 VLM 的基础——没有好的图文对齐,VLM 就像一个看得见但"不认识"东西的人。
CLIP 的对比学习
CLIP(Contrastive Language-Image Pre-training)是 OpenAI 在 2021 年提出的,用了一种非常优雅的方法来做图文对齐。
训练数据是从互联网上收集的 4 亿对(图片, 文本描述)。训练目标是对比学习(Contrastive Learning):一个 batch 有 N 对图文,图像编码器把 N 张图编码成 N 个图像向量,文本编码器把 N 段文字编码成 N 个文本向量。然后计算所有 对的相似度——N 个对角线位置是正样本(匹配的图文对),其余 个是负样本(不匹配的)。用 InfoNCE 损失拉近正样本、推远负样本:
和 分别是第 张图和第 段文本的向量表示, 是余弦相似度, 是温度系数。图到文和文到图两个方向的 loss 对称地加在一起。
CLIP 训练完之后,图像编码器和文本编码器都学到了非常好的语义表示——给任意图片和文本算相似度,就能判断它们是不是在描述同一件事。这个能力被广泛用于图文检索、零样本分类等任务。
更重要的是 CLIP 的视觉编码器学到了通用的视觉语义表示——它不是为某个特定任务训练的,而是通过海量图文数据学到了广泛的视觉概念。这使得 CLIP 的 ViT 成为了后续几乎所有开源 VLM 的视觉前端首选。
SigLIP 的改进
SigLIP(Sigmoid Loss for Language Image Pre-Training, Google, 2023)在 CLIP 的基础上做了一个关键改进——把 Softmax 对比损失替换成了 Sigmoid 二元分类损失:
其中 , 如果 (正样本),否则为 0。
Softmax 对比损失要在整个 batch 上做归一化(分母是所有负样本的求和),这要求全局的通信和同步,在分布式训练中成本很高。Sigmoid 损失对每一对独立计算,不需要全局归一化,训练效率更高,可以用更大的 batch size。
实验表明 SigLIP 在同等训练资源下效果略优于 CLIP,而且更容易扩展到更大规模。PaliGemma(Google 的 VLM)就用了 SigLIP 作为视觉编码器。
对比学习在 VLM 中的角色
对比学习方法(CLIP、SigLIP、EVA-CLIP 等)在 VLM 生态中扮演的是"视觉编码器预训练"的角色。它们训练出来的 ViT 被后续的 VLM 直接拿来用(冻结或微调),省去了从零训练视觉编码器的巨大成本。
换句话说,CLIP/SigLIP 解决的是"看到什么"的问题(视觉特征提取和图文对齐),后续的 LLM 解决的是"怎么说"的问题(基于视觉特征生成自然语言回答)。
图文对齐的质量怎么衡量
常用的 benchmark 包括 zero-shot 图像分类(在 ImageNet 上不微调直接分类)、图文检索(给图找文、给文找图的 Recall@K)。在 VLM 场景下,更关注下游任务的表现——VQA(Visual Question Answering)、图像描述(Image Captioning)、文档理解等。
对齐质量差的典型表现是 VLM 出现"视觉幻觉"——模型看到图片中没有的东西(比如图片里有三个苹果,模型说有五个)。这往往不是 LLM 的问题,而是视觉编码器没有正确提取图像信息,或者投影层没有把视觉特征正确"翻译"给 LLM。
面试时可以这样答
图文对齐是让模型学会图片和文本的语义对应关系。CLIP 用对比学习的方式实现——一个 batch 的图文对,匹配的拉近、不匹配的推远。训练出来的视觉编码器既有很强的通用视觉理解能力,又和文本语义空间对齐了。
SigLIP 是 CLIP 的改进版——把 Softmax 损失换成 Sigmoid 二元分类损失,每一对独立计算不需要全局归一化,训练效率更高,效果也略好。
这些对比学习方法在 VLM 中的角色是"视觉前端预训练"——它们训练出来的 ViT 被后续的 VLM 直接复用。可以说 CLIP/SigLIP 解决"看到什么",LLM 解决"怎么说"。对齐质量直接影响 VLM 的视觉理解能力——对齐差了模型就容易出现视觉幻觉,看到图片里没有的东西。
常见追问
- CLIP 的训练数据量有多大?数据质量有什么影响?
- 对比学习的温度系数 起什么作用?
- 除了对比学习,还有什么图文对齐的方法?