从自然语言监督中学习可迁移的视觉模型
Alec Radford * 1, Jong Wook Kim * 1, Chris Hallacy 1, Aditya Ramesh 1, Gabriel Goh 1, Sandhini Agarwal 1, Girish Sastry 1, Amanda Askell 1, Pamela Mishkin 1, Jack Clark 1, Gretchen Krueger 1, Ilya Sutskever 1
摘要
最先进的计算机视觉系统通常被训练用于预测一组预定义的固定对象类别。这种受限的监督形式限制了它们的通用性和可用性,因为需要额外的标注数据来指定任何其他视觉概念。直接从关于图像的原始文本中学习是一种有前景的替代方案,它利用了更广泛的监督来源。我们证明,预测哪个标题与哪张图像相匹配的简单预训练任务,是一种在从互联网收集的 4 亿个(图像,文本)对数据集上从头开始学习 SOTA 图像表示的高效且可扩展的方法。预训练后,自然语言被用于引用已学习的视觉概念(或描述新的概念),从而使模型能够零样本(zero-shot)迁移到下游任务。我们通过在超过 30 个不同的现有计算机视觉数据集上进行基准测试来研究这种方法的性能,涵盖了 OCR、视频动作识别、地理定位以及多种细粒度对象分类等任务。该模型能够非平凡地迁移到大多数任务,并且通常在不需要任何特定数据集训练的情况下,与完全监督的基线竞争。例如,我们在零样本设置下匹配了原始 ResNet-50 在 ImageNet 上的准确率,而无需使用它所训练的 128 万个训练示例中的任何一个。我们在 https://github.com/OpenAI/CLIP 发布了我们的代码和预训练模型权重。
1. 引言与动机工作
在过去几年中,直接从原始文本中学习的预训练方法彻底改变了 NLP 领域(Dai & Le, 2015; Peters et al., 2018; Howard & Ruder, 2018; Radford et al., 2018; Devlin et al., 2018; Raffel et al., 2019)。
任务无关的目标(如自回归和掩码语言建模)在计算量、模型容量和数据方面已经扩展了多个数量级,能力稳步提升。将“文本到文本”(text-to-text)作为标准化的输入-输出接口的发展(McCann et al., 2018; Radford et al., 2019; Raffel et al., 2019)使得任务无关的架构能够零样本迁移到下游数据集,消除了对专用输出头或特定数据集定制的需求。像 GPT-3(Brown et al., 2020)这样的旗舰系统现在在许多任务上都能与定制模型竞争,同时几乎不需要或完全不需要特定数据集的训练数据。
这些结果表明,现代预训练方法在网络规模的文本集合中可获得的聚合监督超过了高质量的人工标注 NLP 数据集。然而,在计算机视觉等其他领域,在 ImageNet(Deng et al., 2009)等人工标注数据集上预训练模型仍然是标准做法。那么,直接从网络文本中学习的可扩展预训练方法能否在计算机视觉领域带来类似的突破呢?先前的研究令人鼓舞。
20 多年前,Mori et al. (1999) 探索了通过训练模型来预测与图像配对的文本文档中的名词和形容词,从而改进基于内容的图像检索。Quattoni et al. (2007) 证明了通过在训练用于预测与图像关联的标题中单词的分类器的权重空间中进行流形学习,可以学习到更具数据效率的图像表示。Srivastava & Salakhutdinov (2012) 通过在低级图像和文本标签特征之上训练多模态深度玻尔兹曼机(Deep Boltzmann Machines),探索了深度表示学习。Joulin et al. (2016) 对这一研究方向进行了现代化改造,并证明了训练用于预测图像标题中单词的 CNN 可以学习到有用的图像表示。他们将 YFCC100M 数据集(Thomee et al., 2016)中图像的标题、描述和标签元数据转换为词袋多标签分类任务,并表明预训练 AlexNet(Krizhevsky et al., 2012)以预测这些标签所学习到的表示在迁移任务上的表现与基于 ImageNet 的预训练相似。Li et al. (2017) 随后将此方法扩展到预测短语 n-gram 以及单个单词,并证明了他们的系统能够零样本迁移到其他图像分类数据集,方法是根据其学习到的视觉 n-gram 字典对目标类别进行评分,并预测得分最高的一个。采用更近期的架构和预训练方法,VirTex (Desai & Johnson, 2020)、ICMLM (Bulent Sariyildiz et al., 2020) 和 ConVIRT (Zhang et al., 2020) 最近展示了基于 Transformer 的语言建模、掩码语言建模和对比目标从文本中学习图像表示的潜力。
虽然作为概念验证令人兴奋,但使用自然语言监督进行图像表示学习仍然很少见。这很可能是因为在常见基准测试上展示的性能远低于替代方法。例如,Li et al. (2017) 在零样本设置下在 ImageNet 上仅达到 11.5% 的准确率。这远低于当前最先进水平(SOTA)88.4% 的准确率(Xie et al., 2020)。它甚至低于经典计算机视觉方法 50% 的准确率(Deng et al., 2012)。相反,范围更窄但目标明确的弱监督使用改善了性能。Mahajan et al. (2018) 表明,预测 Instagram 图像上的 ImageNet 相关标签是一种有效的预训练任务。当在 ImageNet 上进行微调时,这些预训练模型将准确率提高了 5% 以上,并改善了当时的整体 SOTA。Kolesnikov et al. (2019) 和 Dosovitskiy et al. (2020) 也通过预训练模型来预测噪声标注的 JFT-300M 数据集的类别,在更广泛的迁移基准测试上展示了巨大的收益。
这一系列工作代表了在从有限数量的监督“金标签”中学习和从几乎无限量的原始文本中学习之间的当前务实中间地带。然而,它并非没有妥协。这两项工作都经过精心设计,并在过程中将它们的监督限制在分别为 1000 和 18291 个类别。自然语言能够表达,从而监督,通过其通用性涵盖更广泛的视觉概念。这两种方法也都使用静态 softmax 分类器来执行预测,并且缺乏动态输出的机制。这严重削弱了它们的灵活性并限制了它们的“零样本”能力。
这些弱监督模型与最近直接从自然语言学习图像表示的探索之间的一个关键区别是规模。虽然 Mahajan et al. (2018) 和 Kolesnikov et al. (2019) 在数百万到数十亿张图像上训练了他们的模型数年(加速器时间),但 VirTex、ICMLM 和 ConVIRT 在 10 到 20 万张图像上训练了几天(加速器时间)。在这项工作中,我们缩小了这一差距,并研究了在大规模下使用自然语言监督训练的图像分类器的行为。得益于互联网上这种形式的大量公开可用数据,我们创建了一个包含 4 亿个(图像,文本)对的新数据集,并证明了我们从头开始训练的 ConVIRT 的简化版本(我们称之为 CLIP,即对比语言-图像预训练)是一种从自然语言监督中学习的高效方法。我们通过训练一系列跨越近 2 个数量级计算量的八个模型来研究 CLIP 的可扩展性,并观察到迁移性能是计算量的平滑可预测函数(Hestness et al., 2017; Kaplan et al., 2020)。我们发现,CLIP 与 GPT 系列类似,在预训练期间学习执行广泛的任务,包括 OCR、地理定位、动作识别等。我们通过在超过 30 个现有数据集上对 CLIP 的零样本迁移性能进行基准测试来衡量这一点,并发现它能够与先前的任务特定监督模型竞争。我们还通过线性探测表示学习分析证实了这些发现,并表明 CLIP 的表现优于目前公开可用的最佳 ImageNet 模型,同时在计算上更高效。我们还发现,零样本 CLIP 模型比具有同等准确率的监督 ImageNet 模型更稳健,这表明对任务无关模型的零样本评估更能代表模型的能力。这些结果具有重大的政策和伦理影响,我们将在第 7 节中考虑。
2. 方法
2.1. 自然语言监督
我们方法的核心是学习从自然语言中包含的监督中感知。正如引言中所讨论的,这绝不是一个新想法,然而用于描述该领域工作的术语多种多样,甚至看似矛盾,且陈述的动机也各不相同。Zhang et al. (2020)、Gomez et al. (2017)、Joulin et al. (2016) 和 Desai & Johnson (2020) 都引入了从与图像配对的文本中学习视觉表示的方法,但分别将他们的方法描述为无监督、自监督、弱监督和监督。
我们强调,这一系列工作共同点不是所使用的特定方法的任何细节,而是对自然语言作为训练信号的重视。所有这些方法都是从自然语言监督中学习的。尽管早期工作在使用主题模型和 n-gram 表示时与自然语言的复杂性进行了斗争,但深度上下文表示学习的改进表明,我们现在拥有有效利用这一丰富监督来源的工具(McCann et al., 2017)。
与其它训练方法相比,从自然语言中学习有几个潜在优势。与用于图像分类的标准众包标注相比,扩展自然语言监督要容易得多,因为它不需要标注采用经典的“机器学习兼容格式”,例如规范的 1-of-N 多数投票“金标签”。相反,处理自然语言的方法可以被动地从互联网上大量文本中包含的监督中学习。从自然语言中学习相对于大多数无监督或自监督学习方法还有一个重要优势,即它不仅“仅仅”学习一种表示,而且还将该表示与语言连接起来,从而实现灵活的零样本迁移。在接下来的小节中,我们将详细介绍我们最终确定的方法。
2.2. 创建足够大的数据集
现有工作主要使用了三个数据集:MS-COCO (Lin et al., 2014)、Visual Genome (Krishna et al., 2017) 和 YFCC100M (Thomee et al., 2016)。虽然 MS-COCO 和 Visual Genome 是高质量的众包标注数据集,但按照现代标准,它们规模较小,每个数据集大约有 100,000 张训练照片。相比之下,其他计算机视觉系统是在多达 35 亿张 Instagram 照片上训练的(Mahajan et al., 2018)。YFCC100M 拥有 1 亿张照片,是一个可能的替代方案,但每张图像的元数据稀疏且质量参差不齐。许多图像使用自动生成的文件名(如 20160716_113957.JPG)作为“标题”,或者包含相机曝光设置的“描述”。在过滤掉仅保留带有英文自然语言标题和/或描述的图像后,数据集缩小了 6 倍,仅剩 1500 万张照片。这与 ImageNet 的规模大致相同。
自然语言监督的一个主要动机是互联网上公开可用的这种形式的大量数据。由于现有数据集不能充分反映这种可能性,仅考虑它们的结果会低估这一研究方向的潜力。为了解决这个问题,我们构建了一个包含 4 亿个(图像,文本)对的新数据集,这些数据是从互联网上各种公开来源收集的。为了尽可能覆盖广泛的视觉概念,我们在构建过程中搜索(图像,文本)对,其文本包含 500,000 个查询集合中的一个。¹ 我们通过每个查询包含多达 20,000 个(图像,文本)对来大致平衡结果。由此产生的数据集具有与用于训练 GPT-2 的 WebText 数据集相似的总字数。我们将此数据集称为 WIT(WebImageText)。
2.3. 选择高效的预训练方法
最先进的计算机视觉系统使用非常大量的计算。Mahajan et al. (2018) 需要 19 个 GPU 年来训练他们的 ResNeXt101-32x48d,而 Xie et al. (2020) 需要 33 个 TPUv3 核心年来训练他们的 Noisy Student EfficientNet-L2。考虑到这两个系统都仅被训练用于预测 1000 个 ImageNet 类别,从自然语言中学习开放集视觉概念的任务似乎令人生畏。在我们的努力过程中,我们发现训练效率是成功扩展自然语言监督的关键,我们根据这一指标选择了最终的预训练方法。
我们最初的方法与 VirTex 类似,联合训练一个图像 CNN 和文本 Transformer 从头开始预测图像的标题。然而,我们遇到了有效扩展此方法的困难。在图 2 中,我们展示了一个 6300 万参数的 Transformer 语言模型,它已经使用了其 ResNet-50 图像编码器两倍的计算量,学习识别 ImageNet 类别的速度比预测相同文本的词袋编码的简单基线慢三倍。
这两种方法都有一个关键的相似之处。它们试图预测每张图像附带的确切单词。由于图像伴随的描述、评论和相关文本种类繁多,这是一项艰巨的任务。最近在图像对比表示学习方面的工作发现,对比目标可以比其等效的预测目标学习到更好的表示(Tian et al., 2019)。其他工作发现,虽然图像的生成模型可以学习高质量的图像表示,但它们需要比具有相同性能的对比模型多一个数量级的计算量(Chen et al., 2020a)。注意到这些发现,我们探索训练一个系统来解决可能更容易的代理任务,即仅预测哪个文本作为一个整体与哪张图像配对,而不是该文本的确切单词。从相同的词袋编码基线开始,我们在图 2 中将预测目标替换为对比目标,并观察到零样本迁移到 ImageNet 的速率效率进一步提高了 4 倍。
给定一批 个(图像,文本)对,CLIP 被训练用于预测跨一批的 个可能的(图像,文本)配对中,实际上发生了哪一个。为此,CLIP 通过联合训练图像编码器和文本编码器来学习多模态嵌入空间,以最大化批次中 个真实对的图像和文本嵌入的余弦相似度,同时最小化 个错误配对的嵌入的余弦相似度。我们针对这些相似度分数优化对称交叉熵损失。在图 3 中,我们包含了 CLIP 实现核心的伪代码。据我们所知,这种批次构建技术和目标最初是在深度度量学习领域作为多类 N-pair 损失引入的(Sohn, 2016),作为 InfoNCE 损失被推广用于对比表示学习(Oord et al., 2018),并最近在医学成像领域被改编用于对比(文本,图像)表示学习(Zhang et al., 2020)。
由于我们预训练数据集的规模很大,过拟合不是主要问题,并且与 Zhang et al. (2020) 的实现相比,训练 CLIP 的细节被简化了。我们从头开始训练 CLIP,而不使用 ImageNet 权重初始化图像编码器,也不使用预训练权重初始化文本编码器。我们不使用表示和对比嵌入空间之间的非线性投影,这一变化由 Bachman et al. (2019) 引入并由 Chen et al. (2020b) 推广。相反,我们仅使用线性投影将每个编码器的表示映射到多模态嵌入空间。我们没有注意到这两个版本之间训练效率的差异,并推测非线性投影可能与当前仅图像自监督表示学习方法中的细节共同适应。我们还删除了 Zhang et al. (2020) 中的文本转换函数 ,该函数从文本中均匀采样单个句子,因为 CLIP 预训练数据集中的许多(图像,文本)对仅是一个句子。我们还简化了图像转换函数 。从调整大小的图像中进行随机方形裁剪是训练期间使用的唯一数据增强。最后,控制 softmax 中 logit 范围的温度参数 ,在训练期间直接作为对数参数化的乘法标量进行优化,以避免将其作为超参数进行调整。
2.4. 选择和扩展模型
我们考虑了两种不同的图像编码器架构。对于第一种,我们使用 ResNet-50 (He et al., 2016a) 作为图像编码器的基础架构,因为它被广泛采用且性能经过验证。我们使用 He et al. (2019) 的 ResNet-D 改进和 Zhang (2019) 的抗锯齿 rect-2 模糊池化对原始版本进行了几处修改。我们还将全局平均池化层替换为注意力池化机制。注意力池化被实现为单层“Transformer 风格”的多头 QKV 注意力,其中查询以全局平均池化后的图像表示为条件。对于第二种架构,我们尝试了最近引入的视觉 Transformer (ViT) (Dosovitskiy et al., 2020)。我们紧密遵循它们的实现,仅做了微小的修改,即在 Transformer 之前向组合的补丁和位置嵌入添加额外的层归一化,并使用稍微不同的初始化方案。
文本编码器是一个 Transformer (Vaswani et al., 2017),具有 Radford et al. (2019) 中描述的架构修改。作为基础尺寸,我们使用了一个 6300 万参数、12 层、512 宽的模型,带有 8 个注意力头。Transformer 对文本的低写字节对编码(BPE)表示进行操作,词汇量为 49,152 (Sennrich et al., 2015)。为了计算效率,最大序列长度被限制为 76。文本序列用 [SOS] 和 [EOS] 标记括起来,Transformer 最高层在 [EOS] 标记处的激活被视为文本的特征表示,该表示经过层归一化,然后线性投影到多模态嵌入空间。文本编码器中使用了掩码自注意力,以保留使用预训练语言模型进行初始化或添加语言建模作为辅助目标的能力,尽管对此的探索留作未来工作。
虽然之前的计算机视觉研究通常通过孤立地增加宽度(Mahajan et al., 2018)或深度(He et al., 2016a)来扩展模型,但对于 ResNet 图像编码器,我们采用了 Tan & Le (2019) 的方法,他们发现将额外的计算量分配给宽度、深度和分辨率的所有维度,优于仅将其分配给模型的一个维度。虽然 Tan & Le (2019) 为其 EfficientNet 架构调整了分配给每个维度的计算比例,但我们使用了一个简单的基线,即平等地分配额外的计算量来增加模型的宽度、深度和分辨率。对于文本编码器,我们仅按比例缩放模型的宽度,使其与 ResNet 计算出的宽度增加成比例,并且根本不缩放深度,因为我们发现 CLIP 的性能对文本编码器的容量不太敏感。
2.5. 训练
我们训练了一系列 5 个 ResNet 和 3 个视觉 Transformer。对于 ResNet,我们训练了一个 ResNet-50、一个 ResNet-101,然后是 3 个遵循 EfficientNet 风格模型缩放并使用大约 4 倍、16 倍和 64 倍 ResNet-50 计算量的模型。它们分别被命名为 RN50x4、RN50x16 和 RN50x64。对于视觉 Transformer,我们训练了一个 ViT-B/32、一个 ViT-B/16 和一个 ViT-L/14。我们对所有模型训练了 32 个 epoch。我们使用 Adam 优化器 (Kingma & Ba, 2014),并对所有非增益或偏差的权重应用解耦权重衰减正则化 (Loshchilov & Hutter, 2017),并使用余弦调度衰减学习率 (Loshchilov & Hutter, 2016)。初始超参数是使用网格搜索、随机搜索和在基础 ResNet-50 模型上训练 1 个 epoch 时的手动调整组合设置的。由于计算限制,超参数随后针对更大的模型进行了启发式调整。可学习的温度参数 初始化为相当于 0.07 (Wu et al., 2018),并被裁剪以防止 logit 缩放超过 100,我们发现这对于防止训练不稳定是必要的。我们使用了 32,768 的非常大的小批量(minibatch)大小。混合精度 (Micikevicius et al., 2017) 被用于加速训练并节省内存。为了节省额外内存,使用了梯度检查点 (Griewank & Walther, 2000; Chen et al., 2016)、半精度 Adam 统计数据 (Dhariwal et al., 2020) 和半精度随机舍入文本编码器权重。嵌入相似度的计算也被分片,单个 GPU 仅计算其本地嵌入批次所需的成对相似度子集。最大的 ResNet 模型 RN50x64 在 592 个 V100 GPU 上训练了 18 天,而最大的视觉 Transformer 在 256 个 V100 GPU 上训练了 12 天。对于 ViT-L/14,我们还在更高的 336 像素分辨率下额外预训练了一个 epoch,以提高性能,类似于 FixRes (Touvron et al., 2019)。我们将此模型命名为 ViT-L/14@336px。除非另有说明,本论文中报告的所有作为“CLIP”的结果都使用该模型,我们发现该模型表现最好。
3. 实验
3.1. 零样本迁移
3.1.1. 动机
在计算机视觉中,零样本学习通常指研究图像分类中泛化到未见过的对象类别 (Lampert et al., 2009)。我们转而使用更广泛意义上的术语,并研究泛化到未见过的数据集。我们将其作为执行未见任务的代理,正如 Larochelle et al. (2008) 的零数据学习论文中所期望的那样。虽然无监督学习领域的大量研究集中在机器学习系统的表示学习能力上,但我们通过研究零样本迁移来衡量机器学习系统的任务学习能力。在这种观点下,数据集评估特定分布上的任务性能。然而,许多流行的计算机视觉数据集最初是由研究界创建的,主要是作为指导通用图像分类方法开发的基准,而不是衡量特定任务上的性能。虽然说 SVHN 数据集衡量的是 Google Street View 照片分布上的街道号码转录任务是合理的,但 CIFAR-10 数据集衡量的是什么“真实”任务尚不清楚。然而,很清楚 CIFAR-10 是从什么分布中提取的——TinyImages (Torralba et al., 2008)。在这些类型的数据集上,零样本迁移更多是对 CLIP 对分布偏移和域泛化的稳健性的评估,而不是任务泛化。请参阅第 3.3 节以获取重点分析。
据我们所知,Visual N-Grams (Li et al., 2017) 首先以所述方式研究了到现有图像分类数据集的零样本迁移。它也是我们所知的唯一其他使用通用预训练模型研究到标准图像分类数据集的零样本迁移的工作,并作为将 CLIP 上下文化的最佳参考点。他们的方法学习了一个包含 142,806 个视觉 n-gram(跨越 1 到 5-gram)的字典参数,并使用 Jelinek-Mercer 平滑的微分版本优化这些 n-gram,以最大化给定图像的所有文本 n-gram 的概率。为了执行零样本迁移,他们首先将每个数据集的类名文本转换为其 n-gram 表示,然后根据他们的模型计算其概率,预测得分最高的一个。我们对将零样本迁移作为任务学习评估的研究重点受到 NLP 领域展示任务学习的工作的启发。据我们所知,Liu et al. (2018) 首先将任务学习识别为一种“意外的副作用”,当时一个训练用于生成维基百科文章的语言模型学会了可靠地在语言之间音译名称。虽然 GPT-1 (Radford et al., 2018) 专注于将预训练作为一种改进监督微调的迁移学习方法,但它也包括一项消融研究,证明四种启发式零样本迁移方法的性能在预训练过程中稳步提高,而无需任何监督适应。该分析为 GPT-2 (Radford et al., 2019) 奠定了基础,GPT-2 专门专注于通过零样本迁移研究语言模型的任务学习能力。
3.1.2. 使用 CLIP 进行零样本迁移
CLIP 被预训练用于预测图像和文本片段是否在其数据集中配对。为了执行零样本分类,我们重用了此能力。对于每个数据集,我们使用数据集中所有类别的名称作为潜在文本配对的集合,并根据 CLIP 预测最可能的(图像,文本)对。更详细地说,我们首先通过它们各自的编码器计算图像的特征嵌入和一组可能文本的特征嵌入。然后计算这些嵌入的余弦相似度,由温度参数 缩放,并通过 softmax 归一化为概率分布。请注意,此预测层是一个具有 L2 归一化输入、L2 归一化权重、无偏差和温度缩放的多项逻辑回归分类器。以这种方式解释,图像编码器是计算图像特征表示的计算机视觉骨干,而文本编码器是超网络 (Ha et al., 2016),它根据指定类别所代表的视觉概念的文本生成线性分类器的权重。Lei Ba et al. (2015) 首先引入了这种形式的零样本图像分类器,而从自然语言生成分类器的想法至少可以追溯到 Elhoseiny et al. (2013)。继续这种解释,CLIP 预训练的每一步都可以被视为优化一个随机创建的代理到计算机视觉数据集的性能,该数据集包含每个类别 1 个示例,并通过自然语言描述定义了总共 32,768 个类别。对于零样本评估,我们在文本编码器计算出零样本分类器后将其缓存,并将其重用于所有后续预测。这允许生成它的成本在数据集中的所有预测中摊销。
3.1.3. 与 Visual N-Grams 的初步比较
在表 1 中,我们将 Visual N-Grams 与 CLIP 进行了比较。最好的 CLIP 模型将 ImageNet 上的准确率从概念验证的 11.5% 提高到 76.2%,并匹配了原始 ResNet-50 的性能,尽管没有使用该数据集可用的 128 万个众包标注训练示例中的任何一个。此外,CLIP 模型的 top-5 准确率明显高于其 top-1,并且该模型具有 95% 的 top-5 准确率,匹配了 Inception-V4 (Szegedy et al., 2016)。在零样本设置下匹配强大的完全监督基线性能的能力表明...
| aYahoo | ImageNet | SUN | |
|---|---|---|---|
| Visual N-Grams | 72.4 | 11.5 | 23.0 |
| CLIP | 98.4 | 76.2 | 58.5 |
表 1. 将 CLIP 与先前的零样本迁移图像分类结果进行比较。CLIP 在所有三个数据集上都大幅提高了性能。这种改进反映了自 Visual N-Grams (Li et al., 2017) 开发以来的 4 年中的许多差异。
CLIP 是迈向灵活且实用的零样本计算机视觉分类器的重要一步。如上所述,与 Visual N-Grams 的比较旨在将 CLIP 的性能上下文化,不应被解释为 CLIP 和 Visual N-Grams 之间的直接方法比较,因为两个系统之间许多与性能相关的差异并未得到控制。例如,我们在大 10 倍的数据集上进行训练,使用需要近 100 倍计算量进行预测的视觉模型,可能使用了超过 1000 倍的训练计算量,并使用了 Visual N-Grams 发布时不存在的基于 Transformer 的模型。作为更接近的比较,我们在 Visual N-Grams 训练的相同 YFCC100M 数据集上训练了一个 CLIP ResNet-50,并发现它在 V100 GPU 天内匹配了他们报告的 ImageNet 性能。该基线也是从头开始训练的,而不是像 Visual N-Grams 那样从预训练的 ImageNet 权重初始化。
CLIP 在其他 2 个报告的数据集上也优于 Visual N-Grams。在 aYahoo 上,CLIP 实现了 95% 的错误率降低,而在 SUN 上,CLIP 的准确率是 Visual N-Grams 的两倍多。为了进行更全面的分析和压力测试,我们在附录 A 中实施了更大的评估套件。总共,我们从 Visual N-Grams 中报告的 3 个数据集扩展到包括超过 30 个数据集,并与超过 50 个现有计算机视觉系统进行比较以将结果上下文化。
3.1.4. 提示工程和集成
大多数标准图像分类数据集将命名或描述类别的信息(这使得基于自然语言的零样本迁移成为可能)视为事后考虑。绝大多数数据集仅用标签的数字 ID 标注图像,并包含一个将这些 ID 映射回英文名称的文件。一些数据集,如 Flowers102 和 GTSRB,在其发布的版本中似乎根本不包含此映射,从而完全阻止了零样本迁移。² 对于许多数据集,我们观察到这些标签可能选择得有些随意,并且没有预见到与零样本迁移相关的问题,零样本迁移依赖于任务描述才能成功迁移。
一个常见问题是多义性。当类名是提供给 CLIP 文本编码器的唯一信息时,由于缺乏上下文,它无法区分指的是哪个词义。在某些情况下,同一个单词的多种含义可能作为不同的类别包含在同一个数据集中!这种情况发生在 ImageNet 中,它既包含建筑起重机(cranes),也包含飞行的鹤(cranes)。另一个例子在 Oxford-IIIT Pet 数据集的类别中找到,其中单词“boxer”从上下文中看显然是指一种狗的品种,但对于缺乏上下文的文本编码器来说,它同样可能指一种运动员。
我们遇到的另一个问题是,在我们的预训练数据集中,与图像配对的文本很少只是一个单词。通常文本是描述图像的完整句子。为了帮助弥合这种分布差距,我们发现使用提示模板“A photo of a {label}.”是一个很好的默认设置,有助于指定文本是关于图像内容的。这通常比仅使用标签文本的基线提高了性能。例如,仅使用此提示就将 ImageNet 上的准确率提高了 1.3%。

