FLIP:随机屏蔽大部分图像块来扩展CLIP

Scaling Language-Image Pre-training via Masking

原文:https://arxiv.org/abs/2212.00794

作者:Yanghao Li, Haoqi Fan, Ronghang Hu, Christoph Feichtenhofer, Kaiming He

单位:Meta AI, FAIR



我们提出了快速语言图像预训练(FLIP),这是一种简单而有效的训练CLIP的方法。我们的方法在训练过程中随机屏蔽并去除大部分图像块。屏蔽允许我们在相同的时钟时间内从更多的图像-文本对中学习,并以相似的内存占用率对比每次迭代的更多样本。这在准确性和训练时间之间产生了有利的权衡。在我们对4亿个图像文本对的实验中,FLIP比无屏蔽基线提高了准确性和速度。在大量的下游任务上,FLIP显著优于在相同数据上训练的CLIP对手。在加速的推动下,我们探索了增加模型大小、数据大小或训练长度的缩放行为,并报告了令人鼓舞的结果和比较。我们希望我们的工作将促进未来关于扩展视觉语言学习的研究。

1.引言

语言监督的视觉预训练,例如CLIP[52],已被确立为一种简单而强大的学习表示方法。经过预训练的CLIP模型因其显著的多功能性而脱颖而出:它们具有很强的零样本迁移能力[52];它们在文本到图像生成中表现出前所未有的质量(例如[53,55]);预训练的编码器可以改善多模态甚至单模态视觉任务。就像十年前监督预训练所扮演的角色一样[40],语言监督视觉预训练是当今各种任务的新燃料。

与具有预定义标签集的经典监督学习不同,自然语言提供了更丰富的监督形式,例如,在多个粒度级别上对对象、场景、动作、上下文及其关系进行监督。由于视觉加语言的复杂性,大规模训练对于语言监督模型的能力至关重要。例如,原始CLIP模型[52]在32个epoch的4亿数据上进行了训练,总计10000 ImageNet[16]个epoch,需要数千GPU天[52,36]。即使使用高端基础设施,挂钟训练时间仍然是阻碍扩展视觉语言学习探索的主要瓶颈。

我们提出了快速语言图像预训练(FLIP),这是一种有效的CLIP训练的简单方法。受屏蔽自动编码器(MAE)[29]稀疏计算的启发,我们在训练期间随机移除了大部分图像块。这种设计在“我们如何仔细地查看样本对”和“我们可以处理多少样本对”之间引入了权衡。使用屏蔽,我们可以:(i)在相同的时钟训练时间下看到更多的样本对(即,更多的时间段),以及(ii)在相似的内存占用下比较/对比每个步骤(即,更大的批次)的更多样本对。根据经验,处理更多样本对的好处大大超过了每样本编码的退化,从而产生了有利的权衡。

通过去除训练图像的50%-75%的patch,我们的方法将计算量减少2-4倍;它还允许使用2-4×更大的批次,几乎没有额外的内存成本,这得益于对比学习的行为,提高了准确性[30,11]。如图1所示,FLIP训练的挂钟时间比CLIP训练快3倍以上,以达到与CLIP相似的精度;在相同epoch数的情况下,FLIP比CLIP达到了更高的精度,同时速度仍为2-3倍。

我们表明,FLIP在各种下游任务上是CLIP的一个有竞争力的替代方案。在相同的LAION-400M数据集上进行预训练[56],FLIP在大量下游数据集和迁移场景上进行评估时,显著优于其CLIP对手(OpenCLIP[36]和我们自己的复现)。这些比较表明,FLIP可以很容易地享受更快的训练速度,同时仍然提供准确度增益。

通过更快的训练,我们探索扩展FLIP预训练。我们研究了这三个轴:(i)缩放模型大小,(ii)缩放数据集大小,或(iii)缩放训练计划长度。我们通过仔细控制的实验来分析缩放行为。我们观察到,模型缩放和数据缩放都可以提高精度,数据缩放可以显示增益,而无需额外的训练成本。我们希望我们的方法、结果和分析将鼓励未来对缩放视觉语言学习的研究。

