论文解读:(BLIP)Bootstrapping Language-Image Pre-training for Unified Vision-Language

BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation

文章汇总

它有三个损失函数,构成一个ITC,一个ATM一个LM这三个损失函数构成它的模型结构

一个文字和一个图片一起输入进来之后,然后要做三个任务。

ITC

第一个任务ITC

ITC就是对比学习图文的对比学习,也就是说我们想把这个图片和。文字,然后分别的送入这两个模型,一个是左边是VIT vision transformer,右边这里是一个标准的transformer这个得到两个向量,然后做ITC这个任务。

然后这个图像输出的特征不只要做这个ITC这个任务,它还可以,你看跟着这个线(红色框框住的)一直送到ITM那边的模型来。送到这来就送到ITM模型这个另一个transformer里来,这个transformer里面也是读入这一句话。

ITM

图文信息的一个融合完了之后,最后在这里过了FFN之后,在这里就做了一个ITM的预测,这个预测是一个二分类预测,这次输入的图片和文本是否相关,即二分类认为,相关就是一,然后不相关零

语言模型任务

最后这个任务是一个语言模型任务,然后你看依然是这些视觉特征 patch embedding,然后通过红色框柱的线路和token embedding做cross attention,这些文本token embedding先做这个Causal self attention。

为什么做Causal self attention?是因为他要做语言模型的任务,他永远是预测下一个token,它因为要训练这个模型去预测下一个token的话,那么他就需要保证这些。比如说基于a little girl去预测holding的时候,那么你这个a little girl的前面的这些信息他做。这个self attention的时候不能跟后面的token self attention只能跟前面的做self attention。所以这个时候我们就需要用这个carry self attention,来保证不要去访问未来的一个信息

我们做了Causal self attention之后,再与文本特征一起去做这个Cross attention。 之后再给它加起来这个Feed Forward,然后做LM的预测,即为每一个token去预测它的下token,比如说基于a去预测基于a little去预测,就基于a little girl去预测holding这个东西强调一下,就是现在大模型的训练,这样一个训练大模型的不管是预训练还是SFT都是这样,永远是做下一个token的预测。

总结

总之blip这个模型有这三部分在这三个损失函数组成。另外还要意同颜色的都是参数共享的。

为什么设计成这样

其实很简单,就是因为这样的一个结构,它既可以占到双流模型的双塔模型的好处,它也可以占到单流模型单塔模型的一个好处,因为我们可以看到这个图里就是说左边这两个就是双流模型,所以当某个任务它需要双流模型的时候去做检索的时候,我们就可以用左边这两个。

如果说我们想要用单流模型。取得一个更好的分类效果更好的检测效果的时候,我们就可以用第三个模型来做。

如果我们想做语言生成,我们想做文本生成,想做caption生成,那我们就用第四个模型来做,作者还是考虑了一个通用性。就虽然说模型设计的稍显复杂,但是。整体比较精巧的,整体还是让人觉得比较make sense。

摘要

视觉语言预训练(VLP)提高了许多视觉语言任务的性能。然而,大多数现有的预训练模型只擅长基于理解的任务或基于生成的任务。此外,性能的提高很大程度上是通过使用从网络收集的噪声图像-文本对扩展数据集来实现的,这是一种次优的监督来源。本文提出了一种新的VLP框架BLIP,它可以灵活地转移到视觉语言理解和生成任务中。BLIP通过引导标题有效地利用了带有噪声的web数据,其中标题生成合成标题,滤波器去除噪声。我们在广泛的视觉语言任务上取得了最先进的结果,例如图像文本检索(平均+2.7% recall@1),图像字幕(CIDEr +2.8%)和VQA (VQA分数+1.6%)。当以零样本的方式直接应用于视频语言任务时,BLIP也表现出较强的泛化能力。我们已经发布代码、模型和数据集。

1. 介绍

近年来,视觉语言预训练在各种多模态下游任务中取得了巨大的成功。然而,现有的方法有两个主要的局限性:

(1)模型视角:大多数方法要么采用基于编码器的模型(Radford et al, 2021;Li等人,2021a),或编码器-解码器(Cho等人,2021;Wang et al, 2021)模型。然而,基于编码器的模型不太容易直接转移到文本生成任务(例如图像字幕),而编码器-解码器模型尚未成功地用于图像-文本检索任务。

(2)数据视角:大多数最先进的方法(例如CLIP (Radford等人,2021),ALBEF (Li等人,2021a), SimVLM (Wang等人,2021))对从网络收集的图像-文本对进行预训练。尽管通过扩大数据集获得了性能提升,但我们的论文表明,噪声web文本对于视觉语言学习来说是次优的。

为此,我们提出了BLIP: Bootstrapping language - image Pre-training,用于统一的视觉语言理解和生成。BLIP是一种新的VLP框架,比现有方法能够实现更广泛的下游任务。从模型和数据的角度分别介绍了两个贡献:

