专栏名称: arXiv每日学术速递
跟踪计算机视觉、人工智能、机器学习、NLP、语音识别、量化金融等热门方向学术信息
目录
相关文章推荐
庞门正道  ·  她,设计女魔头! ·  3 天前  
优秀网页设计  ·  昨日行业动态丨迎战 ... ·  3 天前  
庞门正道  ·  大号值得关注,超大号不值得。 ·  6 天前  
Typeschool  ·  DSa——预估的光芒 ·  6 天前  
Typeschool  ·  DSa——预估的光芒 ·  6 天前  
51好读  ›  专栏  ›  arXiv每日学术速递

Google Deepmind提出SigLIP,用于语言图像预训练的 Sigmoid 损失

arXiv每日学术速递  · 公众号  · 算法 设计  · 2024-10-14 11:45

正文

摘要

我们提出了一种用于图像文本预训练的简单成对 sigmoid 损失。 与使用 softmax 归一化的标准对比学习不同,sigmoid 损失仅作用于图像文本对,并且不需要全局视角来查看成对相似性以进行归一化。 sigmoid 损失同时允许进一步扩大批次大小,同时在较小的批次大小下也能表现更好。 仅使用四个 TPUv4 芯片,我们就可以在  批次大小下训练 Base CLIP 模型,并在  批次大小下训练 Large LiT 模型,后者在两天内实现了  ImageNet 零样本精度。 批次大小与损失的这种解耦进一步允许我们研究示例与对以及负例与正例比率的影响。 最后,我们将批次大小推向极致,达到百万级,发现批次大小增加带来的益处迅速减少,而  的更合理的批次大小就足够了。 我们希望我们的研究能激发人们进一步探索如何提高语言图像预训练的质量和效率。

1. 简介

使用来自网络上图像文本对的弱监督进行对比预训练正成为获得通用计算机视觉主干的常用方法,正在慢慢取代对大型标记多类数据集的预训练。 高级思想是使用配对数据同时学习图像和文本的aligned表示空间。 开创性的工作 CLIP [34] 和 ALIGN [23] 在大规模上建立了这种方法的可行性,继它们成功之后,许多大型图像文本数据集变得可用于私人 [55, 13, 21, 45] 和公开 [37, 6, 15, 7, 38] 使用。

预训练这些模型的标准方法利用了图像文本对比目标。 它将匹配(正)图像文本对的图像和文本嵌入对齐,同时确保无关(负)图像文本对 表 1:SigLiT 和 SigLIP 结果。 Sigmoid 损失在内存方面效率很高,允许使用更大的批次大小 (BS),这使得仅用少量芯片就能实现语言图像预训练。 SigLiT 模型使用一个冻结的公共 L/16 检查点 [39] 在 LiT 图像文本数据集 [55] 上进行训练,在四个 TPUv4 芯片上训练一天,实现了  的 ImageNet 零样本准确率。 使用相同的设置,使用一个  检查点 [54] 进行训练,训练两天,获得了  的准确率。 使用一个公共解锁的 B/16 图像检查点 [39] 在 WebLI 数据集 [13] 上进行训练,SigLIP 在 16 个 TPU-v4 芯片上训练三天,实现了  的零样本准确率。 最后两行展示了使用随机初始化模型的结果。



∗ 我们使用了具有 12 个层的 L 模型的一个变体。

在嵌入空间中是不同的。 这是通过在批次级别应用基于 softmax 的对比损失来实现的,该损失被应用两次以规范化所有图像之间的成对相似度得分,然后是所有文本。 Softmax 的朴素实现从数值上来说是不稳定的;它通常通过在应用 softmax 之前减去最大输入值来稳定 [18],这需要对整个批次进行另一次遍历。

