摘要:
仅使用少量带注释的示例来构建可以快速适应新任务的模型是多模态机器学习研究的一个公开挑战。我们介绍 Flamingo,它是具有此功能的视觉语言模型 (VLM) 系列。我们提出了关键的架构创新:(i)桥接强大的预训练纯视觉和纯语言模型,(ii)处理任意交错的视觉和文本数据序列,以及(iii)无缝摄取图像或视频作为输入。由于其灵活性,Flamingo 模型可以在包含任意交错的文本和图像的大规模多模态网络语料库上进行训练,这是赋予它们上下文中的小样本学习能力的关键。我们对我们的模型进行了彻底的评估,探索和测量它们快速适应各种图像和视频任务的能力。其中包括开放式任务,例如视觉问答,其中模型会被提示必须回答的问题;字幕任务,评估描述场景或事件的能力;以及封闭式任务,例如多项选择视觉问答。对于此范围内任何位置的任务,单个 Flamingo 模型可以通过几次学习达到新的最先进水平,只需用特定于任务的示例提示模型即可。在众多基准测试中,Flamingo 的性能优于针对特定任务数据数千倍进行微调的模型
1 引言
智能的一个关键方面是能够在简短的指令下快速学习执行新任务的能力 [33, 70]。虽然计算机视觉领域在类似功能方面已经取得了初步进展,但最广泛使用的范式仍然包括首先对大量监督数据进行预训练,然后针对感兴趣的任务微调模型 [66,118,143] 。然而,成功的微调通常需要数千个带注释的数据点。此外,它通常需要仔细调整每个任务的超参数,并且也是资源密集型的。最近,用对比目标训练的多模态视觉语言模型 [50, 85] 已经实现了对新任务的零样本适应,而无需进行微调。然而,由于这些模型只是提供文本和图像之间的相似性分数,因此它们只能解决有限的用例,例如分类,其中预先提供有限的结果集。它们严重缺乏生成语言的能力,这使得它们不太适合更多开放式任务,例如字幕或视觉问答。其他人已经探索了视觉条件语言生成[17,114,119,124,132],但尚未在低数据情况下表现出良好的性能。
我们介绍 Flamingo,这是一种视觉语言模型 (VLM),它在广泛的开放式视觉和语言任务的少量学习中设定了新的技术水平,只需通过一些输入/输出示例进行提示即可,如如图 1 所示。在我们考虑的 16 项任务中,Flamingo 在 6 项任务上也超越了最先进的技术,尽管使用的特定任务训练数据要少几个数量级(见图 2)。为了实现这一目标,Flamingo 从最近关于大型语言模型 (LM) 的工作中汲取了灵感,这些模型是很好的小样本学习器 [11,18,42,86]。单个大型 LM 仅使用其文本界面就可以在许多任务上实现强大的性能:向模型提供一些任务示例作为提示以及查询输入,并且模型生成延续以生成预测输出那个查询。我们证明,对于分类、字幕或问答等图像和视频理解任务也可以做同样的事情:这些可以被视为具有视觉输入调节的文本预测问题。与 LM 的区别在于,模型必须能够摄取包含与文本交错的图像和/或视频的多模式提示。 Flamingo 模型具有这种功能 - 它们是视觉条件自回归文本生成模型,能够摄取与图像和/或视频交织的文本标记序列,并生成文本作为输出。 Flamingo 模型利用两个互补的预训练和冻结模型:一个可以“感知”视觉场景的视觉模型和一个执行基本形式推理的大型 LM。在这些模型之间添加了新颖的架构组件,以保留它们在计算密集型预训练期间积累的知识的方式将它们连接起来。 Flamingo 模型还能够摄取高分辨率图像或视频,这要归功于基于感知器的 [48] 架构,该架构可以在给定大量且可变数量的视觉输入特征的情况下为每个图像/视频生成少量固定数量的视觉标记。
大型语言模型性能的一个重要方面是它们接受了大量文本数据的训练。此培训提供了通用生成功能,使这些语言模型能够在任务示例提示时表现良好。同样,我们证明了训练 Flamingo 模型的方式对于它们的最终性能至关重要。他们接受精心挑选的、仅来自网络的大规模互补多模态数据混合物的训练,而不使用任何用于机器学习目的的注释数据。经过这次训练,Flamingo 模型可以通过简单的几次学习直接适应视觉任务,而无需任何特定于任务的调整。
贡献。总之,我们的贡献如下:(i)我们介绍了 Flamingo 系列的 VLM,它可以仅通过几个输入/输出示例执行各种多模式任务(例如字幕、视觉对话或视觉问答)。得益于架构创新,Flamingo 模型可以有效地接受任意交错的视觉数据和文本作为输入,并以开放式方式生成文本。 (ii) 我们定量评估 Flamingo 模型如何通过小样本学习适应各种任务。我们特别保留了大量保留的基准,这些基准尚未用于验证该方法的任何设计决策或超参数。我们使用这些来估计无偏的小样本性能。 (iii) Flamingo 在 16 种多模态语言和图像/视频理解任务的小样本学习中树立了新的技术水平。在这 16 项任务中的 6 项上,Flamingo 的表现也优于经过微调的现有技术,尽管仅使用了 32 个特定于任务的示例,比当前最先进的技术少了大约 1000 倍的特定于任务的训练数据。通过更大的注释预算,Flamingo 还可以有效地进行微调,以在另外五个具有挑战性的基准上设置新的最先进水平:VQAv2、VATEX、
2 方法
本节介绍 Flamingo:一种视觉语言模型,接受与图像/视频交错的文本作为输入并输出自由格式的文本。选择图 3 中所示的关键架构组件是为了利用预训练的视觉和语言模型并有效地桥接它们。首先,感知器重采样器(第 2.1 节)从视觉编码器接收时空特征(从图像或视频获得)并输出固定数量的视觉标记。其次,这些视觉标记用于使用新初始化的交叉注意层(第 2.2 节)来调节冻结的 LM,这些交叉注意层在预训练的 LM 层之间交错。这些新层为 LM 提供了一种表达方式,可以将视觉信息纳入下一个标记预测任务。 Flamingo 对以交错图像和视频 x 为条件的文本 y 的可能性进行建模,如下所示:
图 3:Flamingo 架构概述。 Flamingo 是一系列视觉语言模型 (VLM),它将与文本交错的视觉数据作为输入,并生成自由格式的文本作为输出。
其中 yl 是输入文本的第 l 个语言标记,y<l 是前面标记的集合,x≤l 是交错序列中标记 yl 之前的图像/视频集合,p 由 Flamingo 模型参数化。处理交错文本和视觉序列的能力(第 2.3 节)使得使用 Flamingo 模型进行上下文中的少样本学习变得很自然,类似于具有少样本文本提示的 GPT-3。该模型在多种数据集上进行训练,如第 2.4 节所述。
2.1 视觉处理和感知器重采样器视觉编码器:
从像素到特征。我们的视觉编码器是预训练和冻结的 NormalizerFree ResNet (NFNet) [10] - 我们使用 F6 模型。我们使用图像和文本对数据集上的对比目标,使用 Radford 等人的两项对比损失来预训练视觉编码器。 [85]。我们使用最后阶段的输出,即被展平为一维序列的二维空间特征网格。对于视频输入,帧以 1 FPS 采样并独立编码,以获得添加了学习到的时间嵌入的 3D 时空特征网格。然后,特征在被馈送到感知器重采样器之前被展平为一维。有关对比模型训练和性能的更多详细信息分别在附录 B.1.3 和附录 B.3.2 中给出。
感知器重采样器:从不同大小的大型特征图到少量视觉标记。该模块将视觉编码器连接到冻结语言模型,如图 3 所示。它将来自视觉编码器的可变数量的图像或视频特征作为输入,并产生固定数量的视觉输出 (64),从而降低了计算复杂度视觉-文本交叉注意力。与 Perceiver [48] 和 DETR [13] 类似,我们学习预定义数量的潜在输入查询,这些查询被馈送到 Transformer 并交叉关注视觉特征。我们在消融研究(第 3.3 节)中表明,使用这种视觉语言重采样器模块的性能优于普通 Transformer 和 MLP。我们在附录 A.1.1 中提供了说明、更多架构细节和伪代码。
2.2 根据视觉表示调节冻结语言模型
文本生成由 Transformer 解码器执行,以感知器重采样器生成的视觉表示为条件。我们将预训练和冻结的纯文本 LM 块与从头开始训练的块交错,这些块交叉参与感知器重采样器的视觉输出。
在冻结的预训练 LM 中交错新的 GATED XATTN-DENSE 层。我们冻结预训练的 LM 块,并在原始层之间插入门控交叉注意力密集块(图 4),从头开始训练。为了确保在初始化时,条件模型产生与原始语言模型相同的结果,我们使用 tanh 门控机制 [41]。这会将新添加层的输出乘以 tanh(α),然后将其添加到残差连接的输入表示中,其中 α 是初始化为 0 的特定于层的可学习标量 [4]。因此,在初始化时,模型输出与预训练的 LM 相匹配,从而提高了训练稳定性和最终性能。在我们的消融研究(第 3.3 节)中,我们将所提出的 GATED XATTN-DENSE 层与最近的替代方案进行比较 [22, 68],并探讨插入这些附加层的频率对效率和表现力之间权衡的影响。详细信息请参见附录 A.1.2。
不同的型号尺寸。我们在 1.4B、7B 和 70B 参数 Chinchilla 模型的基础上,对三种模型尺寸进行了实验 [42];分别称它们为Flamingo-3B、Flamingo-9B和Flamingo-80B。为了简洁起见,我们在整篇论文中将最后一个称为火烈鸟。在增加冻结 LM 和可训练视觉文本 GATED XATTN-DENSE 模块的参数数量的同时,我们在不同模型中维护固定大小的冻结视觉编码器和可训练感知器重采样器(相对于完整模型大小较小)。详细信息请参见附录 B.1.1。
2.3 多视觉输入支持:每图像/视频注意掩蔽
等式(1)中引入的图像因果建模是通过掩蔽完整的文本到图像交叉注意矩阵来获得的,限制模型在每个位置看到的视觉标记文本标记。对于给定的文本标记,模型关注交错序列中出现在其之前的图像的视觉标记,而不是所有先前的图像(在附录 A.1.3 中形式化和说明)。尽管模型一次只直接关注单个图像,但通过 LM 中的自注意力仍然保持对所有先前图像的依赖。重要的是,这种单图像交叉注意方案允许模型无缝地泛化到任意数量的视觉输入,无论训练期间使用了多少个视觉输入。特别是,在对交错数据集进行训练时,每个序列仅使用最多 5 个图像,但我们的模型在评估过程中能够从最多 32 对(或“镜头”)图像/视频和相应文本的序列中受益。我们在第 3.3 节中表明,该方案比允许模型直接交叉参与所有先前图像更有效。