点击下载论文

点击查看代码

摘要

在计算机视觉中探索大规模预训练基础模型是具有重大意义的,因为这些模型能很快被迁移到很多下游任务中。本篇论文提出了对比生成器(即CoCa)模型,结合对比损失和生成损失预训练一个基于图片-文本编码器-解码器的极简设计的基础模型,因此,它包含了像CLIP这种基于对比方法和像 SimVLM这种基于生成方法的建模能力。与标准的基于编码器-解码器的所有的解码器层关注编码器的输出的transformers相比, CoCa删除了在解码器层的前半部分的交叉关注而去编码单模的文本表征,并且和解码器层的剩余部分级联,后半部分交叉关注图片编码器是为了获取多模的图片-文本表征。我们在单模的图片和文本嵌入中应用了一个对比损失函数。除此之外,在多模解码器输出上应用了一个生成损失函数,多模解码器输出是用来自回归的预测文本 tokens。通过共享相同的计算图,两个训练目标是用极小的开销达到高效的计算。 CoCa是在网页级别的文本数据和带标注的图片上通过将所有标签简单的视为文本进行端到端和从零开始的预训练,无缝的统一了有监督的自然语言来做表征学习。根据实验CoCa在zero-shot(不用再学习而直接使用)迁移,或者在小的特定任务自适应等跨视觉识别,跨模态检索,多模态理解,和图片生成等这些广泛的下游任务上达到了目前最好的性能。尤其是在 ImageNet分类任务上,CoCa获得了 86.3%的zero-shot top-1精度,用一个冻结编码器和学习过的分类头达到了 90.6%。用一个微调的编码器在 ImageNet达到了目前最好的91.0%的 top-1精度。

1、引言

深度学习最近见证了基础语言模型的兴起比如;BERT, T5 , GPT-3等这些模型在网络级别的数据上预训练,通过 直接迁移,少量样本进行学习后的迁移,或者全样本学习后的迁移学习论证了它拥有泛化的处理多任务的能力。与针对特定任务的某个模型相比,预训练基础模型对大量的下游任务来说能分摊训练成本。提供了突破模型规模限制的机会以达到人类智商的水平。
    对于视觉和视觉-语言中的问题,几个候选的基础模型已经做了探索:(1) [6, 7, 8]这些论文的先驱工作已经证明了单编码器模型用交叉熵损失在诸如 ImageNet等图片分类数据集上的预训练的高效性。图片编码器产生的泛化视觉表征能被应用到很多视觉下游任务中包括图片和视频理解。然而,这些模型严重依赖将图片标注作为标签的向量,不像人类的自然语言这种自由形式。这阻碍了将他们应用到像视觉和语言模式的下游任务当中。 (2)最近,一系列的研究已经证明了在网络规模有噪图片-文本对上使用对比损失预训练两个并行的编码器的候选的图片-文本基础模型的可行性。除了将视觉嵌入应用到只基于视觉的任务,双编码器模型能将编码的文本嵌入添加到相同的指纹空间中的这种结果使产生新的跨模态对齐的能力比如zero-shot图片分类和图片-文本检索。尽管,这些模型不是直接应用到视觉-语言理解相联合的任务中比如:视觉问题回答,因为缺少学习融合图片和文本表征的组件。(3)另一些研究已经探索了用编码器-解码器模型预训练来学习泛化的视觉和多模态表征。在预训练期间,模型在编码器这边对图片进行编码,在解码器输出上使用语言模型损失。对于下游任务,解码器输出能被用作多模态理解任务的联合表征。尽管预训练的编码器-解码器模型已经取得了优越的视觉-语言结果,但是他们不会产生和图片嵌入相一致的文本表征,因此对于跨模态任务来说具有较低的可行性和较低的高效性。

Figure 1:CoCa作为图片-文本基础模型预训练的总览图。拥有零样本迁移,冻结特征评估,或者端到端微调的预训练的CoCa能被用在下游任务包括,视觉识别,视觉-语言任务,图片字幕,多模态理解。
    这本篇论文中,我们将单编码器,双编码器,和编码器-解码器这三种模式统一到一个模型中。我们训练一个图片文本基础模型,使其拥有三种方法的能力。我们提出了一个简单的模型家族叫做Contrastive Captioners(CoCa),它拥有一个已经修改过的编码器解码器架构,用对比损失和生成的损失进行训练。如图一所示,我们将transformer解码器分成两个部分,一个单模解码器,和一个多模解码器。我们删除了单模解码器层中的跨注意力从而编码纯文本的表征,级联多模解码器层,对图片编码器层的交叉注意力到的图片编码器的输出进行级联使之学习到多模的图片-文本表征。我们在图片编码器和单模文本编码器的输出之间应用对比目标损失,在多模解码器的输出上应用生成目标损失。此外, CoCa通过将所有标签简单的视作文本在带标注的图片数据和有噪音的图片-文本数据上进行训练。带标注的图片文本上生成的损失产生了一个细粒度的训练信号,类似于单编码器的交叉熵损失方法。有效的将三种预训练模式整合成一种统一的方法。
    CoCa的设计是利用对比学习来学习全局表征和生成学习来学习细粒度区域级特征,因此有利于在图一中显示的横跨三个类别的任务。CoCa展示了一个单一预训练模型使用不用训练直接迁移或者少量针对特定任务的自适应样本能胜过很多针对特定任务的模型。例如: CoCa在 ImageNet上获得了 86.3%的zero-shot迁移精度,并且在MSCOCO 和 Flickr30k上取得了更好的zero-shot跨模态检索。 CoCa用一个冻结的编码器在ImageNet分类上达到了90.6%的精度,在 Kinetics-40/600/700上分别达到了88.0%/88.5%/81.1%,在Moments-in-Time达到了47.4%。经过稍微的微调,CoCa在ImageNet进一步达到了91.0%,在VQA上达到了82.3%,在 NoCaps达到了 120.6 CIDEr得分。

