← 总目录 / 板块四 · 多模态模型的发展
板块四 · 多模态模型的发展

第33篇 · CLIP

用4亿对图文对做对比学习,让视觉模型第一次学会"零样本"看世界
Learning Transferable Visual Models From Natural Language Supervision · Radford et al., OpenAI · 2021 · arXiv:2103.00020

来源声明:本页所有数字均复述自论文原文(arXiv v1),未做外部验证;标注【解读者补充】【解读者观点】的内容不来自论文。CLIP 原文第 6 节后半、第 7 节与第 9 节在抓取中未能完整核验,涉及处已标注。

一、全局大图

摘要拆解对照表(兼导航)

摘要短语对应原文章节本页解读位置
"预测哪条说明文字配哪张图是高效可扩展的预训练任务"§2.3 选择高效预训练方法第三章·逐章精读 B
"从互联网收集的4亿(image, text)对"§2.2 创建足够大的数据集(WIT)第三章·逐章精读 A
"自然语言用于引用已学视觉概念,实现零样本迁移"§3.1 Zero-Shot Transfer第三章·逐章精读 C
"在30多个数据集上基准测试,常与全监督基线竞争"§3.1.5 / §3.2 表征学习 / 附录A第三、四章
"零样本匹配原始ResNet-50在ImageNet上的准确率"§3.1.3 与Visual N-Grams对比第三章·逐章精读 C
"对自然分布偏移更鲁棒"§3.3 鲁棒性分析第三章·逐章精读 D
"与人类表现的比较 / 数据重叠分析 / 局限性"§4 / §5 / §6第四章·批判性阅读

主要贡献与证据强度预评

#论文声称的贡献预评证据强度
1对比目标比预测式目标(生成caption/BOW)训练效率高得多:BoW基线快3倍,再换对比目标又快4倍强实验支撑 图2直接给出效率曲线
2零样本CLIP在ImageNet达76.2%,匹配备ResNet-50且不用其128万训练样本强实验支撑 主结果表1
3零样本迁移性能随算力呈log-log线性平滑提升(44×算力范围)强实验支撑 图9,但单任务噪声大
4零样本CLIP的有效鲁棒性大幅优于同精度监督模型(差距最高缩小75%)较强但有混杂 图13-15,因果归因作者自认不确定
5线性探针评测下CLIP特征超过最佳公开ImageNet模型(21/27数据集胜Noisy Student EfficientNet-L2)强实验支撑 图10/11
6"自然语言监督优于人工众包标注范式"这一框架性主张部分主张 由结果间接支持,非受控比较
知识依赖主干线:自然语言监督的动机(§2.1)→ 大规模数据WIT(§2.2)→ 对比目标(§2.3,枢纽节点:后面所有实验都建立在这个损失函数上)→ 模型缩放(§2.4)→ 零样本分类机制"文本编码器即超网络"(§3.1.2)→ 鲁棒性与表征质量分析。
推荐阅读路线。必读主线:§1引言 → §2.3对比目标 → §3.1.2零样本机制 → §3.1.3主结果 → §3.3鲁棒性 → §6局限。可跳读支线:§2.4模型缩放细节(只影响复现)、附录A线性探针配置、§8相关工作。跳过§2.3的代价是看不懂图2的"3倍/4倍效率"论证——那是本文最核心的方法论证据。

二、失效模式先行:监督式视觉分类到底疼在哪

【论文声称,见§1】2012年后的SOTA视觉系统被训练去预测一个固定、预先确定的类别集合。这带来两个具体痛点:(1) 要识别任何新概念就得额外标注数据——想加一个类别就重新标一遍;(2) 任务不可迁移——为ImageNet训练的输出头无法直接用在OxfordPets上。与之对照,NLP里GPT-3已经证明"从原始文本预训练+零样本迁移"可以和专用模型竞争。CLIP要回答的问题是:视觉领域能否复制这条路?

【解读者补充】此前的尝试为什么失败?Visual N-Grams(Li et al., 2017)做过零样本ImageNet,但只有11.5%准确率——不仅远低于当时SOTA的88.4%(Noisy Student EfficientNet-L2),甚至低于经典方法的约50%。差距不在想法而在规模:VirTex/ICMLM/ConVIRT只在十万到二十万张图上训几天,而Instagram hashtag类工作用的是十亿级图片。CLIP的全部故事就是把这个缺口补上。

三、逐章精读

A. 数据集 WIT:4亿图文对怎么来的(原文§2.2)

来源:论文§2.2。学习目标:学完你能说出WIT的构造规则(50万查询词、每查询上限2万对)、并能解释为什么要按类平衡采样。