2.相关工作

用屏蔽学习。

十多年前,使用屏蔽噪声[64]对自动编码器[63]进行去噪是一种无监督的表示学习方法。其最杰出的应用之一是以BERT为代表的屏蔽语言建模[18]。在计算机视觉中,沿着这个方向的探索包括预测大的缺失区域[50]、像素序列[10]、patch[20、29、71]或预先计算的特征[6、66]。

屏蔽自动编码器(MAE)方法[29]进一步利用屏蔽来减少训练时间和内存。MAE稀疏地将ViT编码器[20]应用于可见内容。它还观察到,高屏蔽比有利于精度。MAE设计已应用于视频[61,22]、点云[49]、图形[59,9,32]、音频[4,47,13,35]、视觉控制[70,57]、视觉语言[23,41,31,19]和其他模态[5]。

我们的工作与MAE及其视觉语言扩展相关[23,41,31,19]。然而,我们的重点是稀疏计算所支持的缩放方面;我们解决了大规模CLIP训练的挑战[52],而之前的工作[23,41,31,19]在规模方面受到限制。我们的方法不执行重建,也不是自动编码的一种形式。[69]中针对自监督对比学习(例如MoCo[30]或BYOL[27])研究了通过屏蔽来加速训练,但其准确性可能受到纯图像对比学习的缩放行为的限制。

语言监督学习。

在过去的几年中,CLIP[52]和相关著作(例如[37,51])通过语言监督普及了视觉表征的学习。CLIP是通过比较图像-文本样本对进行对比学习的一种形式[28]。除了对比学习之外,还探索了生成性学习方法[17,65,2,74],可选地结合对比损失[74]。我们的方法侧重于CLIP方法,而我们希望将来可以将其扩展到生成方法。

3.方法

简而言之,我们的方法简单地屏蔽了CLIP[52]训练中的输入数据,并减少了计算量。见图2。在我们的场景中,屏蔽的好处在于明智地花费计算。直观地说,这导致了我们对样本的编码密度与我们作为学习信号比较的样本数量之间的权衡。通过引入屏蔽,我们可以:(i)在相同的时钟训练时间下,从更多的图像-文本对中学习,以及(ii)在相同内存约束下,在更大的批次中具有对比目标。我们通过实验表明,对于这两个方面,我们的方法在权衡中都处于优势。接下来,我们将介绍我们方法的关键组件。

图像屏蔽。

我们采用视觉Transformer(ViT)[20]作为图像编码器。首先将图像划分为非重叠patch的网格。我们随机屏蔽掉大部分(例如,50%或75%)patch;ViT编码器仅应用于可见patch,如下[29]。使用50%(或75%)的屏蔽比将图像编码的时间复杂度降低到1/2(或1/4);它还允许使用2×(或4×)更大的批次,具有类似的图像编码内存成本。

文本掩码。

可选地,我们以与图像屏蔽相同的方式执行文本屏蔽。我们屏蔽掉一部分文本标记,并将编码器仅应用于可见标记,如[29]所示。这与BERT[18]不同,BERT[18]将它们替换为学习的掩码令牌。这种稀疏计算可以降低文本编码成本。然而,由于文本编码器较小[52],加快其速度不会导致更好的总体权衡。我们只研究消融的文本屏蔽。

客观的

对图像/文本编码器进行训练以最小化对比损失[48]。对比学习的负样本对由同一批次的其他样本组成[11]。已经观察到,大量负样本对于图像上的自监督对比学习至关重要[30,11]。这一特性在语言监督学习中更为突出。与MAE[29]不同,我们不使用重建损失。我们发现,重建对于零样本迁移的良好性能是不必要的。放弃解码器和重建损失会产生更好的加速。

正在取消屏蔽。

