Skip to content

CLIP(Contrastive Language-Image Pre-training)

0. Abstract

  • 思想:直接从原始文本学习图像表征,利用互联网海量图文数据的广泛监督资源;传统预设固定有限类别标签的监督学习,限制了模型的通用性和可用性。
  • 做法:将“预测哪张图片与哪个文本说明(caption)匹配”作为预训练任务,在4亿个(图像-文本)配对数据集上从头训练。
  • 结果:实现零样本学习(zero-shot)——模型预训练完成后,无需下游任务的任何标注数据,仅通过自然语言描述即可直接完成该任务的预测;在30+计算机视觉数据集上表现优异,零样本情况下匹配ResNet-50在ImageNet上的准确率。

alt text

1. Introduction and Motivating Work

现有工作

  • NLP领域:Text-to-text标准化输入输出接口的预训练方法,使任务无关模型能零样本迁移到下游数据集;GPT-3等模型无需或少需数据集特定训练数据,就在多个任务上与专用模型竞争力,证明互联网规模文本的监督资源超越高质量人工标注NLP数据集。
  • 计算机视觉领域:传统依赖ImageNet等人工标注数据集预训练;早期已有探索从图像配对文本中学习视觉表征的工作(如预测文本中的名词形容词、流形学习等),但未实现大规模应用;近年VirTex、ICMLM等基于Transformer的方法虽有进展,但性能远低于主流监督模型。
  • 弱监督视觉预训练:通过Instagram标签、JFT-300M噪声标签预训练的模型,虽提升迁移性能,但监督类别固定(1000~18291类),缺乏动态输出机制,零样本能力有限。

探索的问题

通过大规模图文对预训练,能否让模型学习到可迁移的视觉表征,无需任务特定训练即可通过自然语言提示完成预测,实现零样本迁移;填补自然语言监督在视觉领域的规模缺口,验证其在计算机视觉的突破潜力。

2. Approach

2.1 Natural Language Supervision

  • 核心定义:将自然语言作为训练信号,学习视觉与语言的关联,而非依赖固定类别标签
  • 从自然语言学习的优势:
  • 容易规模化:无需将标注转化为机器学习兼容格式,可从互联网海量文本中被动学习。
  • 支持灵活零样本迁移:不仅学习视觉表征,还将其与语言关联,通过自然语言即可引用已学概念或描述新概念。

2.2 Creating a Sufficiently Large Dataset

现有数据集局限:

  • MS-COCO/Visual Genome:高质量人工标注,但规模小(各约10万张训练图),难以支撑大规模预训练。
  • YFCC100M:规模达1亿张,但元数据质量参差不齐

本文自主构建的数据集(WIT,WebImageText):

  • 规模:4亿个(图像-文本)配对样本,源自互联网公开来源。
  • 构建方式:基于50万个查询词(维基百科高频词、高互信息双词短语、维基词条名、WordNet同义词集)搜索,每个查询最多保留2万对,平衡各类概念覆盖。
  • 特点:文本总词数与GPT-2的训练数据集WebText相当,包含标题、描述、评论等多元文本形式,覆盖广泛视觉概念。

2.3 Selecting an Efficient Pre-Training Method

  • 初始尝试:模仿VirTex,联合训练图像CNN与文本Transformer预测图像对应的exact words,但计算效率低
  • 核心优化:采用对比学习目标(Contrastive Objective),替代生成式/预测式目标:
  • 任务:给定批量N个图文对,预测N×N可能配对中真实存在的N对。
  • 实现:联合训练图像编码器与文本编码器,最大化真实配对的余弦相似度,最小化错误配对的相似度,优化对称交叉熵损失。 Numpy-like pseudocode for the core of an implementation of CLIP
  • 效率提升:相比词袋预测目标,对比学习使零样本迁移效率提升4倍,成为高效规模化训练的关键。

alt text

涉及知识

2.4 Choosing and Scaling a Model

(1)图像编码器

  • 改进型ResNet:基于ResNet-50/101,融合ResNetD结构、抗锯齿池化,用注意力池化替代全局平均池化;后续按EfficientNet风格缩放,同步增加宽度、深度和输入分辨率,衍生出RN50x4、RN50x16、RN50x64等变体。
  • Vision Transformer(ViT):遵循原始ViT设计,仅在patch和位置嵌入后添加层归一化,优化初始化