在本文中,我们提出了一种更简单的替代方案:sigmoid 损失。 它不需要在整个批次上进行任何操作,因此极大地简化了分布式损失的实现并提高了效率。 此外,它在概念上将批次大小与任务的定义分离。 我们比较了所提出的 sigmoid 损失与标准 softmax 损失在多个设置中的表现。 特别地,我们研究了基于 sigmoid 的损失与两种突出的图像文本学习方法:CLIP [34] 和 LiT [55],我们分别称之为 sigmoid 语言图像预训练  和 sigmoid LiT (SigLiT)。 我们发现,当批次大小小于  时,sigmoid 损失的性能明显优于 softmax 损失。 当训练批次大小增大时,差距会缩小。 重要的是,sigmoid 损失是对称的,只需要一次传递,并且典型的实现比 softmax 损失需要更少的内存。 这使得能够成功地以 一百万 的批次大小训练 SigLiT 模型。 但是,我们发现 softmax 和 sigmoid 的性能都随着批次大小的增长而饱和。 好消息是,对于图像-文本预训练来说,合理的批次大小,即 ,就足够了。 这一结论也适用于对 100 多种语言进行的多语言 SigLIP 训练。

1

 

在表 1 中,我们展示了图像-文本预训练的设置,这些设置需要适度的 TPUv4 芯片数量来进行训练。 SigLiT 的效率出人意料地高,仅用四个芯片在一天内就达到了  的 ImageNet 零样本精度。 SigLIP 的从头开始训练要求更高,在 32 个 TPUv4 芯片上经过 5 天训练后达到  的零样本精度。 这与之前的工作相比更有优势,例如 FLIP [29] 和 CLIP [34],它们分别需要大约 5 天和 10 天的时间在 256 个 TPUv3 内核上进行训练。 当在 SigLIP 中微调预训练的视觉主干,在表 1 中表示为  时,我们发现禁用预训练主干上的权重衰减会导致更好的结果(有关详细信息,请参见图 4)。 我们希望我们的工作能够为使新兴的语言-图像预训练领域更易于访问铺平道路。

2. 相关工作

使用 sigmoid 损失的对比学习。 之前的一项工作提出了一个类似的 sigmoid 损失,用于无监督降维任务 [19];在对比图像-文本学习的范围内,绝大多数工作依赖于基于 softmax 的 InfoNCE 损失,该损失由 [43] 推广。 在监督分类中,sigmoid 损失已被证明比 softmax 损失略微更有效和更健壮 [3, 47]。

自 CLIP [34] 和 ALIGN [23] 将 softmax 对比学习 [56, 43, 10, 24] 应用于大规模图像-文本数据集以来,对比语言-图像预训练变得流行起来。 两种模型在零样本迁移任务上表现都很好,包括分类和检索。 后续工作表明,对比预训练模型为微调 [49, 16]、线性回归 [23]、目标检测 [30]、语义分割 [31] 和视频任务 [53] 生成了良好的表示。

生成式语言-图像预训练除了 softmax 对比预训练之外,还提出了各种替代方案。 GIT [45]、SimVLM [46] 和 LEMON [21] 成功地使用生成式文本解码器对模型进行预训练,而 CoCa [52] 在判别式 CLIP/ALIGN 设置中添加了这样的解码器,从而将两种方法的优点

算法 1 Sigmoid 损失伪实现。



和缺点结合成一个非常强大的模型。 BLIP [28] 进一步提出了 CapFilt,它使用生成式解码器创建更好的标题,并使用模型的判别部分过滤对。 语言-图像预训练是一个非常活跃的领域,调查 [8] 很快就会过时。

高效的语言-图像预训练另一方面,很少有工作尝试使语言图像预训练更有效。 LiT [55] 和 FLIP [29] 是值得注意的尝试,前者需要一个预训练和锁定的骨干网络,而后者通过随机丢弃视觉标记来牺牲质量。 BASIC [33] 和 LAION [48] 关注批次大小的扩展,但分别只扩展到  和 ,通过使用数百个芯片,并且对于前者,也混合了大型私人分类数据集 [33, 51]。 最近的 Lion 优化器 [12] 声称能够降低训练成本以达到类似的质量。

3. 方法

在本节中,我们首先回顾广泛使用的基于 softmax 的对比损失。 然后我们介绍成对 sigmoid 损失,并讨论其高效实现。

