论文阅读: SigLit | SigLip |Sigmoid Loss for Language Image Pre-Training

news2024/11/14 15:13:38

论文地址:https://arxiv.org/pdf/2303.15343
项目地址:https://github.com/google-research/big_vision
发表时间:2023年3月27日
在这里插入图片描述
我们提出了一种用于语言图像预训练(SigLIP)的简单成对 Sigmoid 损失。与使用 softmax 归一化的标准对比学习不同,sigmoid 损失仅对图像-文本对进行操作,并且不需要对归一化的成对相似性进行全局视图。 sigmoid 损失同时允许进一步扩大批量大小,同时在较小的批量大小下也能表现更好。结合Locked-image Tuning,我们仅用四个 TPUv4 芯片训练了一个 SigLiT 模型,该模型在两天内实现了84.5% ImageNet 零样本精度。批量大小与loss的分离,进一步使我们能够研究示例与对以及负与正比率的影响。最后,我们将batchsize推向极限,达到 100 万,并且发现增加批量大小的收益会减少,而更合理的批量大小 32 k 就足够

1、Introduction

使用网络上的图像文本对的弱监督进行对比预训练正在成为获取通用计算机视觉主干的首选方法,慢慢取代大型标记多类数据集上的预训练。高级思想是使用配对数据同时学习图像和文本的对齐表示空间。开创性的工作 CLIP [36] 和 ALIGN [23] 确立了这种方法在大规模范围内的可行性,并且在其成功之后,许多大型图像文本数据集开始私下可用 [59,13,21,49]和公开[40,6,15,7,41]。预训练此类模型的标准方法利用图像文本对比目标。它对齐图像并用于匹配(正)图像-文本对的文本嵌入,同时确保不相关(负)图像-文本对在嵌入空间中不相似。这是通过批量级基于 softmax 的对比损失来实现的,应用两次以标准化所有图像、然后所有文本的成对相似度分数。 softmax 的简单实现在数值上是不稳定的;通常通过在应用 softmax [18] 之前减去最大输入值来稳定它,这需要再次遍历整个批次。

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

在表 1 中,我们提出了图像文本预训练的设置,需要适量的 TPUv4 芯片进行训练。 SigLiT 的效率令人惊讶,仅一天之内,在四个芯片上就达到了ImageNet 上 79.7% 的zero-shot精度SigLIP 从头开始训练,使用 32 个 TPUv4 芯片在 5 天内达到 73.4% 的zero-shot精度。这与 FLIP [30] 和 CLIP[36] 等之前的工作相比毫不逊色,后者在 256 个TPUv3 核心上分别需要大约 5 天和 10 天。当在SigLIP 中对预训练的视觉主干进行微调时(如表 1 所示),我们发现禁用预训练主干上的权重衰减会带来更好的结果(详细信息请参见图 4)。我们希望我们的工作能够为使新兴的语言图像预训练领域更容易使用铺平道路。
在这里插入图片描述
这里可以发现基于sigmoid的训练方式收敛更快,同时SigLiT比SigLIP效果更好。

2、Related Work

Contrastive learning with the sigmoid loss 之前的一项工作针对无监督降维任务提出了类似的 sigmoid 损失 [19];在对比图像文本学习领域,绝大多数工作依赖于[46]所推广的基于softmax的InfoNCE损失。在监督分类中,Sigmoid 损失已被证明比 softmax 损失稍微更有效和更稳健 [3, 51]

Contrastive language-image pre-training 自从 CLIP [36] 和 ALIGN [23] 将 softmax 对比学习 [60,46,10,24] 应用到大规模图像文本数据集以来,对比语言图像预训练变得流行起来。两种模型在零样本迁移任务(包括分类和检索)上都表现良好。后续工作表明,对比学习得到的预训练模型可以为微调[53, 16]、线性回归[23]、对象检测[31]、语义分割[33]和视频任务提供良好的表示[57]

Generative language-image pre-training 除了softmax对比预训练之外,还提出了各种替代方案。 GIT [49]、SimVLM [50] 和LEMON [21] 使用生成文本解码器成功地预训练模型相反,CoCa [56]将这样的解码器添加到判别性CLIP/ALIGN 设置中,从而将两种方法的优缺点结合到一个非常强大的模型中。 BLIP [28] 进一步提出了CapFilt,它使用生成解码器来创建更好的caption,并使用模型的判别部分来过滤对。语言-图像预训练是一个非常活跃的领域,surveys [8]很快就过时了。