涉及知识

  • ResNet, EfficientNet
  • 注意力池化,抗锯齿池化(池化前进行低通滤波)
  • ViT

(2)文本编码器

  • 架构:12层Transformer,采用Byte Pair Encoding (BPE)编码(词汇量49152),最大序列长度76,输入添加[SOS]和[EOS]token。
  • 特征提取:取Transformer最高层在[EOS] token的激活值,经层归一化后线性投影到跨模态嵌入空间。
  • 缩放策略:仅按图像编码器的宽度缩放比例同步增加文本编码器宽度,不改变深度,因模型性能对文本编码器容量敏感度较低。

2.5 Training

  • 训练配置:训练5个ResNet变体和3个ViT变体,均训练32个epoch;使用Adam优化器(ResNet:β1=0.9, β2=0.999;ViT:β1=0.9, β2=0.98),解耦权重衰减(0.2),余弦学习率调度,预热2000次迭代。
  • 关键参数:批量大小32768,温度参数τ(log参数化)动态优化(最大限制100),避免训练不稳定。
  • 效率优化:混合精度训练、梯度检查点、半精度Adam统计量,嵌入相似度计算分片处理;最大模型RN50x64需592块V100 GPU训练18天,ViT-L/14需256块V100 GPU训练12天。

疑问

这些参数怎么得到的?根据其含义,推测可能值,之后再调节?


3. Experiment

疑问

实验和对比结果有很多时,如何抓住重点

3.1 Zero-Shot Transfer

3.1.1 Motivation

  • 零样本定义:不同于传统“ unseen类别”的零样本学习,本文指模型泛化到未见过的数据集(作为“unseen任务”的代理),衡量模型的任务学习能力而非仅表征学习能力。
  • 参考基准:Visual N-Grams(首个系统研究零样本迁移到标准图像分类数据集的方法),其通过视觉n-gram字典匹配类别描述实现零样本分类。
  • 灵感来源:NLP领域的任务学习现象(如GPT模型预训练中自发学会跨语言音译),验证视觉模型能否通过自然语言监督自发学习多元任务

3.1.2 Using CLIP for Zero-Shot Transfer

  • 核心逻辑:复用预训练的“图文配对判断”能力,将下游任务类别名转化为文本提示,构建零样本分类器。
  • 具体步骤:
    1. 文本编码器对下游任务的所有类别名(结合提示模板)编码,得到类别文本嵌入。
    2. 图像编码器对输入图像编码,得到图像嵌入。
    3. 计算图像嵌入与各类别文本嵌入的余弦相似度,经温度参数缩放后,通过softmax得到类别概率分布。
  • 本质:文本编码器作为hypernetwork,根据自然语言描述生成线性分类器权重,图像编码器提供视觉特征,无需修改模型结构。

涉及知识

  • hypernetwork

3.1.3 Initial Comparison to Visual N-Grams

  • 性能突破:CLIP在三大数据集上大幅超越Visual N-Grams——ImageNet Top-1准确率从11.5%提升至76.2%,aYahoo从72.4%提升至98.4%,SUN从23.0%提升至58.5%。
  • 公平性说明:性能提升源于多方面(数据集规模10倍扩大、计算量提升1000倍、Transformer架构应用),并非仅方法差异,但验证了自然语言监督规模化后的潜力。
  • 基线验证:在YFCC100M数据集上训练CLIP ResNet-50,零样本性能与Visual N-Grams相当,证明方法有效性。

3.1.4 Prompt Engineering and Ensembling

  • prompt工程必要性:下游任务类别名多为单个单词,与预训练文本(多为完整句子)分布差异大,且存在多义词歧义(如“crane”可指起重机或鸟类)。
  • 有效模板:默认使用“A photo of a {label}.”,明确文本与图像内容的关联,单模板即可使ImageNet准确率提升1.3%;针对特定任务定制模板(如细分类添加“a type of pet”,OCR添加引号,卫星图像添加“satellite photo”)进一步优化。
  • 集成策略:在嵌入空间对多个不同prompt生成的分类器进行集成(如“big {label}”“small {label}”),缓存平均文本嵌入,不增加推理成本;ImageNet上集成80个prompt,准确率再提升3.5%。

