BLIP和BLIP2

文章主要是对BLIP2 (使用冻结图像编码器和大型语言模型的Bootstrapping语言图像预训练)论文的阅读笔记,也对BLIP(用于统一视觉语言理解和生成的Bootstrapping语言图像预训练)算法进行了简单的介绍。

文章:

  • BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation
  • BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models

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

在这里插入图片描述

关键贡献:使用Capitator(Cap)为网络图像生成合成字幕,并使用Filter(Filt)删除有噪声的字幕。

背景

  1. 大多方法基于编码器或者编码-解码器结构,编码器模型不太容易直接转移到文本生成任务,但是编码解码框架并未成功应用在图像文件检索任务中。
  2. 过去的CLIP中,文本-图像对的数据是从网上收集得到的,但是网络文本对于视觉语言预训练(VLP)是次优的

两个贡献:

(a)编码器-解码器的多模式混合(MED):一种用于多任务预训练和灵活迁移学习的模型架构。

  • 三种模式:单模式编码器、基于图像的文本编码器、基于图像的文字解码器。
  • 三个预训练视觉语言目标:图像文本对比学习、图像文本匹配、图像语言。

(b) 字幕和过滤(CapFilt):从噪声图像-文本对中学习,进行数据增强,用于对MED微调。

  • 字幕器:生成给定网络图像的合成字幕
  • 过滤器:从原始网络文本和合成文本中去除噪声字幕

模型架构

BLIP预训练架构——基于编码器-解码器的多模式混合视觉语言模型
在这里插入图片描述

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

3.1 模型架构

提出了编码器-解码器的多模式混合,这是一个多任务视觉语言模型,可以在以下三个功能中选择进行操作:

  1. 单模式编码器,分别对图像和文本进行编码。文本编码器与BERT相同,其中[CLS]标记被附加到文本输入的开头以总结句子。图像编码器使用 ViT。
  2. 基于图像的文本编码器,通过在自注意(SA)层和文本编码器的每个变换器块的前馈网络(FFN)之间插入一个额外的交叉注意(CA)层来注入视觉信息。特定于任务的[Encode]标记被附加到文本,并且[Encode]的输出token被用作图像-文本对的多模式表示。
  3. 以图像为基础的文本解码器,使用因果自注意层取代了基于图像的文本编码器中的双向自注意层。[Decode]标记用于发出序列开始的信号,序列结束标记用于发出其结束的信号。

3.2 预训练目标

联合优化了三个目标,包括两个基于理解的目标和一个基于生成的目标,每个图像-文本对只需要一次前向通过计算量较大的视觉转换器,三次前向通过文本转换器:

  1. Image-Text Contrastive Loss (ITC) :集成 ALBEF 中的 ITC损失。通过鼓励正面图像文本对具有相似的表示,负面图像文本相反,对齐视觉变换器和文本变换器的特征空间
  2. Image-Text Matching Loss (ITM) :旨在学习图像-文本多模态表示,捕捉视觉和语言之间的细粒度对齐。ITM是一个二分类任务,给定其多模态特征,其中模型使用ITM头(线性层)来预测图像文本对是正(匹配)还是负(不匹配)
  3. Language Modeling Loss (LM) :旨在生成给定图像的文本描述。优化交叉熵损失,该损失训练模型以自回归方式最大化文本的可能性

3.3 CapFilt

背景

  • 有图像-文本对(Ih,Th)类似 COCO 的标注数据集较少
  • CLIP中使用的网络收集的图片文本对通常不能准确地描述图像的视觉内容,这使得它们成为一个嘈杂的信号,对于学习视觉语言对齐来说是次优的。

在这里插入图片描述
图3. BLIP的学习框架。介绍了一种为网络图像生成合成字幕的字幕器,以及一种去除噪声图像-文本对的过滤器。字幕器和过滤器从相同的预训练模型初始化,并在小规模人工注释数据集上单独微调。bootstrapped数据集用于预训练新模型。

  • 字幕器和过滤器都是从相同的预训练MED模型初始化的,并在COCO数据集上单独微调。微调是一个轻量级的过程。
  • 字幕器是一个基于图像的文本解码器。它与LM目标进行了微调,以解码给定图像的文本。给定网络图像Iw,字幕制作者生成每个图像具有一个字幕的合成字幕Ts。
  • 过滤器是一个基于图像的文本编码器。它与ITC和ITM目标进行了微调,以了解文本是否与图像匹配。过滤器去除原始网络文本Tw和合成文本Ts中的噪声文本,其中,如果ITM头预测文本与图像不匹配,则认为文本是噪声的。
  • 最后将过滤后的图像-文本对与人类注释的对相结合,形成一个新的数据集,用于预训练新的模型。