Efficient language-image pre-training 另一方面,很少有工作尝试使语言图像预训练更加高效。 LiT [59] 和 FLIP [30]是值得注意的尝试,前者需要预先训练和locked的backbone,后者通过随机丢弃视觉标记来牺牲质量。 BASIC[35] 和 LAION [52] 着眼于缩放批量大小,但通过使用数百个芯片分别只能达到 16 k 和 160 k,并且前者还混合在大型私有分类数据集中 [35 ,55]。最近的 Lion 优化器 [12] 声称能够降低训练成本以达到类似的质量。

3、Method

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

给定一个小批量 B = ( I 1 , T 1 ) , ( I 2 , T 2 ) , . 。 B = {(I_1 , T_1 ), (I_2 , T_2), . 。} B=(I1,T1),(I2,T2),.对于图像-文本对,对比学习目标鼓励匹配对 ( I i , T i ) (I_i , T_i ) (Ii,Ti)的嵌入相互对齐,同时将不匹配对 ( I i , T j ≠ i ) (I_i , T_{j{\neq}i} ) (Ii,Tj=i)的嵌入推开。出于实际目的,假设对于所有图像 i,与不同图像 j 关联的文本与 i 不相关,反之亦然。这种假设通常是有噪声的且不完美的。

基于图像-文本对,可以发现正例只有N个,而负例有N*(N-1)个,存在严重的loss不均衡状态

3.1. Softmax loss for language image pre-training

当使用 softmax 损失来形式化该目标时,图像模型 f(·) 和文本模型 g(·) 被训练为最小化以下目标,,
在这里插入图片描述
由于 softmax损失的不对称性,softmax函数需要计算两次:image->text softmax ; text-> image softmax

3.2 Sigmoid loss for language image pre-training

我们提出基于 sigmoid 的损失独立处理每个图像文本对,有效地将学习问题转化为所有对组合数据集上的标准二元分类,并为匹配对提供正标签( I i , T i I_i ,T_i IiTi)和所有其他对的负标签 ( I i , T j ≠ i ) (I_i , T_{j{\neq}i} ) (Ii,Tj=i)。它的定义如下:
在这里插入图片描述
其中 z i , j z_{i,j} zi,j是给定图像和文本输入的标签,如果它们配对则等于 1,否则等于 1。在化过程中,来自许多负面因素的严重不平衡在损失中占主导地位,导致大量的初始优化步骤试图纠正这种偏差。

为了缓解loss不均衡,我们引入了一个额外的可学习偏差项 b ,类似于温度 t。我们将 t 和 b 分别初始化为 log 10 和- 10。这确保训练开始时大致接近先前的训练,并且不需要大量的过度校正。算法1 提出了用于语言图像预训练的 sigmoid 损失的伪代码实现。

这里提出对sigmoid函数进行修改,避免loss不均衡;基于可学习参数对x进行缩放,并设置可学习参数b作为偏置项

3.3. Efficient “chunked” implementation

对比训练通常利用数据并行性。 在D个设备之间拆分数据时计算损失需要收集所有具有昂贵全收集的嵌入[59],更重要的是,内存密集型|B| × |B|成对相似性矩阵。

然而,sigmoid 损失特别适合内存高效、快速和数值稳定的实现,以改善这两个问题。将每个设备批量大小表示为 b = |B|/D ,损失重新表述为:
在这里插入图片描述
这对于 sigmoid 损失来说特别简单,因为每一对都是损失中的独立项。图 1 说明了这一点。换句话说,我们首先计算对应于正对和 b−1 负对的损失分量。然后我们跨设备排列表示,因此每个设备从其相邻设备中获取负值(和 B 的下一次迭代)。然后计算该块的损失(总和 C)。这是在每个设备中独立完成的,以便每个设备计算相对于其本地批次b 的损失。然后可以简单地将所有设备的损耗相加(总和 A)。单独的集体排列(对于总和 B)很快(事实上,D 集体排列通常比 D 设备之间的两次全聚集更快),并且任何给定时刻的内存成本都从 ∣ B ∣ 2 |B|^2 B2 降低至 b 2 b^2 b2 (对于总和 C)。通常 b 是常数,如缩放|B|这是通过增加加速器的数量来实现的。由于与批量大小成二次方,普通损失计算很快成为扩展的瓶颈。这种分块方法可以在相对较少的设备上进行批量大小超过 100 万的训练.
在这里插入图片描述
这里提出对跨设备的数据进行设备间的roll操作,在数据移动一次后计算一次loss,可以有限的设备中扩大模型训练时的batchsize

