前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >开源 ∼600× fewer GPU days:在单个 GPU 上实现数据高效的多模态融合

开源 ∼600× fewer GPU days:在单个 GPU 上实现数据高效的多模态融合

作者头像
CreateAMind
发布2024-05-22 14:06:13
900
发布2024-05-22 14:06:13
举报
文章被收录于专栏:CreateAMindCreateAMind

∼600× fewer GPU days and ∼80× fewer image-text pairs

Data-Efficient Multimodal Fusion on a Single GPU ,在单个 GPU 上实现数据高效的多模态融合 https://arxiv.org/abs/2312.10144

5.2 即插即用框架

https://github.com/layer6ai-labs/fusemix

摘要

多模态对齐的目标是学习一个共享的潜在空间,该空间被多种模态输入所共享。在这个领域中最强大的模型已经使用大量的配对输入数据和大规模计算资源进行了训练,这使得它们在许多实际场景中训练成本过高。我们推测,现有的单模态编码器在大量单模态数据上预训练后应提供有效的引导,以更低的成本从单模态模型创建多模态模型。因此,我们提出了FuseMix,一种在任意预训练单模态编码器的潜在空间上操作的多模态增强方案。使用FuseMix进行多模态对齐,我们在图像-文本和音频-文本检索任务中实现了竞争性能——在某些情况下超越了最先进的方法——计算和数据的量级减少:例如,在Flickr30K文本到图像检索任务上,我们的性能超越了CLIP,使用的GPU天数大约少了600倍,图像-文本对大约少了80倍。此外,我们还展示了我们的方法如何应用于将预训练的文本到图像生成模型转换为音频到图像模型。代码可在以下链接获取:https://github.com/layer6ai-labs/fusemix

1. 引言

最近多模态机器学习的进步在广泛的基于理解[47, 48]和基于生成[22, 46, 49, 54]的应用中释放了前所未有的能力,其中一些甚至获得了主流关注[1, 72, 73, 102]。对我们这项工作特别感兴趣的是多模态对齐[28, 30, 36],我们也称之为多模态融合,其目标是学习一个共享的潜在空间,各种模态的输入可以共享。多模态融合的近期成功主要得益于需要许多GPU和依赖于数十亿多模态对的大规模训练制度[40, 70, 105]。这对许多实际场景来说成本过高,其中计算资源有限,多模态数据稀缺[56, 91]。因此,设计能够使多模态融合研究民主化的高效框架至关重要。

在这项工作中,我们的关键见解是,已经预训练了大量单模态数据的现成单模态编码器已经编码了丰富的语义,应为多模态融合提供有效的引导。我们引入了FuseMix,一种受mixup启发的简单且易于实现的多模态融合数据增强方案,我们在其中跨模态共享混合系数。我们展示了通过使用FuseMix对现有预训练单模态编码器的潜在空间进行对齐,我们获得了极具竞争力的融合多模态模型,这些模型在图像-文本和音频-文本检索任务中的某些情况下甚至超越了最先进的方法,同时使用的计算和数据量级要少得多。例如,我们在Flickr30K测试集上的文本到图像检索任务中,使用大约600倍更少的计算资源(大约51比约30002 GPU天)和大约80倍更少的图像-文本对(大约500万对400百万),仍然能够超越CLIP[70]进行多模态融合,见图1。此外,在只能访问有限多模态对的设置中,我们展示了数据集的质量和多样性是提高下游性能的重要属性。最后,我们进一步展示了我们的FuseMix融合框架对音频到图像生成[28]的适用性。

2. 相关工作

