摘要
使大型基础模型始终保持最新数据更新的成本非常高昂。
为了避免不断重新训练的高昂成本,必须
持续
训练这些模型。
任何大型持续学习基准或基线都缺乏,这个问题更加严重。
我们引入了第一套用于训练视觉语言模型的网络规模时间持续 (TiC) 基准:
TiC
-DataComp、
TiC
-YFCC 和
TiC
-RedCaps。
TiC
-DataComp 是我们最大的数据集,包含超过 127 亿个带时间戳的图像文本对,跨越 9 年(2014-2022 年)。
我们首先使用我们的基准来策划各种
动态
评估,以衡量现有模型的时间稳健性。
我们发现,与 OpenCLIP 存储库中最近训练的模型相比,OpenAI 的 CLIP(使用截至 2020 年的数据进行训练)在我们策划的 2021-2022 年检索任务中失去了
≈
8
%
零样本精度。
然后,我们研究了如何在时间连续数据上有效地训练模型。
我们证明了一种简单的基于排练的方法,该方法从最后一个检查点继续训练并重放旧数据,与从头开始重新训练的标准方法相比,可减少计算量
2.5
×
。
1
.
1
引言
大型多模态基础模型
(Bommasani et al., 2021)
在图像生成和零样本泛化方面取得了前所未有的进步,并导致了多模态学习的范式转变,例如 CLIP
(Radford et al., 2021)
、Flamingo
(Alayrac et al., 2022)
和 Stable Diffusion
(Rombach et al., 2022)
。
这些基础模型通常在大型网络规模数据集上进行训练,这些数据集本质上是固定且
静态的
。
例如,CLIP 的训练数据包含 4 亿对图像-文本对,而 Stable Diffusion 则在 LAION-2B 数据集上进行训练
(Schuhmann et al., 2022)
。
然而,实际上,这些模型必须在
动态
环境中运行,在这个环境中,世界处于不断变化的状态。
例如,互联网不断发展,每天都会增加数 PB 的新数据
(Wenzek et al., 2019; Wiener & Bronson, 2014)
。
目前尚不清楚传统模型(例如,OpenAI 的 CLIP 模型,这些模型在截至 2020 年的互联网规模数据上进行训练)如何处理未来数据,以及它们是否甚至需要任何重新训练才能适应随时间变化的数据。
我们首先比较 OpenAI 的 CLIP 模型与 OpenCLIP 存储库中其他在最近整理的网络数据集(例如,LAION-5B、DataComp)上进行训练的模型的稳健性,这些数据集包含截至 2022 年的数据
(Ilharco et al., 2021)
。
由于没有现有的基准来理解对随时间变化的视觉-语言数据的稳健性,我们为 2014-2022 年创建了
动态
分类和检索任务,并评估了不同的 CLIP 模型(有关我们的评估任务,请参见第
2.2
节)。
我们观察到一个有趣的现象:与 2014-2016 年的数据相比,OpenAI 模型在 2021-2022 年的数据上的检索性能存在显著差距,而 OpenCLIP 模型则保持了其性能。
相反,诸如 ImageNet 分布变化的准确性之类的标准评估描绘了一幅不完整的图景,即 OpenAI 的 CLIP 模型比 OpenCLIP 模型略微更稳健(图
1
)。
我们的研究结果不仅证明了模型随着动态数据分布而适应和发展的关键需求,而且还强调了仅仅依赖静态基准(例如 ImageNet)的局限性。
一种简单但常见的适应时间演变数据的方法是在每次获得新的图像-文本数据池时从
零开始
训练一个新的 CLIP 模型。
这种做法有其合理性:从预先存在的模型开始训练可能会使根据新数据改变模型的行为变得困难
(Ash & Adams, 2020; Achille et al., 2018; Liu et al., 2023)
。
然而,从头开始训练基础模型需要大量的计算资源,并且经常难以重复进行。
例如,
Schuhmann et al. (2022); Cherti et al. (2022)
中的 ViT-g-14 训练了 240,000 个 A100 GPU 小时,这大约相当于在 400 个 GPU 上运行一个月。
围绕 CLIP 训练的规模法则而制定的主要训练指南仅关注从头开始的训练
(Cherti et al., 2023)
。
这就引出了一个关键问题:
鉴于计算限制,我们如何在数据分布随时间演变时持续更新模型?
图1:
(左,中)
2021-2022年,OpenAI模型在检索任务上的零样本鲁棒性较差。
OpenCLIP模型和OpenAI模型在标准基准测试上的鲁棒性相似。
然而,与OpenCLIP库中的最新模型相比,OpenAI模型在我们的检索任务上显示出较低的鲁棒性,突出了其对随时间变化的数据分布的敏感性
(右)
简单的持续训练基线在计算上高效,并且与从头开始重新训练相比具有竞争力。
不同的点表示在我们的
TiC
-DataComp (L) 数据随时间到达时顺序训练的模型。
使用之前的检查点进行热启动训练并重放所有旧数据,其性能与每次新数据到达时都从头开始训练的Oracle类似,同时
2.7
×
计算量更少。
关于持续学习,存在大量的文献, 重点是使模型适应动态环境
(Parisi et al., 2019; Hadsell et al., 2020; De Lange et al., 2021)
。
传统上,该领域集中在缺乏任务之间自然演变的合成增量基准上,因此,持续学习方法 很少用于现实场景
(Cossu et al., 2022; Lin et al., 2021)
。
相反,最近关注CLIP模型持续学习方法的研究, 主要目标是提高单个或一系列不相交下游任务的性能
(Ding et al., 2022; Zhou et al., 2023b; Zheng et al., 2023; Ilharco et al., 2022)
。
虽然最近的一些工作已经开始解决这些问题,但现有的基准 规模相对较小,或者缺乏配对的图像-文本数据
(Ni et al., 2023; Lin et al., 2021)
。
简而言之,缺乏关注在网络规模上对随时间自然演变的数据进行CLIP模型持续训练的研究。
我们朝着CLIP模型的
时间持续(
TiC
)
训练迈出了第一步, 其中数据分布随时间自然演变(概述见
图
2
)。
我们引入了
TiC
-DataComp,一个用于CLIP模型时间持续训练的新基准, 我们通过将“爬取时间”信息添加到现有的CommonPool数据集
(Gadre et al., 2023)
来创建它。
我们还重新利用了从各种来源(如Reddit和Flickr)收集的其他网络规模数据集。
具体来说,我们利用YFCC
(Thomee et al., 2016)
和Redcaps
(Desai et al., 2021)
中分别可用的时间信息,整理了
TiC
-YFCC和
TiC
-RedCaps。
我们对该基准的这项研究的主要目标是开发持续学习方法,这些方法在每次获得新的数据批次时都在受限的计算预算内运行(例如
C
)。
这些方法与一个Oracle进行竞争,后者每次有新数据到达时都从头开始训练,利用累积的计算预算。
为了评估在我们
TiC
-CLIP框架中训练的模型,我们对我们提出的动态评估任务(这些任务随时间演变)以及28个标准分类和检索任务(包括ImageNet
(Krizhevsky et al., 2012)
、ImageNet分布偏移和Flickr
(Plummer et al., 2015)
)进行了零样本评估,这遵循了
Gadre et al. (2023); Radford et al. (2021)
的工作。
最后,我们在我们的基准上开发了持续学习方法,并进行了超过两百个实验,使用了不同的基线,这些基线利用了以前的检查点(例如,warm start,patching和distillation)、回放缓冲区和学习率调度。
我们的研究结果突出表明了一个关键结论:利用最新的检查点进行warm start训练并重放所有旧数据的累积方法,实现了与Oracle具有竞争力的性能,同时在计算上
2.7
×
更高效。
此外,我们的实验展示了静态和动态性能的缓冲区大小之间的有趣权衡,并为顺序训练的学习率调度提供了宝贵的见解。
我们的结果涵盖了各种数据集规模(从1100万个样本到30亿个样本),并突出了不同方法的趋势,这些趋势在各个规模上大体一致。
为了使我们的基准易于访问,我们公开发布了代码以及我们在现有数据集之上收集的时间信息here。
我们的工作只是朝着基础模型持续训练迈出的第一步,我们相信我们的研究将引起更多人关注这个未被充分研究的领域。
2
TiC-CLIP:基准和实验协议
图2:
我们提出的持续基准上的实验协议。
(A)
在给定的缓冲区约束下结合新旧数据。
(B)
通过使用之前的检查点或从头开始,持续地训练具有计算预算(例如
C
)的模型。
(C)
在标准数据集和我们提出的动态数据集上评估模型。
与附录
A
中
其他基准的比较。
本节介绍我们的基准(
图
2
),重点关注使用对比语言图像预训练(CLIP)(
(Radford et al., 2021)
)目标对视觉-语言基础模型的训练。
值得注意的是,我们对按顺序到达的图像-文本数据进行训练,这与传统的静态图像-文本数据集(例如,CLIP中的WiT,
Gadre et al. (2023)
中的DataComp)不同。
我们整理了
TiC
-DataComp、
TiC
-YFCC和
TiC
-RedCaps,这些都是来自互联网的图像-文本对,我们用辅助时间信息对其进行了增强。
我们还引入了动态评估任务,以评估我们持续训练的模型在随时间演变的数据上的性能。
学习者的目标是在每一步都训练一个
可部署的
模型,因为在固定的计算预算下,新的数据会变得可用。
2.1
基准设计:我们如何创建时间连续数据集?
为了实例化 CLIP 的持续训练,我们用从数据集原始来源收集的时间信息扩展现有的图像-文本数据集。
我们最大的数据集是
TiC
-DataComp,它包含127亿个带有“爬取时间”元数据的图像-文本对。
我们是在现有 DataComp 基准
(Gadre et al., 2023)
的基础上创建这个数据集的。
我们还在现有 YFCC15M
(Thomee et al., 2016; Radford et al., 2021)
和 Redcaps
(Desai et al., 2021)
数据集的基础上创建了
TiC
-YFCC 和
TiC
-RedCaps,以强调我们的发现广泛适用于来自 Reddit 和 Flickr 等不同来源的精心策划的数据集。
虽然 DataComp 基准中缺少与时间相关的元数据,但在 YFCC 和 Redcaps 的原始版本中是可用的。
然而,据我们所知,以前的工作并没有将此类时间信息用于 CLIP 模型的持续训练。
我们展示了所有数据集的数据集统计信息,例如,附录中每年的示例数量。
C.3
.
TiC
-DataComp
我们收集了 DataComp 中介绍的 CommonPool 数据集的时间戳,该数据集包含 127 亿个图像-文本对(不包括 1 亿个不可访问的)。
该数据集是迄今为止最大的公共图像文本数据集。
DataComp 的数据来源是 Common Crawl,它定期发布网络爬取的数据快照,自 2014 年以来通常每月发布一次,其中包含新的和更新的网页。
为了构建
TiC
-DataComp,我们为 DataComp 中的每个图像文本对添加了其
第一个
时间戳。
我们遵循与 DataComp 相同的构建过程,但在重复数据删除阶段只保留了在最早快照中找到的图像文本对。
此过程以月份为粒度提供时间戳,跨度为 2014 年至 2022 年。
详情见附录。
C.7
节详细介绍了构建过程。
我们注意到,虽然这种增强的时序信息可能包含一些噪声,但平均而言,我们发现它可以合理地准确地代表网页的上传时间(见附录)。
C.7
).
尽管我们的基准测试包含以月份为粒度的时序信息,但我们将实验限制在以年份为粒度,方法是整合一年中所有月份的数据。
与 DataComp 类似,我们的基准测试具有包容性设计,可适应计算资源水平不同的参与者。
特别是,我们使用 CommonPool 中的
中等
、
大型
和
超大型
规模进行了实验。
Gadre 等人 (2023)
利用不同的过滤策略来选择训练子集。
我们担心过滤技术会使选定的训练数据产生偏差。
附录
C.1
节,我们提供了初步证据表明,使用现成 CLIP 模型的“Bestpool”过滤确实使选定的数据偏向于旧的时间步长。
然而,为了突出我们发现的意义,即使对于最先进的过滤技术,我们也使用 Bestpool 和 Basic 过滤(无 CLIP 过滤)在
超大型
规模上进行了实验。
对于
大型
和
中型
规模,我们只实验了基本过滤。
TiC
-YFCC
我们使用OpenAI
(Radford et al., 2021)
选择的YFCC100M
(Thomee et al., 2016)
的1500万子集,即YFCC15M,进行实验。
此过滤仅保留标题中包含自然文本的图像。
YFCC100M包含2008年至2014年的数据,最初发布时带有上传时间戳。
我们使用此信息以年份为粒度创建连续分割。
TiC
-RedCaps
RedCaps包含来自手动整理的subreddit集合的1200万图像-标题对
2011
–
2020
(Desai et al., 2021)
。
我们使用帖子的创建时间戳来创建持续学习的分割。
与其他两个数据集类似,我们以年份为粒度进行实验。
2.2
评估测试平台
图3:
在我们的动态评估任务中,示例的分布从2014年到2022年发生了变化。
(左)
文本到图像检索的样本。
对于新的时间戳,出现了来自新概念的图像(例如,COVID-19)。
(右)
我们针对4个类别的分类任务的样本。
我们观察到,不仅物体随着时间推移而演变,而且最近时间戳的图像也更多地是在野外捕获的。
动态任务
我们利用基准测试中的时间信息来创建
动态评估
任务。
这里,测试数据包含了随着世界发展而跨越数年变化的样本。
对于我们最大的数据集
TiC
-DataComp,我们为检索和分类创建动态任务,如下所述。
(示例见
图
3
,更多示例见附录)。
C.5
):
I.
动态检索任务
:为了创建一个检索任务,我们从不同的时间戳中采样一批独立同分布的图像-文本对,并在给定相应的图像的情况下评估文本检索性能(类似地,给定相应的文本,评估图像检索性能)。
我们将该数据集称为
TiC
-DataComp-Retrieval。
二。
动态分类任务
:我们还创建了一个分类数据集
TiC
-DataComp-Net,其中包含来自CommonPool的ImageNet类别,并增加了时间戳。
受LAIONNet
(Shirali & Hardt, 2023)
的启发,我们首先过滤掉相应的标题只包含ImageNet同义词集中的一个的示例。
然后,我们只保留ImageNet同义词集定义与标题之间的相似度超过
0.5
阈值的示例。
我们使用现成的句子嵌入模型
(Reimers & Gurevych, 2019)
来评估相似度。
至关重要的是,与LAIONNet不同,我们不会使用CLIP相似度分数过滤图像-文本对,以避免使选择过程产生偏差。
我们在附录
C.5
中更详细地描述了构建过程。
在
TiC
-DataComp-Net上,我们报告了所有类别以及每个时间步长上所选节点(例如,机动车辆)的平均准确率。
同样,我们为
TiC
-YFCC和
TiC
-RedCaps创建检索任务。
请注意,我们从训练集中移除了用于动态检索和分类任务的提取的图像-文本对。
对动态任务的评估以零样本的方式进行。
静态任务
我们还在零样本情况下,如同
Radford等人 (2021)
一样,对大量分类和检索任务评估模型。
特别地,我们考虑了28个标准任务:27个图像分类任务,例如ImageNet及其6个分布偏移(例如,ImageNetv2、ImageNet-R、ImageNet-Sketch和Objectnet),来自VTAB的数据集和Flickr30k检索任务。
我们将其称为
静态评估
任务。
我们在附录中列出了所有数据集。
C.2
.
评估指标
我们分别基于
准确率
和
Recall@1
定义分类任务和检索任务的指标。
令
T
表示我们拥有数据的时间步数。
对于每种训练方法,我们共生成
T
个模型,每个模型对应于特定时间步长的训练结束。
对于静态数据集(例如,ImageNet),我们报告
T
个模型的平均性能。
但是,在处理动态评估数据集时,我们评估
T
个模型在所有时间步收集的评估数据集上的性能。
因此,对于每个模型和一个动态评估任务,我们获得
T
个性能值。
我们使用性能矩阵
ℰ
表示这些值,其中每个条目
ℰ
i
,
j
表示在时间步
i
观察训练数据后获得的模型在时间步
j
的数据集上进行评估时的性能。
性能矩阵
ℰ
也可以使用持续学习评估中常用的三个标准指标简洁地总结
(Lin等人,2021;Díaz-Rodríguez等人,2018)
:
•
域内性能
:每个训练时间步长的平均性能(即
ℰ
的对角线)
•
反向迁移
:每个训练步骤之前时间步长的平均值(即
ℰ
的下三角)
•
正向迁移
:每个训练步骤之后时间步长的平均值(即
ℰ
的上三角)
有时,上述指标可能导致反向迁移指标受后期评估时间步长的影响,从而使反向迁移指标产生偏差(参见附录)。
F
详见)。
因此,在附录
F
中,我们展示了使用改进的指标来缓解这个问题的结果。
静态任务捕获标准基准上的性能,而动态任务则捕获由于分布偏移(对于前向迁移)和遗忘(对于后向迁移)而导致的问题。
我们基准测试的目标是开发持续学习方法,以最大限度地提高静态任务的性能,同时优化动态任务的性能。
2.3
训练实验方案
流式协议
我们遵循流式协议,其中数据以大批量的方式逐步展现给学习器,目标是在每批数据到达后尽快获得可部署的模型。
我们以年份为粒度进行数据流实验,我们的基准支持未来以月为粒度的研究。
此外,由于早期时间步的数据量有限(见附录
C.3
),我们将早期时间步的数据聚合到一个更大的批量中,并以范围内的最新年份为其时间戳。
聚合后,
TiC
-DataComp(2016-2022)有7个时间步,
TiC
-YFCC(2011-2014)和
TiC
-RedCaps(2017-2020)都有4个时间步。
虽然每个时间步透露的图像-文本对的数量具有相似的数量级,但确切的数量在各个步骤中确实有所不同,我们不会人为地改变大小。
内存预算
我们允许方法使用每个步骤的最后一个模型检查点,因为每个月保留一个检查点的成本通常可以忽略不计。
相反,保留旧数据的成本可能很高,并且由于数据过期策略而可能不被允许。
因此,除了研究保留所有旧数据的方法外,我们还探索了限制数据持久性的策略(详见第
3
节)。
计算预算
为了确保方法之间的公平比较,我们建立了一个一致的总计算预算,以乘累加运算 (MAC) 来量化,并在每个时间步的训练中平均分配它。
除非另有说明,对于除Oracle和LwF之外的所有方法,我们使用相同的计算资源。
对于
TiC
-DataComp上的实验,我们参考
DataComp
中的计算配置来确定整体计算量。
对于
TiC
-RedCaps和
TiC
-YFCC,我们使用
TiC
-DataComp中
中等
规模的计算量。
计算资源详情见附录。
C.4
.
2.4
分析构建基准中的分布偏移
通过构建的评估任务分析TiC
-DataComp
首先,我们定性地分析了检索和分类数据集中的示例(图
3
)。
我们观察到,随着时间的推移,在检索任务中,出现了像COVID-19这样的新概念。
同样,某些ImageNet类别也在发生变化,例如从“化妆舞会”面具到其定义中的“外科/防护”面具的转变。
此外,随着时间的推移,我们观察到图像质量有所提高,并且与居中的白色背景图像相比,越来越多的图像出现在自然环境中。
接下来,我们比较了OpenAI和OpenCLIP模型在我们数据集上的性能。
在这里,我们只介绍主要发现,并将详细讨论委托给附录
C.6
。
我们观察到OpenAI和OpenCLIP模型在我们的动态检索任务上存在显著的性能差距(图
1
)。
当检索查询中包含COVID-19的标题时,这种差距会显著扩大。
另一方面,OpenAI和OpenCLIP模型在来自Flickr的数据检索方面表现出相似的鲁棒性,这突出表明某些领域的数据不会出现导致性能下降的偏移。
对于我们的分类任务,我们观察到在所有类别上平均时下降非常小(
≈
1
%
)。
但是,我们在ImageNet的特定子树上观察到相当大的差距。
例如,在“机动车辆”子树中的类别,当比较OpenAI和OpenCLIP模型时,表现出近似的
4
%
性能下降。
这些发现突出表明,虽然ImageNet类别的整体可能历久弥新,但某些类别往往比其他类别发展得更快。
我们对
TiC
-DataComp进行的定性和定量分析清楚地突出了分布的演变,并捕捉到不同于标准基准的特性。
对
TiC
-YFCC的定量分析
我们使用现成的句子和图像编码器分析
TiC
-YFCC。
我们首先使用OpenAI CLIP编码器嵌入不同时间步长的图像,然后计算弗雷歇初始距离(FID;
Seitzer (2020)
)。
随着时间的推移,我们观察到FID距离相对于第一步的数据(附录
C.6
中的图
18
)而增加。
同样,我们使用预训练的句子转换器从Wordnet名词中提取每个标题的前5个类别。
我们观察到,与第一步的数据相比,WordNet名词分布的TV距离会随着时间推移而变化。
更多细节见附录。
C.6
.
3
TiC-CLIP:如何持续训练CLIP模型?
表1:
总结我们方法的表格。
D
:每一步的数据大小,
T
:总时间步数,
t
:当前时间步数,
C
:计算预算(迭代次数)。
Method
Each Step
Total
Train Size
Init.
Compute
Compute
Cumulative-All
t
D
Last
C
T
C
Cumulative-Exp
2
D
Last
C
T
C
Cumulative-Equal
2
D
Last
C
T
C
Sequential
D
Last
C
T
C
Restart
t
D
Rand
C
T
C
Patching
D
Last Patch
C
T
C
LwF
D
Last
1.2
×
C
1.2
×
T
C
Oracle
*
*
t
D
Rand
t
C
(
T
+
1
)
T
2
C
在本节中,我们列出了不同的方法,这些方法特别关注以下问题(
Sec.
3
): (i) 如何利用/重放先前时间步的数据; (ii) 如何利用先前训练的模型检查点?
(iii) 训练/优化程序应该是什么?
从最后一个检查点初始化的数据回放方法在标准的持续学习基准测试中表现出强大的性能(
Sec.
5
)。
我们考虑了从最后一个检查点(复数)初始化与否的回放方法:
I.
Oracle
:使用
t
×
C
的大计算量,从头开始(即随机初始化)训练一个CLIP模型,训练数据包含直到时间
t
收到的所有图像文本数据。
Oracle代表一种
代价高昂
的方法,这是大型基础模型训练中最常见的做法。
其他方法的目标是在其有限的预算内尽可能接近Oracle。
二.
累积
:使用计算量
C
,训练每个从最后一个检查点初始化的模型,训练数据包含直到
t
的所有数据。这种方法类似于经验回放
(Robins, 1995; Hayes et al., 2019)
,但缓冲区比持续学习文献中常用的缓冲区大得多。
给定每个过去步骤的固定缓冲区大小,我们观察到随机子采样和其他策略之间的差异最小或没有差异。
对回放数据进行采样后,我们将它与新数据随机打乱在一起进行训练。
我们考虑以下每步采样缓冲区大小的策略:
•
-全部
:回放所有以前的数据。
•
-指数
:回放大小为
D
的缓冲区,并在每一步将旧数据量减少一半。
例如,在第3个时间步长,我们保留
D
/
2
,
D
/
2
旧数据,在第4个时间步长,我们保留
D
/
4
,
D
/
4
,
D
/
2
旧数据。
结合当前步骤的
D
数据,此方法在每个步骤中最多训练
2
D
数据。
•
平均
:回放大小为
D
的缓冲区,但将缓冲区平均分配到所有之前的年份。
例如,在第4步,我们保留
D
/
3
,
D
/
3
,
D
/
3
旧数据。
结合当前时间步长的
D
数据,此方法在每个步骤中最多训练
2
D
数据。
三.
顺序
:仅基于从前一时间步的最佳检查点开始的新数据进行训练
。
顺序方法类似于累积方法,但没有回放缓冲区。
四.
重启
:从头开始训练每个模型(即,随机初始化),使用直至时间
t
的所有数据,计算预算为
C
。重启方法类似于Oracle方法,但在每个时间步的计算预算为
C
,并且类似于顺序方法,但使用随机初始化。
因此,重启方法有助于我们理解基准测试中的
正迁移
和
可塑性损失
(Ash & Adams, 2020; Dohare et al., 2023)
。
V.
修补
:我们使用来自
Ilharco et al. (2022)
的顺序修补方法。
从上一步的修补模型进行初始化,并且仅在新数据上进行训练。
为了在每个时间步获得修补模型,我们使用在时间步
t
−
1
训练的修补模型(如果有)和在时间步
t
训练的模型进行权重插值。我们通过优化先前任务上的平均检索性能来调整混合系数。
六.
LwF
:仅在新数据上进行训练,并在每一批次中使用最后一个检查点和当前模型的图像-文本相似性矩阵之间的KL散度惩罚
(Li & Hoiem, 2017; Ding et al., 2022)
。
参见附录。
E
关于其他持续学习方法的结果,例如EWC
(Kirkpatrick et al., 2017)
。
学习率调度
训练CLIP模型的事实上的学习率(LR)调度是初始线性增加到最大值,即预热,然后是余弦衰减
(Radford et al., 2021; Gadre et al., 2023)
。
我们默认对每个顺序运行使用余弦LR调度,从而产生循环调度,并且观察到当LR较高时,后续运行早期训练损失显着增加。
然而,随着训练的进行,我们观察到损失增加的速度减慢(与从头开始训练相比),这使得我们可以使用循环调度进行训练。
我们在附录中对此进行了更详细的讨论,并探索了一种替代的学习率调度方案。
B.5
.
其他训练细节和超参数
除非另有说明,否则我们严格遵循原始CLIP训练方案
(Radford et al., 2021)
。
我们使用ViT-B/16作为图像编码器训练CLIP变体
(Dosovitskiy et al., 2020)
。
所有训练和超参数都可以在附录中找到。
D.2
.
4
实验和主要结果
表2:
在我们持续时间基准测试上的零样本性能。
*
和
*
*
表示违反计算预算的方法。
对于静态任务,我们列出了在最终时间戳获得的模型的准确性。
对于动态任务,我们列出了检索任务中的前向/后向迁移和ID性能(第
2.3
节)。
对于
TiC
-DataComp (XL),我们包含了使用Bestpool过滤的结果(表
5
中的基本过滤)。
对于所有指标,数值越高越好。
Benchmark
Method
Compute
(MACs)
Static Tasks
Dynamic Retrieval Tasks
ImageNet
ImageNet dist.
shift
Flickr30k
Average over 28 datasets
Backward Transfer
ID Performance
Forward Transfer
TiC
-YFCC
Restart
3.4
×
10
18
5.2
3.6
3.0
12.9
13.2
41.4
18.6
Sequential
3.4
×
10
18
17.3
10.5
15.9
21.9
42.2
48.4
23.7
Patching
3.4
×
10
18
18.9
11.3
18.5
23.3
44.7
53.4
24.5
Cumulative-Exp
3.4
×
10
18
24.1
14.3
20.4
25.9
60.4
60.1
27.1
Cumulative-Equal
3.4
×
10
18
23.9
13.8
20.5
26.3
60.4
60.4
27.1
Cumulative-All
3.4
×
10
18
29.3
17.6
26.8
29.6
66.4
60.2
27.6
LwF
*
4.1
×
10
18
16.9
9.8
14.7
21.2
36.6
56.0
23.2
Cumulative-All
*
3.6
×
10
18
29.2
17.5
27.4
29.3
66.8
60.3
27.6
Oracle
*
*
8.5
×
10
18
29.2
17.0
25.9
29.0
66.1
61.8
26.9
TiC
-RedCaps
Restart
3.4
×
10
18
11.7
8.5
3.7
18.4
21.3
25.4
22.4
Sequential
3.4
×
10
18
19.3
13.7
6.2
25.8
33.0
33.6
27.5
Patching
3.4
×
10
18
21.3
15.2
7.7
26.8
34.8
34.8
27.8
Cumulative-Exp
3.4
×
10
18
27.3
19.1
10.5
30.0
44.5
42.0
32.6
Cumulative-Equal
3.4
×
10
18
27.8
19.4
10.0
30.5
44.4
42.0
32.6
Cumulative-All
3.4
×
10
18
32.2
18.7
14.5
31.7
48.9
43.2
33.4
LwF
*
4.1
×
10
18
21.6
14.8
8.2
27.3
35.4
36.0
28.4
Cumulative-All
*
3.6
×
10
18
32.9
23.7
14.1
32.9
49.0
43.4
33.4
Oracle
*
*
8.5
×
10
18
32.7
22.7
14.3
32.3
48.5
43.1
33.4
TiC
-DataComp
(M)
Sequential
3.0
×
10
18
19.2
16.4
16.4
26.0
25.7
26.4
14.9
Patching
3.0
×
10
18
19.3
16.8
18.5
26.4
26.9
25.4
14.5
Cumulative-Exp
3.0
×
10
18
22.1
18.4
20.4
28.8
31.7
27.1
15.2
Cumulative-Equal
3.0
×
10
18
22.1
18.4
19.2
28.0
31.8
26.8
15.1
Cumulative-All
3.0
×
10
18
24.0
20.2
20.9
30.0
33.8
26.4
15.1
LwF
*
3.8
×
10
18
19.2
16.5
17.7
27.0
25.6
26.6
14.9
Cumulative-All
*
3.9
×
10
18
30.0
25.0
28.6
35.1
36.7
28.3
15.5
Oracle
*
*
1.2
×
10
19
25.5
21.2
23.3
30.8
34.9
27.8
15.6
TiC
-DataComp
(L)
Sequential
2.7
×
10
19
44.7
37.4
48.4
45.7
52.6
58.4
41.1
Patching
2.7
×
10
19
45.8
38.9
49.7
46.9
55.2
57.5
40.9
Cumulative-Exp
2.7
×
10
19
47.3
39.6
50.8
47.6
60.4
58.4
41.4
Cumulative-Equal
2.7
×
10
19
47.7
40.3
51.8
47.7
60.9
58.2
41.4
Cumulative-All
2.7
×
10
19
48.9
41.3
50.9
48.0
62.1
57.3
41.2