(a)编码器-解码器的多模态混合(MED):一种新的模型架构,用于有效的多任务预训练和灵活的迁移学习。MED可以作为单模编码器、基于图像的文本编码器或基于图像的文本解码器操作。该模型采用图像文本对比学习、图像文本匹配和图像条件化语言建模三个视觉语言目标进行联合预训练。

(b) Captioning and Filtering (CapFilt):一种新的数据集bootstrap方法,用于从噪声图像-文本对中学习。我们将预训练的MED调整为两个模块:一个captioner用于生成给定web图像的合成字幕,一个filter用于从原始web文本和合成文本中去除嘈杂的字幕。

我们进行了大量的实验和分析,并做出了以下主要观察结果。

•我们展示了字幕和过滤器一起工作,通过引导字幕来实现各种下游任务的实质性性能改进。我们还发现,标题越多样化,收益越大。

•BLIP在广泛的视觉语言任务上实现了最先进的性能,包括图像-文本识别,检索,图像字幕,视觉问答,视觉推理和视觉对话。当直接将我们的模型转移到两个视频语言任务:文本到视频检索和视频时,我们也实现了最先进的zero-shot性能。

2. 相关工作

2.1. 视觉语言训练的

视觉语言预训练(VLP)旨在通过对大规模图像-文本对模型进行预训练来提高下游视觉和语言任务的性能。由于获取人工注释文本的费用过高,大多数方法(Chen et al ., 2020;Li et al ., 2020;2021年;Wang等,2021;Radford等人,2021)使用从网络抓取的图像和替代文本对(Sharma等人,2018;Changpinyo等,2021;Jia等人,2021)。尽管使用了简单的基于规则的过滤器,噪声在网络文本中仍然普遍存在。然而,噪声的负面影响在很大程度上被忽略了,被通过扩大数据集获得的性能增益所掩盖。我们的论文表明,噪声网络文本对于视觉语言学习是次优的,并提出了以更有效的方式利用网络数据集的CapFilt。

已经有很多尝试将各种视觉和语言任务统一到一个框架中(Zhou et al, 2020;Cho等,2021;Wang et al, 2021)。最大的挑战是设计既能执行基于理解的任务(如图像文本检索)又能执行基于生成的任务(如图像字幕)的模型架构。两者都不是基于编码器的模型(Li et al ., 2021a;b;Radford et al, 2021)和编码器-解码器模型(Cho et al, 2021;Wang et al ., 2021)可以在这两种类型的任务中表现出色,而单一的统一编码器-解码器(Zhou et al ., 2020)也限制了模型的能力。我们提出的多模态编码器-解码器混合模型在广泛的下游任务上提供了更大的灵活性和更好的性能,同时保持了预训练的简单和高效。

2.2. 知识蒸馏

知识蒸馏(Knowledge distillation, KD) (Hinton et al ., 2015)旨在通过从教师模型中提取知识来提高学生模型的性能。自蒸馏是KD的一种特殊情况,其中老师和学生的尺寸相等。它已被证明对图像分类是有效的(Xie等人,2020),最近对VLP也是有效的(Li等人,2021a)。与大多数现有的KD方法不同,这些方法只是简单地强制学生与教师具有相同的课堂预测,我们提出的CapFilt可以被解释为在VLP上下文中执行KD的更有效方法,其中captioner通过语义丰富的合成标题提取其知识,而过滤器通过去除嘈杂的标题提取其知识。

2.3. 数据增强

虽然数据增强(DA)在计算机视觉中已被广泛采用(Shorten & Khoshgoftaar, 2019),但语言任务的DA并不那么简单。最近,生成语言模型已被用于合成各种NLP任务的示例(Kumar等人,2020;Anaby-Tavor 等人,2020;Puri et al, 2020;Yang et al ., 2020)。不同于这些方法只关注低资源的语言任务,我们的方法展示了合成字幕在大规模视觉语言预训练中的优势。

3. 方法

我们提出了一个统一的VLP框架BLIP,用于从噪声图像-文本对中学习。本节首先介绍我们的新模型架构MED及其预训练目标,然后描述用于数据集引导的CapFilt。

3.1. 模型架构

我们使用视觉transformer(Dosovitskiy等人,2021)作为我们的图像编码器,它将输入图像划分为补丁并将其编码为嵌入序列,并使用额外的[CLS]令牌来表示全局图像特征。与使用预训练的目标检测器进行视觉特征提取相比(Chen et al ., 2020),使用ViT更加计算友好,并且已被最新的方法所采用(Li et al ., 2021a;Kim et al, 2021)。

为了预训练具有理解和生成能力的统一模型,我们提出了一种多模态混合编码器(MED),该多任务模型可以在三种功能之一中运行:

(1)单模态编码器,分别对图像和文本进行编码。文本编码器与BERT (Devlin等人,2019)相同,其中在文本输入的开头附加一个[CLS]令牌以总结句子。

(2)基于图像的文本编码器,通过在文本编码器的每个变压器块的自注意层(SA)和前馈网络(FFN)之间额外插入一层交叉注意层(CA)注入视觉信息。一个特定于任务的[Encode]标记被附加到文本中,[Encode]的输出嵌入被用作图像-文本对的多模态表示。