虽然编码器在掩模图像上进行了预训练,但它可以直接应用于完整图像,而无需进行更改,如[29]所示。这种简单的设置足以提供有竞争力的结果,并将作为消融实验的基线。

为了缩小由屏蔽引起的分布差距,我们可以将屏蔽率设置为0%,并继续进行少量步骤的预训练。这种未屏蔽的调整策略产生了更有利的精度/时间权衡。

3.1.实施

我们的实现遵循CLIP[52]和OpenCLIP[36],我们在下面描述了一些修改。超参数见附录。

我们的图像编码器遵循ViT论文[20]。我们在patch嵌入后不使用额外的LayerNorm[3],像[20],但不像[52]。我们在图像编码器的末尾使用全局平均池。输入大小为224。

我们的文本编码器是一种非自回归Transformer[62],它更容易适应消融的文本屏蔽。我们使用了如[18]所示的WordPiece标记器。我们将序列填充或剪切到固定长度32。我们注意到[52]中的CLIP使用了自回归文本编码器、BytePairEncoding标记器和长度为77。这些设计使我们在最初的复现中观察到的差异很小。

图像编码器和文本编码器的输出通过线性层投影到相同维度的嵌入空间。嵌入的余弦相似性由可学习的温度参数[52]缩放,是InfoNCE损失的输入[48]。

在零样本迁移中,我们遵循代码[52]中的提示工程。我们使用他们提供的7个提示模板进行ImageNet零样本迁移。

我们的实现基于JAX[8]和t5x库[54],用于大规模分布式训练。我们的训练是在TPU v3基础设施上进行的。

4.实验

4.1.消融

我们首先烧蚀FLIP设计。图像编码器为ViT-L/16[20],文本编码器的尺寸较小,如[52]所示。我们在LAION-400M[36]上进行训练,并在ImageNet-1K[16]验证上评估零样本精度。

表1显示了6.4个epoch的消融训练。图1描绘了多达32个epoch的权衡[52]。除非另有说明,否则结果以256个TPU-v3核心为基准。

屏蔽比。

表1a研究了图像屏蔽率。在这里,我们相应地缩放批大小(下一步删除),以便大致保持内存占用。0%掩码条目表示我们的CLIP对应项。屏蔽50%比CLIP基线高1.2%,屏蔽75%与基线持平。速度方面,由于FLOP的大幅减少,屏蔽50%或75%只需要0.50倍或0.33倍的时钟训练时间。

批量大小

我们在表1b中消除了批量大小的影响。不断增加批次大小可提高准确性。值得注意的是,即使使用16k的相同批量,我们的50%屏蔽条目也具有与0%屏蔽基线(68.6%,表1a)相当的准确度(68.5%,表1b)。屏蔽引入的正则化可能会减少过度拟合,部分抵消这种设置中丢失信息的负面影响。在75%的较高屏蔽率下,当保持批量大小不变时,仍观察到负面影响。

我们基于屏蔽的方法自然鼓励使用大批量。如表1a所示,如果我们根据屏蔽率来缩放批处理大小,那么几乎没有额外的内存成本。实际上,对于较大的批次,可用内存始终是一个限制。例如,表1a中的设置已经达到了我们高端基础设施中的内存限制(256个TPU-v3内核,每个16GB内存)。1如果使用更少的设备,内存问题会更为苛刻,而且由于批量大小的几乎自由增加,我们的方法的增益将更加突出。

文本掩码。表1c研究了文本屏蔽。随机屏蔽50%的文本会降低2.2%的准确性。这与观察[29]一致,即语言数据比图像具有更高的信息密度,因此文本屏蔽率应该更低。

当填充可变长度的文本序列以生成固定长度的批时,我们可以优先屏蔽填充标记。与均匀地随机屏蔽填充序列相比,优先采样保留了更多的有效令牌。它将降解率降低到0.4%。