失效模式先行:现成图文数据不够用——MS-COCO和Visual Genome各只有约10万张训练照片;YFCC100M有1亿张但元数据稀疏(大量文件名如 20160716_113957.JPG 充当"title"),过滤出含自然语言英文标题/描述后只剩1500万张——和ImageNet差不多大,撑不起这个野心。

方案:从互联网公开来源收集,构造时检索文本包含50万个查询词之一的图文对【解读者补充:基础查询表=英文维基百科中出现≥100次的词,再加高互信息二元组、高搜索量词条名、全部WordNet synsets】,每个查询最多纳入20,000对以近似类平衡。最终总词量与GPT-2的WebText数据集相当。论文称其为WIT(WebImageText)。【实验支持】附录D还做了YFCC100M上的消融,说明旧数据确实不行。

常见误读①:"WIT是清洗干净的标注数据集"。错——它本质是不去重的弱标注网络爬取数据,质量靠规模和多样性兜底。
常见误读②:"4亿=4亿个不同图像"。论文没有给出唯一图像数的分解,只说4亿对;同一图可能配多段文本。此处原文未给数值,不做推断。

工程账单:这一步缓解了"监督信号稀缺",新增了"数据噪声与偏见"(§7专门讨论偏见与监控风险),并为§5的数据重叠分析埋下伏笔——训练数据和测试集可能重叠。

一句话记住本节:WIT不是更好的标注,而是更多的监督——50万查询词×每词2万对的粗过滤网格。

闭卷自检:不看材料,我能说出YFCC100M过滤后剩多少张吗?查询词数量和每查询上限是多少吗?

B. 对比目标:为什么"选对配对"比"写出文字"高效7倍(原文§2.3)

来源:论文§2.3与图2。学习目标:学完你能手推一批内对比损失的形状流,并解释3倍与4倍两个效率数字各自的含义。

直觉类比:预测式方法像让学生默写课文原文;对比方法像做连线配对题——只需判断哪张图配哪句话。连线题的判分信号密度更高:一道N题的连线卷每个错误选项都提供梯度。【解读者观点】

公式手术:给定一批 N 个(image, text)对,CLIP要在这 N×N 种可能配对中识别真正发生的N个:

score(i,j) = cos(Ii, Tj),损失 = 对称交叉熵 over score矩阵
符号它是什么直觉
Ii ∈ ℝd_e第i张图的嵌入(线性投影后)图在多模态空间的坐标
Tj ∈ ℝd_e第j条文本的嵌入文本在多模态空间的坐标
N批大小,实际为32,768(§2.5)负例数=N−1,越大越难
τ温度参数,log参数化、可学习,初始化等价于0.07,logits裁剪至不超过100softmax锐度旋钮

维度流:N张图 → 编码 → [N, d_e];N条文本 → 编码 → [N, d_e];余弦相似度 → [N, N]矩阵;沿行、沿列各做一次交叉熵再平均(对称)。注意:CLIP去掉了SimCLR式的非线性投影头,只用一层线性投影,且作者称没观察到训练效率差异(§2.3)【论文声称】。

手算验证(数字对账):图2的两个数字——63M参数的语言模型(已用两倍于ResNet-50编码器的算力)学ImageNet类别的速度比BoW基线慢3倍;把预测目标换成对比目标后再提速4倍。合起来:对比目标相对"transformer预测式"路线的总效率优势约为3×4=12倍。这是论文选择该目标的全部依据,也是"简单任务反而更强"的经典案例。

类比在哪里失效:连线题类比暗示"只要配对对了就行"。但对比学习学到的是"哪些东西不像",它不保证学到细粒度区分——这正是§3.1.5中CLIP在Flowers102、FGVCAircraft上输给监督线性探针10个点以上的根源之一。

一句话记住本节:别让模型复述文字,让它做N×N连线题——同样的算力,学习信号密了一个量级。

闭卷自检:我能说出batch size多大、温度参数怎么处理、非线性投影头去留吗?

C. 零样本分类:文本编码器是一个超网络(原文§3.1)

来源:论文§3.1.2–3.1.5。学习目标:学完你能(a)把零样本分类写成标准线性分类器形式并指出每一项对应什么;(b)复述prompt engineering带来的具体增益;(c)说出至少三个CLIP零样本失手的任务类型。

机制:对目标数据集的每个类名,用文本编码器算一个嵌入;图像嵌入与各类文本嵌入算余弦相似度,乘温度τ后softmax。关键重述【原文】:这层预测等价于"L2归一化输入、L2归一化权重、无偏置、带温度缩放的多项逻辑回归";文本编码器是为线性分类器生成权重的超网络。换个视角:每次预训练迭代相当于优化一个"每类仅1个样本、共32,768个类"的代理分类任务——这就是零样本能力的训练源头。

主结果对账(表1,§3.1.3):

数据集Visual N-GramsCLIP
aYahoo72.498.4(错误数减少95%)
ImageNet11.576.2(top-5为95%,追平Inception-V4)
SUN23.058.5(翻倍以上)