4. Results

在本节中,我们将在各种批量大小下评估所提出的SigLiT 和 SigLIP 模型。我们讨论使用 SigLiT 和SigLIP配置,通过少量加速器芯片可以实现什么。我们还简要讨论了批量大小对多语言图像预训练的影响。我们消除了大批量稳定性修改和引入的学习偏差项的重要性,并提出了一项关于 sigmoid 损失中正负对比率影响的研究。最后,我们探索 SigLIP 的数据噪声稳健性。为了验证我们的模型,我们报告了 ImageNet 数据集[14] 上的零样本传输结果和 XM3600 数据集上 36 种语言的零样本检索结果 [44]。我们所有的实验默认使用ScalingViT-Adafactor 优化器 [58]。

4.1. SigLiT: Scaling batch size to the limit

按照[59],我们使用 ViT-g 视觉模型对图像使用相同的预计算嵌入,并使用 LiT 图像文本数据集 [59]使用相同的超参数从头开始训练基本大小的文本塔。

我们对从 512 到 1 M 的各种批量大小进行了研究,展示了批量大小对对比学习的影响。结果如图2(左)所示。当批量大小小于 16 k 时,sigmoid 损失大幅优于 softmax 损失。随着批量大小的增加,我们观察到 softmax 损失很快就会迎头赶上,并且在批量大小足够大的情况下,其性能可能略低于 sigmoid损失。总的来说,我们建议对大批量大小也使用SigLIP 配置,因为它简单、节省计算且实现简单、内存高效。
2

人们一致认为,对比学习受益于大batchsize,而大多数现有研究都停留在 64 k 批量大小 [59,35,10]。我们成功训练了 100 万批大小的 SigLiT 模型,以探索对比学习的极限。令我们惊讶的是,性能在 32 k批量大小时达到饱和,进一步扩大批量大小只会带来轻微的提升,并且模型在256 k 批量大小。我们最好的 SigLiT ,在 ImageNet 上实现了 84.7% 的零样本传输精度,而原始 LiT 论文报告了使用 10 倍大的 g 大小文本模型时的得分稍高一些,为 85.2%。图 3 显示了不同批量大小的训练持续时间的影响。它表明,当训练足够长的时间时,大的 262 k 批量大小明显优于较小的 8 k 批量大小。请注意,对于较短的训练持续时间,大批量会导致更新步骤的绝对数量较少,因此需要更多时间来加速。
这里主要表明batchsize超过32k后,收益已经很不明显了。SIgLiT比原始的LiT的文本模型小很多,但精度几乎接近

4.2. SigLIP: Sigmoid loss is beneficial for languageimage pre-training

我们仅使用英文图像和文本对在 WebLI 数据集 [13]上预训练 SigLIP 模型。我们使用 CLIP (WebLI) 来表示在 WebLI 上使用标准 softmax 损失预训练的CLIP 基线。我们使用中等大小的模型:B/16 ViT 用于图像嵌入,B 大小的transformer用于文本嵌入。输入图像的大小调整为 224×224 分辨率。文本由在English C4 数据集 [37] 上训练的 32 k 词汇句子分词器 [27] 进行标记,最多保留 16 个文本标记。图 2 中图显示了SigLIP 结果,batchsize小于 32 k 时,SigLIP 优于CLIP (WebLI) 基线。另一方面,sigmoid 损失的内存效率可以实现更大的批量大小。例如,对于四个TPU-v4 芯片,我们可以使用 Base SigLIP 获得 4096的批量大小,但使用相应的 CLIP 模型只能获得 2048的批量大小。这两个优点共同证明了 sigmoid 损失对于固定资源的语言图像预训练的显着好处,这将在 4.5节中讨论。

