Learning Transferable Visual Models From Natural Language Supervision

2026/7/27

来源:ICML21

这篇论文的核心贡献,是把计算机视觉从"预先规定好类别、依赖人工标注"的封闭分类范式,推进到"用自然语言描述视觉概念,并直接完成新任务"的开放范式。CLIP并不是靠复杂的跨模态交互结构取胜,而是用一个极其简洁的图文对比学习目标,在4亿组互联网图文数据上进行规模化训练,让图像和文本进入同一个语义空间,从而获得了强大的零样本迁移能力。它后来成为开放词汇识别、图像生成、视觉语言模型和具身智能视觉编码器的重要基础模块。

在CLIP出现之前,主流计算机视觉模型通常采用"图像编码器加固定分类头"的方式训练。例如,ImageNet模型只能在预先规定的1000个类别上学习,模型知道"狗""汽车""飞机"这些标签,却不知道如何直接处理训练时没有定义过的新概念。每增加一个新任务,通常都需要重新收集带标签的数据,再训练或微调一个新的分类器。作者认为,这种固定标签监督限制了视觉模型的通用性。相比之下,语言模型已经通过互联网文本预训练表现出明显的任务泛化能力,因此论文提出了一个自然的问题:能否像训练GPT一样,直接利用互联网中的自然语言来训练通用视觉模型?

自然语言监督的价值在于,它包含的信息远比离散类别标签丰富。ImageNet中的一张图可能只有一个"dog"标签,而互联网中的文本可能描述它是"一只正在草地上奔跑的澳大利亚牧羊犬"。语言不仅能表达物体类别,还能表达属性、动作、场景、地点、文字内容和细粒度差异。因此,CLIP试图让视觉模型学习的不是一个固定标签表,而是语言所能描述的大量视觉概念。

作者首先构建了一个包含约4亿组图像—文本对的数据集WIT。这些数据来自公开互联网来源,文本可能是图片标题、描述或与图片相关的自然语言。作者使用约50万个查询词来扩大视觉概念的覆盖范围,并对每个查询获得的数据量进行一定限制,以避免数据过度集中在少数高频概念上。与经过人工精细标注的ImageNet不同,这些互联网图文对存在噪声,但其优势是规模巨大、概念覆盖广,并且不需要为每个任务单独制定标签体系。

CLIP最关键的设计选择,是不让模型生成图片描述,而只让它判断"哪段文本与哪张图片匹配"。作者最初尝试过图像描述生成,即输入图片后逐词预测文本,但发现这种目标计算成本高,模型必须学习大量语言生成细节,而这些细节未必直接有利于视觉识别。实验表明,预测词袋比生成完整文本更高效,而将预测目标进一步简化为图文对比学习后,零样本迁移的学习效率又提高了约4倍。因此,CLIP的成功不仅来自数据规模,也来自选择了一个更适合规模化训练的目标。

具体来说,一个训练批次中包含 (N) 组匹配的图像和文本。图像经过图像编码器得到 (N) 个图像向量,文本经过文本编码器得到 (N) 个文本向量,随后计算所有图像向量与所有文本向量之间的相似度,形成一个 (N\times N) 的矩阵。矩阵对角线上的元素是真实图文对,其他位置则被视为错误配对。训练目标是提高真实图文对的余弦相似度,同时降低错误配对的相似度。

这个目标是对称的:从图像的角度,模型要在一个批次的所有文本中找出正确文本;从文本的角度,模型也要在所有图像中找出正确图像。两部分交叉熵损失取平均,构成CLIP的训练损失。模型还会学习一个温度参数,用来控制相似度经过softmax之后的分布尖锐程度。经过训练,语义相近的图像和文本会被映射到共同嵌入空间中相近的位置,而不相关的图像和文本则会被推远。

CLIP的结构本身并不复杂。图像编码器可以使用改进版ResNet,也可以使用Vision Transformer;文本编码器则是一个Transformer。图像编码器最终输出一个全局图像向量,文本编码器使用文本结束标记位置的隐藏状态作为整段文本的表示,然后分别经过线性投影和归一化,进入同一个多模态嵌入空间。论文训练了多个不同规模的ResNet和ViT版本,其中最大的ViT-L/14模型在更高分辨率下继续训练后取得了最佳性能。论文还发现,在大规模图文数据上,ViT版本的计算效率明显优于ResNet版本。