2、相关工作

视觉预训练 在大规模带标注的数据集比如 ImageNet、 Instagram或者JFT上预训练 ConvNets或者Transformers已经变成了一个很受欢迎的策略去解决包括分类,定位,分割,视频识别、追踪,和很多其他问题的视觉识别问题。最近,自监督预训练方法也在被探索,BEiT按照 BERT在自然语言处理中那样,提出了掩码图片模型任务,并用量化的视觉token ids作为预测目标。 MAE 和 SimMIM移除了所需的图片 tokenizer并直接使用一个轻量的解码器或者投射层来做回归像素值。尽管如此,这些方法只能用来学习视觉模型。因此他们不能应用到需要对图像和文本输入进行联合推理的任务上。
视觉-语言预训练 最近几年,视觉语言预训练取得了快速发展。他的目标是在一个融合模型中联合编码视觉和语言。在这个方向的早期工作依赖于预训练目标检测模块,比如 Fast(er) R-CNN去抽取视觉表征。后期的工作像 ViLT和VLMo联合视觉和语言 transformers,从零开始训练一个多模态的 transformers。
图片文本基础模型最近的工作已经提出了图片-文本基础模型,它包含了视觉和视觉-语言预训练。 CLIP和ALIGN论证了双编码器模型用对比目标损失在带噪音的图片-文本对上预训练对跨模态对齐任务和zero-shot图片分类任务来说能够学到很强的图片和文本表征。Florence进一步发展了这个方法,训练基础模型能被应用到大范围的视觉和图片-文本基准模型上。为进一步提高zero-shot图片分类的精度。 LiT和 BASIC首先在一个大规模的带标注的图片数据集上使用交叉熵损失进行预训练,用对比损失在有噪声的文本图片数据集上进一步微调。另一些研究提出了编码器-解码器模型用生成的损失进行训练,在视觉-语言基准上产生了很强的结果,同时视觉编码器在图片分类上的表现仍然很具竞争性。在我们的工作中,我们关注在一个单一预训练阶段去融合这些模型从零开始预训练一个图片-文本基础模型。与此同时的FLAVA 和 BLIP的工作也在探索将图片-文本统一的模型,他们要求单模和多模模块有多个预训练阶段。

3、方法

我们首先回顾这三个不同的基础模型家族,他们结合了有监督的自然语言任务:单编码器的分类预训练模型,双编码器的对比学习模型,编码器-解码器的图片生成模型,然后我们介绍CoCa,它在一个简单架构下共享对比学习和image-to-caption的指标。进一步的我们会讨论CoCa模型如何能快速的无需再训练而直接迁移或者很少任务自适应的迁移到下游任务当中。

3.1、有监督的自然语言