二、BLIP2 :使用冻结图像编码器和大型语言模型的Bootstrapping语言图像预训练

在这里插入图片描述
图1 BLIP-2框架概述。按照两阶段策略预先训练了一个轻量级查询变换器 Q-Former,以弥补模态差距。第一阶段从冻结图像编码器中引导视觉语言表示学习。第二阶段从冻结的LLM引导视觉到语言的生成性学习,从而实现零样本指示的图像到文本生成。

BLIP2 优势

  • 两阶段训练(表征学习阶段和生成学习阶段)有效利用冻结的预训练图像模型和语言模型,视觉问答、图像字幕和图像文本检索三个任务上取得了 SOTA
  • 由 LLM (如 OPT、FlanT5) 提供支持,BLIP-2 可以被提示执行遵循自然语言指令的 zero-shot 图像到文本生成,这实现了诸如视觉知识推理、视觉对话等新兴功能
  • 由于使用了冻结的单模态模型和轻量级的Q-Former,BLIP-2比现有技术的计算效率更高。比如,BLIP-2 在 zero-shot VQAv2 上比 Flamingo 高 8.7%,可训练参数减少了 54 倍

模型实现

Q-Former的实现
在这里插入图片描述
图2 (左)Q-Former和BLIP-2第一阶段视觉语言表征学习目标的模型架构。共同优化了三个目标,这三个目标强制执行查询(一组可学习token),以提取与文本最相关的视觉表示。(右)控制查询文本交互的每个目标的自注意掩码策略。

3.1 模型架构

Q-Former由两个变换器子模块组成,它们共享相同的自注意层:(1)与冻结图像编码器交互的用于视觉特征提取的图像变换器;(2) 既可以作为文本编码器又可以作为文本解码器的文本变换器。具体实现如下:

  • 创建了一组可学习的Query token作为图像变换器的输入。
  • Query通过自注意力层相互交互,并通过交叉注意层(每隔一个transformer块插入)与冻结的图像特征交互。
  • Query还可以通过相同的自注意层与文本进行交互。根据预训练任务的不同,应用不同的自注意掩码来控制Query-文本交互
  • 用BERTbase的预训练权重初始化Q-Former,交叉注意力层是随机初始化的。Q-Former总共包含188M个参数。请注意,Query被视为模型参数。

实验中使用了32个Query,其中每个Query的维度为768(与Q-Former的隐藏维度相同)。使用Z来表示输出Query表示。Z的大小(32×768)远小于冻结图像特征的大小(例如,ViT-L/14的257×1024)。这种瓶颈架构与预训练目标一起工作,迫使查询提取与文本最相关的视觉信息

3.2 从冻结图像编码器中进行视觉语言表示学习

表示学习阶段,将Q-Former连接到冻结图像编码器,并使用图像-文本对进行预训练。受BLIP的启发,共同优化了三个共享相同输入格式和模型参数的预训练目标。每个目标在Query和文本之间使用不同的注意力mask策略来控制它们的交互(见图2)

三个预训练目标:

  1. 图像-文本对比学习(ITC)学习对齐图像表示和文本表示,以使它们的相互信息最大化。它通过对比正对与负对的图像文本相似性来实现这一点。将来自图像转换器的输出查询表示Z与来自文本转换器的文本表示t对齐,其中t是[CLS]标记的输出嵌入。由于Z包含多个输出token(每个查询一个),首先计算每个查询输出与t之间的成对相似性,然后选择最高的一个作为图像-文本相似性。为了避免信息泄露,使用了一个单峰值自注意掩码,其中查询和文本不允许相互看到。由于使用了冻结图像编码器,与端到端方法相比,可以为每个GPU拟合更多的样本。因此可以使用in-batch negative,而不是BLIP中的动量队列。

  2. 基于图像的文本生成(ITG)损失训练 Q-Former在给定输入图像作为条件的情况下生成文本。由于Q-Former的架构不允许冻结图像编码器和文本token之间的直接交互,因此生成文本所需的信息必须首先由查询提取,然后通过自注意层传递给文本token。因此,查询被迫提取视觉特征,以捕获有关文本的所有信息。使用多模式因果自注意掩码来控制查询-文本交互,类似于UniLM中使用的掩码。查询可以相互关注,但不能关注文本标记。每个文本标记都可以处理所有查询及其以前的文本标记。 还将[CLS]令牌替换为新的[DEC]标记,作为通知解码任务的第一个文本token。

  3. 图像-文本匹配(ITM) 学习图像和文本表示之间的细粒度对齐。这是一项二元分类任务,要求模型预测图像-文本对是正(匹配)还是负(不匹配)。使用双向自注意掩码,所有查询和文本都可以相互关注。 输出查询嵌入Z来捕获多模式信息。将每个输出查询嵌入到一个两类线性分类器获得一个logit,并将所有查询的logits平均,作为输出匹配分数。采用了李等人的hard negative挖掘策略来创建信息negatives pairs。