虽然我们的文本屏蔽比典型的屏蔽语言模型更具攻击性(例如,[18]中的15%),但总体速度增益很小。这是因为文本编码器较小,文本序列较短。与图像编码器相比,文本编码器的计算成本仅为4.4%(无屏蔽)。在这种情况下,文本屏蔽是不值得的,我们在其他实验中也不会屏蔽文本。

推理揭示。

默认情况下,我们在推断时将模型应用于完整图像,类似于[29]。尽管屏蔽在训练和推理之间产生了分布偏移,但简单地忽略这一偏移效果出奇地好(表1d,“无屏蔽”),即使在零样本设置下,在全图像上从未进行过任何训练。

表1d报告说,如果在推断时使用屏蔽,精度会下降很多(例如,7.3%)。这种下降可能部分是由于推断时的信息丢失造成的,因此我们还与集合多个屏蔽视图进行了比较[10],其中视图互为补充,放在一起覆盖所有patch。Ensembling减少了差距(表1d),但仍落后于简单的全视图推断。

无屏蔽微调。

到目前为止,我们的消融实验不涉及无掩模微调。表1e报告了预训练数据集上额外0.32个epoch的无掩模调整结果。在75%的高屏蔽率下,它将准确性提高了1.3%,这表明调整可以有效地减少预训练和推断之间的分布差距。

图3描绘了受无屏蔽微调影响的权衡(实线与虚线)。无屏蔽微调导致75%屏蔽的更理想的权衡;它对于50%的屏蔽具有可比的折衷,但提高了最终精度。

重建。

在表1f中,我们研究了添加重建损失函数。重建头遵循MAE[29]中的设计:它有一个小解码器,并重建标准化图像像素。重建损失被添加到对比损失中。

表1f显示,重建的负面影响很小。虽然这可能是次优超参数(例如,平衡两个损失)的结果,但为了力求简单,我们决定不使用重建损失。放弃重建头也有助于简化系统并提高精度/时间权衡。

准确度与时间的权衡。

图3给出了精度与训练时间权衡的详细视图。我们将时间表延长至最多32个epoch[52]。如图3所示,FLIP明显优于CLIP。它可以实现与CLIP相似的精度,同时享受>3倍的加速。使用相同的32个epoch的时间表,我们的方法比CLIP方法准确度高出~1%,速度快2倍(屏蔽50%)。

我们方法的加速具有很大的实用价值。CLIP基线在256个TPU-v3核心中需要约10天的训练,因此2-3倍的加速可以节省很多天的挂钟时间。这种加速有助于探索缩放行为,我们将在第4.3节稍后讨论。

4.2.与CLIP的比较

在本节中,我们将与各种场景中的各种CLIP基线进行比较。我们表明,我们的方法是CLIP的一个有竞争力的替代方案;因此,我们的快速训练方法是实践中更理想的选择。

我们考虑以下CLIP基线:

•原始CLIP检查点[52],在私有数据集WIT-400M上训练。

•OpenCLIP[36],接受LAION-400M训练。

•我们的CLIP复现,在LAION-400M上进行了训练。

最初的CLIP[52]是在私有数据集上训练的,因此与其直接比较应该反映数据的效果,而不仅仅是方法。OpenCLIP[36]是CLIP的忠实再现,但在我们可以使用的公共数据集上进行了训练,因此它是我们隔离数据集差异影响的良好参考。我们的CLIP复现进一步有助于隔离其他实现细节,并允许我们精确定位FLIP方法的效果。

对于本小节中研究的所有任务,我们将与所有这些CLIP基线进行比较。这使我们能够更好地理解数据和方法的影响。

ImageNet零样本迁移。

在表2中,我们与ImageNet-1K[16]零样本迁移的CLIP基线进行了比较。

作为一种健全性检查,我们的CLIP复现比在相同数据上训练的OpenCLIP具有略高的准确性。原始CLIP比我们的复现和OpenCLIP具有更高的精度,这可能是由于预训练数据集之间的差异造成的。

