前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >多模态统一框架BLIP系列工作,从BLIP到InstructBLIP

多模态统一框架BLIP系列工作,从BLIP到InstructBLIP

作者头像
圆圆的算法笔记
发布2023-08-17 08:34:28
2.1K0
发布2023-08-17 08:34:28
举报
文章被收录于专栏:圆圆的算法笔记

这篇文章整理了Salesforce Research在多模态领域提出的NLIP图文统一框架,利用图文数据训练能够解决各类图文任务的统一模型(图文匹配、看图说话等)。共包含3个工作:BLIP、BLIP-2、InstructBLIP。三者的核心点如下:

BLIP:BLIP初步建立了一套多专家网络,用3种不同的文本模型支持多种类型的图文任务。

BLIP-2:BLIP-2提出了Q-Transformer,用来适配预训练图像模型和预训练语言模型,可以在两种模态模型参数不变的情况下实现多模态对齐,解决各类多模态任务。

InstructBLIP:基于BLIP框架,探索使用Instruct Tuning的思路实现多模态中的zero/few-shot learning。

1、BLIP

  • 论文标题:BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation
  • 下载地址:https://arxiv.org/pdf/2201.12086.pdf
  • 开源代码:https://github.com/salesforce/BLIP

本文提出了一种类似于多专家的多模态模型,以此来兼容多种类型的任务,在多种类型数据上实现训练。同时,在数据维度上,提出了一种CapFilt的方法,生成高质量的图文数据,缓解CLIP等模型中使用Web抓取的数据中噪音较大的问题。

BLIP的整体模型结构如下图,包括1个图像单模态Encoder、1个文本单模态Encoder、1个文本多模态Encoder、1个文本多模态Decoder。图像Encoder采用的是ViT,文本Encoder采用的是BERT。其中多模态的文本Encoder增加了一层cross attention,以图像侧信息作为额外输入,建模图文之间的细粒度关系。文本Decoder采用的是单向attention,主要目的是用于根据图像生成文本的任务。

BLIP的训练任务主要包括ITC、ITM、LM三种。其中ITC是CLIP中的图文对比学习训练方式,拉近相同含义的图像和文本的整体表示。ITM是图文匹配任务,它与图文对比学习的主要区别是,引入了图文之间的cross attention,进行细粒度的图像和文本匹配用来预测,可以理解为单塔模型和双塔模型的区别。LM任务是根据图像生成文本任务,主要用来让Decoder具备文本生成能力。

在数据层面上,文中提出了CapFilt方法,用来生成高质量的图文数据。原来的CLIP使用的图文数据都是Web上自动挖掘的,包含大量噪声。而本文的数据构造方法是,首先从Web上挖掘大量图像,然后用一个看图说话的模型根据图像生成文本。最后再使用图文匹配模型,对图像和生成的文本进行打分,过滤掉打分较低的潜在噪声。

2、BLIP-2

  • 论文标题:BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models
  • 下载地址:https://arxiv.org/pdf/2301.12597.pdf
  • 开源代码:https://github.com/salesforce/LAVIS/tree/main/projects/blip2

BLIP-2的目标和BLIP相同,也是要打造一个适用于多种任务的统一多模态模型,但是具体的实现方式不同。BLIP-2的核心是如何利用预训练好的图像模型和文本模型。图像模型和文本模型在各自的领域进行了预训练,其单模态的能力非常强,但是由于两个模态之间的空间无法对齐,无法直接在多模态使用。

本文提出的解决思路是,构造一个中间网络,作为预训练图像模型和预训练语言模型得到信息转换媒介,在整个训练过程中,只更新这个中间网络,让预训练对的单模态图文模型参数冻结。这种方式既能直接应用单模态的高质量模型,又能实现更轻量级的模型finetune。

这个中间网络文中称为Q-Former,其训练主要分为两个阶段。第一阶段让Q-Former适配预训练的图像Encoder,第二阶段让Q-Former适配预训练的语言模型,借助语言模型实现更强的文本生成能力。

第一阶段的整体结构图如下,Q-Former包括两个Transformer。左侧Transformer的输入是Queries和预训练图像Encoder生成的图像编码。其中Queries是一些随机初始化的向量,目的是用来和图像进行corss attention,生成相应的转换后的表征。右侧Transformer输入文本。在得到经过Q-Former转换后的图像和文本表征后,使用BLIP中的三类任务进行Q-Former训练。

第二阶段进一步引入预训练的语言模型。将图像经过图像Encoder和Q-Former生成的向量,作为预训练语言模型的前缀,类似于prefix soft prompt(之前的文章中进行过prefix soft prompt的思路,简单来说是在句子前面加一个向量前缀,影响语言模型的后续生成)。预训练语言模型根据soft prompt生成文本。这个过程使用看图说话任务进行优化,让Q-Former能够更好地生成适用于文本生成的图像表征。

整个BLIP-2借助了单模态模型的强大能力,finetune一个中间媒介实现了高效的多模态统一模型训练。

3、InstructBLIP

  • 论文标题:InstructBLIP: Towards General-purpose Vision-Language Models with Instruction Tuning
  • 下载地址:https://arxiv.org/pdf/2305.06500.pdf
  • 开源代码:https://github.com/salesforce/LAVIS/tree/main/projects/instructblip

Instruct Tuning在大模型领域取得了非常不错的效果,这种方式在多模态领域也逐渐得到应用,例如BLIP-2就将图像Encoder和Q-Former生成的图像表征作为预训练语言模型的prefix soft prompt。这篇文章进一步探索了多模态领域的Instruct Tuning,相比文本,图像有着更丰富的样式种类,如何实现一种各类图文数据都可用的Instruct Tuning方法非常具有挑战性。

本文基于BLIP-2的框架,提出了InstructBLIP方法。整体结构如下,使用BLIP-2中的Image Encoder和Q-Former生成图像表征,然后做为prefix soft prompt拼接到Instruction前面,整体输入到预训练语言模型中,让预训练语言模型生成预测结果。此外,Instruction也会作为Q-Former的输入,和Queries进行交互,指导从图像中提取相关的特征作为prompt。

从多个数据集上的实验结果可以看出,InstructBLIP取得了最新的SOTA效果,比原来的BLIP-2效果提升一大截,验证了InstructBLIP对的优势。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-05-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 圆圆的算法笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档