单编码器分类 单编码器的分类方法在一个大的带标注的图片数据集上通过图片分类预训练一个视觉编码器,其中,带标注的文本的词汇表通常是固定的,这些带标注的图片通常映射到离散的类别向量使用交叉熵损失去进行学习如下:LCls=−p(y)logqθ(x),(1)\mathcal L_{Cls} = -p(y)logq_θ(x),\quad\quad\quad\quad\quad\quad\quad\quad(1)LCls​=−p(y)logqθ​(x),(1)其中p(y)是一个类别,多个类别或者来自真实标签y的光滑标签分布,已学习过的图片编码器作为下游任务的一个泛化的视觉表征提取器。
双编码器对比学习与单编码器分类预训练相比,单编码器分类预训练需要人类标注过的标签并且数据是干净的,双编码器方法探索有噪音的网络级别的文本描述和引入一个可学习的文本塔去编码格式自由的文本。这两个编码器是通过将文本对和在一个批量样本中的其他文本对进行对比统一优化的:LCon=−1N(∑iNlogexp(xiTyi/σ)∑j=1Nexp(xiTyi/σ)+∑iNlogexp(yiTxi/σ)∑j=1Nexp(yiTxj/σ)),(2)\mathcal L_{Con} = -\frac{1}{N}(\sum^N_ilog\frac{exp(x_i^Ty_i/\sigma)}{\sum^N_{j=1}exp(x_i^Ty_i/\sigma)}+\sum^N_ilog\frac{exp(y_i^Tx_i/\sigma)}{\sum^N_{j=1}exp(y_i^Tx_j/\sigma)}),\quad\quad\quad(2)LCon​=−N1​(i∑N​log∑j=1N​exp(xiT​yi​/σ)exp(xiT​yi​/σ)​+i∑N​log∑j=1N​exp(yiT​xj​/σ)exp(yiT​xi​/σ)​),(2)其中xix_ixi​和yiy_iyi​分别是在第iii对的归一化后的图片嵌入和第jjj对的归一化后的文本嵌入,N是批量大小,σ\sigmaσ是温度值用来缩放log,除了图片编码器,双编码器方法也学习一个对齐的文本编码器,使之能进行跨模态对齐应用,例如图片文本检索,zero-shot图片分类。实验表明zero-shot分类在已损坏的或者无分布状态的图片上是更健壮的。
编码器解码器生成尽管双编码器方法将文本编码为一个整体,生成方法(又称captioner)旨在实现详细的粒度,并要求模型以自回归的方式预测y的提取文本 token。按照标准的编码器-解码器架构,图片编码器提供了指纹的编码特征,文本解码器在前向自回归因子分解下学习最大化成对文本y的条件似然:LCap=−∑t=1Tlog(Pθ(yt∣y<t,x)).(3)\mathcal L_{Cap} = -\sum^T_{t=1}log(P_θ(y_t|y<t,x)).\quad\quad\quad\quad\quad(3)LCap​=−t=1∑T​log(Pθ​(yt​∣y<t,x)).(3)编码器-解码器使用 teacher-forcing[39]进行训练以达到并行计算和最大化学习效率,不像之前的方法,生成器方法产生了一个图片-文本相结合的表征这能被用到视觉-语言理解,并且能够用自然语言生成图片的能力。

Figure 2: CoC架构和训练物体的详细说明

3.2、对比生成器预训练

图二描述了所提的对比生成器(CoCa):一个简单的编码器-解码器方法它无缝的结合了三中训练模式。与标准的图片-文本编码器-解码器模型类似,CoCa通过神经网络编码器将图片编码成指纹表征。例如:视觉 transformer (ViT)(默认用ViT,也可以是其他的图片编码器像ConvNets),用一个带有随机掩码的transformer解码器解码文本。不像标准的transformers解码器, CoCa删除了解码器层前半部分的交叉注意力而去编码单模的文本表征,级联解码器层的剩余部分,交叉注意图片编码器来获取多模图片-文本表征。最终,CoCa解码器同时产生了单模和多模的文本表征这允许我们应用对比和生成目标损失如:LCoCa=λCon⋅LCon+λCap⋅LCap,(4)\mathcal L_{CoCa} = \lambda_{Con}·\mathcal L_{Con}+\lambda_{Cap}·\mathcal L_{Cap}, \quad\quad\quad\quad(4)LCoCa​=λCon​⋅LCon​+λCap​⋅LCap​,(4)其中λCon\lambda_{Con}λCon​和λCap\lambda_{Cap}λCap​是损失权重超参数。我们注意到当词是所有标签名的集合时,单编码器交叉熵分类目标能用被应用在带标注的图片数据上的生成方法的一种特殊情况来解释。
解耦的文本编码器和 CoCa架构生成方法的优化条件和文本的类似,然而对比方法使用无条件的文本表征。为了解决这个困境,将这两个方法整合到一个单一模型中。我们提出了一个简单的解耦的解码器设计,在这个设计里我们通过在单模解码器层跳过交叉注意力机制来将解码器分割为单模和多模部分。底部的nunin_{uni}nuni​单模解码器层使用随机掩码的自注意力将输入文本编码成指纹向量。顶部的nmultin_{multi}nmulti​多模层进一步将随机掩码的自注意力和交叉注意力用在视觉编码器的输出上。所有的解码器层禁用来自后来的tokens,而是直接用多模文本解码输出来生成目标损失LCap\mathcal L_{Cap}LCap​,对于对比目标损失LCon\mathcal L_{Con}LCon​,我们在输入序列的最后追加一个可学习的[分类]tokens,用它的相应的单模解码输出作为文本嵌入。我们将解码器对半分开像这样 nuni=nmultin_{uni} = n_{multi}nuni​=nmulti​。遵循ALIGN,我们用分辨率为 288×288的图片和 18×18图像块进行预训练,最后会产生256个图片tokens。我们的最大的CoCa模型按照ViT-giant在 [21]中的设置在图片编码器上拥有1B个参数,和文本解码器加起来有2.1B个参数。我们也探索了两个较小的变种CoCa-Base和CoCa-Large,详细的内容看表1。
Table 1: 不同版本的 CoCa。图片编码器和文本编码器是用的 Transformers。