给定一个图像-文本对的 mini-batch ,对比学习目标鼓励匹配对的嵌入  彼此对齐,同时将不匹配对的嵌入  推开。 为了实际应用,我们假设对于所有图像 ,与不同图像  相关的文本与  无关,反之亦然。 这种假设通常存在噪声且并不完美。

3.1. 用于语言图像预训练的 Softmax 损失

当使用 Softmax 损失来形式化该目标时,图像模型  和文本模型  被训练以最小化以下目标:

2

 



(c) 文本在设备之间交换,因此设备 1 现在具有  和  等。 新的损失是设备 1 具有  的损失并与  计算和累积。 最后跨设备求和之前的总和。 将所有内容整合在一起。

图 1:通过具有 3 个设备和 12 个全局批次大小的模拟设置展示的有效损失实现。 没有全局聚合,并且在任何时间点,只有亮黄色正方形(大小为 )在内存中被物化。

其中  和  。 在本文中,我们 ∥ ∥ ∥ ∥ 采用视觉 Transformer 架构 [17] 用于图像,并采用 Transformer 架构 [44] 用于文本。 注意,由于 Softmax 损失的不对称性,归一化独立地执行两次:跨图像和跨文本 [34]。 标量  被参数化为 ,其中  是一个全局可学习参数。

3.2. 用于语言图像预训练的 Sigmoid 损失

我们提出了一种更简单的替代方案,它不需要计算全局归一化因子,而不是基于 Softmax 的对比损失。 基于 sigmoid 的损失函数独立处理每个图像文本对,有效地将学习问题转化为对所有成对组合数据集的标准二元分类,匹配对的标签为正  ,其他所有对的标签为负  。 定义如下:

其中  是给定图像和文本输入的标签,如果它们是成对的,则等于 1,否则  。 注意,在初始化时,来自大量负样本的严重不平衡主导了损失,导致了试图纠正这种偏差的大初始优化步骤。 为了缓解这种情况,我们引入了额外的可学习偏差项  ,类似于温度  。 我们将  和  分别初始化为 10 和 -10。 这确保了训练从大约接近先验开始,不需要大量的过度校正。 算法 1 展示了用于语言图像预训练的提出的 sigmoid 损失的伪代码实现。

3.3. 高效的“分块”实现

对比训练通常利用数据并行性。 当数据在  个设备之间分割时,计算损失需要使用代价高昂的全聚合收集所有嵌入 [55] ,更重要的是,需要实现一个内存密集型的  成对相似性矩阵。

然而,sigmoid 损失特别适合于内存高效、快速且数值稳定的实现,可以改善这两个问题。 将每个设备的批大小表示为  ,损失被重新定义为:



对于 sigmoid 损失来说,这尤其简单,因为每对都是损失中的一个独立项。 图 1 说明了这种方法。 换句话说,我们首先计算与正对对应的损失分量,以及  负对。 然后,我们将表示在设备之间置换,这样每个设备都从其相邻设备(和 B 的下一个迭代)获取负样本。 然后,根据此块(和 C)计算损失。 这是在每个设备中独立完成的,这样每个设备计算其

3

 



图 2:预训练批次大小的影响。 左:SigLiT 结果,训练了 18B 个已见示例。 对于较小的批次大小,Sigmoid 损失明显优于 Softmax 损失,而在较大的批次大小下,两者表现相似。 我们成功地训练了一个 SigLiT 模型,其批次大小高达一百万。 然而,sigmoid 和 softmax 的性能在约  批次大小处趋于饱和。 中间:SigLIP 结果,训练了 9B 个已见示例。 sigmoid 损失和 softmax 损失都在合理的批次大小处趋于饱和,而 sigmoid 损失的峰值出现得更早,并且略微优于 softmax 损失的峰值。 非常大的批次大小会损害两种损失。 右:mSigLIP 结果,训练了 30B 个已见示例。 在使用超过 100 种语言的多语言设置中, 批次大小出乎意料地足够,并且超过该批次大小会损害 36 种语言跨模态检索任务的性能。

