现有瓶颈
ImageNet 式监督把一张图压缩成一个离散类别。标签昂贵,任务边界由数据集预先规定,训练后的模型仍需要下游微调。
把互联网图文配对当作监督信号,在 4 亿对数据上学习共享语义空间;只写出类别名称和提示词,就能构造零样本图像分类器。
传统视觉预训练依赖固定类别与人工标注。类别定义限制了模型能表达的概念,新增任务还需要新的标注与分类头。CLIP 检验一个核心假设:足够大规模的自然语言描述可以成为开放词汇监督,并把视觉表征直接迁移到未参与训练的数据集。
ImageNet 式监督把一张图压缩成一个离散类别。标签昂贵,任务边界由数据集预先规定,训练后的模型仍需要下游微调。
网页中的文字包含对象、属性、动作与场景。模型只需识别正确图文配对,便能学习比封闭类别更丰富的语义。
论文同时验证了规模化图文对比学习、自然语言构造分类器、跨 27 个数据集的迁移,以及分布偏移下的鲁棒性。
输入是一批图像及其配对文本。图像编码器和文本编码器把两种模态投到同一向量空间;训练目标同时从图像检索文本、从文本检索图像。
设 batch 中有 (N) 个配对样本 ({(I_i,T_i)}_{i=1}^{N})。归一化后的嵌入与缩放 logits 为:
\[ \mathbf{v}_i=\frac{f_{\theta}(I_i)}{\lVert f_{\theta}(I_i)\rVert_2},\qquad \mathbf{u}_j=\frac{g_{\phi}(T_j)}{\lVert g_{\phi}(T_j)\rVert_2},\qquad s_{ij}=\exp(t)\,\mathbf{v}_i^{\mathsf T}\mathbf{u}_j \]\(f_{\theta}\) 是图像编码器,\(g_{\phi}\) 是文本 Transformer,\(t\) 是学习得到的对数缩放参数。每行和每列只有对角位置为正样本。
第一项把图像 \(I_i\) 对应的正确文本排在其他 \(N-1\) 条文本之前;第二项执行反向检索。一个 batch 形成 \(N^2\) 个候选配对,其中 \(N\) 个为正样本。
比较修改版 ResNet 与 Vision Transformer。ResNet 使用三层 stem、anti-aliased blur pooling,并以 attention pooling 代替全局平均池化;ViT 主要沿用原始结构,只额外加入 patch 与 position embedding 的 LayerNorm。
12 层、宽度 512、8 个 attention heads 的 Transformer。文本采用小写 BPE,序列由开始和结束 token 包围;最高层在结束 token 位置的表示经过 LayerNorm 与线性投影得到文本嵌入。