随着批量大小的增加,Sigmoid 损失和 Softmax 损失之间的差距缩小。 SigLIP 在批量大小为 32 k 时表现最佳,而 softmax 损失需要 98 k 才能获得最佳性能,并且仍然没有优于基于 sigmoid 。进一步扩展,更大的批量大小(例如 307 k)会损害这两种损失。
相比于softmax,sigmoid显著的降低了大batchsize对训练的影响,sigmoid以32k batchsize为峰值,而sofamax的峰值为98k,且效果也不如sigmoid

4.3. mSigLIP: Multi-lingual pre-training

我们通过保留 WebLI 数据集中的所有 100 种语言来进一步扩大训练数据 [13]。对于多语言数据,通常需要使用更大的国际词汇量。我们首先验证两个标记器的影响:一个具有 32 k 个标记的小型多语言词汇表 [37],以及一个具有 250 k 个标记的大型多语言词汇表 [54]。我们针对 9 亿个总样本训练了 B 大小的 ViT 和文本模型,并观察到使用更大词汇量时略高于 1% 的改进。

然而,对于非常大的词汇量来说,标记嵌入会变得巨大。按照标准设置,我们需要存储一个 N × W令牌嵌入查找表来训练多语言模型,其中 N 是上面提到的词汇量大小,W 是文本模型的嵌入维度。为了节省内存,我们建议使用"瓶颈"令牌嵌入。我们使用N × K 嵌入矩阵和附加的 K × W 投影,其中瓶颈 K比 W 小得多。在我们的实验中,我们观察到使用具有瓶颈的大型多语言词汇可以像使用小型多语言词汇一样有效地扩大规模。具体来说,通过为 W = 768 的Base 架构启用大小 K = 96 的瓶颈,与使用完整的250k 词汇相比,我们在 ImageNet 零样本传输上仅看到约 0.5% 的质量下降。

随着内存的改进,我们针对不同批量大小训练mSigLIP 模型,总共看到了 300 亿个示例。表 2 和图 2(右图)显示了结果。我们期望大批量能够改善多语言预训练,其中模型在单个小批量中将来自同一语言的更多示例视为硬负例。然而,我们没有观察到批量大小大于 32 k 的明显改进。 32 k 的批量大小也足以满足多语言设置。在 XM3600 跨模态检索任务中,我们发现超过 32 k 批量大小会导致平均结果更差,而在 ImageNet 零样本传输上则保持不变。mSigLIP 在 XM3600 文本到图像检索任务上设置了新的最先进技术,仅使用基本尺寸模型。我们的最佳结果是 34.9%,比之前报告的使用更大的 40 亿 ViT-e模型的标准 LiT 模型 [59] 的结果 28.5% [13] 高出6% 以上。我们在第 4.6 节中进一步扩大了 mSigLIP 训练的规模。
在这里插入图片描述
这里展示了多言语模式下,最佳batchsize还是32k

4.4. SigLiT with four TPU-v4 chips

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

我们遵循与 4.1 节相同的设置。我们使用公开的ViT-AugReg-B/8 [42] 模型作为冻结 ( ) 视觉塔,并预先计算嵌入来加速训练 [59]。文本模型是一个大型Transformer,但深度仅为 12 层(而不是 24 层)。它使用 LION [12] 优化器进行训练,具有解耦权重衰减 1 × 1 0 − 7 1× 10^{-7} 1×107,学习率线性预热超过 6.5k 步,直至峰值 1 × 1 0 − 4 1× 10^{-4} 1×104,然后进行余弦衰减至0. 我们总共训练了65000 步,批量大小为 32k,这使得训练时间不到一天。表 1 显示了在四个芯片上训练模型一天的结果,实现了79.7% 0-shot ImageNet 分类准确率;在这种有限的资源体制下非常有竞争力。使用 ViT-g/14 [58] 模型作为视觉塔和大型文本塔,我们可以在两天内在四个芯片上以20 k 批量大小进行 107 k 个步骤的训练。这进一步将0-shot ImageNet 分类准确率提升至 84.5%。

在这里插入图片描述

4.5. SigLIP with a small amount of TPU-v4 chips

一般来说,从头开始训练 CLIP 模型需要大量资源,而使用 SigLIP 可以用更少的芯片来训练更大的训练批量。在本节中,我们将探索使用预训练权重有效训练 SigLIP 模型的方法。我们使用预训练的权重来初始化图像模型来加速预训练,使用公共且未锁定的ViT-AugReg-B/16 [42] 模型来初始化我们的视觉塔,并在与 SigLIP 使用的相同 WebLI 英语数据上进行微调。在所有实验中,我们对预训练的图像塔应用 0.1的学习率乘数,以使其适合微调。

