论文地址https://arxiv.org/pdf/2301.12597.pdf
BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models
BLIP-2:使用冻结图像编码器和大型语言模型的引导语言图像预训练
目录
引言
BLIP-2 一种通用且有效的预训练策略。使用现成的冷冻的预训练图像编码器和冷冻的大型语言模型引导视觉语言预训练。
通过轻量级的Querying-Transformer弥补了模态缺口,该模块通过两个阶段进行预训练。
- 从冻结的图像编码器中引导视觉语言表示学习
- 进行视觉语言表征学习
- 强制Q-Former学习与文本最相关的图像表征
- 从冻结的语言模型中引导视觉语言生成学习
- 通过将Q-Former的输出连接到冻结的LLM执行图像到文本的生成学习,并训练Q-Former,使其输出的图像可以被LLM解释。
视觉语言预训练(VLP)在迅速发展,本文提出了从现成的预训练视觉和语言模型上一种高效的通用的VLP方法。
为了实现与冻结单峰模型的有效视觉语言对齐,我们提出了一种用新的两阶段预训练策略训练的QFormer查询转换器。其使用一种可以学习的查询向量来从冻结图像编码器中学习视觉特征,成为冻结图像模型与冻结LLM模型之间的桥梁。
以上步骤我们命名为BLIP2
其主要优势为
- 有效利用LLM与图像模型
- 在如FlanT5以及OPT等LLM的支持下,可以提升Blip2执行遵循自然语言指令的零样本图像到文本生成。从而可以实现可视化的部分功能。
- 效率高,参数少。
相关工作
端到端(end2end)图像语言预训练
大多数VLP方法使用大规模的图像-文本对数据集执行端到端的预训练。
随着模型大小的不断增加,预训练可能会产生极高的计算成本。此外,端到端预训练模型利用现成的单峰预训练模型(如LLM)是不灵活的。
模块化图像语言预训练
利用现成的模型并使其在VLP阶段进行冻结,关键挑战是:如何将图像特征与文本对齐。
与现有方法不同,BLIP-2可以有效地利用冻结图像编码器和冻结LLM执行各种视觉语言任务,以更低的计算成本实现更强的性能。
方法概述
Q-Former作为可训练模块,从图像编码器中提取固定数量的输出特征,与输入图像分辨率无关。
Q-Former由两个transformer子模块组成,他们共享自注意力层。
- 与冻结图像编码器交互进行图像特征提取的图像transformer
- 创建一组可学习查询embedding作为图像transformer的输入
- 查询通过自注意力层相互交互,同时查询embedding也被视为模型参数
- 同时查询通过cross attention层与 冻结的图像特征交互
- 根据预训练的任务不同,使用不同的自注意力掩码来控制Query与文本的交互
- 用bert - base初始化QFormer
- 既可以用作文本编码器也可以用作解码器的文本transformer
从冻结图像编码器中进行引导图像语言表示学习
将Q-Former链接到冻结图像编码器,并使用图像文本对进行预训练。我们的目标是训练Q-Former,以便Query能够学习提取文本中信息量最大的图像表示。
受BLIP(Li et al.,2022)的启发,我们共同优化了三个共享相同输入格式和模型参数的预训练目标。每个目标在查询和文本之间使用不同的注意力mask策略来控制它们的交互。
图文对比学习
学习对齐图像表示和文本表示,以使它们的相互信息最大化。它通过对比正对与负对的图像文本相似性来实现这一点。
我们将来自图像转换器的输出查询表示Z与来自文本转换器的文本表示t对齐,其中t是[CLS]标记的输出嵌入。由于Z包含多个输出嵌入(每个查询一个),我们首先计算每个查询输出与t之间的成对相似性,然后选择最高的一个作为图像-文本相似性。
为了避免信息泄露,我们使用了一个单峰自注意掩码,其中查询和文本不允许相互看到。
基于图像的文本生成(有点像自回归)
训练Q-Former在给定输入图像作为条件的情况下生成文本。
由于Q-Former的架构不允许冻结图像编码器和文本token之间的直接交互,因此生成文本所需的信息必须首先由query提取,然后通过自注意力层传递给文本令牌。
因此,查询被迫提取视觉特征,以捕获有关文本的所有信息。
我们使用多模式因果自注意掩码来控制查询-文本交互,类似于UniLM中使用的掩码(Dong et al.,2019)。
query可以相互关注,但不能关注文本标记。每个文本标记都可以处理所有查询及其以前的文本标记。我们还将[CLS]令牌替换为新的[DEC]令牌,作为通知解码任务的第一个文本令牌。
图像文本匹配
旨在学习图像和文本表示之间的细粒度对齐。这是一项二元分类任务,要求模型预测图像-文本对是正(匹配)还是负(不匹配)。
我们使用双向自我关注掩码,所有查询和文本都可以相互关注。
输出查询嵌入Z因此捕获多模式信息。我们将嵌入到两类线性分类器中的每个输出查询馈送以获得logit,并将所有查询的logit平均作为输出匹配分数。
从冻结的语言模型中引导视觉语言生成学习
在生成预训练阶段,我们将QFormer(附带冻结图像编码器)连接到冻结LLM,以获取LLM的生成语言能力。
我们使用全连接(FC)层将输出查询嵌入Z线性投影到与LLM的文本嵌入相同的维度中,然后,将投影的查询嵌入预处理为输入文本嵌入。
我们实验了两种类型的LLM:基于解码器的LLM和基于编码器-解码器的LLM。
- 对于基于解码的LLM,我们在语言建模丢失的情况下进行预训练,其中冻结的LLM的任务是根据Q-Former的图像表示生成文本。 比如OPT
- 对于基于编码器-解码器的LLM,我们使用前缀语言建模损失进行预训练,其中我们将文本分为两部分。前缀文本与图像表示连接,作为LLM编码器的输入。后缀文本被用作LLM解码器的生成目标。比如T5
模型预训练
语料
我们使用与BLIP相同的预训练数据集,共有129M张图像,包括COCO(Lin et al.,2014)、Visual Genome(Krishna et al.,2017)、CC3M(Sharma et al.,2018)、CC12M(Changpinyo et al.。,2021)、SBU(Ordonez et al.,2011)和来自LAION400M数据集的115M张图像(Schuhmann et al.,2021)。
我们采用CapFilt方法(Li et al.,2022)为网络图像创建合成字幕。
具体而言,我们使用BLIPlarge字幕模型生成10个字幕,并基于CLIP-ViT-L/14模型生成的图像-文本相似性对合成字幕与原始网络字幕进行排序。我们将每个图像的前两个字幕作为训练数据,并在每个预训练步骤随机抽取一个。
图像编码器与LLM
图像
(1)CLIP的ViT-L/14(Radford等人,2021)
(2)EVA-CLIP的ViT-g/14(Fang等人,2022)。
LLM
基于解码器的LLM的无监督训练的OPT模型族(Zhang et al.,2022)
基于编码器-解码器的LLMs的指令训练的FlanT5模型族(Chung et al.,2021)。
训练设置
我们在第一阶段中对ViT-L/ViT-g使用2320/1680的批量大小,进行了250k步的预训练
第二阶段中对OPT/FranT5使用1920/1520的批量大小,进行了80k步的预训练
所有模型都使用相同的预训练超参数集。