多模态学习。多模态学习的主要目标是构建能够联合感知各种模态数据的通用模型[7, 27, 50, 51, 82, 95, 96, 98, 106, 111]。所说的模态可以包括但不限于图像、文本、音频和视频等数据流。构建多模态模型的标准方法是在所有感兴趣的模态上端到端地训练它们[3, 15, 47, 48, 59, 79, 81]。然而,这种方法通常不容易扩展,因为从头开始训练大型多模态模型很快就会变得非常计算和数据密集。一种更实际的方法是利用预训练的单模态网络。然而,这方面的一些工作仍然通过对预训练网络进行反向传播来进行[1, 14, 22, 49, 54, 63, 88],这由于底层单模态网络的庞大规模而带来了显著的开销;随着网络规模的增加,这个问题肯定会加剧。与我们的设置更相关的是专注于学习单一共享潜在空间的多模态模型,其中多种模态可以联合编码(即多模态对齐)。这一工作线由CLIP[70]和ALIGN[36]开创,它们使用双编码器架构,并通过对比目标联合嵌入文本和图像。CoCa[105]在对比目标中增加了自回归图像字幕项,他们发现这可以提高性能。3T[40]则将文本和图像编码器与预训练分类器的潜在空间对齐。LiT[108]使用冻结的预训练图像分类器作为图像编码器,并将其与文本编码器对齐。尽管这些工作取得了成功,但它们都是从头开始训练一个或两个编码器,需要昂贵的梯度计算,跨越许多GPU。它们还使用互联网规模的数据集,包含的图像-文本对数量从4亿到50亿不等,这些数据集通常不公开。此外,一些工作已经将CLIP扩展到包括其他模态,如视频[25, 29, 60]和音频[30],但它们需要微调CLIP以获得良好的性能。类似地,其他音频-文本融合方法[19, 61, 99]需要底层编码器的微调和额外的训练数据。最后,ImageBind[28]使用对比目标学习六种模态的共享潜在空间,以图像作为锚定模态,它们通过从头开始联合训练几种模态编码器来实现。与所有这些工作不同,我们通过使用冻结的预训练单模态编码器,利用最少的多模态配对数据,并确保我们所有的实验不需要超过单个GPU的计算,来优先考虑计算和数据效率。

数据增强。 从历史上看,数据增强是为了在合成上增加数据集的大小和多样性而引入的:这正是我们的目标,因为我们在相对稀缺的配对多模态数据的环境中操作。在自然图像领域,常见的增强包括水平翻转、随机裁剪和颜色抖动[6, 13],这些设计是为了保持语义信息不变。然而,在给定领域设计这样的增强通常需要专家知识,以确定哪些转换可以保留语义信息。例如,在医学图像领域,天真地应用颜色抖动可能会破坏对于任务如癌症分类[75, 80]最相关的信息。此外,手工制作的增强方案通常不容易转移到其他模态。这一效应证明了尽管最近有努力,如随机投影[80]和随机量化[97],但模态不可知的增强方案仍然稀缺。我们注意到,尽管输入掩蔽已经在各种模态中成功应用,但仍然需要专家知识来确定每种模态的适当掩蔽策略[21, 33, 35, 87]。鉴于这些挑战,数据增强在多模态学习中没有得到很好的研究[31]。在我们的工作中,我们提出了一种在潜在空间上操作的多模态增强方案,受mixup[109]启发。

3. 问题设置和背景

3.1 多模态融合作为对齐

在这项工作中,我们从对齐的角度定义多模态融合。对齐的任务是学习一个共享的潜在空间,该空间被多模态输入所共享。形式上,给定任意两种数据模态X和Y(例如图像和文本),我们的目标是学习两个网络,fX : X → S和fY : Y → S,分别将各自模态嵌入到共享的潜在空间S中。

最近,对比学习已成为多模态对齐的流行目标[36, 47, 70, 108]。

它旨在学习一个联合潜在空间,在这个空间中,语义上相似的多模态输入被编码为相邻的点,而语义上不相似的输入被编码为距离较远的点。为此,对比学习需要访问语义上相似的多模态输入,以正对样本的形式(例如,图像和它们对应的文本标题),以及访问语义上不相似的负对样本(例如,不相关的图像和文本)。因此,我们必须假设有一种方法可以从给定的多模态分布 p X,Y 中获取正对样本的样本。负对样本通常是通过从每个模态的边际分布

的乘积中进行采样获得的。有了正对样本

和负对样本