注意力池 值得注意的是对比损失在每个图片上使用一个单一的嵌入然而解码器通常关注在编码器-解码器的生成器中的一个图片输出 tokens序列。我们的初步实验显示,一个单一的被池化过的图片嵌入作为一个全局表征有助于视觉识别任务。然而更多的视觉tokens(因此要跟多的微调)有助于要求是区域级特征的多模态理解任务。因此,CoCa采用了针对特定任务的注意力池去定制视觉表征用作不同类型的训练目标和下游任务。因此,一个池化器是一个带有nqueryn_{query}nquery​个可学习的 queries的单一多头注意力,池化器的编码器输出即作为键也作为值。通过这,模型为了具有两个训练目标的能力去学习不同长度的池化嵌入。如图二所示。使用特定任务的池化操作不仅解决了不同任务的不同需求,而且引入池化器作为自然语言任务的适配器。我们在预训练时用注意力池化器来应对nquery=256n_{query} = 256nquery​=256的生成损失和nquery=1n_{query} = 1nquery​=1的对比损失。
高效预训练 解耦解码器设计的一个主要优点是对于所考虑的两个训练损失,特定损失参数可以忽略不计。因此,自回归语言模型是在完整的句子上用随意的掩码进行训练。解码器用一个单一前项传播能为对比和生成损失产生有效的输出。因此,主要的计算是在共享的两个损失之间, CoCa与标准的编码器和解码器相比,只占用了少量开销。另一方面,尽管很多已存在的方法在各种数据源或者模式上用多个阶段训练模型组件。CoCa是通过将所有标签看做文本用各种各样的数据源直接从零开始进行端到端的预训练为了对比和生成目标。

3.3、为下游任务使用对比生成器

无需再学习而直接迁移一个预训练过的CoCa模型利用图片和文本输入用zero-shot的方式执行过很多任务。包括: zero-shot图片分类 、 zero-shot图片-文本交叉检索 、 zero-shot视频-文本交叉检索。根据以前的[12, 31]中的实验, 这里的“zero-shot”和分类当中的在预训练阶段的zero-shot学习不同,模型可能看到了相关的有监督信息但是迁移协议中用的是无监督样本。对于预训练数据,我们严格遵循[13, 31]中的去重程序,筛选掉下游任务当中的所有的邻域样本。
冻结特征评估正如上一部分讨论的那样, CoCa采用了针对特定任务的注意力池(简便起见用池)为不同类型的下游任务定制视觉表征同时共享骨干编码器。这能让冻结编码器模型获得很强的性能,在模型当中我们我们只学习到了一个新的池化器去聚合特征。这也有利于解决多任务中的问题,它共享相同的冻结图像编码器计算除了不同的特定任务的头。在 [23]中也讨论了线性评估很难准确衡量学习到的表征,我们发现注意力池更适合于实际应用。

Figure 3: CoCa应用在视频识别上

CoCa应用在视频动作识别上我们用一个简单的方法让一个可学习的 CoCa模型应用在了视频动作识别任务上。我们首先取视频的多个帧并将每个帧分别的填充到共享的图片编码器中,如表三所示。对于冻结的特征评估或者微调,我们在空间和时间特征tokens的顶部学习一个额外的池化器,该池化器具有softmax交叉熵损失。注意池化器有一个单一的查询token,此外在整个空间和时间token的池化操作的计算代价并不昂贵。对于 zero-shot视频-文本检索,我们用一个非常简单的方法计算16帧的视频的平均嵌入值(帧是从视频中均匀采样的)。当计算检索指标时,我们也将每个视频的生成,编码为目标嵌入。

实验

在这部分,我们首先描述我们实验设置的细节,主要结果是以视觉识别任务,跨模态任务,图片文本说明,和多模态理解任务的形式呈现出来。我们的主要结果由为三个类别的下游任务实施: zero-shot迁移,冻结特征评估和微调。我们也进行了包括训练目标和架构设计的消融实验。

4.1、训练设置

数据正如3.2部分讨论的,CoCa是在网络级别的文本数据和将所有标签简单的视为文本的带标注的图片上在单一阶段从零开始预训练。我们使用将标签名作为文本对的JFT-3B数据集,带有噪声文本的ALIGN数据集。与[32]类似,我们随机打乱和拼接在JFT中的每个图片的标签和 [12]中的一个随机采样。一个JFT图像的最终文本标签示例类似于“猫、动物的照片”。不像之前的模型,他们也用这两种数据集的组合。我们为了简单和预训练的高效性,从头开始训练所有的模型参数同时没有预训练一个带有有监督的交叉熵损失的图片编码器。为了确保公平的进行评估,我们严格按照在[13, 31]中引入的去重程序筛选掉我们的下游任务中的所有的邻域样本。为了标记文本输入,我们用一个词大小为64k的句子片段模型在样本预训练数据集上进行训练。
优化我们的模型是用 Lingvo架构实现的。按照 [32],我们用一个批量大小为 65,536的图片-文本对,其中每个批次的一半分别来自JFT 和 ALIGN。所有模型是用在方程式4中的对比和生成目标的结果进行训练50万步相当于JFT上的五轮,ALIGN上的十轮。正如在我们的研究中一会将展示的那样,我们发现一个大的生成损失权重更好,因此λCap=2.0\lambda_{Cap} = 2.0λCap​=2.0并且λCon=1.0\lambda_{Con} = 1.0λCon​=1.0。按照 [13],我们用了一个带有可训练的温度的对比损失,其中温度的初始化值T为0.07。为了内存效率,我们使用β1 = 0.9, β2 = 0.999的Adafactor优化器,0.01的解耦权重衰减率。我们用训练步数的前2%步进行学习率预热到 8 × 100−4100^{-4}100−4的峰值,之后线性衰减。在2,048 CloudTPUv4芯片上花了5天预训练 CoCa 。按照 [12, 13, 14],我们在一个更高的 576×576的分辨率下继续预训练一轮。对于微调评估,我们主要按照简单协议,直接在下游任务上训练CoCa,没有像 CIDEr分数那样进一步对特定指标进行微调。