相对于其本地批次  的损失。 然后,可以简单地将所有设备的损失相加(和 A)。 个别集体置换(对于和 B)速度很快(事实上, 集体置换通常比  个设备之间两次全收集更快),并且任何给定时刻的内存成本从  减少到  (对于和 C)。 通常  是恒定的,因为通过增加加速器数量来实现  的扩展。 由于相对于批次大小是二次的,因此香草损失计算迅速成为扩展的瓶颈。 这种分块方法使得能够在相对较少的设备上使用超过 100 万的批次大小进行训练。

4. 结果

在本节中,我们评估了所提出的 SigLiT 和 SigLIP 模型在各种批次大小上的表现。 我们讨论了使用 SigLiT 和 SigLIP 方法,在少量加速器芯片的情况下能够实现什么。 我们还简要讨论了批次大小对多语言语言图像预训练的影响。 我们消融了大批次稳定化修改的重要性以及引入的学习偏差项,并对 sigmoid 损失中正负对比例的影响进行了研究。 最后,我们探讨了 SigLIP 的数据噪声鲁棒性。

为了验证我们的模型,我们报告了 ImageNet 数据集 [14] 上的零样本迁移结果,以及 XM3600 数据集 [41] 上 36 种语言的零样本检索结果。 我们在所有实验中默认使用 ScalingViT-Adafactor 优化器 [54]。

4.1. SigLiT:将批次大小扩展到极限

遵循 [55],我们使用相同的预计算嵌入来表示图像,使用 ViT-  视觉模型,并使用相同的超参数从头开始训练一个基础大小的文本塔,使用 LiT 图像文本数据集 [55]。

我们对各种批次大小进行了研究,从 512 到  ,展示了批次大小对对比学习的影响。 结果如 图 2(左)所示。 当批次大小小于  时,sigmoid 损失比 softmax 损失性能高出很多。 随着批次大小的增加,我们观察到 softmax 损失快速追赶,并且在批次大小足够大的情况下可能略微低于 sigmoid 损失。 总体而言,我们建议在大型批次大小的情况下也使用 SigLIP 方法,因为其简单性、计算节省以及直接的内存高效实现。

一致认为,对比学习得益于大型批次大小,而大多数现有研究都停留在  批次大小 [55, 33, 10]。 我们成功地训练了一个 SigLiT 模型,其批次大小为一百万,以探索对比学习的极限。 令我们惊讶的是,性能在  批次大小饱和,进一步扩大批次大小只会带来微小的提升,并且模型在  批次大小达到峰值。 我们最好的 SigLiT,使用  大小的文本模型,在 ImageNet 上实现了  的零样本迁移准确率,而原始 LiT 论文报道了一个略好于  分数,使用的是一个大 10 倍的  大小的文本模型。 图 3 展示了不同批次大小下训练持续时间的影响。 它表明,大的  批量大小意味着

4

 



图 3:SigLiT ImageNet 0-shot 迁移结果,使用不同的训练持续时间。 大型批次大小会导致性能大幅提升,但需要足够长的训练时间来提高性能,因为在较短的训练时间内,非常大的批次大小会导致梯度更新步骤数量很少。

当训练足够长的时间时,它的性能不可能优于较小的  批量大小。 请注意,对于较短的训练时间,大型批次大小会导致更新步骤的绝对数量减少,因此需要更多时间来提高性能。

4.2. SigLIP:Sigmoid 损失有利于语言图像预训练

我们在 WebLI 数据集 [13] 上预训练 SigLIP 模型,仅使用英文图像和文本对。 我们使用中等大小的模型:B/16 ViT 用于图像嵌入,B 大小的 Transformer 用于文本嵌入。 输入图像被调整为  分辨率。 文本由一个在英语 C4 数据集 [35] 上训练的 32k 词汇量 SentencePiece 分词器 [27] 进行分词,最多保留 16 个文本符元。 图 2 中间图显示了 SigLIP 结果,在小于  批次大小的情况下,SigLIP 优于使用标准 softmax 损失的 CLIP 基线。 在尺度的另一端,sigmoid 损失的内存效率使得更大的批次大小成为可能。 例如,使用四个 TPU-v4 芯片,我们可以用一个基础 SigLIP 模型拟合 4096 的批次大小,但对于相应的 CLIP 模型,只能拟合 2048。 这两种优势共同证明了 sigmoid 损失对于使用固定资源进行语言图像预训练的显著优势,这将在第 4.5 节中讨论。