我们还尝试了在多个零样本分类器上进行集成,作为提高性能的另一种方法。这些分类器是通过使用不同的上下文提示(例如“A photo of a big {label}”和“A photo of a small {label}”)计算的。我们在嵌入空间而不是概率空间上构建集成。这允许我们缓存一组单一的平均文本嵌入,因此在许多预测中摊销时,集成的计算成本与使用单个分类器相同。我们观察到,跨许多生成的零样本分类器进行集成可以可靠地提高性能,并将其用于大多数数据集。在 ImageNet 上,我们集成了 80 个不同的上下文提示,这比上面讨论的单个默认提示提高了 3.5% 的性能。综合考虑,提示工程和集成将 ImageNet 准确率提高了近 5%。在图 4 中,我们可视化了提示工程和集成如何改变了一组 CLIP 模型的性能,与 Li et al. (2017) 所做的直接嵌入类名的无上下文基线方法相比。
3.1.5. 零样本 CLIP 性能分析
由于计算机视觉的任务无关零样本分类器研究不足,CLIP 提供了一个深入了解此类模型的有希望的机会。在本节中,我们对 CLIP 的零样本分类器的各种属性进行了研究。作为第一个问题,我们简单地查看零样本分类器的表现如何。为了将此上下文化,我们与一个简单的现成基线的性能进行了比较:在规范 ResNet-50 的特征上拟合一个完全监督的、正则化的逻辑回归分类器。在图 5 中,我们展示了跨 27 个数据集的这种比较。请参阅附录 A 以获取数据集和设置的详细信息。