Figure 4:CoCa与其他的图片文本基础模型和多个目前最好的针对特定任务的方法进行对比。

4.2、主要结果

我们在一系列广泛的下游任务中拓展评估CoCa作为一个预训练基础模型的能力。我们主要考虑三个类别的核心任务,检测 (1)视觉识别, (2)跨模态对齐,(3)图片生成和多模态理解的能力。因为CoCa同时产生单模表征对齐和融合多模嵌入,使得它用较小的自适应迁移到三个任务组中。图四概括了CoCa和其他双-编码器、编码器-解码器基础模型和目前最好的针对特定任务的方法的基准模型的性能比较。 CoCa用一个单一的预训练检查点在三个类别的任务上达到了目前最好的结果。

4.2.1、视觉识别任务

我们的视觉识别任务是建立在以 ImageNet为图像识别的基准数据集和多个视频数据集,包括:Kinetics-400 Kinetics-600, Kinetics-700,和Moments-in-Time作为视频动作识别的平台。值得注意的是 CoCa只在图片数据上预训练,不用访问任何额外的视频数据集。我们将coca的编码器单独应用到视频帧上,没有早期的时间信息的融合,然而coca的视频模型的性能仍然比很多时空早起融合的视频模型要好。

Table 2:带有冻结编码器或者微调编码器的图片分类和视频动作识别。

冻结特征我们在图片分类和视频动作识别上应用了一个预训练冻结的coca模型。编码器是应用在了两个任务上同时丢弃了解码器。正如在3.3部分讨论的那样,在CoCa编码器嵌入输出的顶部有一个注意力池和softmax交叉熵损失层一起学习。对于视频分类,单一查询-token是根据加权的空间块x时间帧的所有tokens的输出学习的。我们在注意力池化器和softmax上设置学习率为 5 × 100−4100^{-4}100−4,批量大小为128,和cosine学习率调度。对于视频动作识别,我们用相同的设置方法对比了coca和其他方法(例如:没有额外的有监督视频数据,没有作为模型输出的音频信号)。如表2所述,不用微调整个编码器,与有针对性特定图片的模型相比 CoCa已经达到了很具竞争性的 Top-1分类精度,在视频任务上胜过了以前最好的针对特定方法的模型。

Figure 5:不同规模的模型在图片分类上的性能。
微调基于冻结特征评估的架构,我们用一个较小的学习率1×100−41 × 100^{-4}1×100−4进一步分别在图片和视频数据上微调coca编码器。更多的实验细节请看附录A。经过微调的CoCa提高了这些任务的性能。值得注意的是,CoCa在ImageNet上达到了一个新高度 91.0% 的Top-1精度。同样在视频动作识别上要比最近的视频方法要好。更重要的是,如表5a所示 CoCa模型在视觉编码器上用了比其他方法更少的参数。这些结果表明,我们所提的框架有效的结合了文本训练信号,因此与分类信号编码器方法相比更能学习到高质量视觉表征。

4.2.2 跨模态对齐任务。

不像其他的基于融合的基础方法,coca能很自然的应用到跨模态对齐任务,因为它能生成对齐的图片和文本单模嵌入。尤其是,我们对zero-shot设置感兴趣,在zero-shot这里所有的预训练后的参数都是冻结的,直接用来提取嵌入特征。在预训练期间,我们把相同的嵌入用在对比损失上。因此没有用多模的文本解码器。

Table 3:在 Flickr30K 和 MSCOCO数据集上进行无样本图片-文本检索的结果。

Zero-Shot图片文本检索我们在 MSCOCO和Flickr30K这两个标准的图片文本检索基准上评估 CoCa。按照CLIP的设置,我们首先独立的将每个图片/文本放到对应的编码器中,获得在测试集中的所有图片/文本嵌入特征。然后,我们在整个测试数据集上使用基于cosine相似度得分进行检索。如表三所述,coca在图片检索文本和文本检索图片上与以前的方法相比,在所有指标上都有重大提升。除此之外,我们的模型的参数是高效的。CoCa-Base模型已经远胜过其他基准模型, CoCa-Large胜过了 Florence(其参数量和ViT-Huge相当),这表明CoCa学习到了很好的单模表征,并且把跨模式对齐做的很好。