随着批次大小的增加,sigmoid 损失和 softmax 损失之间的差距会减小。 SigLIP 在批次大小为  时表现最佳,而 softmax 损失需要  来获得最佳性能,但仍然没有超过基于 sigmoid 的变体。 进一步扩展,更大的批次大小,比如  会损害两种损失。



表 2:多语言 SigLIP 结果,使用不同的批次大小,在 300 亿个已见示例上进行预训练。 我们报告了 ImageNet (INet-0) 上的零样本迁移结果,以及在跨模态 3600 数据集 (XM) 上跨 36 种语言的平均文本到图像检索结果。 可以在附录中找到关于 36 种语言的完整表格。

4.3. mSigLIP:多语言预训练

我们通过保留 WebLI 数据集 [13] 中的所有 100 种语言来进一步扩展训练数据。 使用多语言数据,通常需要使用更大的国际词汇表。 我们首先验证了两种分词器的影响:一种小型多语言词汇表,包含  个符元 [35],以及一种大型多语言词汇表,包含  个符元 [50]。 我们训练了 B 大小的 ViT 和文本模型,用于  个总共已见示例,并观察到使用更大的词汇表时,性能提升略高于 

然而,对于非常大的词汇量,词元嵌入会变得非常庞大。 遵循标准设置,我们需要存储一个  词元嵌入查找表来训练多语言模型,其中 N 是上面提到的词汇量,  是文本模型的嵌入维度。 为了节省内存,我们建议使用“瓶颈”词元嵌入,使用  嵌入矩阵和额外的  × 投影,其中瓶颈 K 远小于  。

在我们的实验中,我们观察到使用具有瓶颈的大型多语言词汇可以像使用小型多语言词汇一样有效地扩展。 具体来说,通过为具有  的 Base 架构启用大小为  的瓶颈,与使用完整的  词汇量相比,我们在 ImageNet 零样本迁移上只看到大约 0.5% 的质量下降。

通过内存改进,我们训练了各种批次大小的 mSigLIP 模型,总共看到了 300 亿个样本。 表 2 和图 2 (右侧图)显示了结果。 我们预计较大的批次大小可以改善多语言预训练,其中模型从同一语言中看到更多样本作为单个小批次中的负样本。

5

 



图 4: 顶部:使用预训练编码器的 SigLIP 快速上升。 然而,只有在预训练编码器权重上禁用权重衰减才能导致稳定的行为和良好的 ImageNet 0-样本迁移结果。 底部:ImageNet 10-样本迁移结果,其中衰减预训练权重会导致预训练模型视觉表示质量下降。 禁用权重衰减使曲线变平坦。

单个小批次。 但是,我们没有观察到比  更大的批次大小有明显的改进。  的批次大小对于多语言设置也足够了。 在 XM3600 交叉模态检索任务上,我们发现超过  的批次大小会导致平均结果更差,而在 ImageNet 零样本迁移上,它保持平坦。 mSigLIP 在仅使用 Base 尺寸模型的情况下,在 XM3600 文本到图像检索任务上取得了最新的技术水平。 我们的最佳结果是 ,比之前报道的结果  [13] 高出  以上,而 [13] 使用的是一个更大的 40 亿个 ViT-e 模型的标准 LiT 模型 [55]。

4.4. SigLiT 使用了 4 个 TPU-v4 芯片。

对于许多从业者来说,重要的问题通常是“用有限的资源可以训练什么?”在本节中,我们探索了 SigLiT 模型的使用,仅使用四个 TPU-v4 芯片,因为内存效率高的 sigmoid 损失适合这种应用场景。