CLIP最具有影响力的部分,是它如何把图文匹配模型转换成零样本图像分类器。假设下游数据集包含"飞机、汽车、狗、鸟"四个类别,传统方法需要收集这些类别的训练图片并学习一个分类头,而CLIP只需要把类别名称写成文本,例如"a photo of a dog"。这些文本分别经过文本编码器,得到四个类别的文本向量;待分类图片经过图像编码器得到图像向量;模型比较图像向量与四个文本向量的相似度,选择相似度最高的类别。

从数学上看,这些文本向量相当于动态生成了分类器的权重,因此论文把这一过程称为由自然语言"合成"零样本分类器。CLIP并没有在目标数据集上训练,但只要能够用语言表达任务类别,就能够直接尝试执行任务。文本在这里不只是标签,而成为了定义视觉任务的接口。

不过,直接输入类别名称通常不够理想。例如,"dog"只是一个孤立单词,而CLIP预训练时看到的往往是自然语言句子。作者因此引入了prompt engineering,把类别填入句子模板,如"a photo of a {class}"。这可以减少训练文本与测试文本之间的分布差异。对于不同任务,还可以使用更贴合任务的模板,例如食物分类可以写成"一张某种食物的照片",卫星图像则使用与卫星场景有关的描述。

作者还使用多个模板生成多个文本向量,再将它们组合成类别表示,这被称为prompt ensembling。它类似于传统视觉模型中的模型集成,但这里集成的是多种语言描述。这个看似简单的技巧对性能影响很明显,也揭示了CLIP的一个重要特点:模型能力不仅取决于权重本身,还取决于用户如何用语言定义类别和任务。后来视觉语言模型中的提示学习、软提示和上下文优化,都与这一现象有直接联系。

实验结果表明,CLIP的零样本分类已经具备了实际意义。最佳模型在不使用ImageNet的128万张标注训练图片的情况下,零样本ImageNet准确率达到76.2%,大致追平原始监督训练的ResNet-50。CLIP还被测试在30多个数据集上,涉及普通物体分类、细粒度识别、视频动作识别、光学字符识别、地理定位、情感识别等多种任务。论文强调,CLIP并不是只学会了一个通用视觉特征,而是在大规模预训练过程中隐式学会了许多可以通过语言调用的任务。

与监督训练的ResNet-50特征加线性分类器相比,零样本CLIP在27个数据集中的16个上表现更好。它在食物、汽车、视频动作和地理位置识别等任务上较强,因为互联网文本中存在大量关于物体属性、动作和地点的描述。尤其是动作识别方面,自然语言中的动词提供了比ImageNet这种以名词类别为主的监督更丰富的信息。

但CLIP并不是所有任务都强。它在卫星图像、医学图像、交通标志、距离估计、物体计数等专业或抽象任务上表现较差。这些任务往往不能仅靠一般互联网语言中的语义共现解决,需要更精确的空间推理、计数能力、领域知识或专门监督。因此,CLIP更擅长回答"这张图在语义上像什么",却不一定擅长回答"图中有几个物体""目标距离多远"或"这个医学结构是否异常"。

一个有意思的结果是,CLIP的零样本性能平均相当于在CLIP特征上训练一个每类约4张样本的线性分类器,并接近当时其他视觉模型16-shot线性分类器的表现。作者认为,语言能够直接告诉模型需要识别哪个概念,而少量图像示例本身可能存在歧义。一张汽车图片同时包含道路、天空、轮胎、颜色和车型,模型并不知道监督者究竟希望它学习哪一项;文本"a photo of a sports car"则可以明确传达目标概念。

论文也区分了"任务学习"和"表征学习"。线性探针主要衡量图像编码器有没有学到容易被线性分类器利用的特征,而零样本评估进一步衡量模型能否理解语言对任务的定义,并把已有知识组合成一个新分类器。从这个角度看,CLIP的重要性不只是提供了更好的图像特征,而是展示了一种用自然语言调用视觉知识的方式。

在线性探针实验中,大规模CLIP模型的视觉表示也达到或超过了当时许多监督、自监督和弱监督模型。论文发现CLIP的性能随着模型规模和计算量稳定提升,并且在足够大规模的数据上,Vision Transformer比ResNet具有更高的计算效率。这一结果也推动了ViT后来在多模态模型中的普及。