3.1.5 Analysis of Zero-Shot CLIP Performance

  • 与全监督基线对比:在27个数据集上,零样本CLIP在16个数据集上超越ResNet-50线性探针(全监督),尤其在细分类(Stanford Cars+28.9%)、动作识别(Kinetics700+14.5%)、地理定位(Country211+22.5%)任务上优势显著;在CIFAR10/100、ImageNet等通用分类任务上性能接近。
  • 优势任务原因:自然语言监督包含动词、属性等多元概念,相比ImageNet的名词中心监督,更适配动作识别等任务。
  • 薄弱任务:卫星图像分类(EuroSAT)、肿瘤检测(PatchCamelyon)、计数(CLEVRCounts)等复杂/抽象任务,零样本性能接近随机,反映模型对未见过的特殊任务泛化不足。
  • 与少样本对比:零样本CLIP性能匹配4-shot线性探针,ImageNet上等效16-shot性能;说明自然语言描述的“显式概念指定”,比从少量样本中“隐式推断概念”更高效。

3.2 Representation Learning

  • 评估方式:采用线性探针(Linear Probe)评估——固定预训练模型参数,仅训练一层逻辑回归分类器,避免微调掩盖预训练表征的缺陷,且便于跨模型公平对比。
  • 核心结果:
    • 12数据集套件(Kornblith et al.):CLIP的ViT-L/14@336px超越Noisy Student EfficientNet-L2(当前SOTA),平均提升2.6%;小尺寸CLIP模型(如RN50)超越ImageNet-1K预训练的ResNet,略逊于ImageNet-21K预训练的BiT-M。
    • 27数据集扩展套件:CLIP所有模型在计算效率上超越现有系统,最佳模型平均提升达5%;自监督模型(如SimCLRv2)在扩展套件上表现更优,说明任务多样性对评估通用表征的重要性。
    • 任务适配性:在OCR(Rendered SST2)、动作识别(UCF101)、细分类(Stanford Cars)等任务上大幅超越现有模型,在ImageNet等传统数据集上接近SOTA,证明表征的通用性。
  • 模型效率:ViT架构的CLIP比ResNet架构高效3倍,相同计算预算下能学习到更优表征,验证了Transformer在视觉-语言跨模态学习中的优势。

3.3 Robustness to Natural Distribution Shift

这部分是CLIP的核心亮点之一,重点验证模型泛化能力是否优于传统全监督模型。

  1. 评估基准:选用7个分布偏移数据集,覆盖自然变体(ImageNet-V2)、风格迁移(ImageNet-Sketch)、物体遮挡/变形(ObjectNet)、真实场景(ImageNet-R)等场景。
  2. 核心结果
    • 零样本CLIP的“鲁棒性差距”(分布内ImageNet vs 分布外数据集的性能差)缩小75%,远优于全监督ResNet-101;
    • 例如:ResNet-101在ImageNet上Top-1准确率78.5%,在ObjectNet上仅17.9%;零样本CLIP在ImageNet上76.2%,在ObjectNet上达42.0%,泛化能力显著更强。
  3. 关键发现
    • 全监督模型过度依赖ImageNet数据集的虚假相关性(如“狗”常与“草地”绑定),分布偏移后性能暴跌;
    • CLIP的自然语言监督让模型学习到概念本身(如“狗”的视觉特征),而非数据集偏差,更贴近人类直觉;
    • 若将CLIP微调适配ImageNet,分布内准确率提升9.2%,但分布外平均准确率略有下降,说明监督适配会强化数据集特定偏差。

4 Comparison to Human Performance

仅以Oxford-IIIT Pets数据集为例,聚焦样本效率差异:

  • CLIP零样本准确率远超人类零样本;
  • 人类1-shot准确率提升显著,CLIP零样本仍领先,但人类从少量样本中学习的能力(样本效率)优于模型。

5. Data Overlap Analysis

研究背景

预训练数据集(4亿图文对)源自互联网,可能与下游评估数据集存在无意识重叠,若重叠严重会导致评估结果失真(无法反映真实泛化能力)。本文未采用“预训练前删除下游数据集”的方案(会限制基准测试范围),而是通过量化分析,明确重叠对性能的影响。