Table 4:在 ImageNet [9], ImageNet-A [58], ImageNet-R [59], ImageNet-V2 [60], ImageNet-Sketch [61] 和 ObjectNet上的无样本图片分类结果。
Zero-Shot图片分类按照以前他们 [12, 13]的工作,我们没有微调用对齐的图片/文本嵌入通过标签名匹配图片去执行无样本图片分类。我们按照 [12]中的设置,应用相同的提示集作为标签类别名称。如表四所述,CoCa在ImageNet上达到了目前最好的无样本迁移分类结果。值得注意的是, CoCa比以前最好的模型使用的参数还少,同时更小的 CoCa变体已经远胜 [12, 14]中的基准模型,如图5b所示。除此之外,我们的模型在zero-shot评估上表现出了有效的泛化能力,与之前的发现结果相一致。 CoCa在考虑到的六个数据集上都有提升。最后,尽管以前的模型发现在多个阶段用单编码器和双编码器方法的序列预训练对性能提升是至关重要的。我们的结果证明了在一个单一阶段框架中,通过统一训练物体和数据集来获得很强的性能是可能的。

Table 5在MSR-VTT Full测试集上的无样本视频-文本检索。
Zero-Shot视频检索我们在 MSR-VTT上使用coca用全分割评估视频-文本检索。表五显示 CoCa在文本到视频和视频到文本检索上取得了最高的检索指标。需要郑重声明MSR-VTT视频来自YouTube,我们需要原始视频来计算我们的嵌入特征。很多视频已经被明确是无用的了,因此,我们使用在评估期间公开可用的数据的子集上计算检索。使用 Socratic Models的作者提供的代码,对于这些方法我们在可利用的子数据集上重新计算各项指标。注意使用“子集”是为了确保公平对比。

4.2.3 图片生成和多模理解任务

CoCa的另一个关键优势是它能够将多模态嵌入处理为一个按照生成目标训练的编码器-解码器模型。因此,CoCa能执行图片生成和多模理解的下游任务并且不用做任何进一步的融合自适应。总的来说,实验结果表明:coca拥有编码器-解码器模型的优势去获得更强的多模态理解和生成能力。此外,还具有视觉和检索功能作为双编码器的一种方法。

Table 6:视觉-语言预训练方法在多模理解结果上的对比,OFA用图片和文本作为输入,其他模型都只用图片。

多模理解正如在 [16]中的那样,编码器-解码器模型的输出能联合编码图片和文本输入,可用于需要在两种模式上进行推理的任务。我们考虑到三个流行的多模理解基准:视觉问答,视觉蕴含,视觉推理。我们主要按照 [16]中的设置,在解码器输出的顶部训练线性分类器去预测答案。表六上的结果表明 CoCa大幅领先视觉-语言预训练基准模型并且在上述的三个任务上达到了目前最好的性能。虽然以前的双编码器模型不包含融合层,但是对于下游多模理解任务就需要一个额外的VL预处理阶段。CoCa包含了三种预训练模式,经过轻微的微调能在VL任务上获得更好的性能。

Table 7在 MSCOCO 和 NoCaps上的图片生成结果,使用 CIDEr优化器进行微调。
图片生成除了多模分类任务, CoCa也可以直接应用到图片生成任务作为一个编码器-解码器模型。我们只在 MSCOCO生成任务上使用生成损失LCap\mathcal L_{Cap}LCap​微调CoCa,评估使用MSCOCO Karpathy-test split和NoCaps,在线上进行评估。如表七上的实验, CoCa在MSCOCO上大幅胜过了使用交叉熵损失进行训练的基准模型。取得的结果能和使用特定指标优化的 CIDEr的方法进行比较。值得注意的是,为了简便,我们没有使用特定的CIDEr的优化方法。在挑战在NoCaps的基准模型上, CoCa取得了新的目前最好的验证和测试结果。这些结果表明了CoCa作为一个图片-文本基准模型的生成能力。

消融分析

我们在一个较小的模型变体上对 CoCa的属性进行了广泛地消融实验。特别的,我们训练用一个减少了12层解码器层和总批量大小是4096的CoCa-Base模型。我们主要使用 zero-shot的图片分类和VQA进行评估,因为前者包含了视觉表征质量和跨模态对齐,然而后者却代表着多模态推理。
生成vs分类我们首先在带标注的图片数据集上检验生成损失的有效性。为了做这个,我们使用LCap\mathcal L_{Cap}LCap​在 JFT-3B数据集上训练一个编码器-解码器模型,与训练时使用LCls\mathcal L_{Cls}LCls​的一个标准的ViT-Base单编码模型相比较的结果在表8a中展示。我们发现编码器-解码器模型在线性评估和微调结果方面与单编码器预训练模型旗鼓相当。这表明,生成的预训练包含分类预训练,和我们的直觉一样,当文本词汇表是所有可能类名的集合时LCls\mathcal L_{Cls}LCls​是LCap\mathcal L_{Cap}LCap​的一种特殊情况。因此, 我们的CoCa模型能被解释为三种模式的有效统一模式。这解释了为什么CoCa不需要预训练视觉编码器同样能表现的非常好。