76.2%恰好匹配原始ResNet-50的全监督准确率,而CLIP没用那128万张标注。但作者立刻自我设限:这不是公平的方法对比——CLIP数据量大10倍、单次推理算力高近100倍、总训练算力可能超千倍。

Prompt engineering的账(§3.1.4):默认模板"A photo of a {label}."单独就在ImageNet上提升1.3%;集成80个上下文提示再提升3.5%;合计近5%。集成是在嵌入空间做的(平均文本嵌入并缓存),摊销后集成成本≈单分类器——这是个漂亮且常被忽略的工程细节。动机层面:类名有一词多义问题(ImageNet同时有起重机和鹤,OxfordPets的boxer是狗不是拳手),模板补上了语境。

哪里赢哪里输(§3.1.5,27数据集 vs ResNet-50特征+监督线性探针):16/27获胜。大胜项:Stanford Cars、Food101领先超20%;Kinetics700领先14.5%、UCF101领先7.7%(作者猜测语言监督覆盖动词类概念)。大败项:EuroSAT、RESISC45(卫星图)、PatchCamelyon(淋巴结肿瘤)、CLEVRCounts(计数)、GTSRB(交通标志)、KITTI Distance——复杂、抽象或专业任务。STL10达99.3%创当时新SOTA。零样本性能与全监督线性探针性能相关系数0.82(p<10⁻⁶);大多数数据集上零样本仍落后线性探针10~25个点。

少样本对照:零样本CLIP≈同特征空间上4-shot逻辑回归的平均水平;也大致追平评测套件中最佳16-shot分类器(BiT-M ResNet-152x2特征)。数据效率估计(图7):中位数每类5.4个样本,均值20.8,最好情况184个。

主张vs事实:"零样本匹配监督基线"【实验支持】;"语言监督覆盖动词概念所以视频动作识别强"【论文声称,作者自用speculate】;"CLIP学会了通用视觉概念"【解读者观点:更稳妥的说法是它学会了把视觉特征对齐到英语语义空间】。

一句话记住本节:零样本分类不是魔法——是把"类名"喂给超网络,现场生成一套无偏置线性分类器权重。

闭卷自检:我能算出prompt engineering合计带来多少点ImageNet增益吗?能列出三个CLIP接近随机的任务类型吗?

D. 分布偏移下的鲁棒性:有效鲁棒性的首次大规模展示(原文§3.3)

来源:论文§3.3,引用Taori et al. (2020)的7个自然分布偏移数据集(ImageNetV2、Sketch、Youtube-BB/ImageNet-Vid、ObjectNet、Adversarial、Rendition等)。学习目标:学完你能区分"相对鲁棒性"与"有效鲁棒性",并复述"+9.2%却换来零OOD收益"这个核心实验。

失效模式先行:ResNet-101在这7个偏移数据集上的错误数是ImageNet验证集的5倍。以往文献把锅扣给深度学习本身,CLIP提供了一个新的自变量:一个不在ImageNet分布上训练过的强模型。

结果三连:(1) 所有零样本CLIP模型大幅改善有效鲁棒性,把ImageNet精度与偏移精度之间的差距最多缩小75%(图13)。(2) 但把CLIP适配到ImageNet(在其训练集上拟合L2正则逻辑回归)后,域内精度+9.2%升至85.4%(追平2018年SOTA),平均偏移精度却不升反微降:ImageNet-R −4.7%、ObjectNet −3.8%、Sketch −2.8%、ImageNet-A −1.9%;唯一下涨的是与ImageNet同构的ImageNetV2。(3) 为每个数据集定制零样本分类器可再提5%有效鲁棒性,连ObjectNet也+2.3%。few-shot介于两者之间:适配数据越多,有效鲁棒性红利越薄。

常见误读:"这证明了ImageNet监督训练导致鲁棒性差"。作者明确否认能下此结论(脚注4及正文):可能是大数据、可能是语言监督、也可能是零样本评估方式本身,混杂因素未分离。正确表述是:零样本评估方式与高有效鲁棒性强相关,机制未知。

类比在哪里失效:"零样本模型没有可利用的虚假相关"这句话本身要打折扣——原文脚注4提醒,若预训练分布与评测分布共享某些偏差(如互联网图片的构图习惯),零样本模型照样可以利用它们。

一句话记住本节:域内涨9.2个点、分布外一分不涨——"有效鲁棒性"这个第二坐标轴,专治只看单一榜单的思维。

闭卷自检:我能说出相对鲁棒性和有效鲁棒性的定义区别吗?四个下降数据集的名字和幅度?

四、批判性阅读

4.1 benchmark到底测什么