我们遵循与第 4.1 节相同的设置。 我们使用公开可用的 ViT-Augreg-B/8 [39] 模型作为冻结的  视觉塔,并预先计算嵌入以加速训练 [55]。 文本模型是一个大型 Transformer,但深度只有 12 层(而不是 24 层)。 它使用 LION [12] 优化器进行训练,该优化器具有解耦的权重下降。



图 5:Adam 和 AdaFactor 的  的影响。 当我们增加批次大小时,我们观察到更频繁的训练不稳定。 这种不稳定性主要体现在损失曲线(顶部)中,是由梯度范数(中间)的峰值引起的,导致参数更新过大(底部)。 降低  动量值可以稳定训练。 即使偶尔出现梯度峰值(参见步骤 2B),它们也不会破坏训练过程。

cay ,线性地学习率超过  步,直至达到  × 峰值,然后以余弦衰减至 0。 我们总共训练了 65000 步,批次大小为  - 这导致了不到一天的训练时间。 表 1 显示了在一个芯片上训练模型一天的结果,达到了  的零样本 ImageNet 分类准确率;在这种有限的资源情况下,竞争力非常强。 使用 ViT-g/14 [54] 模型作为视觉塔,以及一个大型文本塔,我们可以在  批次大小下,使用四个芯片进行  步训练,耗时不到两天。 这进一步将 0 样本 ImageNet 分类精度提升至 

4.5. SigLIP 使用少量 TPU-v4 芯片

从头开始训练 CLIP 模型通常需要大量资源,而使用 SigLIP,可以将训练批次大小调至更大,同时使用更少的芯片数量。 在本节中,我们探索了使用预训练权重有效地训练 SigLIP 模型的方法。 我们使用预训练权重初始化图像模型,以加速预训练,这最初在 [55] 中有讨论。 我们使用公开且未锁定的 ViT-Augreg-B/16 [39] 模型初始化我们的视觉塔,并在与 SigLIP 所用相同的 WebLI 英文数据上进行微调。 在所有实验中,我们对预训练的图像塔应用 0.1 的学习率乘数,使其适合

6

 



图 6:批次组合的影响。 我们通过屏蔽负样本模拟各种批次组合,无论是随机屏蔽,还是只保留最难的负样本,或最容易的负样本。 在不屏蔽的情况下,我们每个批次中有  个负样本,对应一个正样本 (1:16k),我们应用的最强屏蔽 (1:1.6) 导致了几乎平衡的小批量。 在一种设置中,我们 匹配训练中看到的总对数 ,使训练时间显著延长。 我们观察 ImageNet 0 样本评分、学习到的偏差的最终值,以及正负样本对的平均对数。 总体而言,不平衡似乎并不有害,但找到一种有效挖掘负样本的方法可能会有益。

用于微调。

图 4 显示了未锁定的  微调结果,以及从头开始随机初始化的基线。 我们使用了 16 个 TPU-v4 芯片,并在  批次大小下训练,看到了  个样本。 我们发现,微调设置在开箱即用时表现不佳;这与先前的工作 [55] 一致,在该工作中,微调图像模型会降低视觉表示的质量。 图 4 中的 ImageNet 10 次线性分类证明了这一点,其中微调设置几乎比从头开始的基线好不了多少。

我们假设应用于预训练权重的默认权重衰减会降低其有效性。 受 [17, 54, 25] 中微调方法的启发,该方法不使用权重衰减,我们也建议在 SigLIP 训练中禁用预训练权重的权重衰减。 因此,权重衰减仅应用于文本模型中随机初始化的权重。 这种简单的修改显着提高了 SigLIP 的结果。 图 4 显示,通过改进的方案,SigLIP 在 ImageNet 上达到了  的零样本精度,使用  的批次大小,在 16 个芯片上训练了三天。 我们还在表 1 的最下面几行中展示了从头开始的结果:在 32 个 TPUv4 芯片上只训练了两天,SigLIP 就达到了  的零样本精度。 这显着降低了培训成本,例如与 CLIP 相比(约 2500 个 TPUv3 天用于 )相比。

4.6. SigLIP 的扩展

