BLIP-2通过轻量级的查询转换器弥补了模态缺口,该转换器分两个阶段进行预训练。第一阶段从冻结图像编码器中引导视觉语言表示学习。第二阶段从冻结的语言模型中引导视觉到语言生成性学习。晚上趁着忙完闲下来的时间拿来了BLIP-2的原文,这里主要是自己的论文阅读记录,感兴趣的话可以参考一下,如果想要进一步了解研究内容详情的话可以移步阅读原英文论文,地址在这里,如下所示:
摘要
由于大规模模型的端到端训练,视觉和语言预训练的成本变得越来越高。本文提出了BLIP-2,一种通用且高效的预训练策略,通过利用现成的冻结预训练图像编码器和冻结大型语言模型来引导视觉和语言预训练。BLIP-2通过一个轻量级的查询变换器(Querying Transformer)来弥合模态差距,该变换器分两个阶段进行预训练。第一阶段从冻结的图像编码器引导视觉和语言表示学习。第二阶段从冻结的语言模型引导视觉到语言的生成学习。BLIP-2在各种视觉和语言任务上达到了最先进的性能,尽管其可训练参数数量远少于现有方法。例如,我们的模型在零样本VQAv2上优于Flamingo80B 8.7%,尽管其可训练参数数量减少了54倍。我们还展示了模型在遵循自然语言指令的零样本图像到文本生成方面的涌现能力。
1 引言
视觉和语言预训练(VLP)研究在过去几年中取得了快速进展,开发了规模越来越大的预训练模型,以不断推动各种下游任务的最先进水平[Radford et al., 2021; Li et al., 2021, 2022; Wang et al., ; Alayrac et al., 2022; Wang et al., ]。然而,大多数最先进的视觉和语言模型在预训练期间由于使用大规模模型和数据集进行端到端训练而产生了高计算成本。视觉和语言研究处于视觉和语言的交叉点,因此自然期望视觉和语言模型能够从视觉和自然语言社区中现成的单模态模型中获益。在本文中,我们提出了一种通用且计算高效的VLP方法,通过利用现成的预训练视觉模型和语言模型进行引导。预训练的视觉模型提供了高质量的视觉表示。预训练的语言模型,特别是大型语言模型(LLMs),提供了强大的语言生成和零样本迁移能力。为了减少计算成本并对抗灾难性遗忘问题,单模态预训练模型在预训练期间保持冻结状态。
图1. BLIP-2框架概述。我们按照两阶段策略预训练一个轻量级的查询变换器(Querying Transformer)来弥合模态差距。第一阶段从冻结的图像编码器引导视觉-语言表示学习。第二阶段从冻结的LLM引导视觉到语言的生成学习,从而实现零样本指令驱动的图像到文本生成(更多示例参见图4)。
为了利用预训练的单模态模型进行VLP,关键在于促进跨模态对齐。然而,由于LLMs在其单模态预训练期间没有看到图像,冻结它们使得视觉和语言对齐变得特别具有挑战性。在这方面,现有方法(例如Frozen [Tsimpoukelli et al., 2021],Flamingo [Alayrac et al., ])采用图像到文本生成损失,我们发现这不足以弥合模态差距。
为了实现与冻结单模态模型的高效视觉和语言对齐,我们提出了一种查询变换器(Querying Transformer,Q-Former),通过一种新的两阶段预训练策略进行预训练。如图1所示,Q-Former是一个轻量级的变换器,使用一组可学习的查询向量从冻结的图像编码器中提取视觉特征。它在冻结的图像编码器和冻结的LLM之间充当信息瓶颈,将最有用的视觉特征传递给LLM以输出所需的文本。在第一阶段预训练中,我们进行视觉和语言表示学习,强制Q-Former学习与文本最相关的视觉表示。在第二阶段预训练中,我们通过将Q-Former的输出连接到冻结的LLM,并训练Q-Former使其输出视觉表示能够被LLM解释,从而进行视觉到语言的生成学习。
我们将我们的VLP框架命名为BLIP-2:通过冻结单模态模型进行语言-图像预训练。BLIP-2的关键优势包括:
-
BLIP-2有效地利用了冻结的预训练图像模型和语言模型。我们通过两阶段预训练的Q-Former来弥合模态差距:表示学习阶段和生成学习阶段。BLIP-2在各种视觉和语言任务上达到了最先进的性能,包括视觉问答、图像描述和图像-文本检索。
-
得益于LLMs(例如OPT [Zhang et al., 2022],FlanT5 [Chung et al., 2022]),BLIP-2可以通过提示进行遵循自然语言指令的零样本图像到文本生成,从而实现视觉知识推理、视觉对话等新兴能力(参见图4的示例)。
-
由于使用了冻结的单模态模型和轻量级的Q-Former,BLIP-2比现有的最先进方法更具计算效率。例如,BLIP-2在零样本VQAv2上优于Flamingo [Alayrac et al., 2022] 8.7%,尽管其可训练参数数量减少了54倍。此外,我们的结果表明,BLIP-2是一种通用方法,可以更高效地利用更先进的单模态模型以获得更好的VLP性能。
2 相关工作
端到端视觉和语言预训练
视觉和语言预训练旨在通过改进的性能学习多模态基础模型。根据下游任务的不同,提出了不同的模型架构,包括双编码器架构[Radford et al., 2021; Jia et al., 2021]、融合编码器架构[Tan & Bansal, 2019; Li et al., 2021]、编码器-解码器架构[Cho et al., 2021; Wang et al., ; Chen et al., ],以及最近的统一变换器架构[Li et al., 2022; Wang et al., ]。多年来还提出了各种预训练目标,并逐渐收敛到一些经过时间考验的目标:图像-文本对比学习[Radford et al., 2021; Yao et al., 2022; Li et al., 2021, 2022]、图像-文本匹配[Li et al., 2021, 2022; Wang et al., ]和(掩码)语言建模[Li et al., 2021, 2022; Yu et al., 2022; Wang et al., ]。
大多数VLP方法使用大规模图像-文本对数据集进行端到端预训练。随着模型规模的不断增加,预训练可能会产生极高的计算成本。此外,端到端预训练模型无法灵活利用现成的单模态预训练模型,例如LLMs [Brown et al., 2020; Zhang et al., 2022; Chung et al., 2022]。
模块化视觉和语言预训练
与我们更相似的是利用现成的预训练模型并在VLP期间保持其冻结状态的方法。一些方法冻结图像编码器,包括早期工作采用冻结的对象检测器提取视觉特征[Chen et al., 2020; Li et al., 2020; Zhang et al., 2021],以及最近的LiT [Zhai et al., 2022],使用冻结的预训练图像编码器进行CLIP [Radford et al., 2021]预训练。一些方法冻结语言模型,以利用LLMs的知识进行视觉到语言生成任务[Tsimpoukelli et al., 2021; Alayrac et al., 2022; Chen et al., ; Manas et al., 2023; Tiong et al., 2022; Guo et al., 2022]。使用冻结LLM的关键挑战是将视觉特征对齐到文本空间。为此,Frozen [Tsimpoukelli et al., 2021]微调图像编码器,其输出直接用作LLM的软提示。Flamingo [Alayrac et al., 2022]在LLM中插入新的交叉注意力层以注入视觉特征,并在数十亿图像-文本对上预训练新层。两种方法都采用语言建模损失,其中语言模型根据图像生成文本。
与现有方法不同,BLIP-2可以有效地利用冻结的图像编码器和冻结的LLM进行各种视觉和语言任务,以更低的计算成本实现更强的性能。
3 方法
我们提出了BLIP-2,一种新的视觉和语言预训练方法,通过冻结的预训练单模态模型进行引导。为了弥合模态差距,我们提出了一种查询变换器(Q-Former),通过两阶段预训练策略进行预训练:(1)冻结图像编码器的视觉和语言表示学习阶段和(2)冻结LLM的视觉到语言生成学习阶段。本节首先介绍Q-Former的模型架构,然后详细描述两阶段预训练过程。
模型架构
我们提出Q-Former作为可训练模块,以弥合冻结图像编码器和冻结LLM之间的差距。它从图像编码器中提取固定数量的输出特征,与输入图像分辨率无关。如图2所示,Q-Former由两个共享相同自注意力层的变换器子模块组成:(1)与冻结图像编码器交互的图像变换器,用于视觉特征提取,(2)可以作为文本编码器和文本解码器功能的文本变换器。我们将一组可学习的查询嵌入作为图像变换器的输入。查询通过自注意力层相互交互,并通过交叉注意力层与冻结的图像特征交互(每两个变换器块插入一个)。查询还可以通过相同的自注意力层与文本交互。根据预训练任务,我们应用不同的自注意力掩码来控制查询-文本交互。我们使用BERTbase [Devlin et al., 2019]的预训练权重初始化Q-Former,而交叉注意力层是随机初始化的。Q-Former总共包含188M参数。请注意,查询被视为模型参数。
图2. (左)Q-Former的模型架构和BLIP-2第一阶段视觉-语言表示学习的三个目标。我们联合优化三个目标,强制查询(一组可学习的嵌入)提取与文本最相关的视觉表示。(右)每个目标的自注意力掩码策略,以控制查询-文本交互。
在我们的实验中,我们使用32个查询,每个查询的维度为768(与Q-Former的隐藏维度相同)。我们用Z表示输出查询表示。Z的大小(32×768)远小于冻结图像特征的大小(例如ViT-L/14的257×1024)。这种瓶颈架构与我们的预训练目标一起,迫使查询提取与文本最相关的视觉信息。
从冻结图像编码器引导视觉和语言表示学习
在表示学习阶段,我们将Q-Former连接到冻结的图像编码器,并使用图像-文本对进行预训练。我们的目标是训练Q-Former,使得查询能够学习提取最具有文本信息的视觉表示。受BLIP [Li et al., 2022]的启发,我们联合优化了三个共享相同输入格式和模型参数的预训练目标。每个目标采用不同的查询-文本注意力掩码策略来控制它们的交互(参见图2)。
图3. BLIP-2的第二阶段视觉到语言生成预训练,从冻结的大型语言模型(LLMs)引导。(顶部)引导基于解码器的LLM(例如OPT)。(底部)引导基于编码器-解码器的LLM(例如FlanT5)。全连接层将Q-Former的输出维度适配到所选LLM的输入维度。
图像-文本对比学习(ITC)学习对齐图像表示和文本表示,使得它们的互信息最大化。它通过对比正样本对的图像-文本相似性与负样本对的相似性来实现这一点。我们将图像变换器的输出查询表示Z与文本变换器的文本表示t对齐,其中t是[CLS]标记的输出嵌入。由于Z包含多个输出嵌入(每个查询一个),我们首先计算每个查询输出与t之间的成对相似性,然后选择最高的作为图像-文本相似性。为了避免信息泄露,我们采用单模态自注意力掩码,其中查询和文本不允许相互看到。由于使用了冻结的图像编码器,我们可以比端到端方法在每个GPU上拟合更多的样本。因此,我们使用批次内负样本而不是BLIP中的动量队列。
图像基础文本生成(ITG)损失训练Q-Former生成文本,给定输入图像作为条件。由于Q-Former的架构不允许冻结图像编码器和文本标记之间的直接交互,生成文本所需的信息必须首先由查询提取,然后通过自注意力层传递给文本标记。因此,查询被迫提取捕捉文本所有信息的视觉特征。我们采用多模态因果自注意力掩码来控制查询-文本交互,类似于UniLM [Dong et al., 2019]中使用的掩码。查询可以相互关注,但不能关注文本标记。每个文本标记可以关注所有查询及其之前的文本标记。我们还用新的[DEC]标记替换[CLS]标记作为第一个文本标记,以表示解码任务。
图像-文本匹配(ITM)旨在学习图像和文本表示之间的细粒度对齐。它是一个二分类任务,模型被要求预测图像-文本对是正样本(匹配)还是负样本(不匹配)。我们使用双向自注意力掩码,其中所有查询和文本可以相互关注。因此,输出查询嵌入Z捕获了多模态信息。我们将每个输出查询嵌入输入到一个两类线性分类器中以获得一个logit,并将所有查询的logits平均作为输出匹配分数。我们采用Li et al. [2021, 2022]中的硬负样本挖掘策略来创建信息丰富的负样本对。
从冻结LLM引导视觉到语言生成学习
在生成预训练阶段,我们将Q-Former(附带冻结的图像编码器)连接到冻结的LLM,以利用LLM的生成语言能力。如图3所示,我们使用全连接层将输出查询嵌入Z线性投影到与LLM的文本嵌入相同的维度。投影的查询嵌入然后前置到输入文本嵌入中。它们作为软视觉提示,根据Q-Former提取的视觉表示来调节LLM。由于Q-Former已经过预训练以提取与语言相关的视觉表示,它有效地充当了一个信息瓶颈,将最有用的信息传递给LLM,同时去除不相关的视觉信息。这减轻了LLM学习视觉和语言对齐的负担,从而缓解了灾难性遗忘问题。
我们使用两种类型的LLM进行实验:基于解码器的LLM和基于编码器-解码器的LLM。对于基于解码器的LLM,我们使用语言建模损失进行预训练,其中冻结的LLM的任务是根据Q-Former的视觉表示生成文本。对于基于编码器-解码器的LLM,我们使用前缀语言建模损失进行预训练,其中我们将文本分成两部分。前缀文本与视觉表示连接作为LLM编码器的输入。后缀文本用作LLM解码器的生成目标。
模型预训练
预训练数据。我们使用与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]为网络图像创建合成字幕。具体来说,我们使用BLIP-large字幕模型生成10个字幕,并根据CLIP ViT-L/14模型生成的图像-文本相似度对合成字幕和原始网络字幕进行排名。我们为每个图像保留前两个字幕作为训练数据,并在每次预训练步骤中随机采样一个。
图4. 使用BLIP-2模型w/ ViT-g和FlanT5XXL进行指令驱动的零样本图像到文本生成的选定示例,展示了广泛的生成能力,包括视觉对话、视觉知识推理、视觉常识推理、讲故事、个性化图像到文本生成等。
表1. BLIP-2在各种零样本视觉-语言任务上的结果概述。与之前的最先进模型相比,BLIP-2在视觉-语言预训练期间需要最少的可训练参数数量,同时实现了最高的零样本性能。
表2. 与最先进方法在零样本视觉问答上的比较。
预训练的图像编码器和LLM。对于冻结的图像编码器,我们探索了两种最先进的预训练视觉变换器模型:(1)来自CLIP的ViT-L/14 [Radford et al., 2021]和(2)来自EVA-CLIP的ViT-g/14 [Fang et al., 2022]。我们移除ViT的最后一层,并使用倒数第二层的输出特征,这略微提高了性能。对于冻结的语言模型,我们探索了无监督训练的OPT模型系列[Zhang et al., 2022]用于基于解码器的LLM,以及指令训练的FlanT5模型系列[Chung et al., 2022]用于基于编码器-解码器的LLM。
表3. 与最先进图像描述方法在NoCaps和COCO Caption上的比较。所有方法在微调期间优化交叉熵损失。C: CIDEr, S: SPICE, B@4: BLEU@4。
预训练设置。我们在第一阶段预训练250k步,在第二阶段预训练80k步。我们在第一阶段使用ViT-L/ViT-g的批量大小为2320/1680,在第二阶段使用OPT/FlanT5的批量大小为1920/1520。在预训练期间,我们将冻结的ViTs和LLMs的参数转换为FP16,除了FlanT5我们使用BFloat16。我们发现与使用32位模型相比,性能没有下降。由于使用了冻结的模型,我们的预训练比现有的大规模VLP方法更具计算友好性。例如,使用单个16-A100(40G)机器,我们最大的模型使用ViT-g和FlanT5-XXL在第一阶段需要不到6天,在第二阶段需要不到3天。
所有模型使用相同的预训练超参数集。我们使用AdamW优化器[Loshchilov & Hutter, 2017],β1=0.9,β2=0.98,权重衰减为0.05。我们使用余弦学习率衰减,峰值学习率为1e-4,线性预热2k步。第二阶段的最小学习率为5e-5。我们使用224×224大小的图像,并使用随机调整大小裁剪和水平翻转进行增强。
4 实验
表1概述了BLIP-2在各种零样本视觉和语言任务上的性能。与之前的最先进模型相比,BLIP-2在视觉和语言预训练期间需要显著更少的可训练参数数量,同时实现了改进的性能。
指令驱动的零样本图像到文本生成
BLIP-2有效地使LLM能够理解图像,同时保留其遵循文本提示的能力,这使我们能够通过指令控制图像到文本生成。我们只需在视觉提示后附加文本提示作为LLM的输入。图4展示了零样本图像到文本生成能力的广泛示例,包括视觉知识推理、视觉常识推理、视觉对话、个性化图像到文本生成等。
图5. 视觉-语言表示学习对视觉到语言生成学习的影响。没有表示学习,Q-Former无法弥合模态差距,导致零样本VQA性能显著降低。
零样本VQA。我们在零样本视觉问答任务上进行定量评估。对于OPT模型,我们使用提示“Question: {} Answer:”。对于FlanT5模型,我们使用提示“Question: {} Short answer:”。在生成过程中,我们使用束搜索,束宽度为5。我们还设置长度惩罚为-1,以鼓励更短的答案,这些答案更符合人类注释。
如表2所示,BLIP-2在VQAv2 [Goyal et al., 2017]和GQA [Hudson & Manning, 2019]数据集上达到了最先进的结果。尽管可训练参数数量减少了54倍,BLIP-2在VQAv2上优于Flamingo80B 8.7%。在OK-VQA [Marino et al., 2019]数据集上,BLIP-2仅次于Flamingo80B。我们假设这是因为OK-VQA更侧重于开放世界知识而不是视觉理解,而Flamingo80B中的70B Chinchilla语言模型[Hoffmann et al., 2022]比11B FlanT5xxL拥有更多知识。
我们从表2中得出了一个有希望的观察结果:更强的图像编码器或更强的LLM都能带来更好的性能。这一观察结果得到了以下几个事实的支持:(1)ViT-g在OPT和FlanT5上都优于ViT-L。(2)在同一LLM家族中,较大的模型优于较小的模型。(3)FlanT5,一个指令调优的LLM,在VQA上优于无监督训练的OPT。这一观察结果验证了BLIP-2作为一种通用视觉和语言预训练方法,可以高效地利用视觉和自然语言社区的快速进展。
视觉和语言表示学习的效果。第一阶段表示学习预训练Q-Former以学习与文本相关的视觉特征,这减轻了LLM学习视觉和语言对齐的负担。没有表示学习阶段,Q-Former仅依靠视觉到语言生成学习来弥合模态差距,这与Flamingo中的Perceiver Resampler类似。图5显示了表示学习对生成学习的影响。没有表示学习,两种类型的LLM在零样本VQA上的性能都显著降低。特别是,OPT遭受灾难性遗忘,随着训练的进行,性能急剧下降。
图像描述
我们对图像描述任务进行微调,该任务要求模型生成图像视觉内容的文本描述。我们使用提示“a photo of”作为LLM的初始输入,并训练模型使用语言建模损失生成描述。我们在微调期间保持LLM冻结,并更新Q-Former的参数以及图像编码器。我们使用ViT-g和各种LLM进行实验。详细超参数见附录。我们在COCO上进行微调,并在COCO测试集和零样本迁移到NoCaps [Agrawal et al., 2019]验证集上进行评估。
表4. 与最先进模型在微调视觉问答上的比较。
结果如表3所示。BLIP-2在NoCaps上显著优于现有方法,展示了强大的泛化能力,实现了最先进的性能。
视觉问答
给定注释的VQA数据,我们微调Q-Former和图像编码器的参数,同时保持LLM冻结。我们使用开放式答案生成损失进行微调,其中LLM接收Q-Former的输出和问题作为输入,并被要求生成答案。为了提取与问题更相关的图像特征,我们进一步将问题作为条件输入到Q-Former中。具体来说,问题标记被输入到Q-Former中,并通过自注意力层与查询交互,这可以指导Q-Former的交叉注意力层关注更具信息量的图像区域。
表5. 与最先进图像-文本检索方法的比较,在COCO上微调并在Flickr30K上零样本迁移。
按照BLIP,我们的VQA数据包括VQAv2的训练和验证分割,以及来自Visual Genome的训练样本。表4展示了BLIP-2在开放式生成模型中的最先进结果。
表6. 图像基础文本生成(ITG)损失通过强制查询提取与语言相关的视觉特征来提高图像-文本检索性能。
图像-文本检索
由于图像-文本检索不涉及语言生成,我们直接微调第一阶段预训练模型(不带LLM)。具体来说,我们在COCO上使用相同的预训练目标(ITC、ITM和ITG)微调图像编码器和Q-Former。然后,我们在COCO和Flickr30K [Plummer et al., 2015]数据集上评估模型进行图像到文本检索和文本到图像检索。在推理过程中,我们遵循Li et al. [2021, 2022]的方法,首先根据图像-文本特征相似度选择k=128个候选者,然后根据成对ITM分数进行重新排序。我们使用ViT-L和ViT-g作为图像编码器进行实验。详细超参数见附录。
结果如表5所示。BLIP-2在零样本图像-文本检索上显著优于现有方法,实现了最先进的性能。
ITC和ITM损失对于图像-文本检索至关重要,因为它们直接学习图像-文本相似性。在表6中,我们显示ITG(图像基础文本生成)损失也有利于图像-文本检索。这一结果支持我们在设计表示学习目标时的直觉:ITG损失强制查询提取与文本最相关的视觉特征,从而改善视觉和语言对齐。
5 限制
最近的LLMs可以在给定少量示例的情况下进行上下文学习。然而,我们的BLIP-2实验没有观察到在为LLM提供上下文VQA示例时VQA性能的提升。我们将缺乏上下文学习能力归因于我们的预训练数据集,每个样本仅包含一个图像-文本对。LLMs无法从中学习单个序列中多个图像-文本对之间的相关性。Flamingo论文中也报告了相同的观察结果,该论文使用了一个包含多个图像-文本对的闭源交错图像和文本数据集(M3W)。我们计划在未来的工作中创建一个类似的数据集。
BLIP-2的图像到文本生成可能会因各种原因产生不理想的结果,包括LLM的知识不准确、激活了错误的推理路径,或没有关于新图像内容的最新信息(参见图7)。此外,由于使用了冻结的模型,BLIP-2继承了LLMs的风险,例如输出冒犯性语言、传播社会偏见或泄露私人信息。补救方法包括使用指令引导模型的生成或在使用有害内容过滤的数据集上进行训练。
6 结论
我们提出了BLIP-2,一种利用冻结的预训练图像编码器和LLM的通用且计算高效的视觉和语言预训练方法。BLIP-2在各种视觉和语言任务上达到了最先进的性能,同时在预训练期间具有少量可训练参数。BLIP-2还展示了在指令驱动的零样本图像到文本生成中的新兴能力。我们将BLIP-2视为构建多模态对话AI代理的重要一步。
附录
表7. 在COCO字幕上使用ViT-g微调BLIP-2的超参数。
表8. 在VQA上使用ViT-g微调BLIP-2的超参数。
表9. 在COCO图像-文本检索上微调BLIP-2的超参数。
图6. 使用BLIP-2模型w/ ViT-g和FlanT5xxL进行指令驱动的零样本图像到文本生成的错误输出示例。
图7. VQA微调的模型架构,其中LLM接收Q-Former的输出和问题作为输入,然后预测答案。我们还提供问题作为Q-Former的条件,使得提取的图像特征与问题更相关。