图 4 显示了未锁定的微调结果以及从头开始随机初始化的基线。我们使用 16 个 TPU-v4 芯片,并以 16k 批量大小训练 2.4 B 示例。我们发现,微调设置在开箱即用时表现不佳;这与之前的工作[59]一致,其中调整图像模型降低了视觉表示质量。 ImageNet10-shot 线性分类证明了这一点,在图 4 中,经过微调的设置仅比从头开始的基线好一点。
在这里插入图片描述
我们假设应用于预训练权重的默认权重衰减会降低其有效性。受[17,58,25]中不使用权重衰减的微调方法的启发,我们还建议在 SigLIP 训练的预训练权重上禁用权重衰减。因此,权重衰减仅适用于文本模型中随机初始化的权重。这个简单的修改显着改善了SigLIP 结果。图 4 显示,通过我们改进的方法,SigLIP 在 ImageNet 上达到 71% 的 0-shot 准确率,使用 16k 批量大小,在 16 个芯片上训练三天。我们还在表 1 的底行中展示了从头开始的结果:使用 32 个 TPUv4 芯片仅两天,SigLIP 就实现了72.1% 的 0-shot 准确率。这显着降低了训练成本,例如与 [30] 中报告的 CLIP(大约 2500 个 TPUv3天,占 72.6%)相比。

4.6. Scaling up SigLIP and mSigLIP

在本节中,我们通过"过度训练"模型来扩展 SigLIP[45, 1]。我们在表 3 中展示了使用 ViT-B、ViT-L 或So-400m [1] 作为视觉编码器以及相同大小的文本编码器(分别为 B、L 和 So-400m)的结果。按照第 4.2 节中描述的方法,我们针对批量大小为 32 k 的 400 亿个示例训练这两个模型,但使用 (256/16) 2 = 256 个图像块和64 个文本标记(而不是 16 个)。为了获得不同分辨率的SigLIP 模型,我们在目标分辨率下训练了 50 亿个样本,学习率降低了 100 倍,并且没有权重衰减。在表 3中,我们报告了 ImageNet [14]、ObjectNet [2]、ImageNet-v2 [39]、ImageNet ReaL [3] 和零样本图像到文本 (Iâ) 的零样本分类结果T)检索,MSCOCO 上的文本到图像(IâT)检索结果[11]。
在这里插入图片描述
这里对比400M视觉编码器的SigLIP模型,可以发现还是略差与SigLiT g/14模型

我们还以同样的方式扩展了多语言 mSigLIP ViT-B 模型。我们在 XM3600 基准测试上报告了 36 种语言的图像文本检索结果 [44]。放大的 mSigLIP ViT-B 模型在基本模型中实现了最先进的 42.6% 图像检索召回率@1 和54.1% 文本检索召回率@1。这稍微优于[48]中的大型模型,获得了 42.96% 的图像检索召回率@1。详细结果见附录表 9 和图 8,标记为 *32 k。
在这里插入图片描述
在这里插入图片描述

4.7. Stabilizing large-batch training

当我们转向大batchsize时,使用 Transformer 进行的语言图像预训练变得越来越不稳定,即使使用适度大小的模型(例如基本大小)也是如此。这些不稳定的原因是梯度范数,它转化为权重的大幅变化,可能会破坏训练过程的稳定性,见图 5。我们观察到,将 Adam 和AdaFactor 中的 β 2 β_2 β2 从默认值 0.999 减少到0.95([20, 9])足以稳定训练。直观上,这可以更快地从梯度峰值中恢复。我们为所有实验选择设置 β2 = 0.95。
在这里插入图片描述
这里主要分享了调整学习率优化器中的 β 2 β_2 β2参数来是loss稳定

4.8. Negative ratio in sigmoid loss