表2报告了我们的FLIP模型的结果,使用了我们在表1中烧蚀的最佳实践(64k批次、50%屏蔽比和无屏蔽微调)。对于ViT-L/14,2,我们的方法具有74.6%的准确度,比OpenCLIP高1.8%,比我们的CLIP复现高1.5%。与原始CLIP相比,我们的方法将差距减少到0.7%。我们希望如果我们的方法在WIT数据上进行训练,将改进原始CLIP结果。

ImageNet线性探测。

表3比较了线性探测结果,即在具有冻结特征的目标数据集上训练线性分类器。FLIP的准确率为83.6%,比CLIP高1.0%。它也比我们使用相同的SGD训练器迁移原始CLIP检查点高0.6%。ImageNet微调。表3还比较了全部微调结果。我们的微调实现遵循MAE[29],针对每个条目调整学习率。值得注意的是,通过我们的微调配方,原始CLIP检查点达到87.4%,远高于之前关于该指标的报告[68,67,33]。在微调协议下,CLIP仍然是一个强大的模型。

FLIP优于在相同数据上预训练的CLIP对手。我们86.9%的结果(或使用L/14的87.1%)落后于但接近原始CLIP检查点87.4%的结果,使用我们的微调配方。

对更多数据集进行零样本分类。

在表4中,我们对[52]中研究的额外数据集进行了比较。由于结果可能对评估实施(例如,文本提示、图像预处理)敏感,我们提供了对原始CLIP检查点和OpenCLIP的评估

值得注意的是,我们观察到训练前数据造成的明显系统差距,使用相同的评估代码进行了基准测试。WIT数据集对某些任务(如飞机、Country211、SST2)有益,而LAION对其他一些任务(如Birdsnap、SUN397、汽车)有益。

在隔离预训练数据的影响后,我们观察到FLIP显著优于OpenCLIP和我们的CLIP再现,如表4中的绿色所示。

零样本回收。

表5报告了Flickr30k[73]和COCO[42]的图像/文本检索结果。FLIP优于所有CLIP竞争对手,包括最初的CLIP(以相同的224尺寸进行评估)。对于这两个检索数据集,WIT数据集与LAION相比没有优势。

零样本鲁棒性评估。

在表6中,我们比较了以下[52]的稳健性评估。我们再次观察到训练前数据造成的明显系统差距。使用相同的评估代码(表6中的“我们的评估”),在WIT上预训练的CLIP明显优于在LAION上预训练过的其他条目。以IN对抗(IN-A)为例:基于LAION的OpenCLIP[36]只有48.3%的准确率(或[36]报告的46.6%)。虽然FLIP(51.2%)可以大幅优于基于LAION的CLIP,但仍比基于WIT的CLIP(71.9%)低20%。

在不考虑预训练数据的影响的情况下,我们的FLIP训练在所有情况下都明显优于CLIP训练。我们假设屏蔽作为噪声和正则化的一种形式可以提高鲁棒性。

图像字幕。

COCO[42]和nocaps[1]的字幕性能见表7。我们的字幕实现遵循[7]中的交叉熵训练基线。与预训练后仅添加分类器层的分类不同,这里微调模型具有新初始化的字幕(详见附录)。在该任务中,FLIP在几个指标上优于原始CLIP检查点。与基于相同数据预处理的CLIP基线相比,FLIP也显示出明显的增益,特别是在BLEU-4和CIDEr指标中。

视觉问答。

我们在VQAv2数据集[26]上进行评估,并在[21]之后进行微调设置。我们使用一个新初始化的多模态融合Transformer和一个答案分类器来获得VQA输出(详见附录)。表7(最右边的列)报告了VQAv2的结果。所有经过LAION预训练的参赛作品表现相似,而经过WIT预训练的CLIP表现最好。

比较总结。

在各种各样的场景中,FLIP比其CLIP对手(OpenCLIP和我们的复现品)在相同的LAION数据上预训练的要好得多,在某些情况下差距很大。