零样本 CLIP 优于此基线的频率高于不优于它的频率,并在 27 个数据集中的 16 个上获胜。查看单个数据集揭示了一些有趣的行为。在细粒度分类任务上,我们观察到性能存在广泛差异。在其中两个数据集(Stanford Cars 和 Food101)上,零样本 CLIP 在 ResNet-50 特征上的表现优于逻辑回归超过 20%,而在另外两个(Flowers102 和 FGVCAircraft)上,零样本 CLIP 的表现低了 10% 以上。在 OxfordPets 和 Birdsnap 上,性能要接近得多。我们怀疑这些差异主要是由于 WIT 和 ImageNet 之间每任务监督量的不同。在“通用”对象分类数据集(如 ImageNet、CIFAR10/100、STL10 和 PascalVOC2007)上,性能相对相似,零样本 CLIP 在所有情况下都有轻微优势。在 STL10 上,CLIP 实现了 99.3% 的总体准确率,这似乎是一个新的 SOTA,尽管没有使用任何训练示例。零样本 CLIP 在两个衡量视频动作识别的数据集上显著优于 ResNet-50。在 Kinetics700 上,CLIP 优于 ResNet-50 14.5%。零样本 CLIP 在 UCF101 上也比 ResNet-50 的特征高出 7.7%。我们推测这是因为自然语言为涉及动词的视觉概念提供了更广泛的监督,相比于 ImageNet 中以名词为中心的对象监督。
4. 与人类性能的比较
CLIP 与人类性能和人类学习相比如何?为了更好地了解人类在与 CLIP 类似的评估设置中表现如何,我们评估了人类在我们的一个任务上的表现。我们想了解人类在这些任务上的零样本性能有多强,以及如果向他们展示一个或两个图像样本,人类性能会提高多少。这可以帮助我们比较人类和 CLIP 的任务难度,并识别它们之间的相关性和差异。
我们让五名不同的人类查看 Oxford IIT Pets 数据集(Parkhi et al., 2012)测试集中的 3669 张图像,并选择哪种 37 个猫或狗品种最匹配图像(如果他们完全不确定,则选择“我不知道”)。在零样本情况下,人类没有得到品种的示例,并被要求在没有互联网搜索的情况下尽其所能进行标注。在单样本实验中,人类得到了每个品种的一个样本图像,在双样本实验中,他们得到了每个品种的两个样本图像。⁵
一个可能的担忧是人类工作者在零样本任务中没有足够的动力。在 STL-10 数据集上 94% 的高人类准确率(Coates et al., 2011)以及注意力检查图像子集上 97-100% 的准确率增加了我们对人类工作者的信任。
有趣的是,人类在仅有每个类别一个训练示例的情况下,人类的性能平均从 54% 提高到了 76%,并且从额外训练示例中获得的边际收益极小。从零样本到单样本的准确率提升几乎完全体现在人类感到不确定的图像上。这表明人类“知道自己不知道什么”,并且能够根据单个示例更新他们对最不确定图像的先验。鉴于此,虽然 CLIP 是一种有前景的零样本性能训练策略(图 5)并且在自然分布偏移测试中表现良好(图 13),但人类从少量示例中学习的方式与本文中的少样本方法之间存在巨大差异。
这表明在缩小机器与人类样本效率差距方面,仍有算法改进的空间,正如 Lake et al. (2016) 等人所指出的那样。由于 CLIP 的这些少样本评估没有有效利用先验知识,而人类却利用了,我们推测寻找一种将先验知识正确整合到少样本学习中的方法是 CLIP 算法改进的重要一步。据我们所知,在高质量预训练模型的特征之上使用线性分类器对于少样本学习来说接近最先进水平(Tian et al., 2020),这表明最好的少样本机器学习方法与人类少样本学习之间仍存在差距。
如果我们绘制人类准确率与 CLIP 零样本准确率的对比图(图 16),我们会发现 CLIP 最困难的问题对人类来说也同样困难。在错误一致的程度上,我们的假设是这是由至少两个因素造成的:数据集中的噪声(包括标注错误的图像)以及对人类和模型来说都很难的分布外图像。
5. 数据重叠分析
在非常大的互联网数据集上进行预训练的一个担忧是与下游评估的无意重叠。调查这一点很重要,因为在最坏的情况下,评估数据集的完整副本可能会泄露到预训练数据集中,并使评估作为泛化的有意义测试失效。防止这种情况的一种选择是在训练模型之前识别并删除所有重复项。虽然这保证了报告真实的留出性能,但它要求提前知道模型可能被评估的所有可能数据。这有局限基准测试和分析范围的缺点。添加新的评估将需要昂贵的重新训练,或者冒着因重叠而报告未量化收益的风险。
相反,我们记录了发生了多少重叠以及性能如何因这些重叠而变化。为此,我们使用以下程序:
-
对于每个评估数据集,我们对其示例运行重复检测器(参见附录 C)。然后我们手动检查找到的最近邻居,并设置一个每数据集阈值,以在最大化召回率的同时保持高精度。使用此阈值,我们然后创建两个新子集:
Overlap,包含所有与训练示例的相似度高于阈值的示例;以及Clean,包含所有低于此阈值的示例。我们将未更改的完整数据集称为All以供参考。由此我们首先记录数据污染程度,即Overlap中的示例数量与All大小的比率。 -
然后,我们计算 CLIP RN50x64 在这三个拆分上的零样本准确率,并将
All - Clean作为我们的主要指标。这是由于污染导致的准确率差异。当为正时,它是我们对数据集上报告的整体准确率因过拟合重叠数据而膨胀程度的估计。 -
重叠量通常很小,因此我们还运行了一个二项式显著性检验,其中我们使用
Clean上的准确率作为零假设,并计算Overlap子集的单尾(大于)p 值。我们还计算了Dirty上的 99.5% Clopper-Pearson 置信区间作为另一个检查。
此分析的摘要呈现在图 17 中。在研究的 35 个数据集中,9 个数据集根本没有检测到重叠。这些数据集中的大多数是合成的或专门的,使得它们不太可能作为正常图像发布在互联网上(例如 MNIST、CLEVR 和 GTSRB),或者由于包含我们数据集创建日期之后的新数据而保证没有重叠(ObjectNet 和 Hateful Memes)。这证明我们的检测器具有较低的误报率,这很重要,因为误报会低估我们分析中污染的影响。中位重叠为 2.2%,平均重叠为 3.2%。由于这种少量的重叠,整体准确率很少偏移超过 0.1%,只有 7 个数据集超过此阈值。其中,只有 2 个在 Bonferroni 校正后具有统计学显著性。检测到的最大改进仅为 0.6%(在 Birdsnap 上),该数据集在 12.1% 的重叠率下排名第二。最大的重叠是 Country211,为 21.5%。这是因为它是由 YFCC100M 构建的,我们的预训练数据集包含其过滤后的子集。尽管有这种大的重叠,Country211 的准确率仅增加了 0.2%。这可能是因为伴随示例的训练文本通常与下游评估衡量的特定任务无关。Country211 衡量地理定位能力,但检查这些重复项的训练文本显示它们通常不提及图像的位置。
我们意识到我们的分析存在两个潜在的担忧。首先,我们的检测器并不完美。虽然它在其代理训练任务上实现了接近 100% 的准确率,并且手动检查 + 阈值调整在找到的最近邻居中产生了极高的精度和良好的召回率,但我们无法在 4 亿个示例中切实检查其召回率。我们分析的另一个潜在混淆因素是底层数据分布可能在 Overlap 和 Clean 子集之间发生偏移。例如,在 Kinetics-700 上,许多“重叠”实际上是全黑的过渡帧。这解释了为什么 Kinetics-700 在 Overlap 上有明显的 20% 准确率下降。我们怀疑更微妙的分布偏移可能存在。我们在 CIFAR-100 上注意到的一个可能性是,由于其图像分辨率非常低,许多重复项是小物体(如鸟或飞机)的误报。准确率的变化可能反而是由于重复项的类别分布或难度变化造成的。不幸的是,这些分布和难度偏移也可能掩盖过拟合的影响。
然而,这些结果紧密遵循了先前大规模预训练工作中类似重复分析的发现。Mahajan et al. (2018) 和 Kolesnikov et al. (2019) 检测到了类似的重叠率,并发现整体性能变化极小。重要的是,Kolesnikov et al. (2019) 还比较了本节介绍中讨论的替代去重策略与我们确定的方法,并观察到两种方法之间几乎没有差异。
6. 局限性
CLIP 仍然存在许多局限性。虽然其中一些在各节的分析中进行了讨论,但我们在此总结并收集它们。
在具有训练拆分的数据集上,零样本 CLIP 的性能平均与 ResNet-50 特征上的简单监督基线具有竞争力。在大多数这些数据集上,该基线的性能现在远低于整体 SOTA。仍需要大量工作来提高 CLIP 的任务学习和迁移能力。虽然扩展到目前为止稳步提高了性能,并暗示了持续改进的途径,但我们估计零样本 CLIP 需要大约 1000 倍的计算量才能达到整体 SOTA 性能。这在当前硬件上是无法训练的。未来需要研究如何提高 CLIP 的计算和数据效率。
第 3.1 节中的分析发现,CLIP 的零样本性能在几种类型的任务上仍然相当弱。与任务特定模型相比,CLIP 在几种类型的细粒度分类(如区分汽车模型、花卉种类和飞机变体)上的性能较差。CLIP 在图像中对象计数等更抽象和系统的任务上也存在困难。最后,对于不太可能包含在 CLIP 预训练数据集中的新任务,例如对照片中到最近汽车的距离进行分类,CLIP 的性能可能接近随机。我们确信仍然有许多任务,CLIP 的零样本性能接近偶然水平。
虽然零样本 CLIP 可以很好地泛化到许多自然图像分布,正如第 3.3 节所调查的那样,但我们观察到零样本 CLIP 对其真正分布外的数据泛化仍然很差。一个说明性的例子发生在 OCR 任务上,如附录 E 中所报告的那样。CLIP 学习了一种高质量的语义 OCR 表示,在数字渲染文本上表现良好(这在预训练数据集中很常见),正如在 Rendered SST2 上的性能所证明的那样。然而,CLIP 在 MNIST 的手写数字上仅达到 88% 的准确率。一个令人尴尬的简单基线(原始像素上的逻辑回归)优于零样本 CLIP。语义和近重复最近邻检索都证实,我们的预训练数据集中几乎没有类似于 MNIST 数字的图像。这表明 CLIP 在解决深度学习模型脆弱泛化的潜在问题方面做得很少。相反,CLIP 试图规避这个问题,并希望通过在如此庞大且多样化的数据集上进行训练,所有数据都将有效地处于分布内。这是一个天真的假设,正如 MNIST 所证明的那样,它很容易被违反。
虽然 CLIP 可以灵活地为各种任务和数据集生成零样本分类器,但 CLIP 仍然仅限于从给定的零样本分类器中的那些概念中进行选择。与像图像描述(image captioning)这样可以生成新颖输出的真正灵活的方法相比,这是一个重大的限制。不幸的是,正如第 2.3 节所述,我们发现我们尝试的图像描述基线的计算效率远低于 CLIP。一个值得尝试的简单想法是联合训练对比和生成目标,希望将 CLIP 的效率与描述模型的灵活性结合起来。作为另一种替代方案,可以在推理时对给定图像的许多自然语言解释进行搜索,类似于 Andreas et al. (2017) 在《Learning with Latent Language》中提出的方法。
CLIP 也没有解决深度学习的数据效率低下问题。相反,CLIP 通过使用可以扩展到数亿个训练示例的监督来源来补偿。如果 CLIP 模型在训练期间看到的每张图像都以每秒一张的速度呈现,则需要 405 年才能遍历在 32 个训练 epoch 中看到的 128 亿张图像。鉴于它们在提高标准监督学习数据效率方面的证明能力,将 CLIP 与自监督(Henaff, 2020; Chen et al., 2020c)和自训练(Lee; Xie et al., 2020)方法相结合是一个有前景的方向。
我们的方法论有几个显著的局限性。尽管我们专注于零样本迁移,但我们反复查询完整验证集上的性能以指导 CLIP 的开发。这些验证集通常有数千个示例,这对于真正的零样本场景是不现实的。在半监督学习领域也提出了类似的担忧(Oliver et al., 2018)。另一个潜在问题是我们对评估数据集的选择。虽然我们报告了 Kornblith et al. (2019) 的 12 个数据集评估套件作为标准化集合的结果,但我们的主要结果使用了 27 个数据集的有些随意组装的集合,这些数据集不可否认地与 CLIP 的开发和能力共同适应。创建一个明确设计用于评估广泛零样本迁移能力的基准任务,而不是重用现有的监督数据集,将有助于解决这些问题。
CLIP 是在互联网上与图像配对的文本上训练的。这些图像-文本对是未经过滤和未整理的,导致 CLIP 模型学习到许多社会偏见。这已在图像描述模型中得到证明(Bhargava & Forsyth, 2019)。我们请读者参考第 7 节,了解对 CLIP 这些行为的详细分析和量化,以及对潜在缓解策略的讨论。
虽然我们在整项工作中强调,通过自然语言指定图像分类器是一种灵活且通用的接口,但它有其自身的局限性。许多复杂的任务和视觉概念可能很难仅通过文本来指定。实际的训练示例无疑是有用的,但 CLIP 并不直接优化少样本性能。在我们的工作中,我们退而求其次,在 CLIP 的特征之上拟合线性分类器。这导致在从零样本过渡到少样本设置时性能出现反直觉的下降。正如第 4 节所讨论的,这与人类性能显著不同,人类性能在从零样本到单样本设置时显示出巨大的提升。未来需要开发结合 CLIP 强大零样本性能与高效少样本学习的方法。
7. 更广泛的影响
由于其执行任意图像分类任务的能力,CLIP 具有广泛的能力。人们可以给它猫和狗的图像并要求它分类猫,或者给它在百货商店拍摄的图像并要求它分类扒手——这是一项具有重大社会影响的任务,AI 可能并不适合。像任何图像分类系统一样,CLIP 的性能和适用性需要在上下文中进行评估,并分析其更广泛的影响。CLIP 还引入了一种将放大和改变此类问题的能力:CLIP 使得无需重新训练即可轻松创建自己的分类类别(“roll your own classifier”)成为可能。这种能力引入了类似于在表征其他大规模生成模型(如 GPT-3 (Brown et al., 2020))时发现的挑战;表现出非平凡零样本(或少样本)泛化的模型可以具有广泛的能力,其中许多只有在测试后才变得清晰。
我们在零样本设置下对 CLIP 的研究表明,该模型在图像检索或搜索等广泛适用的任务上显示出巨大的前景。例如,它可以根据文本在数据库中找到相关图像,或根据图像找到相关文本。此外,将 CLIP 引导至定制应用程序的相对容易性(几乎不需要额外数据或训练)可以解锁各种我们今天难以想象的新颖应用,正如过去几年大型语言模型所发生的那样。
除了本文前面部分研究的 30 多个数据集外,我们还评估了 CLIP 在 FairFace 基准测试上的性能,并进行了探索性偏见探测。然后,我们描述了模型在下游任务(监控)中的性能,并讨论了它与其他可用系统相比的有用性。CLIP 的许多能力本质上是全能的(例如,OCR 可用于使扫描文档可搜索、为屏幕阅读技术提供动力或读取车牌)。所衡量的几种能力,从动作识别、对象分类和地理定位,到面部情绪识别,都可以用于监控。鉴于其社会影响,我们在“监控”部分专门讨论了这一使用领域。
我们还试图描述模型固有的社会偏见。我们的偏见测试代表了我们探测模型在不同场景下如何响应的初步努力,并且本质上范围有限。CLIP 和类似的模型将需要与它们的特定部署相关联进行分析,以了解偏见如何表现并识别潜在的干预措施。需要进一步的社区探索来开发更广泛、更具上下文和更稳健的测试方案,以便 AI 开发人员能够更好地描述通用计算机视觉模型中的偏见。
7.1. 偏见
算法决策、训练数据以及关于如何定义和分类类别(我们非正式地称为“类别设计”)的选择,都可能导致并放大因使用 AI 系统而产生的社会偏见和不平等(Noble, 2018; Bechmann & Bowker, 2019; Bowker & Star, 2000)。类别设计与 CLIP 等模型特别相关,因为任何开发人员都可以定义一个类别,而模型将提供某种结果。
在本节中,我们提供了 CLIP 中一些偏见的初步分析,使用了受 Buolamwini & Gebru (2018) 和 Kärkkäinen & Joo (2019) 概述的那些启发的偏见探测。我们还进行了旨在寻找模型中偏见具体示例的探索性偏见研究,类似于 Solaiman et al. (2019) 进行的研究。
我们首先分析零样本 CLIP 在人脸图像数据集 FairFace (Kärkkäinen & Joo, 2019) 上的性能,作为初步偏见探测,然后进一步探测模型以表面化额外的偏见和偏见来源,包括类别设计。
我们评估了 FairFace 数据集上的两个版本的 CLIP:一个零样本 CLIP 模型(“ZS CLIP”),以及一个在 CLIP 特征之上针对 FairFace 数据集拟合的逻辑回归分类器(“LR CLIP”)。我们发现,在大多数我们运行的分类测试中,LR CLIP 在 FairFace 数据集上的准确率高于 ResNext-101 32x48d Instagram 模型(“Linear Probe Instagram”)(Mahajan et al., 2018)和 FairFace 自己的模型。ZS CLIP 的性能因类别而异,在少数类别上比 FairFace 的模型差,而在其他类别上则更好。(参见表 3 和表 4)。
(此处省略表 3、表 4、表 5 的详细数据,它们展示了在 FairFace 数据集上不同种族、性别和年龄分类的准确率。)
7.2. 监控
我们接下来试图描述模型在具有重大社会敏感性的下游任务中的性能:监控。我们的分析旨在更好地体现上述描述方法,并帮助引导研究界关注日益通用的计算机视觉模型的潜在未来影响,并协助制定规范和检查。
(此处省略关于监控任务的详细讨论,包括对 CCTV 图像和 CelebA 数据集的零样本身份检测实验。)
7.3. 未来工作
此初步分析旨在说明通用计算机视觉模型带来的部分挑战,并一瞥它们的偏见和影响。我们希望这项工作能激励未来对这些模型的能力、缺点和偏见进行表征的研究,我们很高兴与研究界就此类问题进行交流。
我们相信,向前迈出的一大步是社区探索,以进一步描述像 CLIP 这样的模型的能力,并——至关重要的是——识别它们具有良好性能的应用领域以及它们可能性能下降的领域。这种表征过程可以帮助研究人员提高模型被有益使用的可能性,通过:
- 在研究过程的早期识别模型潜在的有益下游用途,使其他研究人员能够思考应用。
- 表面化具有重大敏感性和大量社会利益相关者的任务,这可能需要政策制定者的干预。
- 更好地描述模型中的偏见,提醒其他研究人员关注领域和干预领域。
- 创建测试套件来评估像 CLIP 这样的系统,以便我们可以在开发周期的早期更好地描述模型能力。
- 识别潜在的失败模式和进一步工作的领域。
我们计划为这项工作做出贡献,并希望此分析为后续研究提供一些激励性的例子。
8. 相关工作
任何将书面、口头、签名或任何其他形式的人类语言作为其训练信号一部分的模型,都可以说是使用自然语言作为监督来源。这无疑是一个极其广泛的领域,涵盖了分布语义领域的大部分工作,包括主题模型(Blei et al., 2003)、单词、句子和段落向量(Mikolov et al., 2013; Kiros et al., 2015; Le & Mikolov, 2014)以及语言模型(Bengio et al., 2003)。它还包括 NLP 中更广泛的领域,该领域以某种方式处理预测或建模自然语言序列。在 NLP 中,有意利用自然语言监督(以解释、反馈、指令和建议的形式)进行任务(如分类,而不是通常使用的将监督表示为一组任意编码的离散类别标签)的工作已经在许多创造性和高级的方式中进行了探索。基于对话的学习(Weston, 2016; Li et al., 2016; Hancock et al., 2019)开发了从对话中的交互式自然语言反馈中学习的技术。几篇论文利用语义解析将自然语言解释转换为特征(Srivastava et al., 2017)或额外的训练标签(Hancock et al., 2018)。最近,ExpBERT (Murty et al., 2020) 使用通过将深度上下文语言模型调节在自然语言解释和关系描述上而产生的特征表示,来提高关系提取任务的性能。
CLIP 是使用自然语言作为学习语言以外领域的训练信号的一个例子。在这种背景下,我们所知的术语“自然语言监督”的最早使用是 Ramanathan et al. (2013) 的工作,该工作表明自然语言描述可以与其他监督来源一起使用,以提高视频事件理解任务的性能。然而,正如引言和方法部分所提到的,在计算机视觉中利用自然语言描述的方法远早于该特定术语的使用,特别是在图像检索(Mori et al., 1999)和对象分类(Wang et al., 2009)方面。其他早期工作利用与图像关联的标签(但不是自然语言)进行语义分割任务(Barnard et al., 2003)。最近,He & Peng (2017) 和 Liang et al. (2020) 展示了使用自然语言描述和解释来改进鸟类的细粒度视觉分类。其他人研究了如何使用接地语言(grounded language)来改进 ShapeWorld 数据集上的视觉表示和分类器(Kuhnle & Copestake, 2017; Andreas et al., 2017; Mu et al., 2019)。最后,将自然语言与强化学习环境相结合的技术(Narasimhan et al., 2015)展示了令人兴奋的涌现行为,例如系统地完成零样本任务(Hill et al., 2019)。
CLIP 的预训练任务优化了文本-图像检索。这一研究领域可以追溯到 90 年代中期,前面提到的 Mori et al. (1999) 是早期工作的代表。虽然最初的努力主要集中在预测目标上,但随着时间的推移,研究转向了学习联合多模态嵌入空间,使用核典型相关分析和各种排序目标等技术(Weston et al., 2010; Socher & Fei-Fei, 2010; Hodosh et al., 2013)。随着时间的推移,工作探索了训练目标、迁移和更具表现力的模型的许多组合,并稳步提高了性能(Frome et al., 2013; Socher et al., 2014; Karpathy et al., 2014; Kiros et al., 2014; Faghri et al., 2017)。
其他工作利用自然语言监督用于图像以外的领域。Stroud et al. (2020) 探索了通过训练系统将描述性文本与视频而不是图像配对来进行大规模表示学习。几项工作探索了使用密集的口头自然语言监督进行视频(Miech et al., 2019; 2020b)。当与 CLIP 一起考虑时,这些工作表明大规模自然语言监督是为许多领域学习高质量感知系统的一种有前景的方式。Alayrac et al. (2020) 通过添加原始音频作为额外的监督来源,将这一研究方向扩展到另一种模态,并展示了结合所有三种监督来源的好处。
作为我们 CLIP 工作的一部分,我们还构建了一个新的图像-文本对数据集。现代图像-文本检索工作依赖于一组众包句子级图像描述评估数据集,如 Pascal1K (Rashtchian et al., 2010)、Flickr8K (Hodosh et al., 2013) 和 Flickr30K (Young et al., 2014)。然而,这些数据集仍然相对较小,限制了可实现的性能。已经提出了几种自动创建更大数据集的方法,Ordonez et al. (2011) 是一个著名的早期例子。在深度学习时代,Mithun et al. (2018) 展示了从互联网收集的额外(图像,文本)对可以提高检索性能,并且已经创建了几个新的自动构建数据集,如 Conceptual Captions (Sharma et al., 2018)、LAIT (Qi et al., 2020) 和 OCR-CC (Yang et al., 2020)。然而,这些数据集仍然使用明显更激进的过滤,或者被设计用于特定任务(如 OCR),因此仍然比 WIT 小得多,只有 1 到 1000 万个训练示例。
与 CLIP 相关的一个想法是网络监督学习(webly supervised learning)。这一系列工作查询图像搜索引擎以通过查询术语构建图像数据集,并将查询用作返回图像的标签(Fergus et al., 2005)。在这些大型但噪声标注的数据集上训练的分类器可以与在较小精心标注的数据集上训练的分类器竞争。这些图像-查询对也经常被用作额外训练数据来提高标准数据集上的性能(Chen & Gupta, 2015)。CLIP 也使用搜索查询作为其数据集创建过程的一部分。然而,CLIP 仅使用与图像共现的完整文本序列作为监督,而不是仅仅使用查询(通常只是一个单词或短 n-gram)。我们还在 CLIP 中将此步骤限制为仅对文本进行子字符串匹配查询,而大多数网络监督工作使用标准的图像搜索引擎,这些引擎拥有自己的复杂检索和过滤管道,通常涉及计算机视觉系统。在这一系列工作中,Divvala et al. (2014) 的《Learning Everything about Anything: Webly-Supervised Visual Concept Learning》具有与 CLIP 显著相似的雄心和目标。
最后,CLIP 与最近关于学习视觉和语言联合模型的活动浪潮有关(Lu et al., 2019; Tan & Bansal, 2019; Chen et al., 2019; Li et al., 2020b; Yu et al., 2020)。这一系列工作专注于丰富地连接视觉和语言,以解决复杂的下游任务,如视觉问答、视觉常识推理或多模态蕴含。这些方法利用了令人印象深刻的工程模型,这些模型结合了 3 个(或更多)预训练子系统,通常是图像特征模型、区域提议/对象检测模型和预训练的掩码语言模型(如 BERT)。然后,这些系统通过在图像-文本对上的各种训练目标进行联合微调,并应用于上述任务,并取得了令人印象深刻的结果。CLIP 而是专注于通过自然语言监督从头开始学习视觉模型,并且没有用联合注意力模型密集地连接这两个领域。CLIP 模型中图像和文本领域之间唯一的交互是学习到的联合嵌入空间中的单个点积。我们很高兴看到 CLIP 与这一系列工作相结合。
9. 结论
我们研究了是否有可能将 NLP 中任务无关的大规模预训练的成功迁移到另一个领域。我们发现采用这一公式会导致计算机视觉领域出现类似的行为,并讨论了这一研究方向的社会影响。为了优化他们的训练目标,CLIP 模型在预训练期间学习执行各种各样的任务。这种任务学习然后可以通过自然语言提示来利用,以实现到许多现有数据集的零样本迁移。在足够的规模下,这种方法的性能可以与任务特定的监督模型竞争,尽管仍有很大的改进空间。
致谢
我们要感谢参与创建 CLIP 训练数据的数百万人们。我们还要感谢 Susan Zhang 在 OpenAI 时对图像条件语言模型的工作,Ishaan Gulrajani 捕捉到了伪代码中的一个错误,以及 Irene Solaiman、Miles Brundage 和 Gillian Hadfield 对论文更广泛影响部分的深思熟虑的反馈。我们还要感谢 OpenAI 的加速和超级计算团队,感谢他们为本项目使用的软件和硬件基础设施所做的关键工作。最后,我们还要感谢本项目中使用的许多软件包的开发人员,包括但不限于 Numpy (Harris et al., 2020)、SciPy (Virtanen et al., 2020)、ftfy (Speer, 2019)、TensorFlow (Abadi et al., 2016)、PyTorch (Paszke et al., 2019)、pandas (pandas development team, 2020) 和 scikit-learn (Pedregosa et al., 2011)。