原文摘要 · English Abstract
We demonstrate that the simple pre-training task of predicting which caption goes with which image is an efficient and scalable way to learn SOTA image representations from scratch on a dataset of 400 million (image, text) pairs collected from the internet. After pre-training, natural language is used to reference learned visual concepts, enabling zero-shot transfer of the model to downstream tasks.
概要
CLIP 提出用「自然语言」而非「固定类别标签」来监督视觉表征学习:从互联网收集 4 亿组(图像, 文本)对,训练图像编码器与文本编码器把配对样本拉近、不配对样本推远,从而学到一个开放、可迁移的图文共享嵌入空间。预训练完成后,任意视觉概念都能用一句自然语言描述来查询,模型无需任何下游标注数据即可零样本迁移到 30 多个数据集,涵盖分类、OCR、动作识别、地理定位等任务,在 ImageNet 上零样本准确率追平有监督训练的 ResNet-50。
此前主流做法是在人工标注的固定类别数据集(如 ImageNet 1000 类)上训练分类器,识别新类别就要重新收集标注数据,模型学到的是「预测类别 ID」而非「理解视觉概念」。已有从图文对学表征的尝试(VirTex、ICMLM、ConVIRT),但训练规模只有十万到二十万张图片、量级停留在加速器天而非年,效果远不如有监督基线。CLIP 要解决的正是「自然语言监督能否在视觉领域复现 NLP 预训练的成功」。
关键贡献
- 构建了 4 亿规模的 WIT 图文对数据集,把自然语言监督的规模从此前工作的十万级图片一举扩大到互联网级别
- 证明对比目标比逐词预测目标训练效率高 4 倍,找到了让自然语言监督真正可扩展的训练方式
- 把零样本分类重新表述为「用文本生成线性分类器权重」,让分类问题变成检索相似度问题,无需任何针对任务的训练
- 在 30 多个数据集上系统评测零样本迁移能力,多次追平甚至超过专门在该数据集上训练的有监督模型
- 发现提示词工程与多模板集成能大幅提升零样本准确率,为后续视觉-语言模型的提示设计提供了实证基础
- 验证了零样本 CLIP 相比同精度的有监督 ImageNet 模型在自然分布偏移下更鲁棒,揭示零样本评测比域内准确率更能反映任务学习能力
方法详解(完整做法)
总体思路
CLIP 不训练一个只能预测固定类别的分类器,而是学一个「图像-文本共享嵌入空间」:给定一批(图像, 文本)对,图像编码器和文本编码器分别把输入映射到同一维度的向量,训练目标是让真正配对的图文向量相似度高、不配对的相似度低。预训练完成后,任何下游分类任务都可以转化为「图像嵌入和一组类别名文本嵌入比相似度、取最大」,从而不需要针对任务收集标注数据即可完成识别。整个流程是:收集 4 亿(image, text)对 → 双塔编码并做 L2 归一化 → 计算 batch 内相似度矩阵 → 用对称对比损失训练 → 推理时把类别名套入提示模板生成零样本分类器。
双塔编码与相似度矩阵
图像编码器 (ResNet 或 Vision Transformer)与文本编码器 (Transformer)分别把一批图像和文本映射到同一维度的嵌入,再做 L2 归一化,使相似度只取决于方向而非模长:
归一化后的嵌入两两做内积即得到一个 的余弦相似度矩阵 ,对角线 对应真正配对的图文,非对角线对应批内随机组成的负样本对。
对称 InfoNCE 对比损失
给定一批 个(图像, 文本)对,CLIP 的训练目标是从 种可能的配对中识别出真正共同出现的那 对。做法是把相似度矩阵按温度 缩放后,分别沿「图→文」与「文→图」两个方向各做一次 softmax 交叉熵,再取平均:
温度 作为可学习的对数参数化标量直接随梯度更新,训练中被裁剪防止把 logits 放大超过 100 倍,避免训练不稳定;这样省去了把 当超参数网格搜索的成本。
为什么选对比目标而非逐词预测目标
最初的尝试是让图像 CNN 和文本 Transformer 联合训练去预测图像配的确切文字,类似 VirTex 的做法,但这个目标很难高效扩展:论文实测一个 6300 万参数、算力已经是图像编码器两倍的文本 Transformer,学会识别 ImageNet 类别的速度反而比预测词袋编码的简单基线慢 3 倍。原因是配图文字的表达方式千变万化,逐字预测把模型的容量浪费在了拟合措辞细节上。把目标换成「只判断整段文本是否与图像配对」的对比任务后,词袋基线在零样本迁移到 ImageNet 的效率上又提升了 4 倍——这正是 CLIP 选择对比损失而非生成式或判别式逐词预测的核心原因。
零样本迁移:把分类问题变成检索问题
给定 个候选类别,先用统一的提示模板(如「A photo of a {label}.」)把每个类别名扩展成一句完整的句子,经文本编码器得到 个类别嵌入,再与图像嵌入算余弦相似度,取相似度最大的类别作为预测:
提示模板很关键:仅仅用「A photo of a {label}.」代替裸类别词,就能把 ImageNet 零样本准确率提升 1.3 个百分点,因为预训练里图文对的文本几乎都是完整句子而非孤立单词;进一步对同一类别集成 80 个不同提示模板的文本嵌入(在嵌入空间取平均,推理成本不变),又能再提升 3.5 个百分点。这种「用语言直接指定视觉概念」的方式,本质上是把文本编码器当作一个按输入文本生成分类器权重的超网络。
规模化:模型与算力的联合缩放
CLIP 训练了 5 个 ResNet(含用 ResNet-D 改进、抗混叠模糊池化、注意力池化替换全局平均池化的 RN50 系列)和 3 个 ViT(B/32、B/16、L/14)。ResNet 按 EfficientNet 的思路把额外算力同时均匀分配到宽度、深度、输入分辨率三个维度,而不是只加深或只加宽;文本编码器只按图像编码器宽度的增幅同比放宽度、不加深,因为实验发现 CLIP 的效果对文本塔容量不敏感。最大的 RN50x64 在 592 张 V100 上训练 18 天,最大的 ViT-L/14 在 256 张 V100 上训练 12 天,配合混合精度、梯度检查点等工程手段控制显存与耗时。
小结
CLIP 的关键是把「预定义类别监督」换成「自然语言监督下的图文对比学习」:双塔编码 + 对称 InfoNCE + 大 batch,训练出的图文共享嵌入空间让任何视觉概念都能用一句话查询,从而实现真正开放词表的零样本迁移。
实验与关键数据
CLIP 在 30 多个数据集上评测零样本迁移,与线性探针套件的现有最优模型对比,并用自然分布偏移数据集测鲁棒性、用 Oxford-IIIT Pets 人类实验对比人机表现。结论:零样本 CLIP 可与有监督基线竞争,线性探针下最大模型超越此前最优模型,分布偏移下更鲁棒。
关键数据
影响与局限
CLIP 首次在互联网规模上证明自然语言监督可训练出通用、可迁移的视觉表征,把视觉从「预定义类别分类器」推向「开放词表检索式识别」。它的图文对齐嵌入空间成为后续多模态模型的基础组件:视频-语言模型靠它获得对齐的视觉 token,ImageBind、DALL·E 2 等以其嵌入空间为枢纽扩展到更多模态与生成任务。
局限与不足
CLIP 的零样本能力在细粒度、抽象或专业化任务上明显偏弱,例如卫星图像分类(EuroSAT、RESISC45)、淋巴结肿瘤检测(PatchCamelyon)、合成场景计数(CLEVRCounts)、交通标志识别(GTSRB)等,这类任务连非专家人类都能较好完成,说明零样本 CLIP 距离真正的通用视觉理解仍有明显差距。零样本迁移的数据效率在不同数据集间波动极大:多数数据集只需不到 5 张有标注样本即可被零样本 CLIP 追平,但也有数据集需要多达 184 张,平均数据效率被少数数据集拉高到 20.8 张,说明这种迁移能力并不稳定可靠。此外,CLIP 依赖互联网爬取的图文对,训练数据的构成和质量难以精确控制,论文自身的重叠分析也发现预训练数据与部分评测数据集之间存在若干比例的重复,可能小幅高估了报告的准确率;把 CLIP 适配到某个具体分布(如在 ImageNet 上做线性探针)虽然能提升域内准确率,但会显著削弱零样本阶段体现出的鲁棒性优势。