在本节中,我们通过对模型进行“过度训练”[42, 1] 来扩展 SigLIP,使其按照较长的计划进行训练。 我们在表 3 中展示了使用 ViT-B 或 ViT-L 作为视觉编码器时的结果,而文本编码器保持相同的大小(分别为 B 或 L)。 按照第 4.2 节中描述的方案,我们对这两个模型进行了训练,看到了 400 亿个样本,但将图像块的数量从  增加到 ,并将文本符元数量从 16 增加到 64。 为了获得不同分辨率的 SigLIP 结果,我们继续在目标分辨率(即 224 或 384)上对预训练模型进行训练,看到了 50 亿个样本,使用  更小的学习率,不使用权重衰减。 表 3 展示了我们在 ImageNet [14]、ObjectNet [2]、ImageNetv2 [36]、ImageNet ReaL [3] 上的零样本分类结果,以及在 MSCOCO [11] 上的零样本图像到文本 )检索、文本到图像 (I  → T) 检索结果。 我们的 SigLIP 模型在 ViT-B 和 ViT-L 架构上始终优于之前的模型。

4.7. 稳定大型批次训练

当我们转向大型批次规模时,使用 Transformer 进行的语言图像预训练变得越来越不稳定,即使使用中等大小的模型(例如,基础大小)。 这些不稳定性的原因是梯度范数的大幅波动,这会导致权重发生大幅度变化,从而可能破坏训练过程,见图 5。 我们观察到,将 Adam 和 AdaFactor 中的  从其默认值 0.999 降低到 0.95(这在 [20, 9] 中有建议)足以稳定训练。 直观地说,这允许更快地从梯度峰值中恢复。 我们选择在所有实验中设置  。

4.8. sigmoid 损失中的负样本比例

当从 softmax 的“选择正确类别”观点转变到 sig

7

 



表 3:与其他方法的比较。 我们的 SigLIP 模型在零样本分类任务和零样本检索任务上都显著优于之前的模型,例如 OpenCLIP [22] 和 CLIP [34]。 与最近推出的 EVA-CLIP [40] 模型相比,SigLIP-L 在所有任务上都优于 EVA-CLIP-L,具有相同的 256 个补丁数量。 SigLIP-L(256 个补丁)在检索任务上也明显优于 EVA-CLIP-L(576 个补丁)。

moid 的“评价这对”观点,是正样本对与负样本对之间的不平衡。 对于批次大小为  的情况,批次包含  个正样本对,但  个负样本对。在 16k 的中等批次大小中,实际上有 268M 个负样本对,而只有  个正样本对。 同时,由于 sigmoid 损失分解成每个示例损失的总和,我们可以进行受控实验来研究小批量组成和访问示例分布的影响。 我们在 SigLiT 设置中以批量大小  运行实验,共  步,并通过屏蔽(即 忽略)足够的负例来达到目标“正例:负例”比率,并以以下方式进行屏蔽:

• 随机:随机选择负例对进行屏蔽。 • 困难:保留最困难的负例对(损失最高)。 • 容易:保留最容易的负例对(损失最低)。 • 困难  匹配已见总对数:在训练固定步数时屏蔽示例会减少训练期间见过的总 对数 。 因此,在 匹配对 设置中,我们将训练步数增加屏蔽比率,以保持见过的对数不变。

图 6 显示了各种屏蔽策略的效果。 随机移除负例以重新平衡会降低性能。 保留最容易的示例根本不起作用,而保留最困难的负例则几乎保持了质量,这表明,正如预期的那样,负例方面的很多学习来自更困难的示例。 在训练更长时间以匹配已见总对数以获取最困难示例的过程中,性能略有提高,进一步证实了这一点。

我们还查看了训练结束时学习偏差的值以及这些设置中正例和负例的平均逻辑值,并发现结果与预期基本一致:随着负例数量减少,偏差和逻辑值总体上变得更加积极。 有趣的是,当使用更多困难的负例对进行训练时,正例对的平均逻辑值基本保持不变。