(3)基于图像的文本解码器,将基于图像的文本编码器中的双向自注意层替换为因果自注意层。[Decode]标记用于表示序列的开始,序列结束标记用于表示序列的结束。

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

3.2. 预训练的目标

我们在预训练中共同优化了三个目标,两个基于理解的目标和一个基于生成的目标。每个图像-文本对只需要通过计算量较大的视觉转换器进行一次前向传递,并通过文本转换器进行三次前向传递,其中激活不同的功能以计算如下所述的三种损失。

图像-文本对比损失(ITC)激活单峰编码器

它的目的是通过鼓励正面的图像-文本对与负面的图像-文本对具有相似的表示来对齐视觉转换器和文本转换器的特征空间。它已被证明是提高视觉和语言理解的有效目标(Radford et al, 2021;Li et al ., 2021a)。我们遵循Li等人(2021a)的ITC损失,其中引入动量编码器来产生特征,并从动量编码器创建软标签作为训练目标,以解释负对中的潜在正。

图像-文本匹配丢失(ITM)激活图像接地文本编码器

它旨在学习图像-文本多模态表示,以捕获视觉和语言之间的细粒度对齐。ITM是一个二元分类任务,其中模型使用ITM头(线性层)来预测给定图像-文本对的多模态特征是正的(匹配的)还是负的(不匹配的)。为了找到更多信息丰富的负,我们采用Li等人(2021a)的硬负挖掘策略,其中批中具有较高对比相似性的负对更有可能被选择来计算损失。

语言建模损失(LM)激活基于图像的文本解码器

其目的是生成给定图像的文本描述。它优化了交叉熵损失,训练模型以自回归的方式最大化文本的可能性。在计算损失时,我们使用0.1的标签平滑。与广泛用于VLP的MLM损失相比,LM使具有泛化能力的模型能够将视觉信息转换为连贯的字幕。

为了在利用多任务学习的同时执行有效的预训练,文本编码器和文本解码器共享除SA层之外的所有参数。原因是编码和解码任务之间的差异最好由SA层捕获。特别是,编码器使用双向自注意来构建当前输入标记的表示,而解码器使用因果自注意来预测下一个标记。另一方面,编码和解码任务之间的嵌入层、CA层和FFN的作用相似,因此共享这些层可以提高训练效率,同时受益于多任务学习。

3.3. CapFilt

由于标注成本过高,高质量的人工标注图像-文本对数量有限f(h;(例如,COCO (Lin et al, 2014))。近期工作(Li et al ., 2021a;Wang等人,2021)使用了大量的图像和替代文本对f(Iw;Tw)g从网络上自动收集。然而,替代文本通常不能准确地描述图像的视觉内容,使它们成为一个嘈杂的信号,对于学习视觉语言对齐来说是次优的。

图3。BLIP学习框架。我们引入了一个标题器来生成网络图像的合成标题,以及一个过滤器来去除图像-文本对的噪声。captioner和filter从相同的预训练模型初始化,并在一个小规模的人工注释数据集上分别进行微调。bootstrap数据集用于预训练新模型。

本文提出了一种提高文本语料库质量的新方法CapFilt。图3给出了CapFilt的示例。它引入了两个模块:一个用于生成给定web图像的标题的captioner,以及一个用于去除噪声图像-文本对的过滤器。captioner和filter都是从相同的预训练MED模型初始化的,并在COCO数据集上分别进行微调。调优是一个轻量级的过程。

具体地说,captioner是一个基于图像的文本解码器。它与LM目标进行了微调,以解码给定图像的文本。给定web图像Iw, captioner生成合成字幕t,每个图像一个字幕。该滤波器是一个基于图像的文本编码器。它与ITC和ITM目标进行了微调,以了解文本是否与图像匹配。过滤器去除原始web文本Tw和合成文本Ts中的噪声文本,如果ITM头预测文本与图像不匹配,则认为文本是噪声文本。最后,我们将过滤后的图像文本对与人工注释的图像文本对结合起来形成一个新的数据集,我们使用它来预训练一个新的模型。

4. 实验与讨论

5. 效果比较

6. 附加消融研究

7. 总结

我们提出了一个新的VLP框架BLIP,它在广泛的下游视觉语言任务中具有最先进的性能,包括基于理解和基于生成的任务。BLIP使用从大规模噪声图像-文本对中启动的数据集,通过注入不同的合成字幕和去除噪声字幕来预训练编码器-解码器的多模态混合模型。我们发布了自引导数据集,以促进未来的视觉语言研究。

有几个潜在的方向可以进一步提高BLIP的性能:(1)多轮数据集bootstrapping;(2)每张图像生成多个合成字幕,进一步扩大预训练语料库;(3)通过训练多个不同的capators和filters,并在CapFilt中组合它们的作用力来实现模型集成。我们希望我们的论文能够激励未来的工作集中在模型方面和数据方面进行改进,这是视觉语言研究的面包和黄油。

参考资料

论文下载(2022年)

https://arxiv.org/abs/2201.12086

代码地址(4.3k stars)

https://github.com/salesforce/BLIP

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十有久诚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值