发表时间:PMLR 2023
论文链接:https://proceedings.mlr.press/v202/li23q/li23q.pdf
作者单位:Salesforce Research
Motivation:由于大规模模型的端到端训练,视觉和语言预训练的成本变得越来越令人望而却步。
解决方法:本文提出了 BLIP-2,这是一种通用且高效的预训练策略,可以从现成的冻结的预训练图像编码器和冻结的大型语言模型引导视觉语言预训练。
我们使用两阶段预训练的 Q-Former 弥合模态差距:表示学习阶段和生成学习阶段。
第一阶段从冻结的图像编码器引导视觉语言表示学习。第二阶段从冻结的语言模型引导视觉语言生成学习。
实现方式:在第一个预训练阶段(表示学习阶段),我们执行视觉语言表示学习,它强制 Q-Former 学习与文本最相关的视觉表示。
我们创建了一组可学习的查询嵌入(learned queries)作为图像转换器的输入。查询通过自注意力层相互交互,并通过交叉注意力层(插入所有其他变压器块)与冻结图像特征交互。文本的self-attention与learned queries的self-attention是权值共享的,所以能让learned queries与text进行交互。
第一阶段的细节:在表示学习阶段,将 Q-Former 连接到冻结的 Image Encoder,训练集为图像-文本对,通过联合优化三个预训练目标,在Query和Text之间分别采用不同的注意力掩码策略,从而控制Image Transformer和Text Transformer的交互方式。
Question:是采用的不同的注意力掩码策略?具体细节是怎么实现的?(这个地方设计的比较精细,需要经过三个不同目标函数的预训练去训练Q-Former,得到学习好的learned queries,比较复杂)
-
(i)ITC (Image-Text Contrastive Learning) ITC的优化目标是对齐图像嵌入和文本嵌入,将来自Image Transformer输出的Query嵌入与来自Text Transformer输出的文本嵌入对齐,为了避免信息泄漏,ITC采用了单模态自注意掩码,不允许Query和Text相互注意(因为要将文本的embedding和视觉的enbedding之间进行对齐,所以两个模态之间没有attention,采用了单模态自注意掩码)。具体来说,Text Transformer的文本嵌入是 [CLS] 标记的输出嵌入,而Query嵌入则包含多个输出嵌入(应该等于learned Queries的数量),因此首先计算每个Query输嵌入与文本嵌入之间的相似度,然后选择最高的一个作为图像-文本相似度。
-
(ii) ITG (Image-grounded Text Generation) ITG 是在给定输入图像作为条件的情况下,训练 Q-Former 生成文本,迫使Query提取包含文本信息的视觉特征。由于 Q-Former 的架构不允许冻结的图像编码器和文本标记之间的直接交互,因此生成文本所需的视觉信息必须首先由Query提取,然后通过自注意力层传递给文本标记。ITG采用多模态 Causal Attention 掩码来控制Query和Text的交互,Query可以相互关注,但不能关注Text标记,每个Text标记都可以处理所有Query及其前面的Text标记。这里将 [CLS] 标记替换为新的 [DEC] 标记,作为第一个文本标记来指示解码任务。
-
(iii)ITM (Image-Text Matching) ITM是一个二元分类任务,通过预测图像-文本对是正匹配还是负匹配,学习图像和文本表示之间的细粒度对齐。这里将Image Transformer输出的每个Query嵌入输入到一个二类线性分类器中以获得对应的logit,然后将所有的logit平均,再计算匹配分数。ITM使用双向自注意掩码(Bi-directional),所有Query和Text都可以相互关注。
第二阶段:在生成预训练阶段,将 Q-Former连接到冻结的 LLM,以利用 LLM 的语言生成能力。这里使用全连接层将输出的Query嵌入线性投影到与 LLM 的文本嵌入相同的维度,然后将投影的Query嵌入添加到输入文本嵌入前面。由于 Q-Former 已经过预训练,可以提取包含语言信息的视觉表示,因此它可以有效地充当信息瓶颈,将最有用的信息提供给 LLM,同时删除不相关的视觉信息,减轻了 LLM 学习视觉语言对齐的负担。
BLIP-2试验了两种类型的 LLM:基于解码器的 LLM 和基于编码器-解码器的 LLM。对于基于解码器的 LLM,使用语言建模损失进行预训练,其中冻结的 LLM 的任务是根据 Q-Former 的视觉表示生成文本。对于基于编码器-解码器的 LLM,使用前缀语言建模损失进行预训练,将文本分成两部分,前缀文本与视觉表示连接起来作为 LLM 编码器的输入,后缀文本用作 LLM 解码器的生成目标。
两个阶段都是在训练Q-former。
实验:
-
outperforms Flamingo80B by 8.7% on zero-shot VQAv2 with 54x fewer trainable parameters.
-
on various zero-shot vision-language tasks:Instructed Zero-shot Image-to-Text Generation。Image Captioning,Visual Question Answering,Image-Text Retrieval.
结论:
为了融合特征,引入了Learned Query。可以看到这些Query通过Cross-Attention与图像的特征交互,通过Self-Attention与文本的特征交互。这样做的好处有两个:
-
这些Query是基于两种模态信息得到的;
-
无论多大的视觉Backbone,最后都是Query长度的特征输出,大大降低了计算量。比如在实际实验中,ViT-L/14的模型的输出的特征是257x1024的大小,最后也是32x768的Query特征。