Table 8:CoCa的消融实验。在ImageNet上做分类实验,我们分别报告了无样本,线性评估,在冻结特征上使用池化器的注意力评估,微调的 top-1精度。在 MSCOCO上进行检索实验,我们报告了图片到文本和文本到图片的平均R@1。在VQA上我们报告了dev-set vqa得分。coca的默认设置用粗体表示。

训练目标我们研究两个训练目标的有效性和与单一目标的CoCa变体的比较,在表8b中显示。与仅有对比损失的模型相比,CoCa在 zero-shot对齐和VQA上都有重大提升(注意:对于VQA,只需要对比损失的模型要求一个额外的融合)。CoCa在 VQA上胜过了同等的只需要生成损失的模型尽管它能做额外检索任务比如: zero-shot分类。表8c进一步的研究了损失比率。表明,生成损失不仅能提高VQA而且能够改进模型之间的 zero-shot对齐。我们假设生成目标学习细粒度的文本表示,从而进一步提高文本理解。最后,我们在表 8b上比较了训练代价,发现 CoCa和只有生成损失的模型一样高效,因为在两个目标之间共享计算。这些表明,结合两种损失催生出了新的能力和更好的性能,用较少的额外代价。
单模和多模解码器CoCa介绍了一个新颖的解码器设计,我们对他的组成部分做了消融实验。在表8d中,我们改变单模解码器层的数量(同时保持总的层数不变)。直观的,更小的单模文本层会导致更糟糕的zero-shot分类因为缺乏好的单模文本理解的能力,然而更小的多模层减少模型推理多模输入的能力比如:在VQA上。总的来说,我们发现解耦一半的解码器能维持一个很好的平衡。一个可能是对检索来说,全局文本表征不需要深层的模块。同时对于多模理解来说浅层的早期融合可能也是没必要的。接下来,我们探索多个选项来提取单模文本嵌入。尤其是,我们将对可学习类别tokens的数量和聚合设计进行实验。对于后者,我们只对[CLS]标记进行聚合,或者对[CLS]与原始输入语句的拼接进行聚合。有意思的是,在表 8e中我们发现不用原始输入, 训练一个单一的分类token是更有利于只做视觉和跨模态检索任务。这表明,学习一个额外的简单的序列能减轻对比和生成损失之间干扰,具有很强的泛化能力。
注意力池CoCa在它的不同预训练目标和特定目标的下游任务自适应的设计中探索应用注意力池。在预训练时,我们对比了少量的变体在对比损失和生成损失上应用池化器:(1)、‘并行’设计它在Vision Transformer编码输出上同时提取对比和生成损失,如图2所示。(2)、‘级联’设计,它在生成池化器的输出的顶部应用对比池化器。表8f显示的是这些变体的结果。根据经验,我们发现在小规模‘级联’版本上(对比池在生成池的顶部)的执行的更好,是所有CoCa模型的默认设置。我们也研究查询数量的效果,当nquery=0n_{query}=0nquery​=0意味着没有使用生成池化器(因此所有的ViT输出tokens是使用解码器的交叉注意力)。结果显示,在稍高的计算量和参数量下两个任务都更适合使用更长的详细的序列的图片的tokens。作为结果,我们用一个长为256的生成池去提高多模理解基准同时仍然维持很强的冻结特征的能力。

更广泛的影响

我们的工作表现出了一个在网络级别的数据集上的图片-文本的预训练方法,这是一种能在 zero-shot或者轻微的微调下迁移到广泛的下游任务中的能力。尽管预训练模型拥有在很多视觉和视觉-语言任务上工作的能力,我们注意到,我们的模型和以前的方法使用相同的预训练数据,在实际使用模型时对模型的数据和结果做额外的分析是很有必要的。在有损的图片上,我们的coca模型表现的更健壮。但是它仍然易受其他有损图片的影响,这些有损图片是那些在当前的评估集或者真实场景中尚未出现过。对于数据和模型,进一步的交流探索是要求我们去理解其深远影响,这些影响包括但不限于公平、社会偏见和潜在的滥用。

6、结论

在本篇论文中,我们展示了Contrastive Captioners模型,一个新的图片-文本基础模型家族,它包括已存在的使用有监督的自然语言处理的视觉预训练策略。在一个单一阶段来自大量数据源在图片-文本对上进行预训练。 CoCa在一个编码器-解码器模型中高效的结合了对比和生成目标损失。CoCa在广泛的视觉和视觉-语言问题中用一个单检查点取得了一系列的目前最好的性能。我们的工作弥补了各种预训练方法之间的差距。我们希望它能为图片-文本基础模型建立起新的方向。

