上一篇文章上文中讲解了 BLIP(Bootstrapping Language-Image Pretraining)模型的一些思考,本文将讲述一个BLIP的升级版 BLIP-2.html" title=BLIP-2>BLIP-2,讲述BLIP-2.html" title=BLIP-2>BLIP-2模型的模型结构与自己的一些见解。
BLIP2_2">1、BLIP-2.html" title=BLIP-2>BLIP-2框架概述
BLIP-2.html" title=BLIP-2>BLIP-2模型的整个框架与BLIP比较来看相对抽象,具体如下所示:
从BLIP-2.html" title=BLIP-2>BLIP-2模型的整个框架爱上看,BLIP-2.html" title=BLIP-2>BLIP-2由这么几个部分组成,图像输入了图像编码器(Image Encoder),得到的结果与文本(Text)在Q-Former(BERT初始化)里进行融合,最后送入LLM模型,进行文本的生成。
- Image Encoder:负责从输入图片中提取视觉特征,文章中试验了CLIP 训练的 ViT-L/14和EVA-CLIP训练的 ViT-g/14。
- Q-Former:负责弥合视觉和语言两种模态的差距,Queries是训练的参数。
- Large Language Model(LLM):负责文本生成,文章中试验了decoder-based LLM 和encoder-decoder-based LLM。
从上述的网络框架可以看出,BLIP-2.html" title=BLIP-2>BLIP-2模型的主要训练任务其实是在训练Q-Former模块。当然,BLIP-2.html" title=BLIP-2>BLIP-2的最大创新点也是基于Q-Former模块。其次,比较重要的部分就是如何将Q-Former模块输出与LLM模型进行结合。
BLIP2_12">2、BLIP-2.html" title=BLIP-2>BLIP-2网络结构详解
BLIP-2.html" title=BLIP-2>BLIP-2模型的整个框架与BLIP比较来看相对抽象,但是拆开来看并不复杂。我们从Q-Former模块入手。
2.1 表征学习阶段
BLIP-2.html" title=BLIP-2>BLIP-2中Q-Former模块第一个阶段的训练过程可以称为表征学习阶段。具体如下所示:
很显然,BLIP-2.html" title=BLIP-2>BLIP-2延续了BLIP的思想,联合优化3个具有相同输入格式和模型参数的预训练目标,每个目标函数使用不同的 mask Attention 来控制注意力的交互。
2.1.1 图文匹配任务 (Image-Text Matching, ITM)
ITM 是个二分类任务,要求模型预测图像-文本对是正样本 (匹配) 还是负样本 (不匹配)。ITM可以更加细粒度地对齐图像和文本的表征,使其互信息最大化。实现过程:将Image Transformer输出的每个Query嵌入输入到一个二类线性分类器中以获得对应的logit,然后将所有的logit平均,再计算匹配分数。ITM 的 Attention Mask 方法如上图中绿色框中所示,采用 Bi-directional Self-Attention Mask,允许 Queries 和 Text 相互关注。
2.1.2 图文对比学习 (Image-Text Contrastive Learning, ITC)
ITC是通过计算图像与文本的对比度来提高图文信息提取的能力。 Q-Former模块中, 作者实现 ITC 的方法是计算 Queries 的输出和 Text Transformer 的 [CLS] token 输出的对比学习损失。因为有多个 Queries 的输出,因此作者首先计算每个 Queries 的输出和[CLS] token 输出之间的成对相似度,然后选择最高的一个作为最终的图文相似度。ITC 的 Attention Mask 方法采用上图中红色框部分,采用Uni-modal Self-Attention Mask的方式,不允许 Queries 和 Text 相互关注。
2.1.3 基于图像的文本生成 (Image-Grounded Text Generation, ITG)
ITG 是在给定输入图像作为条件的情况下,训练 Q-Former 生成文本,迫使Query提取包含文本信息的视觉特征。由于 Q-Former 的架构不允许冻结的图像编码器和文本标记之间的直接交互,因此生成文本所需的信息必须首先由Query提取,然后通过自注意力层传递给文本标记。Queries 应该具备提取捕获了所有文本信息的视觉特征的能力。
ITG采用Multi-modal Causal Self-Attention Mask来控制Query和Text的交互,Query可以相互关注,但不能关注Text标记,每个Text标记都可以处理所有Query及其前面的Text标记。这里将 [CLS] 标记替换为新的 [DEC] 标记,作为第一个文本标记来指示解码任务。
2.2 生成学习阶段
在生成预训练的阶段,作者把 Q-Former 和冻结参数的 LLM 连接起来,以利用 LLM 的文本生成能力。图像的表征和 Queries 输入 Q-Former后得到 Queries 的输出 ,经过一个全连接层与 Text token 的维度对齐之后输入给 LLM Decoder或是LLM Encoder。其中, Queries 的输出就蕴含了视觉信息。整个Q-Former从本质上就是增强模型理图像和文本之间的交互的表现能力,输出作为LLM模型的Soft Visual Prompt。
BLIP-2.html" title=BLIP-2>BLIP-2试验了两种类型的 LLM,分别是基于纯 Decoder 架构的和基于 Encoder-Decoder 架构的。对于基于纯 Decoder 架构的模型(黄色框部分),使用语言建模目标函数进行训练。冻结参数的 LLM 的任务是根据 Q-Former 提供的视觉表征来生成文本。对于基于 Encoder-Decoder 架构的模型(红色框部分),把文本分成两段,前缀文本与Queries 的输出作为LLM中Encoder的输入,Decoder输出后缀文本。
BLIP-2.html" title=BLIP-2>BLIP-2中的视觉模型使用CLIP训练的 ViT-L/14和EVA-CLIP训练的 ViT-g/14,LLM模型采用的是OPT(纯Decoder 架构)和FlanT5(Encoder-Decoder 架构)。
BLIP2_43">3、BLIP-2.html" title=BLIP-2>BLIP-2的几点思考
1)Q-Former 的主要作用
Q-Former经过预训练后,可以提取包含语言信息的视觉表示,因此它可以有效地充当信息瓶颈,将最有用的信息提供给 LLM,同时删除不相关的视觉信息,减轻了 LLM 学习视觉语言对齐的负担。
2)BLIP与BLIP-2.html" title=BLIP-2>BLIP-2 在图文信息融合方面有哪些不同的思路
- BLIP主要是通过视觉-文本编码器中的Cross Attention直接进行图像与文本的融合;
- BLIP-2.html" title=BLIP-2>BLIP-2分为两步,第一步是Queries与文本通过Self Attention进行特征融合,将融合的结果与图像进行Cross Attention的特征融合。
我们可以认为BLIP是图像与文本的强制性融合,而BLIP-2.html" title=BLIP-2>BLIP-2通过可学习的Queries作为“润滑剂”间接完成图像与文本的融合。
3)BLIP-2.html" title=BLIP-2>BLIP-2 如何节约计算成本
其实这个问题非常容易理解。BLIP-2.html" title=BLIP-2>BLIP-2在训练模型过程中使用已经预训练好的图像编码器与LLM模型,借助现成的冻结参数的预训练视觉模型和大型语言模型进行模型的训练。这个方法大大降低了训练的成本。