这项研究证实 (1) 不平衡似乎不是主要问题,同时 (2) 高效 地包含更多负例的方法很有希望,但也并非易事。

表 4: 偏差 (b) 和温度  初始化。 结果使用 Base 架构报告, 批量大小,训练了 9 亿个示例。 启用偏差项 b 与  初始化始终改进结果。



8

 



图 7:Sigmoid 训练提高了对数据噪声的鲁棒性。 标题显示了应用的损坏类型, 轴显示了应用它们的概率。 随着损坏严重程度的增加,使用 sigmoid 损失训练了 36 亿个示例的 M 尺度模型在相应的 softmax 基线之上保持优势。

4.9. Sigmoid 损失中的偏差项

我们消除了损失函数中的偏差项,使用带有  批量大小的 Base 架构,使用 SigLIP 设置训练了  个示例。 零样本迁移结果在 ImageNet [14]、Oxford-iiit pet [32] 和 Cifar100 [26] 上报告。 表 4 显示了 sigmoid 损失中使用和不使用偏差项的结果。

启用带有  初始化的偏差项始终提高所有任务的性能。 这是因为偏差项确保训练从先验开始,从而防止在早期优化中出现大幅度的过度校正。 相反,随机选择的偏差项初始化,例如表 4 中的 0 初始化,未能解决过度校正问题,导致明显更差的结果。 当使用较小的温度  初始化时,这种影响尤其明显。 我们将偏差和温度重新初始化设置为  和 (因此为 )作为所有实验的默认值。

4.10. 标签噪声鲁棒性

先前的研究表明,当对分类模型使用 sigmoid 损失时,可以提高对标签噪声的鲁棒性 [3]。 这种特性在面对著名的流行大规模图像-文本数据集的噪声性质时将特别有用。 为了研究 SigLIP 的这种特性,我们在批次大小为 16384 的情况下,对 M/16 个图像模型和一个 M 文本模型进行了训练,训练样本为 36 亿。 我们使用以下方法之一对训练数据进行噪声注入:

• 图像:以  的概率,用均匀随机噪声替换图像。 • 文本:以  的概率,用随机采样的符元序列替换标记化的文本,序列长度不超过某个(采样)长度。 • 批次对齐:随机打乱批次的  对齐顺序。 • 图像  文本:以  的概率分别应用图像噪声注入和文本噪声注入。

• 图像、文本和批次:除了(4)之外,还打乱  的对齐顺序。

图 7 显示了改变噪声注入概率的结果。 使用 sigmoid 损失训练的模型对所有类型的噪声越来越鲁棒。

5. 结论

我们对使用 sigmoid 损失的两个语言-图像预训练实例(SigLiT 和 SigLIP)进行了研究。 我们的结果表明,sigmoid 损失优于 softmax 基线,特别是在训练批次大小较小的情况下。 这种损失函数也更节省内存,这使得在不需要额外资源的情况下可以使用更大的训练批次大小。 我们对对比学习中的批次大小进行了深入研究。 令人惊讶的是,我们发现  的相对较小的批次大小产生了几乎最佳的性能。 为了更好地理解 sigmoid 损失中引入的偏差项、对数据噪声的鲁棒性以及 sigmoid 损失中正负样本对比例的影响,我们进行了进一步的研究。 我们希望这项工作能够促进资源有限的语言-图像预训练研究。

致谢 感谢 Daniel Keysers、Ilya Tolstikhin、Olivier Bousquet 和 Michael Tschannen 对本文提出的宝贵反馈和讨论。 感谢 Joan Puigcerver、Josip Djolonga 和 Black Hechtman 对分块对比损失高效实现的讨论。 感谢何凯明和陈鑫磊关于  稳定训练的讨论。 我们还感谢 Ross Wightman 指出了本文第一个版本伪代码中的错误。 同样,感谢 Boris Dayma 指出了一个使  与  混淆的印刷错误,我们在本文第三个版本中修复了该错误。 感谢 Google Deepmind 团队提供了一个支持性的研究环境。 我们在该项目的所有实验中都使用了 big vision 代码库 [5, 4]。