BLIP:用于统一视觉语言理解和生成的引导语言图像预训练

教育   2024-10-23 09:00   福建  
摘要

视觉语言预训练 (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 微调为两个模块:一个 字幕器,用于根据网络图像生成合成字幕, 和一个 过滤器,用于从原始网络文本和合成文本中删除嘈杂字幕。

图 1 我们使用一个字幕器 (Cap) 为网络图像生成合成字幕,以及一个过滤器 (Filt) 删除嘈杂字幕。

我们进行了广泛的实验和分析,并得出以下关键观察结果。

  •  

    我们表明字幕器和过滤器协同工作,通过引导字幕在各种下游任务上实现了显著的性能提升。 我们还发现,更多样化的字幕会带来更大的收益。

  •  

    BLIP 在各种视觉语言任务上取得了最先进的性能,包括图像文本检索、图像字幕、视觉问答、视觉推理和视觉对话。 当将我们的模型直接迁移到两个视频语言任务(文本到视频检索和视频问答)时,我们也取得了最先进的零样本性能。

2相关工作

图 2: BLIP 的预训练模型架构和目标(相同的参数具有相同的颜色)。 我们提出了一种编码器-解码器多模态混合,这是一种统一的视觉语言模型,它可以在以下三种功能中运行之一: (1) 单模态编码器使用图像文本对比(ITC)损失进行训练,以对齐视觉和语言表示。 (2) 图像接地文本编码器使用额外的交叉注意力层来模拟视觉语言交互, 并使用图像文本匹配(ITM)损失进行训练,以区分正负图像文本对。 (3) 图像接地文本解码器用因果自注意力层替换双向自注意力层, 并与编码器共享相同的交叉注意力层和前馈网络。 解码器使用语言建模(LM)损失进行训练,以生成给定图像的字幕。

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 BLIP 的学习框架。 我们引入了字幕生成器来为网络图像生成合成字幕,以及过滤器来去除噪声的图像-文本对。 字幕生成器和过滤器从同一个预训练模型初始化,并在小型人工标注数据集上分别微调。 引导数据集用于预训练新模型。

3.3CapFilt

由于标注成本过高, 存在数量有限的高质量人工标注的图像-文本对 {(Ih,Th)}(例如,COCO (Lin et al., 2014))。 最近的研究 (Li et al., 2021a; Wang et al., 2021) 利用从网络自动收集的大量图像和替代文本对 {(Iw,Tw)}。 但是,替代文本通常不能准确地描述图像的视觉内容,使其成为学习视觉-语言对齐的次优噪声信号。

我们提出了一种新的方法来提高文本语料库的质量,称为字幕和过滤(CapFilt)。 图 3 说明了 CapFilt。 它引入了两个模块:一个 字幕生成器,用于根据网络图像生成字幕, 以及一个 过滤器,用于删除噪声图像-文本对。 字幕生成器和过滤器都从同一个预训练的 MED 模型初始化, 并在 COCO 数据集上分别进行微调。 微调是一个轻量级的过程。

具体来说,  字幕生成器 是一个基于图像的文本解码器。 它使用 LM 目标进行微调,以便在给定图像的情况下解码文本。 给定网络图像 Iw,字幕生成器生成合成字幕 Ts,每张图像一个字幕。  过滤器 是一个基于图像的文本编码器。 它使用 ITC 和 ITM 目标进行微调,以学习文本是否与图像匹配。 过滤器会删除原始网络文本 Tw和合成文本 Ts中的噪声文本, 其中如果 ITM 头预测文本与图像不匹配,则该文本被认为是噪声文本。 最后, 我们将过滤后的图像-文本对与人工标注的对结合起来,形成一个新的数据集, 我们用它来预训练一个新模型。

4实验和讨论

本节首先介绍预训练细节。 然后,我们对方法进行了详细的实验分析。

4.1预训练细节

我们的模型是在 PyTorch (Paszke et al., 2019) 中实现的,并在两个 16-GPU 节点上进行预训练。 图像 Transformer 初始化自 ImageNet 上预训练的 ViT (Touvron et al., 2020; Dosovitskiy et al., 2021), 文本 Transformer 初始化自 BERTbase(Devlin et al., 2019)。 我们探索了 ViT 的两个变体:ViT-B/16 和 ViT-L/16。 除非另有说明,否则本文中报告的所有结果均为“BLIP”,使用 ViT-B。 我们使用批量大小为 2880 (ViT-B) / 2400 (ViT-L) 对模型进行 20 个 epoch 的预训练。 我们使用 AdamW (Loshchilov & Hutter, 2017) 优化器,权重衰减为 0.05。 学习率被预热到 3e-4 (ViT-B) / 2e-4 (ViT-L),并以 0.85 的速率线性衰减。 在预训练期间,我们对分辨率为 224×224 的图像进行随机裁剪,并在微调期间将图像分辨率提高到 384×384。 我们使用与 Li et al. (2021a) 相同的预训练数据集,共 1400 万张图像, 包括两个人工标注数据集(COCO 和 Visual Genome (Krishna et al., 2017)), 以及三个网络数据集(概念字幕 (Changpinyo et al., 2021),概念 12M (Changpinyo et al., 2021),SBU 字幕 (Ordonez et al., 2011))。 我们还实验了一个额外的网络数据集 LAION (Schuhmann et al., 2021),其中包含 1.15 亿张图像,文本更嘈杂 1. 附录中提供了有关数据集的更多详细信息。

Pre-traindataset BootstrapVisionbackboneRetrieval-FT (COCO)Retrieval-ZS (Flickr)Caption-FT (COCO)Caption-ZS (NoCaps)
CFTR@1IR@1TR@1IR@1B@4CIDErCIDErSPICE
COCO+VG+CC+SBU(14M imgs) ViT-B/1678.460.793.982.138.0127.8102.213.9
B79.161.594.182.838.1128.2102.714.0
B 79.762.094.483.638.4128.9103.414.2
B B80.663.194.884.938.6129.7105.114.4
COCO+VG+CC+SBU+LAION(129M imgs) ViT-B/1679.662.094.383.638.8130.1105.414.2
B B81.964.396.085.039.4131.4106.314.3
L L81.264.196.085.539.7133.3109.614.7
ViT-L/1680.664.195.185.540.3135.5112.514.7
L L82.465.196.786.740.4136.7113.214.8


表 1: 用于数据集引导的字幕器 (C) 和过滤器 (F) 效果评估。 下游任务包括图像-文本检索和图像字幕,采用微调 (FT) 和零样本 (ZS) 设置。 TR / IR@1:文本检索 / 图像检索的召回率@1。 B/L:字幕器或过滤器使用 ViT-B / ViT-L 作为视觉主干。
图 4 网页文本 Tw 和合成文本 Ts 的示例。 绿色 文本被过滤器接受,而 红色 文本被拒绝。

Generationmethod NoiseratioRetrieval-FT (COCO)Retrieval-ZS (Flickr)Caption-FT (COCO)Caption-ZS (NoCaps)
TR@1 IR@1TR@1IR@1B@4CIDErCIDErSPICE
NoneN.A.78.460.793.982.138.0127.8102.213.9
Beam19%79.661.994.183.138.4128.9103.514.2
Nucleus25%80.663.194.884.938.6129.7105.114.4


表 2 比较用于合成字幕生成的束搜索和核采样。 模型在 1400 万张图像上预训练。

Layers shared#parametersRetrieval-FT (COCO)Retrieval-ZS (Flickr)Caption-FT (COCO)Caption-ZS (NoCaps)
TR@1 IR@1TR@1IR@1B@4CIDErCIDErSPICE
All224M77.359.593.181.037.2125.9100.913.1
All except CA252M77.559.993.181.337.4126.1101.213.1
All except SA252M78.460.793.982.138.0127.8102.213.9
None361M78.360.593.681.937.8127.4101.813.9


表 3 比较预训练期间文本编码器和解码器的不同参数共享策略。

4.2CapFilt 的影响

在表 1 中,我们比较了在不同数据集上预训练的模型,以证明 CapFilt 对下游任务的有效性,包括图像-文本检索和图像字幕,以及微调和零样本设置。

当仅将标题器或过滤器应用于包含 1400 万张图像的数据集时,可以观察到性能提升。 当它们一起应用时,它们的效果相互补充,与使用原始噪声网页文本相比,产生了实质性的改进。

CapFilt 可以通过更大的数据集和更大的视觉主干进一步提高性能,这验证了它在数据大小和模型大小方面的可扩展性。 此外,通过使用带有 ViT-L 的大型标题器和过滤器,也可以提高基本模型的性能。

在图 4 中,我们展示了一些示例标题及其对应的图像,这些图像定性地展示了标题器生成新的文本描述的效果,以及过滤器从原始网页文本和合成文本中删除噪声标题的效果。 更多示例可以在附录中找到。

4.3多样性是合成标题的关键

在 CapFilt 中,我们使用核采样 (Holtzman 等人,2020) 来生成合成标题。 核采样是一种随机解码方法,其中每个符元都是从一组符元中采样的,这些符元的累积概率质量超过了一个阈值 p (p=0.9 在我们的实验中)。 在表 2 中,我们将它与束搜索进行比较,束搜索是一种确定性解码方法,旨在生成概率最高的标题。 核采样尽管由于过滤器更高的噪声率而更加嘈杂,但明显带来了更好的性能。 我们假设原因是核采样会生成更多样化和令人惊讶的标题,其中包含模型可以从中获益的更多新信息。 另一方面,束搜索往往会生成数据集中常见的安全标题,因此提供的额外知识较少。

4.4参数共享和解耦

Captioner &Filter NoiseratioRetrieval-FT (COCO)Retrieval-ZS (Flickr)Caption-FT (COCO)Caption-ZS (NoCaps)
TR@1 IR@1TR@1IR@1B@4CIDErCIDErSPICE
Share parameters8%79.862.294.383.738.4129.0103.514.2
Decoupled25%80.663.194.884.938.6129.7105.114.4


表 4: 在标题器和过滤器之间共享参数的效果。 模型在 1400 万张图像上进行了预训练。

在预训练期间,文本编码器和解码器共享所有参数,除了自注意力层。 在表 3 中, 我们评估了使用不同参数共享策略预训练的模型, 其中预训练是在 1400 万张图像上使用网页文本进行的。 结果表明, 除了 SA 之外,共享所有层比不共享会导致更好的性能, 同时还减小了模型的大小,从而提高了训练效率。 如果共享 SA 层,模型的性能将因编码任务和解码任务之间的冲突而下降。

在 CapFilt 期间, 字幕生成器和过滤器在 COCO 上分别进行端到端微调。 在表 4 中, 我们研究了字幕生成器和过滤器是否以与预训练相同的方式共享参数的影响。 下游任务的性能下降, 我们主要归因于 确认偏差。 由于参数共享, 字幕生成器生成的噪声字幕不太可能被过滤器过滤掉,如较低的噪声比(8% 比 25%)所示。

5与最先进技术的比较

MethodPre-trainCOCO (5K test set)Flickr30K (1K test set)
# ImagesTRIRTRIR


R@1R@5R@10R@1R@5R@10R@1R@5R@10R@1R@5R@10
UNITER (Chen et al., 2020) 4M65.788.693.852.979.988.087.398.099.275.694.196.8
VILLA (Gan et al., 2020) 4M------87.997.598.876.394.296.8
OSCAR (Li et al., 2020) 4M70.091.195.554.080.888.5------
UNIMO (Li et al., 2021b) 5.7M------89.498.999.878.094.297.1
ALIGN (Jia et al., 2021) 1.8B77.093.596.959.983.389.895.399.8100.084.997.498.6
ALBEF (Li et al., 2021a) 14M77.694.397.260.784.390.595.999.8100.085.697.598.9
BLIP14M80.695.297.663.185.391.196.699.8100.087.297.598.8
BLIP129M81.995.497.864.385.791.597.399.9100.087.397.698.9
BLIPCapFilt-L 129M81.295.797.964.185.891.697.299.9100.087.597.798.9
BLIPViT-L 129M82.495.497.965.186.391.897.499.899.987.697.799.0


表 5: 与最先进的图像文本检索方法比较, 在 COCO 和 Flickr30K 数据集上进行了微调。 BLIPCapFilt-L 使用 ViT-B 主干模型,使用由 ViT-L 的字幕生成器和过滤器引导的数据集进行预训练。

MethodPre-trainFlickr30K (1K test set)
# ImagesTRIR


R@1R@5R@10R@1R@5R@10
CLIP400M88.098.799.468.790.695.2
ALIGN1.8B88.698.799.775.793.896.8
ALBEF14M94.199.599.782.896.398.1
BLIP14M94.899.7100.084.996.798.3
BLIP129M96.099.9100.085.096.898.6
BLIPCapFilt-L 129M96.099.9100.085.596.898.7
BLIPViT-L 129M96.7100.0100.086.797.398.7


表 6: Flickr30K 上的零样本图像文本检索结果。

在本节中, 我们将 BLIP 与现有 VLP 方法在广泛的视觉语言下游任务上进行比较2。 接下来,我们将简要介绍每个任务和微调策略。 更多细节可以在附录中找到。

5.1图像-文本检索

我们在 COCO 和 Flickr30K (Plummer 等人,2015) 数据集上评估 BLIP 用于图像到文本检索 (TR) 和文本到图像检索 (IR)。 我们使用 ITC 和 ITM 损失对预训练模型进行微调。 为了实现更快的推理速度,我们遵循 Li 等人 (2021a),首先根据图像-文本特征相似性选择 k 个候选者,然后根据它们的成对 ITM 分数重新排序所选候选者。 我们为 COCO 设置 k=256,为 Flickr30K 设置 k=128

如表 5 所示,BLIP 与现有方法相比取得了显著的性能提升。 使用相同的 14M 预训练图像,BLIP 在 COCO 上的平均召回率@1 超过了之前的最佳模型 ALBEF +2.7%。 我们还通过直接将微调在 COCO 上的模型转移到 Flickr30K 来执行零样本检索。 结果如表 6 所示,其中 BLIP 也远远优于现有方法。

5.2图像字幕

MethodPre-train#ImagesNoCaps validationCOCO Caption
in-domainnear-domainout-domainoverallKarpathy test
CSCSCSCSB@4C
Enc-Dec (Changpinyo et al., 2021) 15M92.612.588.312.194.511.990.212.1-110.9
VinVL† (Zhang et al., 2021) 5.7M103.114.296.113.888.312.195.513.538.2129.3
LEMONbase† (Hu et al., 2021) 12M104.514.6100.714.096.712.4100.413.8--
LEMONbase† (Hu et al., 2021) 200M107.714.7106.214.3107.913.1106.814.140.3133.3
BLIP14M111.315.1104.514.4102.413.7105.114.438.6129.7
BLIP129M109.114.8105.814.4105.713.7106.314.339.4131.4
BLIPCapFilt-L 129M111.814.9108.614.8111.514.2109.614.739.7133.3
LEMONlarge† (Hu et al., 2021) 200M116.915.8113.315.1111.314.0113.415.040.6135.7
SimVLMhuge (Wang et al., 2021) 1.8B113.7-110.9-115.2-112.2-40.6143.3
BLIPViT-L 129M114.915.2112.114.9115.314.4113.214.840.4136.7


表 7: 与最先进的图像字幕方法在 NoCaps 和 COCO Caption 上的比较。 所有方法都在微调过程中优化交叉熵损失。 C: CIDEr,S: SPICE,B@4: BLEU@4。 BLIPCapFilt-L 是在由标题生成器和过滤器引导的,并使用 ViT-L 预训练的数据集上进行预训练的。 VinVL† 和 LEMON† 需要一个在 250 万张带有人工标注边界框的高分辨率(800×1333)输入图像上预训练的物体检测器。 SimVLMhuge 使用比 ViT-L 多 13× 倍的训练数据和更大的视觉主干。

我们考虑了两个用于图像字幕的数据集:NoCaps (Agrawal et al., 2019) 和 COCO, 这两个数据集都使用在 COCO 上使用 LM 损失微调的模型进行评估。 与 Wang et al. (2021) 类似, 我们在每个标题的开头添加了一个提示“一张图片”, 这导致了略微更好的结果。 如表 7 所示, 使用 1400 万张预训练图像的 BLIP 在使用类似数量的预训练数据的方法中表现明显优于其他方法。 使用 1.29 亿张图像的 BLIP 在性能上与使用 2 亿张图像的 LEMON 相当。 请注意,LEMON 需要一个计算量很大的预训练物体检测器和更高分辨率(800×1333)的输入图像, 这会导致推理时间比使用较低分辨率(384×384)输入图像的无检测器 BLIP 明显更慢。

5.3视觉问答 (VQA)

图 5: 下游任务的模型架构。 Q: 问题;C: 标题;QA: 问答对。

MethodPre-train#ImagesVQANLVR2
test-devtest-stddevtest-P
LXMERT180K72.4272.5474.9074.50
UNITER4M72.7072.9177.1877.85
VL-T5/BART180K-71.3-73.6
OSCAR4M73.1673.4478.0778.36
SOHO219K73.2573.4776.3777.32
VILLA4M73.5973.6778.3979.30
UNIMO5.6M75.0675.27--
ALBEF14M75.8476.0482.5583.14
SimVLMbase1.8B77.8778.1481.7281.77
BLIP14M77.5477.6282.6782.30
BLIP129M78.2478.1782.4883.08
BLIPCapFilt-L 129M78.2578.3282.1582.24


表 8: 与 VQA 和 NLVR2 上最先进方法的比较。 ALBEF 对 NLVR2 进行了额外的预训练步骤。 SimVLM† 使用比 BLIP 多 13× 倍的训练数据和更大的视觉主干(ResNet+ViT)。

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 使用13×更多预训练数据和更大的视觉主干,并添加了一个卷积阶段。

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零样本迁移到视频语言任务

MethodMRRR@1R@5R@10MR
VD-BERT67.4454.0283.9692.333.53
VD-ViLBERT†69.1055.8885.5093.293.25
BLIP69.4156.4485.9093.303.20


表 9: 与 VisDial v1.0 验证集上最先进的方法比较。 VD-ViLBERT† (Murahari 等人,2020) 使用额外的 VQA 数据预先训练 ViLBERT (Lu 等人,2019)

MethodR1R5R10MdR
zero-shot

ActBERT (Zhu & Yang, 2020) 8.623.433.136
SupportSet (Patrick et al., 2021) 8.723.031.131
MIL-NCE (Miech et al., 2020) 9.924.032.429.5
VideoCLIP (Xu et al., 2021) 10.422.230.0-
FiT (Bain et al., 2021) 18.739.551.610
BLIP43.365.674.72
finetuning

ClipBERT (Lei et al., 2021) 22.046.859.96
VideoCLIP (Xu et al., 2021) 30.955.466.8-


表 10 与 MSRVTT 数据集 1k 测试拆分的文本到视频检索最先进方法的比较。

MethodMSRVTT-QAMSVD-QA
zero-shot
VQA-T (Yang et al., 2021) 2.97.5
BLIP19.235.2
finetuning
HME (Fan et al., 2019) 33.033.7
HCRN (Le et al., 2020) 35.636.1
VQA-T (Yang et al., 2021) 41.546.3


表 11 与 视频问答最先进方法的比较。 我们报告了两个数据集上的前 1 名测试准确率。

我们的图像语言模型具有很强的泛化能力,可以应用于视频语言任务。 在表 10 和表 11 中, 我们执行零样本迁移到 文本到视频检索 和 视频问答, 我们分别直接评估在 COCO-检索和 VQA 上训练的模型。 为了处理视频输入, 我们对每个视频均匀地采样 n 帧(n=8 用于检索,n=16 用于问答), 并将帧特征连接成一个单一的序列。 请注意,这种简单的方法忽略了所有时间信息。

尽管存在领域差异和缺乏时间建模, 我们的模型在视频语言任务上都取得了最先进的性能。 对于文本到视频检索, 零样本 BLIP 甚至在召回率@1 上比在目标视频数据集上微调的模型高出 +12.4%。 如果使用 BLIP 模型初始化具有时间建模的视频语言模型(e.g. 将我们的 ViT 替换为 TimeSformer (Bertasius et al., 2021))并在视频数据上微调,则可以进一步提高性能。

CapFilt #TextsRetrieval-FT (COCO)Retrieval-ZS (Flickr)Caption-FT (COCO)Caption-ZS (NoCaps)
TR@1 IR@1TR@1IR@1B@4CIDErCIDErSPICE
No15.3M78.460.793.982.138.0127.8102.213.9
No24.7M78.360.593.782.237.9127.7102.114.0
Yes24.7M80.663.194.884.938.6129.7105.114.4
表 12: 复制原始网络文本,使其每个 epoch 的样本数量与引导数据集相同。 结果证实,CapFilt 的改进并非由于训练时间更长。
Continue Retrieval-FT (COCO)Retrieval-ZS (Flickr)Caption-FT (COCO)Caption-ZS (NoCaps)
TR@1 IR@1TR@1IR@1B@4CIDErCIDErSPICE
Yes80.663.094.584.638.5129.9104.514.2
No80.663.194.884.938.6129.7105.114.4
表 13: 与使用引导数据集训练新模型相比,对预训练模型进行继续训练带来的收益较少。

6其他消融研究

在本节中, 我们提供了有关 CapFilt 的其他消融实验。

使用 CapFilt 的改进并非由于训练时间更长。 由于引导数据集包含的文本比原始数据集更多, 因此使用引导数据集进行相同 epoch 数量的训练需要更长时间。 为了验证 CapFilt 的有效性并非由于训练时间更长, 我们复制了原始数据集中的网络文本,使其每个 epoch 的训练样本数量与引导数据集相同。 如表 12 所示, 使用噪声网络文本进行更长时间的训练并不能提高性能。

应该在引导数据集上训练一个新的模型。 引导数据集用于预训练一个新模型。 我们研究了使用引导数据集从先前预训练模型继续训练的效果。 表 13 显示继续训练没有帮助。 这一观察结果与知识蒸馏中的常见做法一致, 其中学生模型不能从教师模型初始化。

7结论

我们提出 BLIP, 一个新的 VLP 框架,在各种下游视觉-语言任务中表现出最先进的性能, 包括理解型和生成型任务。 BLIP 使用从大规模噪声图像-文本对引导的数据集预训练一个编码器-解码器模型的多模态混合,方法是注入不同的合成字幕并删除噪声字幕。 我们的引导数据集被发布以促进未来的视觉-语言研究。

有几个潜在的方向可以进一步提高 BLIP 的性能: (1) 多轮数据集引导; (2) 为每个图像生成多个合成字幕,以进一步扩大预训练语料库; (3) 通过训练多个不同的字幕器和过滤器并结合它们在 CapFilt 中的力量来进行模型集成。 我们希望我们的论文能激发未来的工作,重点是改进模型方面和数据方面, 这是视觉-语言研究的立足之本。




FightingCV
一个专注于解析计算机视觉、多模态方向前沿论文,解答科研问题,分享科研时事的公众号!
 最新文章