当将视角从 softmax 的"选择正确的类"视图转移到 sigmoid 的"评估这一对"视图时,出现的一个问题是正对与负对的不平衡。对于批量大小|B|,批量包含|B|正对,但 ∣ B ∣ 2 ∗ ∣ B ∣ |B|^2 * |B| B2B负面例子。在 16 k 的适度批量大小中,实际上只有 16 k 个正样本有 268 M 个负样本。同时,由于 sigmoid 损失分解为每个示例损失的总和,因此我们可以进行受控实验来研究小批量组合和显示的效果访问过的例子的贡献。我们在 SigLiT 设置中以批量大小 16 k 进行 900 M 步骤进行实验,并通过屏蔽掉(即忽略)足够的负面示例来改变批次的组成,以达到目标"正:负"比率,具体有如下方法:

Random:随机选择负对进行屏蔽。
Hard:保留最难的负对(最高损失)。
Easy:保留最简单的负对(损失最低)。
Hard + matching total pairs seen:在训练固定步数时屏蔽示例确实会减少训练期间看到的对总数。因此,在匹配对设置中,我们随训练步骤数增加掩蔽比,以保持看到的对数恒定。

图 6 显示了各种掩蔽策略的效果。随机删除负数以重新平衡确实会降低性能。保留最简单的例子根本不起作用,而保留最难的否定则几乎有效保持质量,这表明,正如可以预料的那样,很多消极方面的学习都来自于更难的例子。为了匹配所看到的总对,在最难的示例上进行更长时间的训练,性能略有提高,这进一步证实了这一点。
在这里插入图片描述
这里阐明了,基于样本选择的,不同loss均衡策略对训练效果的影响,可以发现动态hard样本效果最佳

4.9. Bias term in sigmoid loss

我们使用批量大小为 8 k 的 Base 架构消除了损失函数中的偏差项,并使用 SigLIP 设置对 900M 个示例进行了训练。 ImageNet [14]、Oxford-iiit pet [34] 和 Cifar100[26] 报告了零样本传输结果。表 4 列出了 sigmoid 损失中包含和不包含偏差项的结果。
在这里插入图片描述
通过 a-10 初始化启用偏差项可以持续提高所有任务的性能。这是因为偏差项确保训练开始时接近先验值,从而防止早期优化中出现严重的过度校正。相反,随机选择的偏差项初始化,例如表 4 中的 0 初始化,无法解决过度校正问题,导致结果明显更差。当使用较小的温度 t 初始化时,这种效果尤其明显。我们将偏置和温度初始化设置为 b = - 10 和 t =log10(因此 t = 10)作为所有实验的默认值。

这里通过系列实验证明3.2中实验超参数设置的合理性

4.10. Label noise robustness

先前的工作证明,当使用 sigmoid 损失进行分类模型时,针对标签噪声的鲁棒性得到了提高 [3]。面对流行的大规模图像文本数据集众所周知的噪声性质,这个属性在这里特别有用。为了针对 SigLIP 进行研究,我们针对 36 亿个可见示例,以批量大小 16384训练 M/16 图像模型以及 M 文本模型。我们使用以下方法之一破坏训练数据:

  • 图像:以概率p,用均匀随机噪声替换图像。
  • 文本:以概率 p,用新的随机采样标记序列替换标记化文本,最多可达某个(采样)序列长度。
  • 批次对齐:随机打乱批次中 p% 的顺序。
  • 图像和文本:以概率 p 分别应用两者。
  • 图像、文本和batch:除了 (4),还打乱了对齐的分数 p。

图 7 显示了不同损坏可能性的结果。使用 sigmoid损失训练的模型对于各种添加的噪声越来越稳健。
在这里插入图片描述

这里表明sigmoid训练出来的模型稳定性更高,同时表明复合状态的的数据调整鲁棒性最好

5. Conclusion

我们对两个使用 sigmoid 损失的语言图像预训练实例进行了研究:SigLiT 和 SigLIP。我们的结果表明,sigmoid 损失比 softmax 基线表现更好,特别是对于小批量训练。这种损失函数的内存效率也更高,它允许更大的训练批量大小,而不需要额外的资源。我们对对比学习中的批量大小进行了彻底的研究。令人惊讶的是,我们发现相对适中的 32 k 批量大小可以产生近乎最佳的性能。为了更好地理解 sigmoid 损失中引入的偏差项、对数据噪声的鲁棒性以及sigmoid 损失中正负对比率的影响,我们进行了进一步的研究。我们希望这项工作能够利用有限的资源促进语言图像预训练研究。

