晚上找时间看了下今天找到一篇挺有意思的论文MobileCLIP,这里主要是记录自己的论文阅读记录,如果感兴趣的话可以参考一下,原英文论文地址在这里,如下所示:
摘要
图像-文本基础模型的对比预训练,如CLIP,展示了在广泛的下游任务中出色的零样本性能和改进的鲁棒性。然而,这些模型利用了基于大型transformer的编码器,具有显著的内存和延迟开销,这给在移动设备上的部署带来了挑战。在这项工作中,我们引入了MobileCLIP——一种针对运行时性能优化的新型高效图像-文本模型家族,以及一种新颖且高效的训练方法,即多模态强化训练。所提出的训练方法利用了从图像字幕模型和一组强大的CLIP编码器集合中转移的知识,以提高高效模型的准确性。我们的方法通过将额外知识存储在强化数据集中,避免了训练时的计算开销。MobileCLIP在多个数据集上的零样本分类和检索任务中,设置了新的最先进的延迟-准确性权衡。我们的MobileCLIP-52变体比基于ViT-B/16的先前最佳CLIP模型快2.3倍,同时更准确。我们进一步通过基于ViT-B/16图像骨干训练CLIP模型,展示了多模态强化训练的有效性,与先前最佳模型相比,在38个评估基准上实现了+2.9%的平均性能提升。此外,我们展示了与非强化CLIP训练相比,所提出的方法实现了10×-1000×的学习效率提升。代码和模型可在https://github.com/apple/ml-mobileclip获取。
1 引言
大型图像-文本基础模型,如CLIP [47],展示了在广泛的下游任务中出色的零样本性能和改进的鲁棒性 [15]。然而,由于这些模型体积庞大且延迟高,在移动设备上部署它们具有挑战性。
图1. MobileCLIP模型快速且准确。公开可用的CLIP模型与在我们DataCompDR数据集上训练的MobileCLIP的比较。延迟在iPhone12 Pro Max上测量。
图2. DataCompDR数据集改善所有指标。使用ViT-B/16图像编码器的CLIP模型的零样本性能。
我们的目标是设计一种适用于移动设备的新型对齐图像-文本编码器家族。实现这一目标面临两个主要挑战。首先,不同架构在运行时性能(例如延迟)和准确性之间存在权衡,因此我们应该能够快速彻底地分析不同的架构设计。大规模训练CLIP模型计算成本高昂,阻碍了高效架构设计的快速开发和探索。另一方面,在小规模的标准多模态对比学习 [47] 结果中,准确性较差,无法提供有用的信号来指导架构设计选择。其次,较小的架构容量减少导致准确性不佳,可以通过更好的训练方法来改善。
为了克服这些挑战,我们开发了一种基于数据集强化方法 [14] 的新颖训练方法:i) 通过额外信息一次强化数据集,ii) 多次使用强化数据集进行实验。对于给定的计算预算,使用强化数据集进行训练可以提高准确性,相比于原始数据集。我们提出了一种用于训练高效CLIP模型的多模态数据集强化变体。具体来说,我们通过添加从一组强大的预训练CLIP模型中获得的合成字幕和嵌入,强化了图像-文本DataComp [18] 数据集,得到DataCompDR。我们引入了两种强化数据集变体,DataCompDR-12M适用于快速迭代高效模型设计,DataCompDR-1B适用于最佳大规模训练性能。
使用DataCompDR进行训练显示出与标准CLIP训练相比显著的学习效率提升。例如,使用单个节点上的8×A100 GPU,我们在大约一天内从头开始训练基于ViT-B/16 [12] 的CLIP模型,在ImageNet-val [8] 上实现了61.7%的零样本分类。使用DataCompDR-1B进行训练在多个指标上设置了新的最先进性能(图2),同时仍然使用比先前工作更少的训练计算预算。
利用DataCompDR,我们探索了设计空间,并获得了一种名为MobileCLIP的新型移动友好对齐图像-文本编码器家族,与先前工作相比,具有更好的延迟-准确性权衡(图1)。我们利用多种架构设计技术来获得高效的图像和文本编码器,包括结构重参数化 [9, 10, 11, 21, 61] 和卷积令牌混合 [62]。MobileCLIP包括S0、S1、S2和B变体,涵盖了不同大小和延迟,适用于不同的移动应用。我们最快的变体MobileCLIP-S0比标准的OpenAI ViT-B/16 CLIP模型 [47] 快约5倍,小3倍,但具有相同的平均准确性。我们的贡献如下:
-
我们设计了一种新的移动友好型CLIP模型家族,称为MobileCLIP。MobileCLIP的变体使用混合CNN-transformer架构,在图像和文本编码器中进行结构重参数化,以减少大小和延迟。
-
我们引入了多模态强化训练,一种新颖的训练策略,结合了从预训练图像字幕模型和一组强大的CLIP模型中转移的知识,以提高学习效率。
-
我们引入了两种强化数据集变体:DataCompDR-12M和DataCompDR-1B。使用DataCompDR,我们展示了与DataComp相比,学习效率提高了10×-1000×。
-
MobileCLIP家族在零样本任务中获得了最先进的延迟-准确性权衡,包括创造了基于ViT-B/16的CLIP模型的最佳记录。
2 相关工作
高效的CLIP学习
可以通过利用增强的训练目标来提高学习效率。例如,图像掩码 [17, 37, 55, 71]、单模态自监督 [35, 43]、细粒度图像-文本对齐 [72]、图像-文本-标签空间中的对比学习 [69] 和成对Sigmoid损失 [77]。CLIPA [34] 提出了在多分辨率下训练以实现成本效益的训练。这些方法与我们所提出的方法互补。
CLIP训练数据集通常由从网络规模获取的噪声图像-文本对组成。自原始CLIP模型 [47] 以来,已有几项工作在大型和过滤数据集上展示了改进的结果 [16, 18, 51, 52, 77]。与数据收集和过滤互补,最近的工作表明,使用从预训练字幕模型生成的视觉丰富的合成字幕,结合真实字幕,可以提高CLIP模型的质量 [32, 45, 70]。我们提出的强化多模态数据集也从合成生成的字幕中受益,我们展示了这些字幕对于提高学习效率至关重要。
以前的工作如DIME-FM [56],扩展了单模态蒸馏 [26],专注于零样本分类。TinyCLIP [68] 通过跨模态亲和力模仿和权重继承训练紧凑的CLIP模型。多模态蒸馏也在学生是特定任务的融合视觉语言模型的设置中进行了探索 [31, 64, 65]。我们提出的多模态强化训练也包括跨模态亲和力模仿 [68]。此外,我们将单模态模型集成 [33, 46] 扩展到多模态设置,并存储从CLIP模型集合中获得的嵌入。
最近提出了离线知识蒸馏方法 [14, 54, 76],以缓解由于运行大型教师模型而导致的训练时间开销成本。我们将数据集强化策略 [14] 扩展到CLIP的多模态设置。我们提出的强化多模态数据集在不增加训练时间计算开销的情况下,显著提高了准确性。
高效的CLIP架构
最近有许多架构展示了在资源受限设备上完成视觉任务的巨大潜力。这些架构可以大致分为纯卷积 [11, 23, 27, 28, 41, 48, 50, 61]、基于transformer [12, 40, 59] 和卷积-transformer混合 [22, 36, 38, 44, 53, 62]。类似地,有基于transformer [63] 和卷积-transformer混合 [20, 67] 的文本编码。已有工作如 [68],修剪ViT架构以获得更小更快的CLIP模型,或工作如 [3],减少图像-文本令牌以加快视觉语言模型的推理速度。这些模型仍然可能相当大且效率低下,无法部署在移动设备上。在我们的工作中,我们为视觉和文本模态引入了改进的卷积-transformer混合架构,改进了最近的最新技术,如 [22, 38, 44, 53]。[3, 68] 中引入的优化可以进一步提高我们模型的效率。
3 多模态强化训练
我们的多模态强化训练利用了从图像字幕模型和一组强大的预训练CLIP模型中转移的知识来训练目标模型。它包括两个主要组成部分:i) 通过合成字幕利用图像字幕模型的知识,ii) 从一组强大的预训练CLIP模型中进行图像-文本对齐的知识蒸馏。我们遵循 [14] 的数据集强化策略,并将额外知识(合成字幕和教师嵌入)存储在数据集中(见图3),从而避免了任何额外的训练时间计算开销,如评估字幕模型或教师集合。
数据集强化
合成字幕。用于训练CLIP模型的图像-文本数据集主要来自网络,本质上是噪声的。最近的尝试如DataComp [18] 和数据过滤网络 [16] 通过使用广泛的过滤机制改进了网络来源数据集的质量。虽然这些过滤数据集噪声较低,但字幕可能仍然不够描述性。为了增强字幕的视觉描述性,我们使用流行的CoCa [74] 模型为每张图像生成多个合成字幕 (见图2(a))。每张图像生成合成字幕数量的消融实验在第5.1节中提供。图5展示了一些由CoCa模型生成的合成字幕示例。与真实字幕相比,合成字幕通常更具体但噪声更大。我们展示了(表2(a))真实字幕和合成字幕的组合对于获得最佳零样本检索和分类性能至关重要。
训练
注意,我们可以在学生模型的前向传递后计算总损失,而无需任何额外的教师相关计算,因为计算蒸馏损失所需的教师嵌入作为数据集的一部分已经可用。
图3. 多模态数据集强化示意图,使用一个图像增强和一个合成字幕。实际上,我们使用多个图像增强和合成字幕。
图4. 卷积和可重参数化块的架构,称为Text-RepMixer,用于MobileCLIP的文本编码器MCt。
图5. 真实字幕与合成字幕的对比。
4 架构
文本编码器
CLIP [47] 模型将视觉transformer与经典的transformer配对,后者由自注意力层组成,用于文本编码。虽然该模型有效,但对于移动部署,更小更高效的模型更受欢迎。最近的工作如 [67] 表明,卷积在文本编码中同样有效。相比之下,我们发现纯卷积架构显著落后于其transformer对手。我们没有为文本编码使用全卷积架构,而是引入了一种混合文本编码器,它利用了1-D卷积和自注意力层。
对于混合文本编码器,我们引入了Text-RepMixer,一种卷积令牌混合器,它解耦了训练时和推理时架构。Text-RepMixer的灵感来自 [62] 中引入的可重参数化卷积令牌混合(RepMixer)。在推理时,跳跃连接被重参数化。架构如图4所示。对于前馈网络(FFN)块,我们在具有相似内核维度的令牌混合器之后增加了一个额外的深度1-D卷积,以获得ConvFFN块。这种结构类似于 [20] 中使用的卷积块,主要区别在于使用了批归一化,并且能够将其与后续的深度1-D卷积层折叠以实现高效推理。Text-RepMixer的设计选择在附录F中讨论。为了找到我们混合文本编码器的最佳设计,我们从纯卷积文本编码器开始,系统地用自注意力层替换卷积块(见表5)。表1显示了我们的文本编码器与CLIP的基础文本编码器相比的有效性。我们的模型更小、更快,并且当与高效的骨干网络如ViT-S/16配对时,获得了与更大的基础文本编码器相似的性能。
表1. (a) 使用ViT-S/16的Base与MCt文本编码器对比。(b) 使用Base文本编码器的FastViT与MCi图像编码器对比。在DataCompDR-12M上训练30k次迭代(约0.24B已见样本)。
表2. 消融实验总结。我们在DataCompDR-12M上训练30k次迭代。所有消融实验均基于ViT-B/16:Base。我们用蓝色突出显示主要选择,用灰色表示替代权衡。我们将与最大值相差0.5%以内的数字加下划线。
表3. 损失函数的消融实验。IN-val和Flickr30k之间的权衡由合成采样和损失系数控制。我们训练30k次迭代。
表4. 存储/成本的消融实验。在DataCompDR上训练没有时间开销。我们训练45k次迭代(约30个epoch)。
表5. 架构的消融实验。MCt中自注意力层数量的影响。我们训练30k次迭代。
图像编码器
最近的工作展示了混合视觉transformer在学习良好视觉表示方面的有效性。对于MobileCLIP,我们基于最近的FastViT [62] 架构引入了一种改进的混合视觉transformer,称为MCI,其关键差异如下所述。
在FastViT中,FFN块使用了4.0的MLP扩展比。最近的工作如 [39, 68] 揭示了FFN块中线性层的大量冗余。为了提高参数效率,我们简单地将扩展比降低到3.0,并增加架构的深度。通过这样做,我们在图像编码器中保留了相同数量的参数。三个变体的阶段配置在附录A中描述。MCi0具有与 [61] 相似的阶段配置。MCi1是MCi0的更深版本,MCi2是MCi1的更宽版本。我们的变体中的阶段计算比率与 [61] 相似。我们发现这种设计对延迟的影响最小,但在下游任务性能上有所提升,见附录B。在表1中,我们将我们的MCi编码器与类似的FastViT-MA36进行了比较,当它们作为CLIP模型中的图像编码器使用时。我们的模型获得了更好的零样本IN-val性能,同时速度快了16.3%。
5 实验
在本节中,我们介绍了我们的实验设置和结果。
评估
我们使用DataComp [18] 的评估基准评估图像-文本模型。具体来说,我们在ImageNet验证集 [8] 及其分布偏移(包括ImageNet-V2 [49]、ImageNet-A [25]、ImageNet-O [25]、ImageNet-R [24] 和ObjectNet [1])上报告零样本分类,并将其平均值报告为IN-Shift。对于零样本图像-文本检索,我们在MSCOCO [5] 和Flickr30k [73] 数据集上报告recall@1。此外,我们报告了DataComp评估中所有38个数据集的平均性能。我们还在最近的Attribute, Relation and Order (ARO)基准 [75] 中评估了我们的模型,包括Visual Genome Relation、Visual Genome Attributes、Flickr30k-Order和COCO-Order数据集。在其余部分中,IN-val指的是ImageNet验证集上的零样本准确性,Flickr30k指的是图像-文本和文本-图像检索的平均零样本recall@1。所有报告的指标均未进行微调。
训练设置
我们有两个消融和大规模实验的设置。对于消融实验,我们在包含1280万图像-文本对的数据集上训练,使用全局批量大小为8192和8×NVIDIA-A100-80GB GPU进行30-45k次迭代。对于大规模训练,我们使用全局批量大小为65536,256×A100 GPU进行200k次迭代。所有模型均从头开始训练(详见附录B)。
数据集
我们在DataComp数据集 [18] 的图像-文本数据集上进行训练。我们使用Bestpool过滤的12.8亿样本子集,该子集在最大数据集规模下提供了最佳性能。我们将此集合称为DataComp-1B。为了快速实验,我们创建了一个包含1280万均匀采样对的固定子集,我们称之为DataComp-12M。DataComp-12M未在 [18] 中研究,但在我们的实验中,我们观察到DataComp-12M始终比具有可比样本的DataComp-medium的Bestpool子集表现更好。
表6. 小规模CLIP训练。MobileCLIP-B表示我们重新实现的ViT-B/16图像编码器和标准Base文本编码器。†表示多分辨率。模型按已见样本数量分组。
图6. 学习效率高达1000倍。与非强化训练相比,在DataCompDR上训练在ImageNet-val上提高了10倍的迭代效率和100倍的数据效率,在Flickr30k上提高了18倍和1000倍的效率。
DataCompDR:强化DataComp。我们使用多模态数据集强化策略强化DataComp数据集。具体来说,我们通过强化DataComp-1B和DataCompDR-12M创建了DataCompDR-1B和DataCompDR-12M。我们有一个一次性生成过程,其成本在多个架构和广泛消融中摊销。我们使用OpenCLIP [29] 中的coca_vit-l-14模型为每张图像生成5个合成字幕,并使用强随机图像增强(DataCompDR-1B为10个,DataCompDR-12M为30个)。我们计算了两个强教师(vit-l-14,预训练权重为datacomp_xls13b_b90k和openaiinOpenCLIP)在增强图像以及真实和合成字幕上的嵌入。嵌入是2×768-D向量的1536-D拼接。我们使用无损压缩和BFloat16存储所有强化。我们在第5.1节中分析了所有选择。一个DataCompDR的已见样本是一个三元组,包含一个随机增强图像、一个真实字幕和一个随机选择的合成字幕。
MobileCLIP架构。我们的MobileCLIP架构由MCi:MCt架构对组成。具体来说,我们创建了3个小变体MobileCLIP-S0 (MCi0:MCt)、MobileCLIP-S1 (MCi1:Base) 和 MobileCLIP-S2 (MCi2:Base),其中Base是类似于基于ViT-B/16的CLIP [47] 文本编码器的12层Transformer。我们还训练了一个标准的ViT-B/16:Base对,并将其称为MobileCLIP-B。
基准延迟。为了测量延迟,我们使用相应方法的输入大小。对于iPhone延迟测量,我们使用Core ML Tools (v7.0) [58] 导出模型,并在iPhone12 Pro Max上运行,iOS版本为17.0.3。所有模型的批量大小设置为1。我们遵循 [61] 中描述的相同协议。
5.1 消融研究
在本节中,我们分析了训练和架构中每个组件的影响。除非另有说明,我们使用在DataComp-12M上训练的ViT-B/16:Base编码器进行30k次迭代,全局批量大小为8k(约20个epoch)。表2总结了我们的训练分析。
强图像增强。与使用强增强的单模态监督和自监督视觉方法 [13, 60] 相比,CLIP训练方法 [47] 通常使用轻图像增强以避免图像-文本错位。然而,几项工作 [2, 14, 46] 展示了在蒸馏设置中使用强增强的有效性。在表2中,我们展示了强图像增强提高了蒸馏性能(IN-val上+4.8%,Flickr30k上+4.4%)。我们在附录C中提供了关于图像增强效果的详细消融实验。
合成字幕。与图像增强类似,合成字幕(或字幕增强)可以进一步提高CLIP模型的性能,特别是在图像-文本检索上。对于常规CLIP训练(λ=0),我们在表2中观察到,包括合成和真实字幕的批次结果在IN-val上提高了+7.4%,在Flickr30k上提高了+27.5%。在表3a中,我们观察到CLIP训练仅使用蒸馏损失(λ=1)的类似趋势。在表3b中,我们分析了λλ的影响,并观察到一个权衡,其中λ=1.0在IN-val上最优,而λ=0.7在Flickr30k上最优。以前利用合成字幕的工作主要集中在改进检索 [32, 70],而蒸馏工作则集中在零样本分类 [56]。在我们的大规模实验中,我们使用λ=0.75平衡MobileCLIP-B的权衡,并使用λ=1.0用于我们的较小变体。
教师集合。我们发现使用一组强大的CLIP模型作为教师在我们的多模态强化训练中至关重要,以实现+2.4%的IN-val改进(表2)。我们还观察到,最准确的模型并不一定是最好的教师。有关不同教师模型的全面分析,请参见附录D。
图像增强和合成字幕的数量。我们生成多个图像增强和合成字幕,并将它们与教师嵌入一起高效存储。我们在表4a和4b中研究了增强和合成字幕数量的有效性。我们训练了最多30个图像增强和5个合成字幕的模型,进行45k次迭代(约30个epoch)。我们观察到,性能在5个增强和2个合成字幕时几乎饱和,表明每个增强可以在模型充分学习添加的知识之前多次重复使用。在需要时,较少的增强和合成字幕可以帮助减少生成时间和存储开销。为了最大化性能,我们在DataCompDR-12M和DataCompDR-1B上分别强化了10和30个增强,以及5个合成字幕。
训练时间。强化训练的主要优势是与非强化训练的时间差异最小。我们在表4d中提供了常规CLIP训练以及在线蒸馏和字幕生成器的墙钟时间。我们在单个节点上使用8×A100-80GB GPU测量DataCompDR-12M上一个epoch的训练时间。DataCompDR-12M上的一个epoch需要1562次迭代,全局批量大小为8192。在没有数据集强化的情况下,训练速度慢了16倍,而在部分强化合成字幕的情况下,训练速度慢了3倍。
存储大小。我们报告了强化数据集与原始DataComp数据集相比的存储需求。我们报告每个图像-文本对的存储大小。如果存在,我们将所有相应的强化存储在同一个文件中。我们使用Pickle格式存储文件,并使用Gzip压缩每个文件。图像-文本嵌入以BFloat16保存。我们在表4c中报告了DataCompDR-12M的1280万个样本和DataCompDR-1B的12.8亿个样本的总存储大小。我们在附录E中提供了关于额外大小减少的分析,并使用BFloat16验证了这不会影响准确性。为了最小化存储开销,我们建议在DataCompDR-12M上进行30个epoch时使用5个增强/合成字幕,在DataCompDR-1B上进行10个epoch时使用2个增强/合成字幕,这些建议基于我们在表4a和4b中的消融实验。
混合文本编码器。我们在混合文本编码器中消融了可以有效替换自注意力层的TextRepMixer块的数量,对零样本性能影响最小。对于此消融实验,我们选择了一个6层的纯卷积文本编码器,并系统地在中间引入自注意力层。从表5中,我们发现即使引入一个自注意力层也能显著提高零样本性能。最佳权衡是使用2个TextRepMixer块和4个自注意力层。这种变体,MCt,获得了与纯transformer变体相似的性能,同时小5%,速度快15.8%。
5.2 小规模制度
在表6中,我们比较了在12-20M样本数据集上训练的方法,这是一个相对较小的范围,用于快速探索(例如架构搜索)。在不到3.7亿个样本上训练的MobileCLIP-B在DataCompDR-12M上显著优于所有其他方法,训练时间长达4倍。MobileCLIP-B还显示出与先前工作SLIP [43](42.8→45.0%)相比,训练样本数量增加时的良好扩展性(65.3→71.7%)。与使用多分辨率训练以提高效率的CLIPA [34] 相比,使用DataCompDR-12M进行训练更高效:CLIPA在2.69亿个多分辨率样本上获得了63.2%的准确率(相当于约0.5亿个2242样本),这比MobileCLIP-B在仅0.37亿个样本上获得的65.3%差。此外,TinyCLIP-39M/16与MobileCLIP-S2相比,延迟更高,准确性更低,而TinyCLIP-8M/16的准确性显著低于MobileCLIP-S0(41.1% vs 59.1%),同时延迟接近(2.6 ms vs 3.1 ms)。
5.3 学习效率
众所周知,更长时间的训练与知识蒸馏可以持续提高分类模型的性能 [2]。在图6a中,我们展示了我们的强化训练也受益于更长时间的训练,在使用仅12M子集的DataComp-1B进行120个epoch后,实现了71.7%的ImageNet-val零样本准确率。相比之下,非强化训练的最佳准确率为55.7%。
我们还展示了图6b中数据集大小的扩展,其中我们部署了从1.28M到所有1.28B样本的DataComp-1B子集。对于所有实验,我们在全局批量大小为65k的情况下训练20k次迭代(相当于在1.28B子集上进行一个epoch的训练)。在DataCompDR上训练达到55.2%的准确率,而DataComp-1B上训练仅达到约6%的准确率。在这种设置下,我们观察到使用DataCompDR的数据效率提高了100倍以上。此外,我们在Flickr30k上观察到1000倍的数据效率。
5.4 与最先进技术的比较
在表7中,我们与大规模训练的方法进行了比较。在DataCompDR-1B上训练的MobileCLIP-S0显著优于最近的工作如TinyCLIP [68] 和CLIPA [34],同时更小、更快。MobileCLIP-S0的性能与在DataComp [18] 上训练的ViT-B/32模型相似,同时小2.8倍,快3倍。MobileCLIP-S2在38个数据集上的平均性能提高了2.8%,并且在检索性能上显著优于在DataComp [18] 上训练2.6倍时间的ViT-B/32-256模型。MobileCLIP-S2比ViT-B/32-256模型小1.5倍,快1.4倍。MobileCLIP-B在38个数据集上的平均性能提高了2.9%,并且在检索性能上优于SigLIP-B/16 [77] 模型,同时小26.3%,后者在WebLI数据集上训练了大约3倍的时间。
表7. MobileCLIP系列模型在各种延迟下具有最佳的平均性能。检索性能报告为@1。最后一列显示了OpenCLIP [29]中38个数据集的平均性能。模型按总延迟递增顺序分组,并在每个组内按性能排序。“Base”指的是具有12层的标准CLIP基于Transformer的[63]文本编码器,“Custom”指的是在相应方法中使用的自定义文本编码器。对于TinyCLIP-63M/32和EVA02-B/16,我们无法可靠地基准测试模型。注意:EVA02-B/16 [55]使用MIM预训练权重作为其视觉编码器,并使用OpenCLIP-B预训练权重作为其文本编码器。TinyCLIP模型使用先进的权重初始化方法,利用在LAION-2B[52]数据集上训练的OpenCLIP模型。所有其他模型,包括我们的,都是从头开始训练的。“(LT)”指的是更长的训练计划,详见附录I。
5.5 检索性能分析
我们在最近的Attribute, Relation and Order (ARO)基准 [75] 上评估了我们的模型。我们将在DataCompDR-1B上训练的MobileCLIP-B与所有公开可用的ViT-B/16:Base模型进行了比较,见表8。仅针对零样本分类或检索优化噪声网络规模数据集可能会降低对自然场景的组合理解。DataCompDR在零样本分类和检索任务上显著提高了模型在ARO基准上的性能。与最近的SigLIP方法 [77] 相比,MobileCLIP-B在Visual Genome Relation和Attributes数据集上分别获得了19.5%和12.4%的更好准确率,并在Flickr30k-Order和COCO-Order数据集上分别提高了69.7%和50.3%的recall@1。
表8. ARO基准测试的性能。所有模型均使用ViT-B/16作为图像编码器和Base文本编码器。对于VG Rel.和VG Attr.数据集,报告了Macro Acc.,对于Flickr30k-Order和COCO-Order数据集,报告了recall@1,遵循[75]。
6 结论
在这项工作中,我们介绍了适用于设备上CLIP推理(低延迟和大小)的MobileCLIP对齐图像-文本骨干。我们还介绍了DataCompDR,一种通过从预训练图像字幕模型和一组强大的CLIP模型中获得的知识强化DataComp。我们展示了使用我们的强化数据集的学习效率提高了10×-1000×。在DataCompDR上训练的MobileCLIP模型在与先前工作的比较中获得了最先进的延迟-准确性权衡。MobileCLIP模型还展示了更好的鲁棒性和在Attribute, Relation and Order (ARO)基准上的改进性能。
附录
A. 图像编码器配置
在我们的工作中,我们为FastViT架构引入了三个阶段配置,这些配置显著改善了模型,同时对延迟的影响有限。这三个配置在表9中描述。我们在图7中比较了我们的图像编码器与FastViT图像编码器在ImageNet-1k数据集上的监督设置下的性能(详见附录B)。
表9. MCi的配置。
B. 实验设置
在本节中,我们提供了训练和评估的额外细节。表12总结了我们用于在DataCompDR-1B上训练MobileCLIP-B的超参数。对于MobileCLIP的其他变体(S0、S1和S2),我们使用相同的超参数,除了使用λ=1.0。对于DataCompDR-12M上的实验,我们使用全局批量大小为8192。所有在DataComp(-DR)上训练的模型都使用强图像增强,除非另有说明。
表10. ImageNet-1k实验的训练超参数。
对于我们在附录D中的集成蒸馏消融实验,我们使用总共32个A100 GPU,但我们使用与我们其他消融实验相同的8192全局批量大小。我们还为附录C和D中的消融实验使用了一个较小的均匀采样的DataComp-8M,这导致性能略低于用于其余消融实验的DataCompDR-12M。
报告的DataCompDR的已见样本数量是一个三元组,包含一个随机增强图像、一个真实字幕和一个随机选择的合成字幕。报告的迭代次数是已见样本数量除以全局批量大小。
对于ImageNet-1k实验,我们遵循[38, 59]中规定的训练方法,即模型使用AdamW优化器进行300个epoch的训练,权重衰减为0.05,峰值学习率为10^-3,总批量大小为1024。预热epoch数设置为5,并使用余弦调度来衰减学习率。我们的实现使用了Timm库[66],所有模型都在单个机器上使用8×NVIDIA A100 GPU进行训练。MCi变体的超参数详见表10。MCi变体的性能详见表11,并与最近的最新技术架构进行了比较。MCi在最近的最新技术架构中获得了最佳的权衡,如图7所示。
C. 图像增强
在本节中,我们提供了关于图像增强效果的详细消融实验。训练设置与第5.2节中描述的DataCompDR-12M上的训练相同,除了我们为此消融实验使用了一个8M的子集。在表13中,我们展示了使用我们的最终损失(等式3)(λ=1)和不同图像增强训练的基于ViT-B/16的CLIP模型的分类和检索性能。请注意,我们使用RangeAugment[42]自动调整亮度、对比度和噪声。我们使用PSNR指标,目标范围为[20, 40],并使用余弦课程。由于RangeAugment在训练期间动态调整各个增强幅度,因此它们不能作为数据集强化过程的一部分存储。因此,我们仅将其应用于输入到学生模型的图像。我们展示了如果相同的增强应用于学生和教师(对于我们的数据集强化方法不可行),可以进一步改进(ImageNet-val上56.6% vs 55.9%)。
表11. MCi变体与最近的最新技术模型在ImageNet分类任务上的比较。
最后,我们考虑了RandomHorizontalFlip、RandomErasing[78]和RandAugment[6],并发现只有RandAugment在我们的设置中是有益的。我们的强化数据集包括RRC和RandAugment的参数,在训练时间我们应用RangeAugment到输入到学生模型的图像。
D. CLIP集成
在本节中,我们提供了关于CLIP集成的详细消融实验。首先,我们展示了通过集成预训练的单个CLIP模型可以构建更准确的零样本模型。对于推理,我们将每个模态的归一化嵌入连接起来,然后重新归一化。在表14中,我们展示了从OpenCLIP[29]中选择的一些CLIP集成模型的性能。我们还包含了单个模型的性能。显然,集成可以提高性能。例如,两个预训练的基于ViT-L-14的CLIP模型(datacomp_x1_s13b_b90k和openai)的集成在ImageNet-val上的零样本分类性能达到了80.1%,而每个单独模型的性能分别为80.1%和75.5%。此外,集成可以是一种更参数高效的方法来获得更强的模型。例如,两个基于ViT-L-14的CLIP模型的集成比基于ViT-bigG-14的图像编码器的模型参数更少,但具有相同的ImageNet-val性能(80.1%)。一般来说,给定一组预训练的CLIP模型(例如在OpenCLIP[29]中),使用这种方法可以推动最先进的技术并获得更强的零样本性能。在这里,我们展示了四个CLIP模型的集成可以达到81.7%的ImageNet-val零样本分类性能,而单个模型的性能不超过80.1%。随着更强的单个模型公开可用,可以使用这种方法创建更强的集成。
图7. MCi变体和最近的最新技术架构在ImageNet上的Top-1准确率与延迟图。
在这项工作中,我们感兴趣的是创建一个强大的集成模型,用于蒸馏的上下文中。在表15中,我们展示了使用不同CLIP模型作为教师(单个模型和集成)训练的ViT-B/16 CLIP模型的性能。训练设置与第5.2节中的相同,除了我们使用了一个均匀采样的8M子集。与标准分类任务的蒸馏[26]类似,我们观察到更准确的CLIP模型不一定是更好的教师。我们在数据集强化过程中选择了两个基于ViT-L-14的CLIP模型的集成作为教师模型(用蓝色突出显示)。
表12. 我们在DataCompDR上的CLIP实验的训练超参数。
表13. 不同增强方法的消融实验。我们用蓝色突出显示我们的选择。
E. 有损压缩的消融实验
一般来说,数据集的存储大小取决于文件格式以及加载时间和压缩率之间的权衡。在表4c中,我们报告了使用BFloat16压缩嵌入的DataCompDR-12M和DataCompDR-1B的存储大小。在本节中,我们进一步分析了通过i) 减少增强数量,ii) 嵌入的有损压缩来减少存储。
我们报告了DataCompDR的12.8k样本的总存储大小,见表16。DataCompDR-12M的存储大小可以通过将数字乘以1000(TBs而不是GBs),DataCompDR-1B的存储大小可以通过乘以10^5来推断。
表17显示了使用BFloat16嵌入训练的准确性,达到了与在DataComp-12M上训练的标准偏差内的准确性。
F. 混合文本编码器
在本节中,我们对混合文本编码器的内核维度进行了消融实验。对于此消融实验,我们使用了一个6层的纯卷积文本编码器,并系统地增加内核大小。我们使用ViT-B/16作为图像编码器进行这些实验。这些模型在DataCompDR-12M上训练了30k次迭代。从表18中,我们注意到随着内核大小的增加,零样本IN-val性能有所提高,但在移动设备上运行模型的成本显著增加。对于1.1%的零样本IN-val性能改进,模型慢了4.5倍。从表18中,内核大小为11获得了最佳的准确性-延迟权衡。
对于混合设计,我们使用深度2D卷积层。我们将3维输入张量重塑为(BCIS)格式,即(批量大小,通道维度,1,序列长度),然后将张量输入到卷积层。对于CLIP,序列长度设置为77。深度卷积层在序列中的令牌之间启用交互。FFN层在令牌的通道维度之间启用交互。由于卷积层是2D的,我们简单地重用了[62]中描述的重参数化过程。
G. DataCompDR-12M上其他模型的性能
在表19中,我们比较了在DataCompDR-12M上训练的不同大小图像编码器的CLIP模型的性能。所有模型在使用DataCompDR-12M进行训练时都享受到了显著的准确性提升,且没有训练开销。例如,即使是只有4.9M参数的最小模型MobileNetV3-L,零样本IN-val性能也提高了10.6%。
H. 扩展结果
在本节中,我们提供了我们提出的CLIP模型家族的扩展零样本结果:MobileCLIP-S0、MobileCLIP-S1、MobileCLIP-S2和MobileCLIP-B。零样本分类和检索结果在表20中提供。我们还包含了相关工作中仅部分评估可用的额外结果。
I. 长时间训练
在表21中,我们提供了在超过13B个已见样本上训练MobileCLIP-B的结果。我们探索了继续训练MobileCLIP-B以减少从头开始训练的成本。最近,[19]表明,随着数据分布随时间变化,大规模CLIP模型可以持续预训练。我们利用了他们的一些方法,使用之前使用余弦或恒定学习率计划训练的模型初始化训练,并在DataCompDR-1B上重新开始训练。我们使用短预热来稳定训练,然后使用另一个恒定或余弦学习率计划,最大值和最小值与原始训练相同。我们使用64个节点,每个节点8个A100-80GB GPU,每个GPU的批量大小为128或256进行训练。一个DataCompDR的已见样本是一个三元组,包含一个随机增强图像、一个真实字幕和一个随机选择的合成字幕。迭代次数是已见样本数量除以全局批量大小。请注意,DataCompDR与DataComp的训练墙钟时间是相同的(表4d)。
表14. (集成)CLIP模型的零样本评估。每组行对应一个集成教师。所有模型均来自2023年8月的OpenCLIP [29]。我们用蓝色突出显示我们的选择。
表15. 使用不同(集成)教师模型在我们的多模态蒸馏中的消融实验。每组行展示一个集成教师。学生架构固定为ViT-B/16图像编码器和基础12层Transformer文本编码器(MobileCLIP-B设置)。对于此消融实验,我们使用DataComp的8M子集,所有实验训练20k次迭代,全局批量大小为8k。所有模型均从2023年8月的OpenCLIP [29]导入。我们用蓝色突出显示我们的选择。
表16. 存储在单独的Pickle Gzip文件中的12.8k样本的总存储。12.8M和1.28B样本的存储大约是相同的数字,单位为TB和100 TB。
表17. BFloat16和增强数量的影响对ImageNet-val零样本准确率的影响。我们在DataCompDR-12M上训练大约30个epoch。
表18. 文本编码器内核大小的消融实验。我们训练30k次迭代。我们用蓝色突出显示我们的选择。
表19. DataCompDR-12M与DataComp-12M的比较。所有模型训练30k次迭代(约0.24B已见样本)。
与我们在13B个已见样本上的初始训练相比,我们在总共39B个已见样本上的长时间训练在38个数据集上的平均性能提高了0.6%,零样本IN-val准确性提高了0.4%。我们通过在13B个已见样本的原始训练基础上使用短训练(Cosine(40k, 131k, 2k))继续训练,仅使用18B个总已见样本,在38个数据集上的平均性能提高了0.4%。
表20. 扩展的零样本评估。我们还包含了相关工作中无法获得完整DataComp [18]评估的额外结果。数字取自相应的论文。对于每种方法,我们选择了其最佳模型,最大为ViT-B/16尺寸。请参见表7以获取包括运行时基准测试在内的更多细节。模型按其在ImageNet-val上的零样本分类性能排序。这里我们的MobileCLIP-S1完全训练了13B已见样本。
表21. MobileCLIP-B的长时间和持续训练。检索性能报告为@1。最后一列显示了OpenCLIP [29]中38个数据集的平均性能。学习率计划指定为Cosine/Const(迭代次数, 全局批量大小, 预热迭代次数)。我们在每列中突出显示与最大值相差0.2%以内的数字。