论文自己承认(§3.1.1):CIFAR-10这类数据集其实测不出任何"真实任务",只能测分布稳健性;SVHN至少对应街景门牌转录。因此"30多个数据集"的评测套件内部异质性很高——有的是任务泛化,有的是分布泛化,混在一起报平均值会掩盖这一点。FID之外,本文的主指标是各数据集自带准确率,比较对象是"ResNet-50特征+逻辑回归"这一刻意选低的基线——赢了它不代表接近SOTA(§6承认零样本整体距SOTA仍需约1000倍算力)。

4.2 比较公平性

与Visual N-Grams的比较被明说"不应解读为方法对比"(§3.1.3):数据10倍、推理算力近百倍、训练算力可能上千倍。与BiT/JFT系列比较时也注明最强模型未公开发布,存在"打不到的对手"。人机对比(§4,OxfordPets)很有启发性但设置不对称:人类零样本53.7%(全体均值)对CLIP的93.5%,可人类one-shot就跳到80.3%(多数投票口径),且人类能用先验知识而模型的few-shot不能——论文据此指出机器少样本学习方法论仍有大缺口,这段反而是全文最诚实的地方。

4.3 第二坐标轴:成本

RN50x64用了592块V100训18天;最大ViT用256块V100训12天(§2.5)。ViT-L/14@336px是所有报告结果的默认"CLIP"。这些数字放在2021年是巨款,论文正文没有集中列表格呈现总成本,需要读者自行拼装。

4.4 论文没有告诉你什么

五、综合考核

5.1 重建因果链

  1. L4仅从"76.2%(零样本)"、"4亿对"、"32,768批大小"三个数字出发,推演这篇论文必须依次解决哪三类问题,以及每个数字分别逼出了什么。(提示:监督信号来源→训练效率→批量与负例的关系)
    参考答案与评分标准要点:(1)"4亿对"逼出数据获取与过滤策略(50万查询词+类平衡,否则退回YFCC的1500万困境);(2)"32,768批大小"逼出对比目标的工程实现——负例数量由批大小决定,因此需要梯度检查点、半精度Adam状态、嵌入相似度分片计算等省显存手段(§2.5全部列了这些);(3)"76.2%"逼出零样本机制设计——必须有一个能把任意类名变成分类器权重的通道,即文本编码器作为超网络。评分:每条2分,须指明数字↔问题的对应关系;只罗列不建立对应得一半。
  2. L3有人说:"CLIP零样本这么强,说明对比学习天然优于监督学习。"构造至少两个反例驳斥。(变式:边界在哪里?)
    参考答案反例一:同为线性探针设定,CLIP在CIFAR10/CIFAR100低分辨率数据集和PatchCamelyon上仍输给Noisy Student EfficientNet-L2(§3.2),说明并非全面碾压。反例二:把CLIP适配到ImageNet后有效鲁棒性红利消失(§3.3图14),说明"强"很大程度来自零样本评估方式而非表征本质。反例三:EuroSAT/GTSRB等任务零样本很差,而监督小模型轻松解决。评分要点:每个反例须引用文中具体数据集/数字;指出"对比vs监督"混淆了"目标函数"与"评估方式"两个变量者满分。

5.2 数字总对账

  1. L1prompt engineering单项+1.3%、80提示集成+3.5%,论文说两者合计"almost 5%"。对账是否自洽?
    标准答案1.3+3.5=4.8,与"almost 5%"一致,自洽。注意增益不可精确相加(非线性),论文措辞"almost"已留余地。
  2. L2图2说BoW基线比transformer语言模型快3倍,对比目标再快4倍。若某预测式方法需1200 GPU日达到某零样本精度,同等条件下BoW基线和CLIP各需约多少?(假设倍数可乘)
    标准答案BoW:1200/3=400 GPU日;CLIP:1200/3/4=100 GPU日。容差:±10%。解析:倍数相乘是论文叙述的自然读法,但严格说两条曲线来自不同实验设置,此题为理想化估算。

5.3 设计决策答辩

  1. L4答辩题:为什么去掉非线性投影头?为什么温度参数设为可学习?为什么文本序列长度砍到76?每问需答"为什么这样做+不这样做会怎样"。
    参考答案与评分标准①非线性头:论文称未观察到效率差异,并推测它与纯图像自监督方法的特性共适应(§2.3)——去掉简化实现;不这样做最多持平、增加调参面。②温度:控制logits范围影响对比损失的难度分配;固定值需人工调参,可学习让模型自适应批次难度;代价是要裁剪到100防不稳定(§2.5),说明自动学出来的τ确实会走向危险区。③长度76:网页alt文本/caption大多短句,长序列纯属浪费算力;不这样做则吞吐下降、能处理的描述类型略多。评分:每问"理由+后果"各占一半;答不出裁剪到100这个细节扣1分。

5.4 证据审计(回看第一章预评)