CLIP的另一个重要发现是对自然分布变化具有更强的鲁棒性。很多ImageNet模型在ImageNet验证集上准确率很高,但当图片变成素描、艺术风格、不同拍摄条件或非典型视角时,性能会显著下降。原因之一是模型在ImageNet训练过程中可能利用了该数据集中特有的背景、纹理和采样偏差。

CLIP没有针对ImageNet进行训练或微调,而是在广泛互联网分布上学习,因此较少依赖ImageNet特有的统计规律。论文在ImageNet-V2、ImageNet-R、ImageNet Sketch、ObjectNet和ImageNet-A等自然分布偏移数据集上进行测试,发现零样本CLIP形成了一条明显不同于传统ImageNet模型的鲁棒性曲线,最多能够缩小约75%的分布偏移性能差距。这说明任务无关的大规模预训练与零样本评估,不仅提高了迁移性,也可能更真实地反映模型是否学到了稳定的视觉语义。

当然,论文也明确指出CLIP存在明显局限。首先,CLIP的零样本性能在很多任务上只是接近当时的普通监督基线,并未全面达到当时最先进的专用模型。作者按照当时的缩放趋势估计,如果仅靠增加计算量追赶所有任务上的最高水平,可能需要约1000倍计算量,显然不可行。这说明还需要更高效的数据、目标函数和模型设计,而不能单纯依靠规模扩张。

其次,CLIP通过语言定义分类任务的方式虽然灵活,但表达能力仍然有限。许多复杂任务很难用一组类别文本完整描述,尤其是检测、分割、计数、几何推理和连续数值预测。原始CLIP主要学习图像级全局表示,没有直接提供像素级定位能力,也没有显式建模图像中的对象关系。

第三,CLIP并没有专门优化少样本学习。论文甚至观察到一种反直觉现象:直接使用零样本文本分类器,有时比在少量样本上训练线性分类器更好。原因是少量样本容易让分类器过拟合,而CLIP没有提供一种自然机制,将文本先验和少量图像监督有效融合。这后来成为CoOp、CoCoOp、Tip-Adapter等方法试图解决的问题。

第四,互联网数据中的偏见会进入模型。CLIP学习的是现实网络文本与图片之间的统计关系,其中包含社会刻板印象、不平衡呈现和不恰当关联。论文展示了一个很典型的现象:模型输出不仅取决于图片,也高度依赖候选类别集合。当候选标签中缺少合理类别时,模型可能被迫在不恰当的类别之间选择;加入"child"等合适类别后,一些错误关联会显著下降。这说明开放词汇分类并不等于客观分类,类别设计本身会直接影响模型行为和偏差。

从历史意义上看,CLIP真正改变的是视觉模型的接口。过去,视觉模型的接口是固定维度的类别概率;CLIP之后,接口变成了自然语言。用户不再只能询问"它属于训练好的1000类中的哪一类",而可以写出新的描述,让模型在图像和任意文本之间比较语义关系。这种接口使同一个视觉编码器可以支持零样本分类、图文检索、开放词汇检测、语义分割和奖励建模。

CLIP也成为后续生成模型的重要条件编码器。以文本生成图像为例,CLIP式的图文对齐空间提供了一种衡量"生成图像是否符合文本"的语义信号。后来许多扩散模型虽然不一定直接使用原始CLIP训练目标,但普遍继承了"文本编码器提供语义条件、视觉生成模型依据语义条件生成图像"的路线。

对于现在的视觉语言模型而言,CLIP可以被看作从"视觉编码器加固定分类头"走向"视觉编码器加语言模型"的中间阶段。CLIP本身不能生成自然语言回答,也不能进行复杂多轮推理,它只输出图像和文本的相似度;但它证明了视觉和语言可以通过大规模弱监督对齐到统一表示空间。后来的Flamingo、LLaVA、BLIP-2以及各种VLA模型,则进一步把这种视觉语义表示接入生成式语言模型,让模型不仅能比较图文是否匹配,还能围绕图像生成答案、指令和动作。

因此,理解CLIP时,不应只把它视为一个"双塔图文检索模型"。它最深刻的思想是:自然语言可以同时充当训练监督、知识载体和下游任务接口;对比学习则提供了一种高效的方式,把海量噪声图文数据转化成通用视觉语义能力。CLIP结构简单,但它将大规模数据、对比目标、双编码器和自然语言提示组合在一起,第一次系统地证明了开放式视觉任务可以通过语言直接定义,这正是它成为经典工作的根本原因。