在计算机视觉中探索大规模预训练基础模型是具有重大意义的,因为这些模型能很快被迁移到很多下游任务中。本篇论文提出了对比生成器(即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精度。
深度学习最近见证了基础语言模型的兴起比如;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得分。
视觉预训练 在大规模带标注的数据集比如 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的工作也在探索将图片-文本统一的模型,他们要求单模和多模模块有多个预训练阶段。
我们首先回顾这三个不同的基础模型家族,他们结合了有监督的自然语言任务:单编码器的分类预训练模型,双编码器的对比学习模型,编码器-解码器的图片生成模型,然后我们介绍CoCa,它在一个简单架构下共享对比学习和image-to-caption的指标。进一步的我们会讨论CoCa模型如何能快速的无需再训练而直接迁移或者很少任务自适应的迁移到下游任务当中。
单编码器分类 单编码器的分类方法在一个大的带标注的图片数据集上通过图片分类预训练一个视觉编码器,其中,带标注的文本的词汇表通常是固定的,这些带标注的图片通常映射到离散的类别向量使用交叉熵损失去进行学习如下: L C l s = − p ( y ) l o g q θ ( 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的光滑标签分布,已学习过的图片编码器作为下游任务的一个泛化的视觉表征提取器。
双编码器对比学习与单编码器分类预训练相比,单编码器分类预训练需要人类标注过的标签并且数据是干净的,双编码器方法探索有噪音的网络级别的文本描述和引入一个可学习的文本塔去编码格式自由的文本。这两个编码器是通过将文本对和在一个批量样本中的其他文本对进行对比统一优化的: L C o n = − 1 N ( ∑ i N l o g e x p ( x i T y i / σ ) ∑ j = 1 N e x p ( x i T y i / σ ) + ∑ i N l o g e x p ( y i T x i / σ ) ∑ j = 1 N e x p ( y i T x j / σ ) ) , ( 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∑Nlog∑j=1Nexp(xiTyi/σ)exp(xiTyi/σ)+i∑Nlog∑j=1Nexp(yiTxj/σ)exp(yiTxi/σ)),(2)其中 x i x_i xi和 y i y_i yi分别是在第 i i i对的归一化后的图片嵌入和第 j j j对的归一化后的文本嵌入,N是批量大小, σ \sigma σ是温度值用来缩放log,除了图片编码器,双编码器方法也学习一个对齐的文本编码器,使之能进行跨模态对齐应用,例如图片文本检索,zero-shot图片分类。实验表明zero-shot分类在已损坏的或者无分布状态的图片上是更健壮的。
编码器解码器生成尽管双编码器方法将文本编码为一个整体,生成方法(又称captioner)旨在实现详细的粒度,并要求模型以自回归的方式预测y的提取文本 token。按照标准的编码器-解码器架构,图片编码器提供了指纹的编码特征,文本解码器在前向自回归因子分解下学习最大化成对文本y的条件似然: L C a p = − ∑ t = 1 T l o g ( P θ ( y t ∣ y < t , x ) ) . ( 3 ) \mathcal L_{Cap} = -\sum^T_{t=1}log(P_θ(y_t|y
Figure 2: CoC架构和训练物体的详细说明
图二描述了所提的对比生成器(CoCa):一个简单的编码器-解码器方法它无缝的结合了三中训练模式。与标准的图片-文本编码器-解码器模型类似,CoCa通过神经网络编码器将图片编码成指纹表征。例如:视觉 transformer (ViT)(默认用ViT,也可以是其他的图片编码器像ConvNets),用一个带有随机掩码的transformer解码器解码文本。不像标准的transformers解码器, CoCa删除了解码器层前半部分的交叉注意力而去编码单模的文本表征,级联解码器层的剩余部分,交叉注意图片编码器来获取多模图片-文本表征。最终,CoCa解码器同时产生了单模和多模的文本表征这允许我们应用对比和生成目标损失如: L C o C a = λ C o n ⋅ L C o n + λ C a p ⋅ L C a p , ( 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)其中 λ C o n \lambda_{Con} λCon和 λ C a p \lambda_{Cap} λCap是损失权重超参数。我们注意到当词是所有标签名的集合时,单编码器交叉熵分类目标能用被应用在带标注的图片数据上的生成方法的一种特殊情况来解释。
解耦的文本编码器和 CoCa架构生成方法的优化条件和文本的类似,然而对比方法使用无条件的文本表征。为了解决这个困境,将这两个方法整合到一个单一模型中。我们提出了一个简单的解耦的解码器设计,在这个设计里我们通过在单模解码器层跳过交叉注意力机制来将解码器分割为单模和多模部分。底部的 n u n i n_{uni} nuni单模解码器层使用随机掩码的自注意力将输入文本编码成指纹向量。顶部的 n m u l t i n_{multi} nmulti多模层进一步将随机掩码的自注意力和交叉注意力用在视觉编码器的输出上。所有的解码器层禁用来自后来的tokens,而是直接用多模文本解码输出来生成目标损失 L C a p \mathcal L_{Cap} LCap,对于对比目标损失 L C o n \mathcal L_{Con} LCon,我们在输入序列的最后追加一个可学习的[分类]tokens,用它的相应的单模解码输出作为文本嵌入。我们将解码器对半分开像这样 n u n i = n m u l t i n_{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采用了针对特定任务的注意力池去定制视觉表征用作不同类型的训练目标和下游任务。因此,一个池化器是一个带有 n q u e r y n_{query} nquery个可学习的 queries的单一多头注意力,池化器的编码器输出即作为键也作为值。通过这,模型为了具有两个训练目标的能力去学习不同长度的池化嵌入。如图二所示。使用特定任务的池化操作不仅解决了不同任务的不同需求,而且引入池化器作为自然语言任务的适配器。我们在预训练时用注意力池化器来应对 n q u e r y = 256 n_{query} = 256 nquery=256的生成损失和 n q u e r y = 1 n_{query} = 1 nquery=1的对比损失。
高效预训练 解耦解码器设计的一个主要优点是对于所考虑的两个训练损失,特定损失参数可以忽略不计。因此,自回归语言模型是在完整的句子上用随意的掩码进行训练。解码器用一个单一前项传播能为对比和生成损失产生有效的输出。因此,主要的计算是在共享的两个损失之间, CoCa与标准的编码器和解码器相比,只占用了少量开销。另一方面,尽管很多已存在的方法在各种数据源或者模式上用多个阶段训练模型组件。CoCa是通过将所有标签看做文本用各种各样的数据源直接从零开始进行端到端的预训练为了对比和生成目标。
无需再学习而直接迁移一个预训练过的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迁移,冻结特征评估和微调。我们也进行了包括训练目标和架构设计的消融实验。
数据正如3.2部分讨论的,CoCa是在网络级别的文本数据和将所有标签简单的视为文本的带标注的图片上在单一阶段从零开始预训练。我们使用将标签名作为文本对的JFT-3B数据集,带有噪声文本的ALIGN数据集。与[32]类似,我们随机打乱和拼接在JFT中的每个图片的标签和 [12]中的一个随机采样。一个JFT图像的最终文本标签示例类似于“猫、动物的照片”。不像之前的模型,他们也用这两种数据集的组合。我们为了简单和预训练的高效性,从头开始训练所有的模型参数同时没有预训练一个带有有监督的交叉熵损失的图片编码器。为了确保公平的进行评估,我们严格按照在[13, 31]中引入的去重程序筛选掉我们的下游任务中的所有的邻域样本。为了标记文本输入,我们用一个词大小为64k的句子片段模型在样本预训练数据集上进行训练。
优化我们的模型是用 Lingvo架构实现的。按照 [32],我们用一个批量大小为 65,536的图片-文本对,其中每个批次的一半分别来自JFT 和 ALIGN。所有模型是用在方程式4中的对比和生成目标的结果进行训练50万步相当于JFT上的五轮,ALIGN上的十轮。正如在我们的研究中一会将展示的那样,我们发现一个大的生成损失权重更好,因此 λ C a p = 2.0 \lambda_{Cap} = 2.0 λCap=2.0并且 λ C o n = 1.0 \lambda_{Con} = 1.0 λCon=1.0。按照 [13],我们用了一个带有可训练的温度的对比损失,其中温度的初始化值T为0.07。为了内存效率,我们使用β1 = 0.9, β2 = 0.999的Adafactor优化器,0.01的解耦权重衰减率。我们用训练步数的前2%步进行学习率预热到 8 × 10 0 − 4 100^{-4} 100−4的峰值,之后线性衰减。在2,048 CloudTPUv4芯片上花了5天预训练 CoCa 。按照 [12, 13, 14],我们在一个更高的 576×576的分辨率下继续预训练一轮。对于微调评估,我们主要按照简单协议,直接在下游任务上训练CoCa,没有像 CIDEr分数那样进一步对特定指标进行微调。
Figure 4:CoCa与其他的图片文本基础模型和多个目前最好的针对特定任务的方法进行对比。
我们在一系列广泛的下游任务中拓展评估CoCa作为一个预训练基础模型的能力。我们主要考虑三个类别的核心任务,检测 (1)视觉识别, (2)跨模态对齐,(3)图片生成和多模态理解的能力。因为CoCa同时产生单模表征对齐和融合多模嵌入,使得它用较小的自适应迁移到三个任务组中。图四概括了CoCa和其他双-编码器、编码器-解码器基础模型和目前最好的针对特定任务的方法的基准模型的性能比较。 CoCa用一个单一的预训练检查点在三个类别的任务上达到了目前最好的结果。
我们的视觉识别任务是建立在以 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 × 10 0 − 4 100^{-4} 100−4,批量大小为128,和cosine学习率调度。对于视频动作识别,我们用相同的设置方法对比了coca和其他方法(例如:没有额外的有监督视频数据,没有作为模型输出的音频信号)。如表2所述,不用微调整个编码器,与有针对性特定图片的模型相比 CoCa已经达到了很具竞争性的 Top-1分类精度,在视频任务上胜过了以前最好的针对特定方法的模型。
Figure 5:不同规模的模型在图片分类上的性能。
微调基于冻结特征评估的架构,我们用一个较小的学习率 1 × 10 0 − 4 1 × 100^{-4} 1×100−4进一步分别在图片和视频数据上微调coca编码器。更多的实验细节请看附录A。经过微调的CoCa提高了这些任务的性能。值得注意的是,CoCa在ImageNet上达到了一个新高度 91.0% 的Top-1精度。同样在视频动作识别上要比最近的视频方法要好。更重要的是,如表5a所示 CoCa模型在视觉编码器上用了比其他方法更少的参数。这些结果表明,我们所提的框架有效的结合了文本训练信号,因此与分类信号编码器方法相比更能学习到高质量视觉表征。
不像其他的基于融合的基础方法,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的作者提供的代码,对于这些方法我们在可利用的子数据集上重新计算各项指标。注意使用“子集”是为了确保公平对比。
CoCa的另一个关键优势是它能够将多模态嵌入处理为一个按照生成目标训练的编码器-解码器模型。因此,CoCa能执行图片生成和多模理解的下游任务并且不用做任何进一步的融合自适应。总的来说,实验结果表明:coca拥有编码器-解码器模型的优势去获得更强的多模态理解和生成能力。此外,还具有视觉和检索功能作为双编码器的一种方法。
Table 6:视觉-语言预训练方法在多模理解结果上的对比,OFA用图片和文本作为输入,其他模型都只用图片。
多模理解正如在 [16]中的那样,编码器-解码器模型的输出能联合编码图片和文本输入,可用于需要在两种模式上进行推理的任务。我们考虑到三个流行的多模理解基准:视觉问答,视觉蕴含,视觉推理。我们主要按照 [16]中的设置,在解码器输出的顶部训练线性分类器去预测答案。表六上的结果表明 CoCa大幅领先视觉-语言预训练基准模型并且在上述的三个任务上达到了目前最好的性能。虽然以前的双编码器模型不包含融合层,但是对于下游多模理解任务就需要一个额外的VL预处理阶段。CoCa包含了三种预训练模式,经过轻微的微调能在VL任务上获得更好的性能。
Table 7在 MSCOCO 和 NoCaps上的图片生成结果,使用 CIDEr优化器进行微调。
图片生成除了多模分类任务, CoCa也可以直接应用到图片生成任务作为一个编码器-解码器模型。我们只在 MSCOCO生成任务上使用生成损失 L C a p \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分类我们首先在带标注的图片数据集上检验生成损失的有效性。为了做这个,我们使用 L C a p \mathcal L_{Cap} LCap在 JFT-3B数据集上训练一个编码器-解码器模型,与训练时使用 L C l s \mathcal L_{Cls} LCls的一个标准的ViT-Base单编码模型相比较的结果在表8a中展示。我们发现编码器-解码器模型在线性评估和微调结果方面与单编码器预训练模型旗鼓相当。这表明,生成的预训练包含分类预训练,和我们的直觉一样,当文本词汇表是所有可能类名的集合时 L C l s \mathcal L_{Cls} LCls是 L C a p \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模型的默认设置。我们也研究查询数量的效果,当 n q u e r y = 0 n_{query}=0 nquery=0意味着没有使用生成池化器(因此所有的ViT输出tokens是使用解码器的交叉注意力)。结果显示,在稍高的计算量和参数量下两个任务都更适合使用更长的详细的序列的图片的tokens。作为结果,我们用一个长为256的生成池去提高多模理解基准同时仍然维持很强的冻结特征的能力。
我们的工作表现出了一个在网络级别的数据集上的图片-文本的预训练方法,这是一种能在 zero-shot或者轻微的微调下迁移到广泛的下游任务中的能力。尽管预训练模型拥有在很多视觉和视觉-语言任务上工作的能力,我们注意到,我们的模型和以前的方法使用相同的预训练数据,在实际使用模型时对模型的数据和结果做额外的分析是很有必要的。在有损的图片上,我们的coca模型表现的更健壮。但是它仍然易受其他有损图片的影响,这些有损图片是那些在当前的评估集或者真实场景中尚未出现过。对于数据和模型,进一步的交流探索是要求我们去理解其深远影响,这些影响包括但不限于公平、社会偏见和潜在的滥用。
在本篇论文中,我们展示了Contrastive Captioners模型,一个新的图片-文本基础模型家族,它包括已存在的使用有监督的自然语言处理的视觉预训练策略。在一个单一阶段来自大量数据源在图片-文本对上进行预训练。 CoCa在一个编码器-解码器模型中高效的结合了对比和生成目标损失。CoCa在广泛的视觉和视觉-语言问题中用一个单检查点取得了一系列的目前最好的性能。我们的工作弥补了各种预训练方法之间的差距。我们希望它能为图片-文本基础模型建立起新的方向。