摘要
对比语言-图像预训练(简称CLIP)因其广泛应用场景的潜力而受到越来越多的关注。本文提出了EVA-CLIP,这是一系列显著提高CLIP训练效率和效果的模型。我们的方法结合了新的表示学习、优化和增强技术,使得EVA-CLIP在与之前相同参数数量的CLIP模型相比,能够以更小的训练成本实现更优越的性能。值得注意的是,我们最大的5.0B参数EVA-02-CLIP-E/14+仅使用90亿个样本就达到了ImageNet-1K验证集上82.0%的零样本top-1准确率。一个较小的EVA-02-CLIP-L/14+仅使用4.3亿参数和60亿个样本就达到了ImageNet-1K验证集上80.4%的零样本top-1准确率。为了促进开放访问和开放研究,我们将完整的EVA-CLIP套件发布给社区。
1 引言
CLIP(对比语言-图像预训练)是一种强大的视觉-语言基础模型,通过大规模数据集学习丰富的视觉表示,通过对比图像-文本预训练来桥接视觉和语言。CLIP模型展示了强大的零样本迁移能力[39],并有望增强多模态和单模态视觉任务,如AI生成内容应用[41, 20, 32, 45]。尽管其重要性,训练CLIP模型仍然是一个不可避免的挑战,因为其高计算成本和在扩展时的训练不稳定性问题。
图1:CLIP模型在ImageNet-1K上的零样本分类性能总结。每个圆的直径对应于前向GFLOPs x 训练样本数量。
在本文中,我们提出了EVA-CLIP,这是一组为训练CLIP模型提供可行、高效和有效解决方案的模型。我们的方法结合了几种技术,可以显著降低训练成本,稳定训练过程并提高零样本性能,包括使用预训练的EVA[20, 19]表示初始化CLIP,LAMB[52]优化器,随机丢弃输入令牌[33],以及一种名为flash attention[15]的加速技巧。通过这些技术,我们能够在大规模上以更低的计算成本显著稳定CLIP模型的训练,并在广泛的零样本基准上以更少的样本超越从头开始训练的对应模型。我们最大的5.0B参数EVA-02-CLIP-E/14+仅使用90亿个样本就达到了ImageNet-1K验证集上82.0%的零样本top-1准确率。一个较小的EVA-02-CLIP-L/14+仅使用4.3亿参数和60亿个样本就达到了ImageNet-1K验证集上80.4%的零样本top-1准确率。
2 方法
训练CLIP[39]模型非常困难且成本高昂。需要大批次和扩展CLIP模型会导致显著的计算资源需求,甚至可能导致训练不稳定问题。幸运的是,EVA-CLIP提供了一个高效且有效的解决方案,显著降低了计算成本,同时在广泛的基准上实现了卓越的零样本性能。
(a) CLIP模型配置和在ImageNet上的零样本top-1准确率。通过所有技术,EVA-01-CLIP-g/14可以在纯fp16精度下稳定训练,使用更少的图像-文本对(11B vs. 32B),相比于Open CLIP-H/14,在约1/7的GPU上进行采样。EVA-01-CLIP-g/14使用了较小的文本编码器(124M vs. 354M),并在较小的数据集(LAION-400M vs. LAION-2B)上进行训练,仅使用了DeepSpeed优化库[43]和ZeRO stage-1优化器[40]。EVA-02-CLIP-E/14使用了较小的文本编码器(354M vs. 695M),并以纯fp16精度进行训练。
(b) 在ImageNet变体和ObjectNet上的零样本性能总结。“avg. acc.”:不同ImageNet变体(即IN-{1K, V2, ReaL, Adv., Ren., Ske.})和ObjectNet上的平均top-1准确率。“∆↓”:平均top-1准确率与ImageNet-1K top-1准确率之间的差距(越低越好)。EVA-CLIP的性能下降最小(EVA-02-CLIP-L/14+仅为0.8%的top-1准确率差距,EVA-02-CLIP-E/14+为1.1%),而EVA-02-CLIP-E/14+在所有6个基准上的平均零样本分类准确率最高(80.9%的平均top-1准确率)。
**更好的初始化。**为了改进特征表示并加速CLIP模型的收敛,我们采用了预训练的EVA[20, 19]模型,这些模型结合了图像-文本对比学习的高级语义和掩码图像建模的几何和结构捕捉。我们使用预训练的EVA权重来初始化EVA-CLIP的图像编码器。我们的实证研究表明,预训练的EVA模型不仅帮助EVA-CLIP在各种零样本基准上实现更优越的性能,还加速并稳定了训练过程。
**优化器。**我们使用LAMB[52]优化器来训练我们的EVA-CLIP模型。LAMB优化器专为大批量训练设计,其自适应元素更新和层级学习率提高了训练效率并加速了收敛速度。鉴于训练CLIP模型使用的大批量,原始CLIP模型使用32,768的批量大小,一些开源的CLIP模型甚至使用超过100k的极端大批量。EVA-CLIP表明,LAMB优化器是训练大规模CLIP模型的首选优化器。
表1:CLIP模型配置和我们的关键结果亮点。展示了我们的方法EVA-CLIP以及类似的基线模型——CLIP和Open CLIP——在ImageNet和其他鲁棒性测试集上的top-1准确率。这些模型均未从ImageNet中的任何标注训练样本中学习。
表2:EVA-CLIP在27个数据集上的零样本图像分类性能总结。
表3:EVA-CLIP零样本视频分类性能总结。
**FLIP[33]**在大规模设置中显示出有希望的结果。在这项工作中,我们利用FLIP来提高训练CLIP模型的时间效率。具体来说,我们在训练期间随机掩码50%的图像令牌,从而显著减少了时间复杂度的一半。这种方法还允许在不增加额外内存成本的情况下将批量大小增加2倍。
表4:在Flickr30K[53]和COCO[34]上的零样本检索性能总结。
3 实验
**设置。**在我们的实验中,我们使用预训练的EVA[20, 19]权重初始化视觉编码器,并使用预训练的OpenAI CLIP[39]或OpenCLIP[27]权重初始化文本编码器。具体来说,EVA-01-CLIP的视觉编码器从EVA-01[20]初始化,EVA-02-CLIP的视觉编码器从EVA-02[19]初始化。我们采用LAMB优化器,β1=0.9,β2=0.98,权重衰减为0.05。我们对视觉编码器和文本编码器应用不同的学习率和层衰减率,以确保最佳训练。例如,我们在前2000个预热步骤中为EVA-01-CLIP-g的视觉编码器设置学习率为2e-4,文本编码器为2e-5。之后,我们将学习率线性衰减到0,以完成剩余的训练步骤。为了进一步改进训练过程,我们使用DeepSpeed优化库[43]与ZeRO stage-1优化器[40],梯度检查点[10]和flash attention[15]来节省内存并加速训练过程。我们发现,使用fp16精度与动态损失缩放足以在整个EVA-01-CLIP-g训练过程中保持稳定,而bfloat16格式对于稳定EVA-02-CLIP-E+的训练过程是必要的。
表5:消融研究。我们的LAION-2B数据集仅包含16亿个样本。
表6:训练时间和GPU内存。在16个NVIDIA 40G-A100 GPU上进行训练,使用DeepSpeed[43] ZeRO stage-1优化器[40]和梯度检查点[10]。批量大小为32k。
表7:架构配置。
为了构建我们的训练数据集Merged-2B,我们将16亿个样本从LAION-2B[45]数据集与0.4亿个样本从COYO-700M[6]数据集合并。
**系统级比较。**我们在表1中展示了CLIP模型配置和ImageNet变体及ObjectNet上的零样本准确率。EVA-02-CLIP-E/14+在所有6个基准上平均达到了80.9%的最高零样本top-1准确率,性能下降最小(1.1%的top-1准确率差距)。值得注意的是,这一结果超过了之前最大的最佳开源OpenCLIP-G/14[1]在ImageNet上的1.9%和6个基准平均准确率的4.7%。值得注意的是,通过这些强大的技术,大型EVA-02-CLIP-L甚至可以达到80.4%的ImageNet零样本top-1准确率,仅使用约1/6的参数和1/6的图像-文本训练样本就超过了OpenCLIP-G/14。
表8:EVA-CLIP-B和EVA-CLIP-L训练设置。
在表2中,我们进一步展示了我们的方法在所有27个零样本图像分类基准上的有效性和鲁棒性。我们最大的EVA-02-CLIP-E/14+在所有27个基准上平均达到了77.5%。值得注意的是,我们的EVA-02-CLIP-L/14+模型,仅使用了约1/2的模型大小和1/5的图像-文本对,在OpenCLIP-H/14上实现了1.2点的平均改进。
表9:EVA-CLIP-g和EVA-CLIP-g+训练设置。
表10:EVA-CLIP-E和EVA-CLIP-E+训练设置。
对于视频分类,我们仅在每个视频中采样一个中心帧,使其成为一个图像分类任务。按照常规设置,我们报告UCF-101[47]的top-1准确率和Kinetics-400[9]、Kinetics-600[7]和Kinetics-700[8]的top-1和top-5准确率的平均值。在表3中,我们展示了EVA-CLIP在零样本视频识别基准上也非常有效。
表4报告了Flickr30K[53]和COCO[34]上的零样本图像和文本检索结果。EVA-CLIP在基础和大型模型尺寸上均优于所有竞争对手。尽管EVA-02-CLIP-E/14的零样本检索性能略低于OpenCLIP-G/14,但结果仍然具有竞争力。我们推测主要原因是检索任务更依赖于文本编码器的能力和训练样本的数量,而相比之下,EVA-02-CLIP-E/14中的文本编码器能力较小,训练样本数量也较少。为此,我们使用更大容量的文本编码器和更多训练样本训练了EVA-02-CLIP-E/14+。结果显示,这种改进的模型可以显著提高检索性能,并在零样本文本检索任务上超越OpenCLIP-G/14。
**消融研究。**我们首先在表5中消融了EVA-CLIP设计。图像编码器是ViT-B/16[17]模型,文本编码器是CLIP-B-16。我们在批量大小为32k的情况下进行了实验,并在ImageNet-1K验证集上评估了零样本准确率。需要注意的是,我们使用了比最终模型更短的训练计划。
我们使用AdamW[35]优化器在LAION-400M[46]数据集上训练了我们的模型。与从头开始训练相比,EVA初始化在仅使用约1/2的样本的情况下,ImageNet上的零样本top-1准确率提高了1.8%。
此外,我们在LAION-400M数据集上使用LAMB优化器而不是AdamW进行了实验,并使用EVA初始化。这使得在相同样本的情况下,ImageNet上的零样本top-1准确率提高了0.7%。当应用50%掩码时,准确率下降了0.7%,但享受了2倍的加速。这些结果突显了LAMB优化器在训练高性能模型中的重要性以及掩码图像令牌策略在更快训练中几乎没有降低准确性的优势。
我们还在LAION-2B数据集上使用EVA初始化、LAMB优化器和50%掩码进行了实验,这使得准确率比LAION-400M提高了0.7%。仅使用一半样本即可达到相同的top-1准确率,当使用合并的2B数据集时。这证明了数据集大小的重要性以及通过合并两个数据集显著加快收敛速度的重要性。
**计算成本。**在表6中,我们展示了我们的实现的内存和时间成本。如所示,掩码50%的图像令牌可以将训练时间加速2倍,使用flash attention可以进一步减少15%的训练时间。
使用所有这些技术,我们可以以比其他对应CLIP模型更低的预算训练EVA-CLIP。例如,EVA-CLIP-B/16可以在批量大小为32k的情况下,使用16个NVIDIA 40GB-A100 GPU在300小时内收敛。同样,十亿规模的EVA CLIP-g/14可以在批量大小为65k的情况下,使用64个NVIDIA 40G-A100 GPU在不到25天内训练12B样本。这些结果展示了我们的方法在实现最先进结果的同时,在训练时间和GPU内存利用率之间保持最佳平衡的可扩展性和有效性。