(对于 ( i = 1, . . . , M \),独立同分布于pXpY,在多模态对齐的背景下,对比学习利用 InfoNCE 损失。

我们注意到,通过对比学习制定对齐方案已被证明能够实现零样本迁移到各种多模态下游任务,并且已被证明能够提高在一般多模态设置中的性能,包括基于理解的任务和基于生成的任务。从互信息最大化的角度来看,这种制定方案也具有理论动机。

3.2. 混合

4. 动机

尽管取得了最近的成功,但多模态融合的原型范式存在着根植于大量计算和数据开销以及缺乏模块化的关键瓶颈。在本节中,我们讨论这些瓶颈:

4.1. 计算负担。深度学习的最新进展表明,模型规模是性能和下游功能的关键驱动因素。尽管增加模型规模可以极大地提高性能,但训练这些模型所需的计算成本也会相应增加,这对许多机器学习从业者和研究人员来说是无法承受的。在多模态模型的背景下,这些影响更加显著,因为通常情况下计算要求是相互叠加的。例如,在我们的多模态融合设置中,通常会联合训练 fX 和 fY。这意味着现在需要通过两个网络进行反向传播,并且这两个网络都必须同时保留在内存中。此外,随着每个网络规模的增加,需要进行昂贵的梯度计算的参数数量迅速积累。因此,我们的目标是优先考虑计算方面的因素,设计一个高效的多模态融合框架。

4.2. 高质量配对数据的稀缺性。获取多模态配对数据在大多数多模态应用中是必不可少的一步。这一步相当于从模态的联合分布中获得配对样本,如

。然而,在实践中,高质量的配对数据往往稀缺且昂贵。通常,这要么是由于缺乏跨所有感兴趣的模态的现成可用的配对数据,要么是由于大量无信息和弱标记数据对导致的噪声样本。另一方面,来自每个模态对应边际分布的高质量的单模态数据

相对便宜且容易大量积累。这是因为单模态数据可以在没有任何标签配对的情况下收集,同时仍然提供信息丰富的内在监督信号,正如自监督学习的成功所证明的那样。因此,我们的目标是通过利用更容易获得的单模态信号来降低多模态配对数据的成本。

4.3. 从端到端融合的紧密耦合。尽管从头开始联合训练多模态融合的 fX 和 fY 可能会产生一个语义上有意义的共享潜在空间,但所得到的网络是紧密耦合的。这意味着修改任何一个网络的任何方面通常需要完全重新训练两个网络。这在实践中构成了一个具有挑战性的瓶颈,因为不能将每个底层模态的研究进展纳入端到端的多模态融合中而无需重新训练 fX 和 fY,这将带来巨大的计算、数据和环境成本。因此,我们的目标是设计一个即插即用的多模态融合框架,使各个组件可以轻松替换,带来最小的额外开销,从而使多模态模型能够与单模态的改进同步进行。

5. 方法

在本节中,我们介绍了我们的多模态融合框架,旨在解决计算和数据效率以及模块化的关键考虑因素。我们还介绍了一种称为 FuseMix 的多模态增强方案,用于促进多模态融合。我们的整个流程如图 2 所示。

5.1. 迈向高效的多模态融合

计算改进。我们现在可以将方程式 1 中的对齐损失等效地重写为

。这使我们能够将方程式 2 中的对比目标表达为对以下方面的期望:正样本编码对

,其分布由将正样本

通过编码器

得到;以及负样本编码对

,其分布类似地由环境空间上的负样本得到。重要的是,由于这个期望是针对仅依赖于冻结的

而不是可训练的

的分布,因此单模态编码器

不会用于任何梯度计算。换句话说,由于单模态编码器只需在潜在空间上提供样本,而不需要进行反向传播,我们可以简单地预先计算这些样本,然后在训练期间丢弃单模态编码器。这一步确保了我们在多模态融合期间无需在内存中存储大型编码器,大大降低了计算需求。在融合期间存储在内存中的唯一参数是可学习的融合适配器的参数,与单模态编码器相比,这些参数非常轻量级。事实上,在我们的所有实验中,每个步骤只需要一个 GPU。

配对数据的效率。通过将 ZX 和 ZY 设置为预先训练的单模态编码器的潜在空间,我们可以直接从它们已经编码的丰富的模态特定语义中受益。从头开始学习这些信息对于多模态融合可能是多余的,因此利用预训练的单模态编码器可以是减少大规模多模态配对数据需求的有效引导。我们可以将这种效果解释为从单模态潜在空间到已经显示为有效的联合空间的一种提取形式。换句话说,利用预训练的单模态编码器进行多模态融合应该比从头开始训练需要更少的配对数据。

即插即用框架。我们强调,我们的多模态融合的模块化方法对于单模态编码器 gX 和 gY 的选择以及底层模态 X 和 Y 是不可知的。重要的是,通过组合任意预训练的单模态编码器,我们可以将单模态学习与多模态融合解耦。因此,随着单模态编码器的发展继续前进,我们可以轻松高效地以即插即用的方式利用新的单模态编码器进行多模态融合。

5.2. FuseMix:多模态潜在混合

考虑到我们的目标是以最少的配对数据样本执行多模态融合,直觉上利用数据增强来生成合成的多模态对

似乎也是合理的。然而,直接在环境空间 X 和 Y 上构建语义上有意义的数据增强通常具有挑战性,因为多模态数据的异质性。另一方面,我们注意到

提供了一个更加均匀的替代方案,因为它们都是预先训练的单模态编码器的中间潜在空间。此外,它们已经编码了可以有助于创建有意义的数据增强的语义信息。

因此,我们引入了一种简单但有效的多模态增强方案,该方案不考虑涉及的模态和单模态编码器的选择。我们的方法称为 FuseMix,受到了 mixup 的启发,即通过随机的凸组合生成增强样本。特别地,我们在 ZX 和 ZY 中的样本之间进行线性插值。重要的是,由于两个潜在空间都来自预先训练的单模态编码器,我们应该期望线性插值比在环境空间上进行的插值更具有语义意义,这通常是在 mixup 中进行的。我们注意到,潜在空间中的语义插值的这一想法让人想起了已经有着良好历史的潜在空间算术。然而,简单地在每个潜在空间中混合随机样本只会产生无关的潜在增强对

,其中

之间没有关联。因此,我们希望对跨模态进行插值的方式施加一些结构,以确保我们可以构造语义上有意义的增强对。为了实现这一点,我们从任意两个现有的正多模态对

开始,其中

,并构造相应的增强对

如下:

其中 λ ∈ (0, 1) 是共享的插值系数。在模态之间共享 λ 确保了结果的增强是语义一致的,也就是说

仍然形成一个有效的正对。在实践中,我们当然也可以类似地应用 FuseMix 来获得负对的插值,以确保结果仍然是一个负对。最后,我们在中间潜在空间上使用 FuseMix 的 Equation 2 的版本为:

6. 实验

在我们的实验中,我们考虑了图像-文本和音频-文本的模态配对。我们首先描述我们的实现细节,然后进行实验分析,评估我们的框架,并就多模态融合的关键组成部分提供见解。

6.1. 实现细节

单模态潜在提取。由于我们方法的一个重要考虑因素是最小化计算要求,我们只使用了一个32GB的NVIDIA V100 GPU进行所有实验。这对我们来说是可能的,因为如在第5.1节中提到的,我们可以预先计算来自预训练单模态编码器的潜在空间,然后可以丢弃底层编码器。此外,我们可以逐个提取每个模态的潜在空间,以确保一次只加载一个编码器。重要的是,这些步骤使我们能够考虑大规模的编码器,其参数量达到数十亿,这通常对于在单个GPU上进行端到端融合是不可行的。我们主要考虑基于Transformer的[89]单模态编码器,并从倒数第二层提取低维潜在空间,如果存在[CLS]标记,则使用该标记,否则使用平均池化标记。

多模态潜在融合。我们将我们的融合适配器参数化为轻量级MLP,使用倒金字塔结构,按照之前的工作[5, 53, 86]。每个MLP由残差块组成,后跟默认为512维的最终投影层,将每个模态嵌入到共享空间中。我们强调,由于我们的融合适配器是在低维潜在空间上运行的,因此训练它们的计算成本是最小的,尽管在单个GPU上训练,我们可以使用大批量大小(在我们的V100 GPU上高达B = 20K),已经被证明有利于对比学习。最后,我们注意到在所有的实验中,除非另有说明,否则我们只使用

作为我们的多模态融合的唯一目标。有关MLP架构和超参数的更多细节,请参见附录A和B。

训练数据集。我们依赖于常见的多模态数据集进行训练。具体来说,我们利用了人类注释的数据集(COCO [52] 和 Visual Genome [41])以及网络数据集(SBU Captions [68] 和 Conceptual Captions 3M [74])中的图像-文本对,总共有500万对。为了保持数据效率,我们故意避免了像一些最近的研究中使用的互联网规模的数据集[36, 40, 70, 105],因为这些数据集比我们汇总的数据集大几个数量级。同样,为了保持音频-文本领域的数据效率,我们只利用了AudioCaps [38] 和 Clotho [23] 训练集,它们分别提供了5万和1.5万人类注释的音频-文本对。

6.2. 跨模态检索性能

为了评估从FuseMix融合学习到的多模态对齐质量,我们遵循之前的工作[19, 36, 39, 40, 70, 99],并使用跨模态检索的下游任务来评估我们的方法。特别地,对于图像-文本配对,我们在Flickr30K [104] 和 COCO [52] 测试集上评估下游性能;对于音频-文本配对,我们在AudioCaps [38] 和 Clotho [23] 测试集上评估我们的方法。在我们的实验中,我们使用下标来指定用于引导的预训练单模态编码器。在图像编码器方面,我们考虑了DINOv2 [67](D)和UNICOM [2](U)两者,因为截至撰写本文时,它们是两个通过ImageNet [18] 线性探测基准评估为最佳视觉识别模型之一。在文本方面,我们使用MTEB [64] 文本嵌入基准来选择两个具有显著语义潜在空间的编码器,分别是BGE [101](B)和E5 [92](E)。最后,在音频方面,我们使用常用的HTS-AT [9](H)和最近的Whisper [71](W)编码器。在实践中,我们实际上使用了这两个编码器的潜在空间的串联(W&H),类似于[19]。我们强调,考虑到我们方法的即插即用性质,随着更好的单模态编码器的推出,我们可以快速且廉价地将它们纳入我们的框架中。我们在表1和表2中报告了所有这些编码器组合的结果。

对于图像-文本检索,我们强调我们的方法非常有竞争力,有时能够胜过许多最先进的方法,这些方法训练了数量级更多的配对数据,并且需要比单个GPU更多的计算资源进行融合。此外,我们发现最近两个模型的组合,DINOv2+BGE,实现了最高的性能,突显了一种可以利用最新进展的即插即用方法的好处。我们还注意到,当我们的方法和CLIP [91] 都只在Conceptual Captions 3M的配对上进行训练时,我们比CLIP的表现要好很多,表明FuseMix是一种在较低数据情况下进行融合的有效策略。同样,对于音频-文本检索,我们在类似数据上训练的所有其他方法之上都取得了优异的表现,并且可以与使用数量级更多配对数据的方法竞争。

6.3. 评估数据集效率正如在第4节中提到的,跨所有感兴趣的模态获取多模态数据对对成本高昂,特别是在数据稀缺的情况下。在实际设置中,自然而然地会想知道如何分配精力来构建用于多模态融合的数据集,以最大化性能。我们旨在通过表征和量化数据集的三个关键属性来回答这个问题,即数量、质量和多样性。对于数据集的数量,我们采用现有数据集,并均匀地对各种数量的样本进行子采样,以衡量数量对下游性能的影响。对于数据集的质量,我们认为人工注释的数据集质量较高,而网络数据集的质量较低。最后,对于数据集的多样性,我们可以依赖确定性点过程(DPPs)[10, 42, 43]。对于给定的数据集,DPPs 返回预先指定大小的点的子集,这些子集具有最大的多样性(有关详细信息,请参见附录D)。在我们的设置中,我们对现有数据集使用DPPs来获得不同大小的多样性子集,然后将性能与相应大小的均匀抽样子集进行比较。我们的结果如图3所示。我们观察到数据量的增加如预期地提高了较低数据情况下的性能(图3a)。然而,底层数据集的质量也具有非常强的影响,这在其他工作中也有类似的观察结果[48, 91]。事实上,在图3b中,我们发现需要6倍于网络中图像-文本对的数量才能达到使用质量较高的人工注释对的性能。有趣的是,在图3c中,我们发现在有限数据的情况下,获取最大多样性的图像-文本对相比于不考虑多样性(即均匀采样)的图像-文本对,可以提供高达近40%的显著改进。因此,在实践中获取多模态配对数据时,重要的是不仅要考虑数量,还要考虑质量和多样性,因为这些方面可以在稀缺数据情况下实现显著的改进。

6.4. 音频到图像生成

我们考虑了最近提出的任务[28],即根据音频提示生成图像。其目的是重新利用现有的文本到图像生成模型,使其能够根据音频而不是文本进行条件生成。Girdhar等人[28]使用了一个私有的重新实现的DALLE-2 [72]来实现这一目标。我们选择使用FuseMix来执行此任务,同时仅使用公开可用的模型:我们使用GLIDE5 [65],这是一个以文本为条件的扩散模型,它利用CLIP6 [70]来以文本为条件进行生成。我们将我们的方法应用于将Whisper的潜在空间与CLIP的潜在空间对齐,以赋予GLIDE音频条件生成的能力(详细信息请参见附录B)。在图4中,我们提供了使用各种声音生成的样本示例。由于缺乏合适的指标,我们省略了此任务的定量分析,但我们提供了每个样本与使用语义等价于音频提示的文本提示生成的相应样本的定性比较。例如,对于猫叫声,我们将其与文本提示“一张猫叫的照片”进行比较。值得注意的是,使用FuseMix将GLIDE以音频提示为条件的结果能够产生与以文本提示为条件相似质量和保真度的样本,即使GLIDE本身从未使用音频数据进行训练。

6.5. 削减实验

单模型编码器大小的影响。

鉴于我们方法的即插即用性质,我们希望更大的底层单模型编码器对多模态融合有益。我们通过评估不同大小编码器的下游性能来研究这种影响。我们考虑以下组合:DINOv2 ViT-S/14和BGE Small;DINOv2 ViT-B/14和BGE Base;以及DINOv2 ViT-G/14和BGE Large,分别在图5a中表示为S、B和L。如图所示,扩大单模型编码器可以提升下游性能。

批量大小的影响。如第6.1节所述,由于训练我们的融合适配器需要极少的计算量,即使在单个GPU上也可以使用更大的批量大小。在图5b中,我们可以看到我们的方法可以从对比目标中获得更多的负样本,这与先前研究中的发现一致。

数据增强的影响。在图5c中,我们评估了数据增强的重要性,并将我们提出的FuseMix与其他与模态无关的数据增强方案进行了比较,即高斯噪声和随机量化。我们注意到数据增强在我们的设置中通常是有益的,尽管FuseMix提供了最大的性能改进,进一步验证了我们提出的方法的有效性。

7. 结论与未来工作

在这项工作中,我们提出了一个多模态融合的框架,既具有高效的计算性能,又具有高效的数据利用率,可以有效地利用任意预训练的单模态编码器。我们引入了FuseMix,这是一个简单而有效的基于潜空间的多模态增强方案,受到了混合的启发。然而,尽管我们的方法可以从强大的单模态编码器中受益,但我们受到它们之前学到的语义信息的限制。因此,一个有趣的未来方向是在融合过程中应用高效的微调方法,尽管这会增加额外的开销。我们还强调,由于我们的框架本质上将单模态编码器视为黑匣子模型(即我们仅使用它们从倒数第二层的潜空间编码),这打开了一系列令人兴奋的应用,可以通过 API 访问编码器来执行多模态融合。

完整内容可以参考原论文

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-05-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CreateAMind 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档