摘要
视觉语言预训练 (VLP) 提高了许多视觉语言任务的性能。 然而,大多数现有的预训练模型只擅长理解型任务或生成型任务。 此外,性能提升主要通过扩大从网络收集的带有噪声的图像文本对数据集来实现,这是一种次优的监督来源。 在本文中,我们提出了 BLIP,一个新的 VLP 框架,可以灵活地迁移到视觉语言理解和生成任务。 BLIP 通过对标题进行自举来有效地利用噪声网络数据,其中标题生成器生成合成标题,过滤器删除噪声标题。 我们在广泛的视觉语言任务上取得了最先进的结果,例如图像文本检索(平均召回率@1 提高了 2.7%),图像字幕(CIDEr 提高了 2.8%),以及 VQA(VQA 得分提高了 1.6%)。 BLIP 在以零样本方式直接迁移到视频语言任务时也表现出强大的泛化能力。 代码、模型和数据集已发布。
视觉语言
https://github.com/salesforce/BLIP
1引言
视觉语言预训练最近在各种多模态下游任务中取得了巨大成功。 但是,现有方法存在两个主要局限性:
(1) 模型视角:大多数方法要么采用基于编码器的模型 (Radford 等人,2021;Li 等人,2021a),要么采用编码器-解码器 (Cho 等人,2021;Wang 等人,2021) 模型。 然而,基于编码器的模型不太容易直接转移到文本生成任务(e.g.图像字幕),而编码器-解码器模型尚未成功采用图文检索任务。
(2)数据视角:最先进的方法(e.g., CLIP (Radford 等人, 2021) 、ALBEF (Li 等人, 2021a)、SimVLM (Wang 等人, 2021)) 对从网络收集的图像文本对进行预训练。 尽管通过扩大数据集获得了性能提升,但我们的论文表明,对于视觉-语言学习而言,嘈杂的网络文本并非最佳选择。
为此,我们提出了 BLIP:用于统一视觉-语言理解和生成的引导式语言-图像预训练。 BLIP 是一个新的 VLP 框架,它能够实现比现有方法更广泛的下游任务。 它分别从模型和数据角度引入了两个贡献:
(a) 编码器-解码器多模态混合 (MED):一种新的模型架构,用于有效的多任务预训练和灵活的迁移学习。 MED 可以作为单模态编码器、图像接地文本编码器或图像接地文本解码器运行。 该模型联合预训练了三个视觉-语言目标:图像-文本对比学习、图像-文本匹配和图像条件语言建模。
(b) 字幕和过滤 (CapFilt):一种新的数据集引导方法,用于从嘈杂的图像-文本对中学习。 我们将预训练的 MED 微调为两个模块:一个 字幕器,用于根据网络图像生成合成字幕, 和一个 过滤器,用于从原始网络文本和合成文本中删除嘈杂字幕。
我们进行了广泛的实验和分析,并得出以下关键观察结果。
•
我们表明字幕器和过滤器协同工作,通过引导字幕在各种下游任务上实现了显著的性能提升。 我们还发现,更多样化的字幕会带来更大的收益。
•
BLIP 在各种视觉语言任务上取得了最先进的性能,包括图像文本检索、图像字幕、视觉问答、视觉推理和视觉对话。 当将我们的模型直接迁移到两个视频语言任务(文本到视频检索和视频问答)时,我们也取得了最先进的零样本性能。
2相关工作
2.1视觉语言预训练
视觉语言预训练 (VLP) 旨在通过在大型图像文本对上预训练模型来提高下游视觉和语言任务的性能。 由于获取人工标注文本的成本过高, 大多数方法 (Chen 等人,2020; Li 等人,2020, 2021a; Wang 等人,2021; Radford 等人,2021) 使用从网络爬取的图像和替代文本对 (Sharma 等人,2018; Changpinyo 等人,2021; Jia 等人,2021), 尽管使用了简单的基于规则的过滤器, 但网络文本中仍然存在噪声。 但是,噪声的负面影响在很大程度上被忽视了,被从扩大数据集获得的性能提升所掩盖。 我们的论文表明,嘈杂的网络文本对于视觉语言学习来说不是最优的, 并提出了 CapFilt,它以更有效的方式利用网络数据集。
已经有很多尝试将各种视觉和语言任务统一到一个框架中 (Zhou 等人,2020; Cho 等人,2021; Wang 等人,2021)。 最大的挑战是设计能够执行基于理解的任务 (e.g. 图像文本检索) 和基于生成的 任务 (e.g. 图像字幕) 的模型架构。 基于编码器的模型 (Li 等人,2021a,b;Radford 等人,2021) 和编码器-解码器模型 (Cho 等人,2021;Wang 等人,2021) 都无法在两种类型的任务中都表现出色, 而单一的统一编码器-解码器 (Zhou 等人,2020) 也限制了模型的能力。 我们提出的多模态编码器-解码器混合模型在各种下游任务上提供了更大的灵活性和更好的性能, 同时保持了预训练的简单性和效率。
2.2知识蒸馏
知识蒸馏 (KD) (Hinton 等人,2015) 的目标是通过从教师模型中蒸馏知识来提高学生模型的性能。 自蒸馏是 KD 的一种特殊情况,其中教师和学生的大小相等。 它已被证明对图像分类 (Xie 等人,2020) 有效, 最近也用于 VLP (Li 等人,2021a)。 与大多数现有的 KD 方法不同,这些方法只是强制要求学生与教师具有相同的类别预测, 我们提出的 CapFilt 可以被解释为在 VLP 环境中执行 KD 的更有效方法, 其中,字幕器通过语义丰富的合成字幕来蒸馏其知识, 而过滤器通过移除噪声字幕来蒸馏其知识。
2.3数据增强
虽然数据增强 (DA) 已被广泛应用于计算机视觉 (Shorten & Khoshgoftaar, 2019), 但 DA 在语言任务中并不那么直接。 最近, 生成式语言模型已被用于为各种 NLP 任务合成示例 (Kumar 等人,2020;Anaby-Tavor 等人,2020;Puri 等人,2020;Yang 等人,2020)。 与这些专注于低资源语言任务的方法不同, 我们的方法展示了合成字幕在大型视觉语言预训练中的优势。
3方法
我们提出了 BLIP, 一个统一的 VLP 框架,用于从噪声图像-文本对中学习。 本节首先介绍我们新的模型架构 MED 及其预训练目标, 然后详细说明用于数据集自举的 CapFilt。
3.1模型架构
我们使用视觉 Transformer (Dosovitskiy 等人,2021) 作为我们的图像编码器, 它将输入图像分成多个补丁,并将其编码为一系列嵌入,并使用一个额外的 [CLS] 符元来表示全局图像特征。 与使用预训练的目标检测器进行视觉特征提取 (Chen 等人,2020) 相比, 使用 ViT 更便于计算,并且已被更近期的方法采用 (Li 等人,2021a; Kim 等人,2021)。
为了预训练一个具有理解和生成能力的统一模型, 我们提出了编码器-解码器 (MED) 的多模态混合, 这是一个多任务模型,可以在三种功能中的一种中运行:
(1) 单模态编码器,分别对图像和文本进行编码。 文本编码器与 BERT 相同 (Devlin 等人,2019),其中将 [CLS] 标记附加到文本输入的开头以总结句子。
(2) 图像接地文本编码器,通过在文本编码器的每个 Transformer 块的自注意力 (SA) 层和前馈网络 (FFN) 之间插入一个额外的交叉注意力 (CA) 层来注入视觉信息。 将一个特定于任务的 [Encode] 标记附加到文本,并将 [Encode] 的输出嵌入用作图像-文本对的多模态表示。
(3) 图像接地文本解码器,用因果自注意力层替换图像接地文本编码器中的双向自注意力层。 一个 [Decode] 标记用于指示序列的开始,而一个序列结束标记用于指示其结束。
3.2预训练目标
我们在预训练期间联合优化三个目标, 其中两个是基于理解的目标,一个基于生成的目标。 每个图像-文本对只需要通过计算量更大的视觉 Transformer 进行一次前向传递, 并通过文本 Transformer 进行三次前向传递, 其中不同的功能被激活以计算下面所述的三个损失。
图像-文本对比损失 (ITC) 激活单模态编码器。 它旨在通过鼓励正图像-文本对具有相似的表示来与负对形成对比,从而对齐视觉 Transformer 和文本 Transformer 的特征空间。 它已被证明是提高视觉和语言理解的有效目标 (Radford 等人,2021; Li 等人,2021a)。 我们遵循 Li 等人 (2021a) 的 ITC 损失, 其中引入了动量编码器来生成特征, 并且从动量编码器创建软标签作为训练目标,以考虑负对中潜在的正样本。
图像-文本匹配损失 (ITM) 激活图像接地文本编码器。 它旨在学习图像-文本多模态表示,以捕获视觉和语言之间的细粒度对齐。 ITM 是一个二元分类任务, 其中模型使用 ITM 头(线性层)来预测给定其多模态特征的图像-文本对是正(匹配)还是负(不匹配)。 为了找到更有信息量的负样本, 我们采用 Li 等人(2021a) 的硬负样本挖掘策略, 其中在批次中具有更高对比相似性的负样本对更有可能被选中来计算损失。
语言建模损失 (LM) 激活图像基础文本解码器, 其目标是在给定图像的情况下生成文本描述。 它优化交叉熵损失,该损失以自回归的方式训练模型以最大化文本的可能性。 在计算损失时,我们应用 0.1 的标签平滑。 与在 VLP 中广泛使用的 MLM 损失相比, LM 使模型能够将视觉信息转换为连贯的标题,从而具有泛化能力。
为了在利用多任务学习的同时进行高效的预训练, 文本编码器和文本解码器共享除 SA 层之外的所有参数。 原因是编码和解码任务之间的差异最好由 SA 层来捕获。 特别是,编码器采用 双向 自注意力来为 当前 输入符元构建表示,而解码器采用 因果 自注意力来预测 下一个 符元。 另一方面,嵌入层、CA 层和 FFN 在编码和解码任务之间功能类似, 因此共享这些层可以提高训练效率,同时从多任务学习中获益,
3.3CapFilt
由于标注成本过高, 存在数量有限的高质量人工标注的图像-文本对
我们提出了一种新的方法来提高文本语料库的质量,称为字幕和过滤(CapFilt)。 图 3 说明了 CapFilt。 它引入了两个模块:一个 字幕生成器,用于根据网络图像生成字幕, 以及一个 过滤器,用于删除噪声图像-文本对。 字幕生成器和过滤器都从同一个预训练的 MED 模型初始化, 并在 COCO 数据集上分别进行微调。 微调是一个轻量级的过程。
具体来说, 字幕生成器 是一个基于图像的文本解码器。 它使用 LM 目标进行微调,以便在给定图像的情况下解码文本。 给定网络图像
4实验和讨论
本节首先介绍预训练细节。 然后,我们对方法进行了详细的实验分析。
4.1预训练细节
我们的模型是在 PyTorch (Paszke et al., 2019) 中实现的,并在两个 16-GPU 节点上进行预训练。 图像 Transformer 初始化自 ImageNet 上预训练的 ViT (Touvron et al., 2020; Dosovitskiy et al., 2021), 文本 Transformer 初始化自 BERT
Pre-traindataset | Bootstrap | Visionbackbone | Retrieval-FT (COCO) | Retrieval-ZS (Flickr) | Caption-FT (COCO) | Caption-ZS (NoCaps) | |||||
C | F | TR@1 | IR@1 | TR@1 | IR@1 | B@4 | CIDEr | CIDEr | SPICE | ||
COCO+VG+CC+SBU(14M imgs) | ✗ | ✗ | ViT-B/16 | 78.4 | 60.7 | 93.9 | 82.1 | 38.0 | 127.8 | 102.2 | 13.9 |
✗ | ✓B | 79.1 | 61.5 | 94.1 | 82.8 | 38.1 | 128.2 | 102.7 | 14.0 | ||
✓B | ✗ | 79.7 | 62.0 | 94.4 | 83.6 | 38.4 | 128.9 | 103.4 | 14.2 | ||
✓B | ✓B | 80.6 | 63.1 | 94.8 | 84.9 | 38.6 | 129.7 | 105.1 | 14.4 | ||
COCO+VG+CC+SBU+LAION(129M imgs) | ✗ | ✗ | ViT-B/16 | 79.6 | 62.0 | 94.3 | 83.6 | 38.8 | 130.1 | 105.4 | 14.2 |
✓B | ✓B | 81.9 | 64.3 | 96.0 | 85.0 | 39.4 | 131.4 | 106.3 | 14.3 | ||
✓L | ✓L | 81.2 | 64.1 | 96.0 | 85.5 | 39.7 | 133.3 | 109.6 | 14.7 | ||
✗ | ✗ | ViT-L/16 | 80.6 | 64.1 | 95.1 | 85.5 | 40.3 | 135.5 | 112.5 | 14.7 | |
✓L | ✓L | 82.4 | 65.1 | 96.7 | 86.7 | 40.4 | 136.7 | 113.2 | 14.8 |
Generationmethod | Noiseratio | Retrieval-FT (COCO) | Retrieval-ZS (Flickr) | Caption-FT (COCO) | Caption-ZS (NoCaps) | ||||
TR@1 | IR@1 | TR@1 | IR@1 | B@4 | CIDEr | CIDEr | SPICE | ||
None | N.A. | 78.4 | 60.7 | 93.9 | 82.1 | 38.0 | 127.8 | 102.2 | 13.9 |
Beam | 19% | 79.6 | 61.9 | 94.1 | 83.1 | 38.4 | 128.9 | 103.5 | 14.2 |
Nucleus | 25% | 80.6 | 63.1 | 94.8 | 84.9 | 38.6 | 129.7 | 105.1 | 14.4 |
Layers shared | #parameters | Retrieval-FT (COCO) | Retrieval-ZS (Flickr) | Caption-FT (COCO) | Caption-ZS (NoCaps) | ||||
TR@1 | IR@1 | TR@1 | IR@1 | B@4 | CIDEr | CIDEr | SPICE | ||
All | 224M | 77.3 | 59.5 | 93.1 | 81.0 | 37.2 | 125.9 | 100.9 | 13.1 |
All except CA | 252M | 77.5 | 59.9 | 93.1 | 81.3 | 37.4 | 126.1 | 101.2 | 13.1 |
All except SA | 252M | 78.4 | 60.7 | 93.9 | 82.1 | 38.0 | 127.8 | 102.2 | 13.9 |
None | 361M | 78.3 | 60.5 | 93.6 | 81.9 | 37.8 | 127.4 | 101.8 | 13.9 |
4.2CapFilt 的影响
在表 1 中,我们比较了在不同数据集上预训练的模型,以证明 CapFilt 对下游任务的有效性,包括图像-文本检索和图像字幕,以及微调和零样本设置。
当仅将标题器或过滤器应用于包含 1400 万张图像的数据集时,可以观察到性能提升。 当它们一起应用时,它们的效果相互补充,与使用原始噪声网页文本相比,产生了实质性的改进。
CapFilt 可以通过更大的数据集和更大的视觉主干进一步提高性能,这验证了它在数据大小和模型大小方面的可扩展性。 此外,通过使用带有 ViT-L 的大型标题器和过滤器,也可以提高基本模型的性能。
在图 4 中,我们展示了一些示例标题及其对应的图像,这些图像定性地展示了标题器生成新的文本描述的效果,以及过滤器从原始网页文本和合成文本中删除噪声标题的效果。 更多示例可以在附录中找到。
4.3多样性是合成标题的关键
在 CapFilt 中,我们使用核采样 (Holtzman 等人,2020) 来生成合成标题。 核采样是一种随机解码方法,其中每个符元都是从一组符元中采样的,这些符元的累积概率质量超过了一个阈值
4.4参数共享和解耦
Captioner &Filter | Noiseratio | Retrieval-FT (COCO) | Retrieval-ZS (Flickr) | Caption-FT (COCO) | Caption-ZS (NoCaps) | ||||
TR@1 | IR@1 | TR@1 | IR@1 | B@4 | CIDEr | CIDEr | SPICE | ||
Share parameters | 8% | 79.8 | 62.2 | 94.3 | 83.7 | 38.4 | 129.0 | 103.5 | 14.2 |
Decoupled | 25% | 80.6 | 63.1 | 94.8 | 84.9 | 38.6 | 129.7 | 105.1 | 14.4 |
在预训练期间,文本编码器和解码器共享所有参数,除了自注意力层。 在表 3 中, 我们评估了使用不同参数共享策略预训练的模型, 其中预训练是在 1400 万张图像上使用网页文本进行的。 结果表明, 除了 SA 之外,共享所有层比不共享会导致更好的性能, 同时还减小了模型的大小,从而提高了训练效率。 如果共享 SA 层,模型的性能将因编码任务和解码任务之间的冲突而下降。
在 CapFilt 期间, 字幕生成器和过滤器在 COCO 上分别进行端到端微调。 在表 4 中, 我们研究了字幕生成器和过滤器是否以与预训练相同的方式共享参数的影响。 下游任务的性能下降, 我们主要归因于 确认偏差。 由于参数共享, 字幕生成器生成的噪声字幕不太可能被过滤器过滤掉,如较低的噪声比(8% 比 25%)所示。
5与最先进技术的比较
Method | Pre-train | COCO (5K test set) | Flickr30K (1K test set) | ||||||||||
# Images | TR | IR | TR | IR | |||||||||
R@1 | R@5 | R@10 | R@1 | R@5 | R@10 | R@1 | R@5 | R@10 | R@1 | R@5 | R@10 | ||
UNITER (Chen et al., 2020) | 4M | 65.7 | 88.6 | 93.8 | 52.9 | 79.9 | 88.0 | 87.3 | 98.0 | 99.2 | 75.6 | 94.1 | 96.8 |
VILLA (Gan et al., 2020) | 4M | - | - | - | - | - | - | 87.9 | 97.5 | 98.8 | 76.3 | 94.2 | 96.8 |
OSCAR (Li et al., 2020) | 4M | 70.0 | 91.1 | 95.5 | 54.0 | 80.8 | 88.5 | - | - | - | - | - | - |
UNIMO (Li et al., 2021b) | 5.7M | - | - | - | - | - | - | 89.4 | 98.9 | 99.8 | 78.0 | 94.2 | 97.1 |
ALIGN (Jia et al., 2021) | 1.8B | 77.0 | 93.5 | 96.9 | 59.9 | 83.3 | 89.8 | 95.3 | 99.8 | 100.0 | 84.9 | 97.4 | 98.6 |
ALBEF (Li et al., 2021a) | 14M | 77.6 | 94.3 | 97.2 | 60.7 | 84.3 | 90.5 | 95.9 | 99.8 | 100.0 | 85.6 | 97.5 | 98.9 |
BLIP | 14M | 80.6 | 95.2 | 97.6 | 63.1 | 85.3 | 91.1 | 96.6 | 99.8 | 100.0 | 87.2 | 97.5 | 98.8 |
BLIP | 129M | 81.9 | 95.4 | 97.8 | 64.3 | 85.7 | 91.5 | 97.3 | 99.9 | 100.0 | 87.3 | 97.6 | 98.9 |
BLIP | 129M | 81.2 | 95.7 | 97.9 | 64.1 | 85.8 | 91.6 | 97.2 | 99.9 | 100.0 | 87.5 | 97.7 | 98.9 |
BLIP | 129M | 82.4 | 95.4 | 97.9 | 65.1 | 86.3 | 91.8 | 97.4 | 99.8 | 99.9 | 87.6 | 97.7 | 99.0 |
Method | Pre-train | Flickr30K (1K test set) | |||||
# Images | TR | IR | |||||
R@1 | R@5 | R@10 | R@1 | R@5 | R@10 | ||
CLIP | 400M | 88.0 | 98.7 | 99.4 | 68.7 | 90.6 | 95.2 |
ALIGN | 1.8B | 88.6 | 98.7 | 99.7 | 75.7 | 93.8 | 96.8 |
ALBEF | 14M | 94.1 | 99.5 | 99.7 | 82.8 | 96.3 | 98.1 |
BLIP | 14M | 94.8 | 99.7 | 100.0 | 84.9 | 96.7 | 98.3 |
BLIP | 129M | 96.0 | 99.9 | 100.0 | 85.0 | 96.8 | 98.6 |
BLIP | 129M | 96.0 | 99.9 | 100.0 | 85.5 | 96.8 | 98.7 |
BLIP | 129M | 96.7 | 100.0 | 100.0 | 86.7 | 97.3 | 98.7 |
在本节中, 我们将 BLIP 与现有 VLP 方法在广泛的视觉语言下游任务上进行比较2。 接下来,我们将简要介绍每个任务和微调策略。 更多细节可以在附录中找到。
5.1图像-文本检索
我们在 COCO 和 Flickr30K (Plummer 等人,2015) 数据集上评估 BLIP 用于图像到文本检索 (TR) 和文本到图像检索 (IR)。 我们使用 ITC 和 ITM 损失对预训练模型进行微调。 为了实现更快的推理速度,我们遵循 Li 等人 (2021a),首先根据图像-文本特征相似性选择
如表 5 所示,BLIP 与现有方法相比取得了显著的性能提升。 使用相同的 14M 预训练图像,BLIP 在 COCO 上的平均召回率@1 超过了之前的最佳模型 ALBEF +2.7%。 我们还通过直接将微调在 COCO 上的模型转移到 Flickr30K 来执行零样本检索。 结果如表 6 所示,其中 BLIP 也远远优于现有方法。
5.2图像字幕
Method | Pre-train#Images | NoCaps validation | COCO Caption | ||||||||
in-domain | near-domain | out-domain | overall | Karpathy test | |||||||
C | S | C | S | C | S | C | S | B@4 | C | ||
Enc-Dec (Changpinyo et al., 2021) | 15M | 92.6 | 12.5 | 88.3 | 12.1 | 94.5 | 11.9 | 90.2 | 12.1 | - | 110.9 |
VinVL† (Zhang et al., 2021) | 5.7M | 103.1 | 14.2 | 96.1 | 13.8 | 88.3 | 12.1 | 95.5 | 13.5 | 38.2 | 129.3 |
LEMONbase† (Hu et al., 2021) | 12M | 104.5 | 14.6 | 100.7 | 14.0 | 96.7 | 12.4 | 100.4 | 13.8 | - | - |
LEMONbase† (Hu et al., 2021) | 200M | 107.7 | 14.7 | 106.2 | 14.3 | 107.9 | 13.1 | 106.8 | 14.1 | 40.3 | 133.3 |
BLIP | 14M | 111.3 | 15.1 | 104.5 | 14.4 | 102.4 | 13.7 | 105.1 | 14.4 | 38.6 | 129.7 |
BLIP | 129M | 109.1 | 14.8 | 105.8 | 14.4 | 105.7 | 13.7 | 106.3 | 14.3 | 39.4 | 131.4 |
BLIP | 129M | 111.8 | 14.9 | 108.6 | 14.8 | 111.5 | 14.2 | 109.6 | 14.7 | 39.7 | 133.3 |
LEMONlarge† (Hu et al., 2021) | 200M | 116.9 | 15.8 | 113.3 | 15.1 | 111.3 | 14.0 | 113.4 | 15.0 | 40.6 | 135.7 |
SimVLMhuge (Wang et al., 2021) | 1.8B | 113.7 | - | 110.9 | - | 115.2 | - | 112.2 | - | 40.6 | 143.3 |
BLIP | 129M | 114.9 | 15.2 | 112.1 | 14.9 | 115.3 | 14.4 | 113.2 | 14.8 | 40.4 | 136.7 |
我们考虑了两个用于图像字幕的数据集:NoCaps (Agrawal et al., 2019) 和 COCO, 这两个数据集都使用在 COCO 上使用 LM 损失微调的模型进行评估。 与 Wang et al. (2021) 类似, 我们在每个标题的开头添加了一个提示“一张图片”, 这导致了略微更好的结果。 如表 7 所示, 使用 1400 万张预训练图像的 BLIP 在使用类似数量的预训练数据的方法中表现明显优于其他方法。 使用 1.29 亿张图像的 BLIP 在性能上与使用 2 亿张图像的 LEMON 相当。 请注意,LEMON 需要一个计算量很大的预训练物体检测器和更高分辨率(800
5.3视觉问答 (VQA)
Method | Pre-train#Images | VQA | NLVR2 | ||
test-dev | test-std | dev | test-P | ||
LXMERT | 180K | 72.42 | 72.54 | 74.90 | 74.50 |
UNITER | 4M | 72.70 | 72.91 | 77.18 | 77.85 |
VL-T5/BART | 180K | - | 71.3 | - | 73.6 |
OSCAR | 4M | 73.16 | 73.44 | 78.07 | 78.36 |
SOHO | 219K | 73.25 | 73.47 | 76.37 | 77.32 |
VILLA | 4M | 73.59 | 73.67 | 78.39 | 79.30 |
UNIMO | 5.6M | 75.06 | 75.27 | - | - |
ALBEF | 14M | 75.84 | 76.04 | 82.55 | 83.14 |
SimVLMbase† | 1.8B | 77.87 | 78.14 | 81.72 | 81.77 |
BLIP | 14M | 77.54 | 77.62 | 82.67 | 82.30 |
BLIP | 129M | 78.24 | 78.17 | 82.48 | 83.08 |
BLIP | 129M | 78.25 | 78.32 | 82.15 | 82.24 |
VQA (Antol et al., 2015) 需要模型根据图像和问题预测答案。 与将 VQA 构建为多答案分类任务(Chen 等人,2020;Li 等人,2020) 不同, 我们遵循Li 等人 (2021a) 的方法,将其视为答案生成任务, 这使得 VQA 可以进行开放式问答。 如图5(a) 所示, 在微调期间, 我们将预训练模型重新排列, 其中图像-问题首先被编码成多模态嵌入,然后传递给答案解码器。 VQA 模型使用 LM 损失和真实答案作为目标进行微调。
结果如表8 所示。 使用 1400 万张图像,BLIP 在测试集上比 ALBEF 提高了 +1.64%。 使用 1.29 亿张图像,BLIP 的性能优于 SimVLM,而 SimVLM 使用
5.4自然语言视觉推理 (NLVR2)
NLVR2(Suhr 等人,2019)要求模型预测句子是否描述了一对图像。 为了能够对两张图像进行推理, 我们对预训练模型进行了简单的修改,这使得该架构比以前的方法(Li 等人,2021a;Wang 等人,2021) 计算效率更高。 如图5(b) 所示, 对于图像基础文本编码器中的每个 Transformer 块, 都存在两个交叉注意力层来处理两个输入图像, 它们的输出被合并并馈送到 FFN。 两个 CA 层从相同的预训练权重初始化。 合并层在编码器的前 6 层执行简单的平均池化, 并在第 6-12 层执行连接,然后进行线性投影。 MLP 分类器应用于[Encode] 符元的输出嵌入。 如表8 所示, BLIP 的性能优于所有现有方法,除了 ALBEF,后者执行了额外的自定义预训练步骤。 有趣的是, NLVR2 上的性能并没有从额外的网络图像中获得太大好处, 这可能是由于网络数据和下游数据之间的领域差距。
5.5视觉对话 (VisDial)
VisDial (Das 等人,2017) 在自然的对话环境中扩展了 VQA, 其中模型需要根据图像-问题对来预测答案,还要考虑对话历史和图像的标题。 我们遵循判别式设置,其中模型对一组答案候选进行排序 (Gan 等人,2019;Wang 等人,2020;Murahari 等人,2020)。 如图 5(c) 所示, 我们将图像和标题嵌入连接起来, 并通过交叉注意力将它们传递到对话编码器。 对话编码器使用 ITM 损失进行训练,以区分给定整个对话历史和图像-标题嵌入的情况下,答案是真是假。 如表 9 所示, 我们的方法在 VisDial v1.0 验证集上取得了最先进的性能。
5.6零样本迁移到视频语言任务
Method | MRR | R@1 | R@5 | R@10 | MR |
VD-BERT | 67.44 | 54.02 | 83.96 | 92.33 | 3.53 |
VD-ViLBERT† | 69.10 | 55.88 | 85.50 | 93.29 | 3.25 |
BLIP | 69.41 | 56.44 | 85.90 | 93.30 | 3.20 |
Method | R1 | R5 | R10 | MdR |
zero-shot | ||||
ActBERT (Zhu & Yang, 2020) | 8.6 | 23.4 | 33.1 | 36 |
SupportSet (Patrick et al., 2021) | 8.7 | 23.0 | 31.1 | 31 |
MIL-NCE (Miech et al., 2020) | 9.9 | 24.0 | 32.4 | 29.5 |
VideoCLIP (Xu et al., 2021) | 10.4 | 22.2 | 30.0 | - |
FiT (Bain et al., 2021) | 18.7 | 39.5 | 51.6 | 10 |
BLIP | 43.3 | 65.6 | 74.7 | 2 |
finetuning | ||||
ClipBERT (Lei et al., 2021) | 22.0 | 46.8 | 59.9 | 6 |
VideoCLIP (Xu et al., 2021) | 30.9 | 55.4 | 66.8 | - |
Method | MSRVTT-QA | MSVD-QA |
zero-shot | ||
VQA-T (Yang et al., 2021) | 2.9 | 7.5 |
BLIP | 19.2 | 35.2 |
finetuning | ||
HME (Fan et al., 2019) | 33.0 | 33.7 |
HCRN (Le et al., 2020) | 35.6 | 36.1 |
VQA-T (Yang et al., 2021) | 41.5 | 46.3 |
我们的图像语言模型具有很强的泛化能力,可以应用于视频语言任务。 在表 10 和表 11 中, 我们执行零样本迁移到 文本到视频检索 和 视频问答, 我们分别直接评估在 COCO-检索和 VQA 上训练的模型。 为了处理视频输入, 我们对每个视频均匀地采样
尽管存在领域差异和缺乏时间建模, 我们的模型在视频语言任务上都取得了最先进的性能。 对于文本到视频检索, 零样本 BLIP 甚至在召回率@1 上比在目标视频数据集上微调的模型高出 +12.4%。 如果使用 BLIP 模型初始化具有时间建模的视频语言模型(e.g. 将我们的 ViT 替换为 TimeSformer (Bertasius et al., 2021))并在视频数据上微调,则可以进一步提高性能。
CapFilt | #Texts | Retrieval-FT (COCO) | Retrieval-ZS (Flickr) | Caption-FT (COCO) | Caption-ZS (NoCaps) | ||||
TR@1 | IR@1 | TR@1 | IR@1 | B@4 | CIDEr | CIDEr | SPICE | ||
No | 15.3M | 78.4 | 60.7 | 93.9 | 82.1 | 38.0 | 127.8 | 102.2 | 13.9 |
No | 24.7M | 78.3 | 60.5 | 93.7 | 82.2 | 37.9 | 127.7 | 102.1 | 14.0 |
Yes | 24.7M | 80.6 | 63.1 | 94.8 | 84.9 | 38.6 | 129.7 | 105.1 | 14.4 |
Continue | Retrieval-FT (COCO) | Retrieval-ZS (Flickr) | Caption-FT (COCO) | Caption-ZS (NoCaps) | ||||
TR@1 | IR@1 | TR@1 | IR@1 | B@4 | CIDEr | CIDEr | SPICE | |
Yes | 80.6 | 63.0 | 94.5 | 84.6 | 38.5 | 129.9 | 104.5 | 14.2 |
No | 80.6 | 63.1 | 94.8 | 84.9 | 38.6 | 129.7 | 105.1 | 14.4 |
6其他消融研究
在本节中, 我们提供了有关 CapFilt 的其他消融实验。
使用 CapFilt 的改进并非由于训练时间更长。 由于引导数据集包含的文本比原始数据集更多, 因此使用引导数据集进行相同 epoch 数量的训练需要更长时间。 为了验证 CapFilt 的有效性并非由于训练时间更长, 我们复制了原始数据集中的网络文本,使其每个 epoch 的训练样本数量与引导数据集相同。 如表 12 所示, 使用噪声网络文本进行更长时间的训练并不能提高性能。
应该在引导数据集上训练一个新的模型。 引导数据集用于预训练一个新模型。 我们研究了使用引导数据集从先前预训练模型继续训练的效果。 表 13 显示继续训练没有帮助。 这一观察结果与知识蒸馏中的常见做法一致, 其中学生模型不能从教师模型初始化。
7结论
我们提出 BLIP, 一个新的 VLP 框架,在各种下游视觉-语言任务中表现出最先进的性能, 包括理解型和生成型任务。 BLIP 使用从大规模噪声图像-文本对引导的数据集预训练一个编码器-解码器模型的多模态混合,方法是注入不同的合成字幕并删除噪声字幕。 我们的引导数据集被发布以促进未来的视觉-语言研究。
有几个潜在的方向可以进一步提高 BLIP 的性能: (1) 多轮数据集引导; (2) 为每个图像生成多个合成字幕,以进一步扩大预训练语料库; (3) 通过训练多个不同的字幕器和过滤器并结合它们在 CapFilt 中的力量来进行模型集成。 我们希望我们的论文能激发未来的工作,重点是改进模型方面和数据方面, 这是视觉-语言研究的立足之本。