如在许多下游任务中观察到的,WIT数据和LAION数据之间的差异可能会造成较大的系统差距。我们希望我们的研究将在未来的研究中引起对这些依赖数据的差距的关注。

4.3.缩放行为

在FLIP加速的推动下,我们探索了超出CLIP研究的最大案例的缩放行为[52]。我们研究这三个轴中的任一轴的缩放:

•模型缩放。

我们将ViT-L图像编码器替换为ViT-H,其参数约为2×。文本编码器也会相应地缩放。

•数据缩放。

我们使用LAION-2B集合将预训练数据从4亿扩展到20亿[36]。为了更好地将更多数据的影响与更长训练的影响分开,我们固定了采样数据的总数(12.8B,相当于400M数据的32个epoch和2B数据的6.4个epoch)。

•计划缩放。

我们将采样数据从12.8B增加到25.6B(400M数据的64个epoch)。

我们研究每次沿这三个轴中的一个轴缩放,同时保持其他轴不变。结果汇总在图4和表8中。

训练曲线。三种缩放策略在训练曲线中呈现出不同的趋势(图4)。

模型缩放(图4a)显示了在整个训练过程中持续存在的明显差距,尽管最终差距较小。

另一方面,数据缩放(图4b)在训练的前半段表现类似,但随后开始呈现良好的增益。请注意,由于我们控制采样数据的总数,因此此设置中没有额外的计算成本。

计划缩放(图4c)列车2×更长。为了提供更直观的比较,我们绘制了一条假设曲线,该曲线沿x轴(虚线)重新缩放1/2。尽管训练时间较长,但收益正在减少或没有(表8中的数字更多)。

可转让性。

表8提供了关于缩放行为的各种下游任务的全面比较。总的来说,模型缩放和数据缩放都可以在所有指标上始终优于基线,在某些情况下,可以获得较大的利润。

我们将下游任务分为两种情况:(i)零样本迁移,即不在下游数据集上执行学习;(ii)迁移学习,即在下游数据集上训练部分或全部权重。对于本文所研究的任务,数据缩放通常适用于零样本迁移,而模型缩放通常适用用于迁移学习。然而,值得注意的是,迁移学习性能取决于下游数据集的大小,并且在太小的下游集合上训练大模型仍然受到过度拟合风险的影响。

令人鼓舞的是,数据缩放显然是有益的,甚至不会导致更长的训练或额外的计算。相反,即使通过时间表缩放花费更多的计算也会带来递减的回报。这些比较表明,大规模数据之所以有益,主要是因为它们提供了更丰富的信息。

接下来,我们缩放模型和数据(表8,最后一行第二行)。对于所有度量,模型+数据缩放都比单独缩放有所改善。模型缩放和数据缩放的增益是高度互补的:例如,在零样本in-1K中,仅模型缩放就比基线提高了1.2%(74.3%→75.5%),仅数据缩放就提高了1.5%(74.3%→75.8%)。缩放比例都提高了3.3%(77.6%),比两个三角洲的总和还要多。在其他几个任务中也观察到这种行为。这表明,更大的模型需要更多的数据来释放其潜力。

最后,我们报告了所有三个轴的关节缩放(表8,最后一行)。虽然组合计划缩放提高了零样本IN-1K精度,但它会导致所有其他指标的轻微或轻微下降。同样,尽管成本很高,但计划缩放并不总是有益的。

我们在IN-1K零样本射击中取得的78.1%的成绩与在公共数据上训练的最先进成绩(OpenCLIP的78.0%)不相上下。同样基于ViT-H和LAION-2B,他们的结果用32B采样数据训练,比我们的结果多1.25倍。考虑到我们使用的50%掩码,如果两者在同一硬件上运行,我们的训练估计会比他们的快2.5倍。由于OpenCLIP的结果报告训练成本约为5600 GPU天,根据粗略估计,我们的方法可以节省约3360 GPU天。由于对于大多数指标来说,2倍的时间表是不必要的,因此我们的“模型+数据缩放”输入速度估计比他们的快5倍,可以节省约4480 GPU天。这大大降低了成本。