3.3.从冻结LLM中引导视觉到语言生成学习

生成预训练阶段,将Q-Former(附带冻结图像编码器)连接到冻结LLM,以获取LLM的生成语言能力。如图3所示。

  • 使用全连接(FC)层将输出查询嵌入Z线性投影到与LLM的文本嵌入相同的维度中。
  • 将投影的Query嵌入预处理为输入文本嵌入。它们起到了软视觉提示的作用,将LLM置于Q-Former提取的视觉表示之上。

由于Q-Former已经过预训练,可以提取语言信息性的视觉表示,因此它有效地充当了一个信息瓶颈,将最有用的信息提供给LLM,同时去除不相关的视觉信息。这减轻了LLM学习视觉语言对齐的负担,从而缓解了灾难性的遗忘问题。

两种类型的LLM

  • 基于解码的LLM:在语言模型丢失的情况下进行预训练,其中冻结的LLM的任务是根据Q-Former的视觉表示生成文本。
  • 基于编码器-解码器的LLM:使用前缀语言模型损失进行预训练,将文本分为两部分。前缀文本与视觉表示连接,作为LLM编码器的输入。后缀文本被用作LLM解码器的生成目标。

在这里插入图片描述
图3 BLIP-2对语言生成预训练的第二阶段, 从冻结的大型语言模型(LLM)中引导生成。(顶部)引导基于解码器的LLM(例如OPT)。(底部)引导基于编码器-解码器的LLM(例如FlanT5)。全连接层从Q-Former的输出维度适应所选LLM的输入维度。

3.4.模型预训练

预训练数据

  • 使用与BLIP相同的预训练数据集,包括COCO、Visual Genome、CC3M、CC12M、SBU和来自LAION400M数据集的115M张图像。采用BLIP中的CapFilt方法为网络图像创建合成字幕。
  • 具体地,用BLIPlarge字幕模型生成10个字幕,并基于CLIP-ViT-L/14模型生成的图像-文本相似性对合成字幕与原始网络字幕进行排序。将每个图像的前两个字幕作为训练数据,并在每个预训练步骤随机抽取一个。

经过预训练的图像编码器和LLM

  • 对于冻结图像编码器,探索了两种最先进的预训练视觉转换器模型:(1)CLIP的ViT-L/14和(2)EVA-CLIP的ViT-g/14。删除了ViT的最后一层,并使用了倒数第二层的输出特性,这会带来稍好的性能。
  • 对于冻结语言模型,探索了基于解码器的LLM的无监督训练的OPT模型族,以及基于编码器-解码器的LLMs的指令训练的FlanT5模型族。

训练前设置

  • 第一阶段进行了250k步的预训,在第二阶段进行了80k步的预训。
  • 在第一阶段中对ViT-L/ViT-g使用2320/1680的batch,在第二阶段中对OPT/FranT5使用1920/1520的batch。
  • 在预训练期间,将冻结的ViTs和LLMs参数转换为FP16。预训练比现有的大规模VLP方法更便于计算。
  • 所有模型都使用相同的预训练超参数集。
  • 使用AdamW优化器,设置β1=0.9,β1=0.98,重量衰减为0.05。
  • 使用余弦学习率衰减,峰值学习率为1e-4,线性预热为2k步。
  • 第二阶段的最低学习率为5e-5。
  • 使用大小为224×224的图像,并通过随机调整大小的裁剪和水平翻转进行增强。

实验结果

4.1.指示的零样本图像到文本生成