致谢。我们感谢 Daniel Keysers、Ilya Tolstikhin、Olivier Bousquet 和 Michael Tschannen 对本文提出的宝贵反馈和讨论。我们感谢 Joan Puigcerver、JosipDjolonga 和 Black Hechtman 对分块对比损失的有效实现进行的讨论。我们感谢 Kaiming He 和 Xinlei Chen 对β 2 的讨论以稳定训练。我们还要感谢 Ross Wightman在本文第一个版本的伪代码中发现了一个错误,感谢Boris Dayma 和 Krzysztof Maziarz 在第二个和第三个版本中发现了导致 t 与 t 混淆的拼写错误。我们感谢Google Deepmind 团队提供了支持性的研究环境。我们使用大视觉代码库 [5, 4] 进行该项目中的所有实验。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2142772.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis 篇-初步了解 Redis 持久化、Redis 主从集群、Redis 哨兵集群、Redis 分片集群

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 分布式缓存概述 2.0 Redis 持久化 2.1 RDB 持久化 2.1.1 RDB 的 fork 原理 2.2 AOF 持久化 2.3 RDB 与 AOF 之间的区别 3.0 Redis 主从集群 3.1 搭建主从集群 3.2…

new/delete和malloc/free到底有什么区别

new和malloc 文章目录 new和malloc前言一、属性上的区别二、使用上的区别三、内存位置的区别四、返回类型的区别五、分配失败的区别六、扩张内存的区别七、系统调度过程的区别总结 前言 new和malloc的知识点,作为一个嵌入式工程师是必须要了解清楚的。new和malloc的…

驱动器磁盘未格式化危机:专业数据恢复实战指南

认识危机:驱动器中的磁盘未被格式化 在日常的数字生活中,我们时常依赖于各种存储设备来保存重要的文件、照片、视频等数据。然而,当某一天你尝试访问某个驱动器或外接硬盘时,突然弹出的“驱动器中的磁盘未被格式化。您想现在格式…

【CSS in Depth 2 精译_032】5.4 Grid 网格布局的显示网格与隐式网格(上)

当前内容所在位置(可进入专栏查看其他译好的章节内容) 第一章 层叠、优先级与继承(已完结) 1.1 层叠1.2 继承1.3 特殊值1.4 简写属性1.5 CSS 渐进式增强技术1.6 本章小结 第二章 相对单位(已完结) 2.1 相对…

利用语义搜索和混合查询策略提升RAG系统的准确性

人工智能咨询培训老师叶梓 转载标明出处 在构建基于大模型(LLM)的生成式问答系统(Generative Q&A)时,检索增强生成(Retrieval-Augmented Generation, RAG)方法被广泛采用。RAG通过结合检索…

Gin渲染

HTML渲染 【示例1】 首先定义一个存放模板文件的 templates文件夹&#xff0c;然后在其内部按照业务分别定义一个 posts 文件夹和一个 users 文件夹。 posts/index.tmpl {{define "posts/index.tmpl"}} <!DOCTYPE html> <html lang"en">&…

【网络通信基础与实践第二讲】包括互联网概述、互联网发展的三个阶段、互联网的组成、计算机网络的体系结构

一、互联网概述 计算机网络是由若干节点&#xff08;node&#xff09;和连接这些节点的链路&#xff08;link&#xff09;组成。 网络之间还可以通过路由器互联起来&#xff0c;这就构成了一个覆盖范围更大的计算机网络。这样的网络称为互联网。 网络把许多计算机连接在一起…

『功能项目』制作提示主角升级面板【56】

我们打开上一篇55事件中心处理怪物死亡的项目&#xff0c; 本章做的事情是制作提示主角升级的界面&#xff0c;当主角升级时就会被显示出来点击确认即可消失 首先在unity编辑场景制作 在确认按钮对象上添加事件 点击Button将Panel添加至事件框选 在事件函数中选择gameobject.S…

【图像拼接】基于SIFT/SURF特征算法的图像拼接,matlab实现

博主简介&#xff1a;matlab图像代码项目合作&#xff08;扣扣&#xff1a;3249726188&#xff09; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 本次案例是基于SIFT/SURF特征算法的图像拼接&#xff0c;用matlab实现。 一、案例背景和算法介…