5.讨论和结论

语言是一种比经典闭集标签更强的监督形式。语言为监督提供了丰富的信息。因此,可涉及增加容量(模型缩放)和增加信息(数据缩放)的缩放对于在语言监督训练中获得良好结果至关重要

CLIP[52]是“扩展性好的简单算法”的一个杰出例子。CLIP的简单设计使得它可以相对容易地在更大的规模上执行,并且与之前的方法相比实现了巨大的飞跃。我们的方法在很大程度上保持了CLIP的简单性,同时在缩放方面进一步推动它。

我们的方法可以提供2-3倍或更多的加速。对于本研究中涉及的规模,这样的加速可以大大减少墙上的时钟时间(例如,大约数千TPU/GPU天)。除了加快研究周期外,加速还可以节省大量能源和商业成本。这些都是大规模机器学习研究中非常重要的组成部分。

我们的研究涉及与各种CLIP基线的受控比较,这有助于我们打破不同因素造成的差距。我们表明,FLIP优于在相同LAION数据上预训练的CLIP对手。通过比较几种基于LAION的模型和原始的基于WIT的模型,我们观察到预训练数据在几个任务中产生了很大的系统差距。

我们的研究提供了缩放行为的控制实验。我们观察到,数据缩放是一个受欢迎的缩放维度,因为它可以提高精度,而不需要额外的训练或推理时间成本。我们的快速方法鼓励我们超越本研究的范围。

更广泛的影响。

训练大型模型需要高能耗和碳排放。虽然我们的方法已将成本降低到1/2-1/3,但剩余成本仍相当可观。我们希望我们的工作将引起更多的关注,以降低视觉语言模型训练成本的研究方向。

本文中的数值结果基于公开的大规模数据集[56]。由此产生的模型权重将反映数据偏差,包括潜在的负面影响。当使用相同的数据进行比较时,两种方法之间的统计差异应在很大程度上反映方法的性质;然而,当使用不同的训练数据比较条目时,数据的偏差应始终是考虑因素的一部分。实施细节

A、 1.预训练

编码器。

表9显示了我们使用的体系结构。设计遵循CLIP[52]。我们的图像编码器涉及ViT-B、-L、-H[20],使用与[20]中相同的patch大小(B和L为16,H为14)。我们在图像编码器之后使用全局平均池。相应的文本编码器的尺寸较小,如[52]所示。我们使用256个TPU-v3核心训练ViT-B/-L,使用512个核心训练ViT-H。表9还显示了图像编码器、文本编码器和整个模型(包括输出投影层)的模型大小。

超参数。

我们的默认预训练配置如表10所示。我们使用线性学习速率缩放规则[24]:lr=基本lr×batchsize/256。我们观察到,使用该规则允许我们改变消融的批量大小,而无需额外的学习率搜索。我们使用的数值精度是float32;使用半精度是可能的,并且可以加快训练速度,但需要TPU工程支持,这是我们不容易获得的。

无屏蔽微调是一种在禁用屏蔽的同时进行预训练的形式,遵循表10,除了我们将基础学习率降低到4e-8,并将预热计划缩短到2560万个样本。

A、 2.ImageNet分类

零样本

我们遵循[52]中的提示工程。他们的代码提供了80个模板。3我们使用他们推荐的7个模板的子集;使用所有80个模板可以得到类似的结果,但推断速度较慢。

线性探测和微调。

设置如下[29]。见表11和表12。

A、 3.零样本检索

我们在两个标准基准上评估了零样本检索的性能:Flickr30K[73]和COCO[42],测试集中分别有1K和5K图像文本对。根据CLIP[52]中的协议,我们从相应的编码器中提取图像和文本嵌入,并基于候选图像-文本对上的余弦相似度进行检索;不使用提示。