对类别 \(c\) 写出提示 \(p(c)\),得到文本原型 \(\mathbf{w}_c\)。图像 \(I\) 的类别概率为:
\[ P(y=c\mid I)=\frac{\exp\left(\tau^{-1}\mathbf{v}(I)^{\mathsf T}\mathbf{w}_c\right)}{\sum_{k=1}^{K}\exp\left(\tau^{-1}\mathbf{v}(I)^{\mathsf T}\mathbf{w}_k\right)} \]这里 \(\mathbf{w}_c=g_{\phi}(p(c))/\lVert g_{\phi}(p(c))\rVert_2\),\(K\) 是类别数量,\(\tau\) 对应训练得到的 temperature。分类器权重来自文本编码器,没有下游梯度更新。
直接使用类别名称会产生分布差异与多义词问题。论文使用 A photo of a {label}. 等模板,并针对卫星图、纹理、食物等数据集加入领域描述。多个模板的文本嵌入先归一化、平均、再次归一化。prompt engineering 与 prompt ensembling 在 36 个数据集上平均提升接近 5 个百分点。
作者建立 WebImageText(WIT):以 50 万个查询收集互联网图文对,每个查询最多保留 2 万条,形成 4 亿对数据。该数据没有公开,因而完整训练无法独立复现。
| 数据构建 | 查询集合包含 Wikipedia 高频词、WordNet synset 名称与高 PMI 二元词;对每个查询限制样本数,以减轻头部查询垄断。论文没有公开 URL 清单、过滤器和去重实现。 |
|---|---|
| 训练目标 | 对称图文对比损失;论文先试验预测文字、词袋预测和 Transformer 文本建模,最终选择计算效率更高的图文配对目标。 |
| 优化器 | Adam 配合 decoupled weight decay、余弦学习率计划;混合精度、gradient checkpointing、半精度 Adam statistics 和分片相似度计算用于大 batch。 |
| 训练规模 | 所有模型训练 32 epochs,batch size 32,768。ViT-L/14 最后以 336 像素额外训练一个 epoch,记为 ViT-L/14@336。 |
| temperature | 初始化为 0.07 的等效值;训练期间限制 logit scale 最大为 100,防止缩放无界增长。 |
| 计算成本 | RN50x64 使用 592 张 V100 训练 18 天;ViT-L/14 使用 256 张 V100 训练 12 天。论文主结果默认指 ViT-L/14@336。 |
| 模型族 | 变体 | 预训练 epochs | batch | 文本 Transformer | 说明 |
|---|---|---|---|---|---|
| Modified ResNet | RN50 / RN101 / RN50x4 / RN50x16 / RN50x64 | 32 | 32,768 | 12 层,width 512,8 heads | 按 EfficientNet 式原则同时扩展 width、depth 与 resolution |
| Vision Transformer | ViT-B/32 / B/16 / L/14 | 32 | 32,768 | 同左 | patch size 写在模型名中 |
| High resolution | ViT-L/14@336 | 32 + 1 | 32,768 | 同左 | 最后一个 epoch 使用 336×336 输入 |
论文在 OCR、动作识别、地理定位、细粒度分类、场景、纹理与通用对象识别上测试统一模型。它还用线性探针衡量冻结表征,并研究 ImageNet 分布偏移下的有效鲁棒性。
| 方法 | aYahoo | ImageNet | SUN397 |
|---|---|---|---|
| Visual N-Grams | 72.4 | 11.5 | 23.0 |
| CLIP | 98.4 | 76.2 | 58.5 |
作者明确提醒这不是受控比较:CLIP 使用约 10 倍数据、接近 100 倍推理计算,训练计算可能超过 1,000 倍。
| 数据集 | RN50 | RN101 | RN50x4 | RN50x16 | RN50x64 | ViT-B/32 | ViT-B/16 | ViT-L/14 | L/14@336 |
|---|---|---|---|---|---|---|---|---|---|
| Food101 | 81.1 | 83.9 | 86.8 | 90.5 | 91.8 | 84.4 | 89.2 | 92.9 | 93.8 |
| CIFAR10 | 75.6 | 81.0 | 79.2 | 82.2 | 86.8 | 91.3 | 91.6 | 96.2 | 95.7 |
| CIFAR100 | 41.6 | 49.0 | 48.9 | 54.2 | 61.3 | 65.1 | 68.7 | 77.9 | 77.5 |
| Birdsnap | 32.6 | 37.2 | 41.6 | 45.9 | 48.9 | 37.8 | 39.1 | 48.3 | 49.5 |
| SUN397 | 59.6 | 59.9 | 62.7 | 65.0 | 66.9 | 63.2 | 65.2 | 67.7 | 68.4 |
| Stanford Cars | 55.8 | 62.3 | 67.9 | 72.3 | 76.0 | 59.4 | 65.6 | 77.3 | 78.8 |
| FGVC Aircraft | 19.3 | 19.5 | 24.6 | 30.3 | 35.6 | 21.2 | 27.1 | 36.1 | 37.2 |
| VOC2007 | 82.1 | 82.4 | 83.0 | 82.9 | 83.8 | 83.1 | 83.9 | 84.1 | 84.3 |
| DTD | 41.7 | 43.9 | 49.3 | 52.8 | 53.4 | 44.5 | 46.0 | 55.3 | 55.7 |
| Oxford Pets | 85.4 | 86.2 | 88.1 | 89.7 | 93.4 | 87.0 | 88.9 | 93.5 | 93.5 |
| Caltech101 | 82.1 | 85.1 | 86.0 | 87.6 | 90.6 | 87.9 | 89.3 | 92.6 | 92.8 |
| Flowers102 | 65.9 | 65.7 | 68.0 | 71.9 | 77.3 | 66.7 | 70.4 | 78.7 | 78.3 |
| MNIST | 66.6 | 59.3 | 75.2 | 80.0 | 90.8 | 51.9 | 56.0 | 87.2 | 88.3 |
| FER2013 | 42.2 | 45.6 | 51.1 | 56.0 | 61.0 | 47.3 | 52.7 | 57.5 | 57.7 |
| STL10 | 94.3 | 96.7 | 96.4 | 97.8 | 98.3 | 97.2 | 98.2 | 99.3 | 99.4 |
| EuroSAT | 41.1 | 33.1 | 35.0 | 40.3 | 59.4 | 49.4 | 54.1 | 59.9 | 59.6 |
| RESISC45 | 54.2 | 58.5 | 59.2 | 64.4 | 69.7 | 60.3 | 65.5 | 71.6 | 71.7 |
| GTSRB | 35.2 | 38.3 | 35.7 | 39.6 | 47.9 | 32.2 | 43.3 | 50.3 | 52.3 |
| KITTI Distance | 42.2 | 33.3 | 26.0 | 33.9 | 33.2 | 39.4 | 44.0 | 23.1 | 21.9 |
| Country211 | 16.1 | 16.9 | 20.2 | 24.0 | 29.6 | 17.8 | 23.3 | 32.7 | 34.9 |
| PatchCamelyon | 57.6 | 55.2 | 57.5 | 62.5 | 65.0 | 58.4 | 48.1 | 58.8 | 63.0 |
| UCF101 | 63.6 | 62.2 | 65.5 | 68.7 | 74.1 | 64.5 | 69.8 | 76.2 | 76.9 |
| Kinetics700 | 43.5 | 46.7 | 49.0 | 53.4 | 56.8 | 47.8 | 52.4 | 60.3 | 61.3 |
| CLEVR Counts | 20.3 | 28.1 | 17.0 | 17.6 | 27.5 | 24.8 | 23.4 | 24.3 | 24.8 |
| Hateful Memes | 59.7 | 61.1 | 58.3 | 58.9 | 62.1 | 57.6 | 61.7 | 63.3 | 63.3 |
| Rendered SST2 | 56.9 | 64.2 | 66.6 | 67.6 | 70.7 | 59.6 | 59.8 | 64.0 | 67.9 |
| ImageNet | 59.6 | 62.2 | 65.8 | 70.5 | 73.6 | 63.2 | 68.6 | 75.3 | 76.2 |
论文冻结视觉编码器,在 12 个中间特征层中选择表示,并使用 L-BFGS 训练带正则的逻辑回归。CLIP ViT-L/14 的平均得分超过 EfficientNet-L2;不同数据集仍有显著差异。
在 ImageNetV2、ImageNet Sketch、ImageNet-A、ImageNet-R 与 ObjectNet 上,零样本 CLIP 相对于其 ImageNet 准确率呈现更高的有效鲁棒性。微调提升 ImageNet 内部分数时,这部分优势会缩小。
论文专门测试任务缺口、社会偏差、监控用途与训练数据污染。结果说明 prompt 设计和类别集合本身会改变系统行为。
| 任务弱点 | 精确计数、物体间距离和细粒度类别表现较弱;CLEVR counting 接近随机水平。MNIST 零样本约 88%,仍低于人类报告的 99.75%。 |
|---|---|
| 类别设计敏感性 | FairFace 上加入不同类别会改变错误归类。0–20 岁人群被分入贬损类别的比例可达 32.3%;增加“child”类别后降至 8.7%。 |
| 人物识别 | 对 100 个候选名人类别达到 59.2%,扩展到 1,000 类后降至 43.3%。这说明模型具有一定身份关联能力,也带来隐私与监控风险。 |
| 数据污染 | 作者通过文本重叠和重复检测估计评测数据泄漏,并报告总体影响有限;WIT 未公开使第三方无法完整审计来源、授权、重复与删除请求。 |
| prompt 敏感性 | 类别名称、模板和上下文直接决定分类器。测试集上的模板选择可能引入人工调参收益,也削弱“完全无需下游知识”的表述。 |
| 公开仓库 | 提供模型加载、图像预处理、tokenize、编码和相似度计算;发布 RN50、RN101、RN50x4、RN50x16、RN50x64、ViT-B/32、ViT-B/16、ViT-L/14 与 ViT-L/14@336 权重。 |
|---|---|
| 序列长度 | 论文正文称文本序列上限为 76;官方 clip.tokenize 的 context_length 默认为 77。复现时应按 checkpoint 的 77 维 positional embedding 使用接口值。 |
| 词表计数 | 正文描述约 49,152 个 BPE vocabulary;附录配置与公开模型使用 49,408,后者包含编码器实际索引空间和特殊 token。两处数字的计数口径不同。 |
| 训练缺口 | 仓库没有 WIT 数据清单、抓取与过滤流程,也没有论文规模训练脚本。发布权重可复现实验推理,无法独立重建完整预训练。 |
| 输入预处理 | 官方接口按模型输入分辨率 resize、center crop、RGB 转换和固定均值方差归一化。零样本分类还需要用户自行定义类别与模板。 |
官方推理核心可以写成:
\[ \hat y=\underset{c}{\operatorname{arg\,max}}\;100\,\frac{f_{\theta}(I)}{\lVert f_{\theta}(I)\rVert_2}^{\mathsf T}\frac{g_{\phi}(p(c))}{\lVert g_{\phi}(p(c))\rVert_2} \]代码示例乘以 100 后执行 softmax;模型内部学习的 logit_scale 才是训练所得缩放,示例常数用于展示分类概率。
本地论文:Reading/Papers/2103.00020v1.pdf。外部图片来自 OpenAI 官方页面;页面需要联网加载图片与 MathJax。