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

点击下方卡片,关注 「集智书童」 公众号

点击加入👉「集智书童」交流群

这篇文章整理了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

picture.image

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

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

picture.image

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

picture.image

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

2

BLIP-2

picture.image

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

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

picture.image

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

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

picture.image

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

picture.image

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

3

InstructBLIP

picture.image

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。

picture.image

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

picture.image

picture.image

扫码加入👉「集智书童」交流群

(备注: 方向+学校/公司+昵称 )

picture.image

picture.image

picture.image

picture.image

picture.image

picture.image

想要了解更多:

前沿AI视觉感知全栈知识👉「分类、检测、分割、关键点、车道线检测、3D视觉(分割、检测)、多模态、目标跟踪、NerF」

行业技术方案 👉「AI安防、AI医疗、AI自动驾驶」

AI模型部署落地实战 👉「CUDA、TensorRT、NCNN、OpenVINO、MNN、ONNXRuntime以及地平线框架」

欢迎扫描上方二维码,加入「 集智书童-知识星球 」,日常分享论文、学习笔记、问题解决方案、部署方案以及全栈式答疑,期待交流!

免责声明

凡本公众号注明“来源:XXX(非集智书童)”的作品,均转载自其它媒体,版权归原作者所有,如有侵权请联系我们删除,谢谢。

点击下方“ 阅读原文 ”,

了解更多AI学习路上的 「武功秘籍」

0
0
0
0
评论
未登录
暂无评论