A、 4.零样本鲁棒性评估在我们对ImageNet相关集进行的零样本鲁棒评估中,我们使用了[52]提供的7个提示,只有在In-R中,我们才使用了所有80个提示,这些提示比7个提示有明显的优势。数据集的准备和拆分遵循OpenCLIP[36]。4在ObjectNet中,我们遵循[52]在没有提示的情况下使用类名。在YTBB中,我们使用[52]提供的VOC提示。

A、 5.更多零样本数据集

对于表4中的实验,我们使用[52]提供的提示。5我们遵循[25]和[46]提供的数据准备脚本,并使用Tensorflow数据集加载数据。根据[52],我们报告了FGVC飞机、Oxford IIIT宠物、Caltech-101和Oxford Flowers 102数据集的每类平均精度;我们报告了Kinetics-700的前1和前5精度的平均值,仇恨内存的ROC AUC,以及Pascal VOC 2007分类的11点mAP;我们报告了其余数据集的最高精度。我们注意到,随着时间的推移,互联网上的Birdsnap数据集正在缩小,只有1850张测试图像可供我们使用(而[52]中测试的图像为2149张,最初为2443张)。

A、 6.字幕

我们在ViT图像编码器的基础上构建了一个序列到序列编码器-解码器转换器模型,下面有3个编码器层和3个解码器层[7]。具体地,首先将ViT图像特征线性投影到384维序列,并由3层变换编码器(384宽度和6个头)进一步编码。对于自回归字幕生成,我们丢弃了FLIP中预先训练的文本编码器,并使用随机初始化的3层变换解码器(384宽度和6个头),并交叉关注编码器输出。在[52]中,使用标记器训练模型以预测下一个文本标记。

为了简单起见,我们仅使用单词级交叉熵损失来监督教师强制的图像字幕模型[7];我们没有使用[7]中的CIDEr评分优化。整个模型使用AdamW优化器进行了端到端的微调,批量大小为256,新添加参数的学习率为1e-4,权重衰减为1e-2,15%迭代的预热,以及余弦衰减学习率计划。预训练的ViT参数的学习率对于ViT-L设置为1e-5(对于ViT-H设置为5e-6)。ViT-L/16的输入图像大小为512×512,ViT-H/14的输入图像尺寸为448×448(以保持相同的序列长度)。

所有模型都经过微调,可在[38]的COCO训练分割上进行20个epoch的图像字幕。在推断过程中,使用自回归解码预测图像字幕,我们报告了它们在不同度量下[38]的COCO测试分割上的性能。

为了评估COCO训练的模型如何推广到新对象,我们直接在nocaps[1]验证集上评估这些模型,无需进一步微调。

A、 7.视觉问答

在VQA实验中,我们遵循[21]中描述的架构。具体地说,VQA任务作为所有答案类的分类问题被广播。输入图像由ViT编码器编码。根据[21]中的实践,输入问题由预先训练的RoBERTa文本编码器[43]编码。应用多模态融合Transformer(4层,768-d,12个头,合并注意力[21])来组合图像和文本表示。在融合模块的类令牌上应用两层MLP以获得VQA输出[21]。

我们对VQA模型进行端到端的微调。损失函数是使用软分数的二进制S形损失[60]。我们使用256的批量大小,随机初始化参数的学习速率为1e-4,预训练的ViT参数的学习率为1e-5(ViT-L)或5e-6(ViT-H)。我们使用1e-2的权重衰减、15%的迭代预热和余弦衰减学习率计划。ViT-L/16的输入图像大小为512×512,ViT-H/14的输入图像尺寸为448×448。

所有模型都在VQAv2序列+val集合上针对20个epoch进行了微调,并在[60]之后添加了来自视觉基因组[39]的问答对。我们报告从评估服务器分离的测试开发的结果



你可能感兴趣的:(FLIP:随机屏蔽大部分图像块来扩展CLIP)