[C#学习笔记]Newtonsoft.Json

视频地址&#xff1a;分享一些Newtonsoft.Json的实用功能与技巧_哔哩哔哩_bilibili 强烈推荐学习C#和WPF的朋友关注此UP&#xff0c;知识点巨多&#xff0c;讲解透彻&#xff01; 一、JsonSerializerSettings 1.1 自动缩进-Formatting 使用Formatting.None进行序列化 var …

流媒体之RTMP协议(其四)

欢迎诸位来阅读在下的博文~ 在这里&#xff0c;在下会不定期发表一些浅薄的知识和经验&#xff0c;望诸位能与在下多多交流&#xff0c;共同努力&#xff01; 江山如画&#xff0c;客心如若&#xff0c;欢迎到访&#xff0c;一展风采 文章目录 前期博客参考书籍一、PTMP简介二…

MyBatis的配置文件详解

01-MyBatis的配置文件详解 创建的接口和xml文件的名字最好写一样的要不然会出问题,然后和接口名相同的xml文件在resources下创建个和接口相同文件夹把xml文件放进去,而且resources下的创建的文件夹需要一级一级的创键,比如:cn创建完,创建tulingxue,然后再创建mapper文件夹才行…

python绘制月亮

import matplotlib import matplotlib.pyplot as plt import moviepy.editor as mpymatplotlib.rcParams[font.family] SimHei# 坐标列表 positions [(0, 0), (1 / 4, 1 / 4), (1 / 3, 1 / 4), (1 / 2, 1 / 4), (2 / 3, 1 / 4),(3 / 4, 1 / 4), (1, 1 / 4), (5 / 4, 1 / 4), …

C++中的容器——vector

1. vector的介绍 vector&#xff1a;vector的底层实际上就是一个数组&#xff08;也称为顺序表&#xff09;&#xff0c;数据是连续存储在数组中的&#xff0c;因此vector是可以使用下标来进行访问的&#xff0c;但是它的大小并不是像数组一样是固定的&#xff0c;而是可以动态…

漳州自闭症寄宿学校,孩子的快乐学习乐园

在温暖而包容的南方都市——广州&#xff0c;藏着一所特别的学校&#xff0c;它以爱为名&#xff0c;为自闭症儿童编织了一个充满希望的未来&#xff0c;这就是星贝育园自闭症儿童寄宿制学校。这里&#xff0c;不仅是知识的殿堂&#xff0c;更是孩子们心灵得以自由飞翔、快乐学…

削峰+限流:秒杀场景下的高并发写请求解决方案

我是小米,一个喜欢分享技术的29岁程序员。如果你喜欢我的文章,欢迎关注我的微信公众号“软件求生”,获取更多技术干货! 哈喽,大家好!我是小米,一个29岁、活泼积极、热衷分享技术的码农。今天和大家聊一聊应对高并发的写请求这个主题,尤其是在大促、秒杀这种场景下,系统…

【Docker Nexus3】maven 私库

1.部署环境 window 11 x64Docker Desktop 4.34.1 (166053) Docker Engine v27.2.0 1.1.Docker 镜像源 1.1.1.Docker Engine 配置 {"builder": {"features": {"buildkit": true},"gc": {"defaultKeepStorage": "32…

微服务_入门2

文章目录 一、Feign二、Gateway服务网关 一、Feign 来看我们以前利用RestTemplate发起远程调用的代码&#xff1a; 存在下面的问题&#xff1a; 代码可读性差&#xff0c;编程体验不统一&#xff08;url需要自己在代码中拼写出来&#xff09;参数复杂URL难以维护&#xff0…

Weapons Armor PBR Pack 1 - Fantasy RPG 武器护甲游戏模型

武器和护甲包#1有30个武器和护甲,每个对象都有默认外观,大多数都有网格变形和Substance Painter源文件,用于自定义纹理。 无限PBR&我的哲学 Infinity PBR是十几位艺术家的作品,他们都在做自己最擅长的事情。我想为独立游戏开发者制作最通用、最优质的资产,按照我希望的…

鸿蒙开发之ArkUI 界面篇 四

文字溢出处理、省略号、文字太长的处理用textOverflow&#xff0c;语法格式是&#xff1a; Text.textOverflow({ overflow: TextOverflow; }) 尤其注意&#xff0c;单独的这个设置没有效果&#xff0c;需要和maxLines一起使用才有效果 Text("男频男频男频男频男频男频男…