![](https://img-blog.csdnimg.cn/76eba01137b34f8fb8d25936c220
在这里插入图片描述
图4 使用BLIP-2模型w/ViT-g和FlanT5XXL的指示零样本图像到文本生成的精选示例,其中显示了广泛的功能,包括视觉对话、视觉知识推理、视觉共感推理、故事讲述、个性化图像到文本的生成等。

表1 BLIP-2在各种零样本视觉语言任务中的结果概述。与以前最先进的型号相比。BLIP-2在视觉语言预训练期间实现了最高的零样本性能,同时所需的可训练参数数量大大减少。
在这里插入图片描述

表2 与最先进的零样本视觉问答方法进行比较
在这里插入图片描述
对表二的观察结果:更强的图像编码器或更强的LLM都会带来更好的性能。这一观察结果验证了BLIP-2是一种通用的视觉语言预训练方法,可以有效地在视觉和自然语言领域快速发展。这一观察结果得到了几个事实的支持:

  1. ViT-g在OPT和FlanT5方面都优于ViT-L。
  2. 在同一LLM系列中,较大的型号优于较小的型号。
  3. FlanT5是一种指令调谐LLM,在VQA上优于无监督训练的OPT。
    在这里插入图片描述
    图5 视觉语言表征学习对视觉对语言生成性学习的影响。如果没有表征学习,Q-Former就无法弥补模态缺口,导致零样本VQA的性能显著降低。

4.2.图像字幕

  • 为图像字幕任务微调BLIP-2模型,该任务要求模型为图像的视觉内容生成文本描述。
  • 使用提示“a photo of”作为LLM的初始输入,并在语言建模丢失的情况下训练模型生成标题。
  • 在微调过程中保持LLM冻结,并与图像编码器一起更新Q-Former的参数。
  • 结果如表3所示。与现有方法相比,BLIP-2在NoCaps上有了显著的改进,实现了最先进的性能,展示了对域外图像的强大泛化能力

表3与NoCaps和COCO Caption上最先进的图像字幕方法的比较。所有方法都优化了微调过程中的交叉熵损失。其中C: CIDEr,S:SPICE,B@4:BLEU@4.
在这里插入图片描述

4.3.视觉问答

  • 给定带注释的VQA数据,微调了Q-Former和图像编码器的参数,同时保持LLM冻结。
  • 对开放式答案生成损失进行了微调,其中LLM接收Q-Former的输出和问题作为输入,并被要求生成答案。
  • 为了提取与问题更相关的图像特征,在问题上附加了Q-Former条件。具体地说,问题标记被作为输入提供给Q-Former,并通过自注意层与查询交互,这可以引导Q-Former的交叉注意层关注信息更丰富的图像区域。
  • 表4展示了BLIP-2在开放式生成模型中的结果。

表4 与最先进的模型进行比较,这些模型经过微调,可用于视觉问答
在这里插入图片描述

4.4.图像文本检索

  • 由于图像文本检索不涉及语言生成,直接对第一阶段的预训练模型进行微调,不使用LLM。具体而言,使用与预训练相同的目标(即ITC、ITM和ITG)在COCO上与Q-Former一起微调图像编码器。 结果如表5所示。与现有的零样本图像文本检索方法相比,BLIP-2实现了最先进的性能。
  • ITC和ITM损失对于图像文本检索至关重要,因为它们直接学习图像文本相似性。表6显示了ITG的损失有利于图像文本检索。这一结果支持了在表示学习目标中的设计:ITG损失迫使查询提取与文本最相关的视觉特征,从而改善视觉语言对齐

表5与最先进的图像-文本检索方法进行比较,在COCO上进行微调,并将零样本传输到Flickr30K。
在这里插入图片描述

Limitation

  • 由于图文数据集大多数是一对一的匹配,所以很难让模型建立上下文的联系,主要是因为LLM模型的局限性(最近的LLM可以在给定少量例子的情况下进行上下文学习,但LLM无法从中学习单个序列中多个图像-文本对之间的相关性)Flamingo论文使用了一个来源紧密的交错图像和文本数据集(M3W),每个序列有多个图像和文本对。类似的数据集的创建也是未来工作的目标。

  • 由于各种原因,BLIP-2的图像到文本生成可能会产生不令人满意的结果,包括LLM的知识不准确、激活了不正确的推理路径,或者没有关于新图像内容的最新信息(见图7)。

  • 由于使用了冻结模型,BLIP-2继承了LLM的风险,例如输出攻击性语言、传播社会偏见或泄露私人信息。补救方法包括使用说明来指导模型的生成或在删除有害内容的过滤数据集上进行训练

在这里插入图片描述
图6 使用BLIP-2型号w/ViT-g和FlanT5XXL生成指示的零样本图像到文本的输出示例不正确,分别是错误的建立联系,错误的推断依据,过时的知识库

在这里插入图片描述
图7 VQA微调的模型架构,其中LLM接收Q-Former的输出和问题作为输入,然后预测答案。还可以将该问题作为Q-Former的条件,使得提取的图像特征与该问题更相关。

表6 基于图像的文本生成(ITG)损失通过强制查询来提取与语言相关的视觉特征来提高图像文本检索性能
在这里插入图片描述

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值