CoCa: Contrastive Captioners are Image-Text Foundation Models翻译相关推荐

  1. <<多模态预训练>>2022:CoCa: Contrastive Captioners are Image-Text Foundation Models

    目录 Abstract 1.Introduction 2.Related Work 3.Approach 3.1.Natural Language Supervision 3.2.Contrastiv ...

  2. Mesh基础模型(Foundation models)(一)

    写在前面: 本文参考Mesh Core Spec 翻译而来,翻译能力有限肯定有理解不到位之处,还请大家指出.欢迎广大蓝牙.mesh爱好者一起交流,本人QQ:993650814. 注意:本篇包含mesh ...

  3. ChatGPT 拓展资料:论文阅读A Comprehensive Survey on Pretrained Foundation Models: A History from BERT to Chat

    ChatGPT 拓展资料:A Comprehensive Survey on Pretrained Foundation Models: A History from BERT to ChatGPT ...

  4. 学习笔记:《Foundation models for generalist medical artificial intelligence》

    目录 一.GMAI模型的概念与优势 二.GMAI模型面临的挑战 1.验证 2.社会偏见 3.隐私 4.规模 5.技术挑战 三.结论: 参考文献 最近在<Nature>杂志上发表的一篇名为& ...

  5. Approximate Nearest Neighbor Negative Contrastive Learning for Dense Text Retrieval

    Approximate Nearest Neighbor Negative Contrastive Learning for Dense Text Retrieval 密集检索 (DR) 的有效性通常 ...

  6. 2022CoCa: Contrastive Captioners are Image-Text Fountion Models

    摘要 探索大规模预训练基础模型对计算机视觉具有重要意义,因为这些模型可以迅速地转移到许多下游任务.本文提出对比标注器(CoCa),一种极简的设计,预训练一个图像-文本编码器-解码器模型,并结合对比损失 ...

  7. 【InternImage】Exploring Large-Scale Vision Foundation Models with Deformable Convolutions

    基于Deformable Conv的大规模基础模型 特点: 采用Deformable Conv V3 [v2 19论文] CNN模型 背景 大规模的ViT模型借助模型能力在超大规模数据集上取得了非常高 ...

  8. MICCAI 2023 FLARE国际竞赛:打造腹部泛癌CT分割Foundation Models

    竞赛官网 CodaLab - Competitionhttps://codalab.lisn.upsaclay.fr/competitions/12239 背景介绍 腹部器官是相当常见的患癌部位,例如 ...

  9. Scaling Instruction-Finetuned Language Models翻译

    摘要 已被证明,在指令数据集上微调语言模型可以改善模型性能和对未知任务的泛化能力.在本文中,我们探索了指令微调,并主要关注下面几点:(1)缩放任务的数量,(2)缩放模型的大小,(3)在思维链数据集上进 ...

最新文章

  1. 谷歌语音文本转换python代码_python - Python Google语音到文本的转换 - SO中文参考 - www.soinside.com...
  2. Swift - final关键字的介绍,以及使用场景
  3. 进程相关(进程Id获取主窗口)
  4. c语言 如何创建adt_编程那些事儿:面向对象编程基石之数据抽象(ADT)
  5. JQuery如何与数据库交互
  6. 重磅福利!程序员面试——算法工程师面试大全第六部分
  7. ios动态创建类Class
  8. 手机android flash,安卓手机flash插件最新版
  9. 台式计算机操作系统的安装方法,台式电脑显卡散热器的更换及安装方法教程[多图]...
  10. 【SD自动记账】SD与FI的集成部分
  11. 小程序步数解密php,微信小程序--获取微信运动步数的实例代码
  12. (万字超详细的复习资料丨没有之一)通信原理考试复习资料,按需收藏加关注。
  13. 两晋南北朝·高洋(上)
  14. python中循环结构后怎么用sum函数怎么用_python sum函数 教程《python的sum函数怎么用?》...
  15. android火焰图分析,android实现简单的火焰效果
  16. 【回归预测-ELM预测】基于粒子群算法PSO优化极限学习机预测附matlab代码
  17. PX4 ROS学习资源汇总
  18. 对抗海量表格数据,【华为2012实验室】没有选择复仇者联盟
  19. 可扩展标记语言XML之一:XML的概念、作用与示例
  20. VirtualBox Installation failed! Error :安装时发生严重错误

热门文章

  1. 万卷书 - 大家来写作 [Everybody Writes]
  2. 半世纪以来最佳英文小说:《英国病人》
  3. nRF SPI 与 TWI 操作相关 (BMI088 与 MLX90614 举例)
  4. 走近门球运动·体育项目
  5. 2019年2月被举报钓鱼网站
  6. iOS7的十个更“佳”:简洁直观更受青睐
  7. iphone6s 计算机算次方,你一定不能错过的8个iphone使用技巧(纯干货)
  8. 视音频编解码技术及其实现 杭州海康威视数字技术有限公司 胡扬忠
  9. Python快速上手系列--循环结构--基础篇
  10. pcl启动java代码_我的世界PCL启动器-Plain Craft Launcher(PCL启动器)下载 v1.0.9免费版--pc6下载站...