分析方法

  1. 数据集拆分:对35个下游评估数据集,用自定义近重复检测器(抗图像缩放、压缩、旋转等变换)筛选出“与预训练数据重叠的样本(Overlap子集)”和“无重叠的干净样本(Clean子集)”,保留原始完整数据集(All子集)作为参考;
  2. 性能对比:计算CLIP RN50x64在三个子集上的零样本准确率,以“All-Clean”量化重叠导致的性能膨胀;
  3. 统计验证:通过二项式显著性检验和99.5% Clopper-Pearson置信区间,判断重叠对性能的影响是否显著。

概念

  • 二项式显著性检验:用来检验只有两种互斥结果的观测数据,是否符合某个预设概率的统计检验,基于二项分布做显著性判断
  • Clopper-Pearson置信区间:针对二项分布成功概率 p 的精确置信区间,也叫精确二项置信区间

核心结果

  1. 重叠比例低:35个数据集中9个无任何检测到的重叠(如MNIST、CLEVR、GTSRB等合成/专用数据集,或ObjectNet等时间上晚于预训练数据的数据集);整体中位数重叠率2.2%,平均重叠率3.2%;
  2. 性能影响极小:绝大多数数据集的性能膨胀(All-Clean)不超过0.1%,仅7个数据集超过该阈值,且仅2个经Bonferroni校正后统计显著;最大性能膨胀为Birdsnap(重叠率12.1%)的0.6%;
  3. 特殊案例:Country211重叠率最高(21.5%,因部分数据源自YFCC100M,而预训练数据包含YFCC100M过滤子集),但性能膨胀仅0.2%,原因是预训练文本多不涉及地理定位任务相关描述,重叠样本未提供有效任务监督。

关键结论

预训练数据与下游数据集的重叠程度低,且对零样本性能的影响极小,CLIP的优异表现主要源于真实泛化能力,而非数据泄露。该结果与此前大规模预训练(如Instagram预训练、JFT-300M预训练)的重叠分析结论一致,验证了评估结果的可信度。

6 Limitations

局限性
  1. 任务性能不均衡,复杂任务表现薄弱

    • 零样本性能仅在部分任务上接近全监督基线,在细粒度分类(如车型区分、花卉物种识别、飞机变体分类)、抽象任务(如图像中物体计数)、专用任务(如卫星图像分类、淋巴结肿瘤检测、车辆距离判断)上表现较差,部分场景准确率接近随机水平。
  2. 计算与数据成本高昂,模型性能依赖大规模预训练

    • 未解决深度学习“数据饥渴”的核心问题,而是通过海量互联网图文数据补偿,若按每秒1张图的速率浏览,遍历32个训练周期的所有图像需405年,数据获取与训练成本极高。
  3. 功能灵活性有限,仅支持“从给定类别文本中选择匹配图像”的分类任务,无法像图像描述(Image Captioning)那样生成全新文本输出,缺乏开放域表达能力。

  4. 少样本学习能力不足,现有少样本应用需依赖线性分类器适配,未能有效融合零样本的强先验知识与少样本的任务特异性信息。

  5. 方法学与数据偏见问题

    • 模型开发过程中依赖下游数据集的验证集指导调优,与真实零样本场景(无任何任务相关数据)存在差异,可能高估实际性能。
    • 评估数据集为现有监督数据集集合,存在任务覆盖偏向性,未能完全反映零样本迁移的真实能力。
    • 训练数据源自未过滤的互联网图文对,不可避免学习到社会偏见(如种族、性别相关的刻板印象),可能导致歧视性分类结果。

7 Summary

  1. 提出“对比学习+自然语言监督”的跨模态预训练范式,验证了语言作为通用视觉监督信号的有效性;
  2. 构建4亿规模图文数据集(WIT),为后续跨模态研究奠定数据基础;
  3. 实现首个在30+视觉任务上零样本性能接近全监督模型的系统,突破传统视觉模型的泛化瓶颈;
  4. 全面分析模型的鲁棒性、数据效率及社会影响,为通用视觉模型的发展提供参考。

Comments