Blip-2
BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models
BLIP-2:引导语言图像预训练具有冻结图像编码器和大型语言模型
(0) 总结&实测
总结:blip-2 最大的贡献在于,提出了一种新的视觉语言预训练范式,使得视觉语言预训练模型可以无须端到端地训练即可得到SOTA性能,极大节约了训练成本。但是正如limitation中所述,他们的模型还不支持上下文的视觉引导对话(比如前文讲了 一只猫在汽车上的图片+“猫准备做什么” -> 后文又想接着上文问如果这只猫跑下车来,车子会发生什么状态?),未来需要专门针对这种模型构建视觉序列匹配的数据集Flamingo论文中的(但是未开源)。
总体看下来,这个模型关键点就是引入的Q-Transformer,采用了三个损失函数:图文对比损失 (image-text contrastive loss);图文匹配损失 (image-text matching loss);图文生成损失 (image-Grounded Text Generation)。其中图文匹配损失和图文生成损失之间的 自注意力层 信息是交互的,使得LLM模型和视觉编码模型可以很好地融合。此外,额外引入的图文对比损失则可以提升特征表示的判别性(图文对比损失通过鼓励相似样本的特征表示彼此靠近,帮助模型学习到区分不同类别的鉴别性特征。这有助于提高模型在相似性度量任务中的性能。)消融实验(4-1)中也提到了,表征学习很重要,极大减轻图文生成的负担。
对于三种损失的总结,这里直接引用原文的总结,即:ITC和ITM损失(图像文本对比学习(ITC);图像文本匹配(ITM))对于图像-文本检索至关重要,因为它们直接学习图像-文本相似度。在表6中,我们展示了ITG(基于图像的文本生成)损失也有利于图像文本检索。这个结果支持我们在设计表示学习目标时的直觉:ITG损失强制查询提取与文本最相关的视觉特征,从而提高视觉语言一致性。
泛化性很强;模型针对中文数据库还可以再优化;文字生成的长度不长(虽然文章中说限制长度更符合人类直接,但是模型很多信息也无法输出更完美)
(1) 摘要
由于大规模模型的端到端训练成本不断增加,视觉和语言预训练的成本已经越来越高。本文提出了BLIP-2,一种通用且高效的预训练策略,它可以从现成的冻结预训练图像编码器和冻结大型语言模型中引导视觉-语言预训练。BLIP-2通过一个轻量级的Querying Transformer来弥合模态差距,并在两个阶段进行预训练。第一个阶段从冻结图像编码器引导视觉-语言表示学习。第二个阶段从冻结语言模型中引导视觉-语言生成学习。尽管比现有方法具有显著较少的可训练参数,但BLIP-2在各种视觉-语言任务上实现了最先进的性能。例如,在零样本VQAv2上,我们的模型比Flamingo80B使用54倍的可训练参数表现提高了8.7%。我们还展示了该模型通过零样本图像到文本生成具有跟随自然语言指令的新兴能力。
**图1所示:**BLIP-2框架概述。我们按照两阶段策略对轻量级查询转换器进行预训练,以弥合模态差距。第一阶段从固定图像编码器中引导视觉语言表示学习。第二阶段从冻结的LLM中引导视觉到语言的生成学习,它支持零样本指示图像-文本生成(参见图4以获得更多示例)。
(2) 相关工作
(2-1) 端到端视觉语言预训练
视觉语言预训练旨在学习多模态基础模型,提高其在各种视觉语言任务中的表现。根据下游任务的不同,提出了不同的模型架构,包括双编码器架构(Radford等人,2021;Jia等人,2021),融合编码器架构(Tan & Bansal, 2019;Li et al, 2021),编码器-解码器架构(Cho et al, 2021;Wang等,2021b;Chen等人,2022b),以及最近的统一变压器架构(Li等人,2022;Wang et al ., 2022b)。多年来,各种预训练目标也被提出,并逐渐收敛为几个经过时间考验的目标:图像-文本对比学习(Radford等人,2021;Yao等,2022;Li et al ., 2021;2022),图像-文本匹配(Li et al ., 2021;2022;Wang et al ., 2021a)和(掩码)语言建模(Li et al ., 2021;2022;Yu et al ., 2022;Wang et al ., 2022b)。
大多数VLP方法使用大规模图像-文本对数据集执行端到端预训练。随着模型规模的不断增大,预训练的计算成本会非常高。此外,对于端到端预训练模型来说,利用llm等现成的单模预训练模型是不灵活的(Brown等人,2020;Zhang等,2022;Chung et al ., 2022)。
(2-2) 模块化视觉语言预训练
与我们更相似的是利用现成的预训练模型并在VLP期间保持冻结的方法。一些方法冻结了图像编码器,包括早期的工作采用冻结对象检测器提取视觉特征(Chen et al ., 2020;Li et al ., 2020;Zhang等人,2021),以及最近使用冻结预训练图像编码器进行CLIP预训练的LiT (Zhai等人,2022)(Radford等人,2021)。一些方法冻结语言模型,将LLMs的知识用于视觉到语言的生成任务(Tsimpoukelli等人,2021;Alayrac等,2022;Chen et al ., 2022a;Manas等人,2023;Tiong et al, 2022;郭等人,2022)。使用冻结LLM的关键挑战是将视觉特征与文本空间对齐。为了实现这一点,Frozen (Tsimpoukelli等人,2021)微调了一个图像编码器,其输出直接用作LLM的软提示。Flamingo (Alayrac et al, 2022)在LLM中插入新的交叉注意层以注入视觉特征,并在数十亿对图像-文本对上对新层进行预训练。这两种方法都采用了语言建模损失,语言模型根据图像条件生成文本。
与现有方法不同,BLIP-2可以有效地利用冻结图像编码器和冻结llm来完成各种视觉语言任务,以更低的计算成本获得更强的性能。
(3) 模型细读
图2 (左)Q-Former和BLIP-2第一阶段视觉语言表征学习目标的模型架构。我们共同优化了三个目标,这些目标强制执行查询(一组可学习的嵌入)以提取与文本最相关的视觉表示。(右)每个目标的自注意掩蔽策略来控制查询-文本交互。
(3-1) 总结
为了实现与冻结单峰模型的有效视觉语言对齐,我们提出了一个使用新的两阶段预训练策略进行预训练的查询转换器(QFormer)。如图1所示,Q-Former是一个轻量级的转换器,它使用一组可学习的查询向量从冻结的图像编码器中提取视觉特征。它充当冻结图像编码器和冻结LLM之间的信息瓶颈,为LLM输出所需文本提供最有用的视觉特征。
在第一个预训练阶段,我们执行视觉语言表征学习,强制Q-Former学习与文本最相关的视觉表征。在第二个预训练阶段,我们通过将Q-Former的输出连接到一个冻结的LLM来执行视觉到语言的生成学习,并训练Q-Former,使其输出的视觉表示可以被LLM解释。
(3-2) 贡献点
(1)BLIP-2有效地利用了冻结的预训练图像模型和语言模型。我们使用在两个阶段预训练的Q-Former来弥合模态差距: 表征学习阶段和生成学习阶段。BLIP-2在各种视觉语言任务上实现了最先进的性能,包括视觉问答、图像字幕和图像文本检索。
(2)在llm(例如OPT (Zhang等人,2022),FlanT5 (Chung等人,2022))的支持下,可以提示BLIP-2执行遵循自然语言指令的零样本图像到文本生成,从而实现诸如视觉知识推理,视觉对话等新兴功能(参见图4示例)。
(3)由于使用了冷冻单峰模型和轻型Q-Former, BLIP-2比现有的最先进的计算效率更高。例如,在零射击VQAv2上,BLIP-2比Flamingo (Alayrac et al, 2022)的性能高出8.7%,同时使用的可训练参数减少了54%。此外,我们的研究结果表明,BLIP-2是一种通用方法,可以获得更先进的单峰模型,以获得更好的VLP性能。
(3-3) 模型结构
我们提出了一种新的视觉语言预训练方法BLIP-2,它从冻结的预训练单峰模型中启动。为了弥合模态差距,我们提出了一个分两个阶段预训练的查询转换器(Q-Former):(1)使用冻结图像编码器的视觉语言表示学习阶段和 (2)使用冻结LLM的视觉到语言生成学习阶段。本节首先介绍Q-Former的模型架构,然后描述两阶段的预训练过程。
我们提出Q-Former作为可训练模块,以弥合冻结图像编码器和冻结LLM之间的差距。它从图像编码器中提取固定数量的输出特征,与输入图像分辨率无关。如图2所示,Q-Former由两个转换器子模块组成,它们共享相同的自关注层:(1)与冻结图像编码器交互以提取视觉特征的图像转换器,(2)既可以作为文本编码器又可以作为文本解码器的文本转换器。
我们创建了一组可学习的查询嵌入作为图像转换器的输入。查询通过自关注层相互交互,并通过交叉关注层 (每隔一个转换块插入)与冻结的图像特征交互。查询还可以通过相同的自关注层与文本交互。根据预训练任务的不同,我们应用不同的自注意掩码来控制查询-文本交互。我们使用BERTbase的预训练权重初始化QFormer (Devlin et al ., 2019),而交叉注意层是随机初始化的。Q-Former共包含188M个参数。
查询通过自关注层相互交互,并通过交叉关注层(每隔一个转换块插入)与冻结的图像特征交互。查询还可以通过相同的自关注层与文本交互。根据预训练任务的不同,我们应用不同的自注意掩码来控制查询-文本交互。我们使用BERTbase的预训练权重初始化QFormer (Devlin et al ., 2019),而交叉注意层是随机初始化的。Q-Former共包含188M个参数。注意,查询被视为模型参数。
在我们的实验中,我们使用32个查询,其中每个查询的维度为768(与Q-Former的隐藏维度相同)。我们使用Z表示输出查询表示。Z的大小(32 × 768)远远小于冻结图像特征的大小(例如viti - l /14的257 × 1024)。这个瓶颈架构与我们的预训练目标一起工作,迫使查询提取与文本最相关的视觉信息。
(3-4) 基于冻结LLM的Bootstrap视觉到语言生成学习
在生成预训练阶段,我们将QFormer(附带冻结图像编码器)连接到冻结的LLM,以获取LLM的生成语言能力。如图3所示,我们使用一个全连接(FC)层将输出查询嵌入Z线性投影到与LLM的文本嵌入相同的维度中。然后将投影的查询嵌入添加到输入文本嵌入中。它们作为软视觉提示,对由Q-Former提取的视觉表示进行条件约束。由于Q-Former已被预先训练以提取语言信息的视觉表示,因此它有效地充当信息瓶颈,为LLM提供最有用的信息,同时删除无关的视觉信息。这减少了LLM学习视觉语言一致性的负担,从而减轻了灾难性遗忘问题。 Bootstrapping: 引导
我们实验了两种类型的llm:基于解码器的llm和基于编码器-解码器的llm。对于基于解码器的LLM,我们使用语言建模损失进行预训练,其中冻结的LLM的任务是根据Q-Former的视觉表示生成文本。对于基于编码器-解码器的llm,我们使用前缀语言建模损失进行预训练,其中我们将文本分成两部分。前缀文本与可视化表示相连接,作为LLM编码器的输入。后缀文本用作LLM解码器的生成目标
图3 BLIP-2的第二阶段视觉到语言生成预训练,它从冻结的大型语言模型(llm)中启动。(上) 引导基于解码器的LLM(如OPT)。(下) 引导基于编码器-解码器的LLM(例如FlanT5)。全连接层从Q-Former的输出维度适应所选LLM的输入维度。
(1)模型预训练
我们使用与BLIP相同的预训练数据集,总共有1.29亿张图像,包括COCO (Lin等人,2014)、Visual Genome (Krishna等人,2017)、CC3M (Sharma等人,2018)、CC12M (Changpinyo等人,2021)、SBU (Ordonez等人,2011)和来自LAION400M数据集的1.15亿张图像(Schuhmann等人,2021)。我们采用CapFilt方法(Li et al, 2022)为web图像创建合成字幕。具体来说,我们使用blipllarge字幕模型生成了10个字幕,并根据CLIP vitl /14模型产生的图像-文本相似性将合成字幕与原始网页字幕进行排序。我们将每张图像的前两个标题作为训练数据,并在每个预训练步骤随机抽取一个。
(2)预训练图像编码器和LLM
对于冻结图像编码器,我们探索了两种最先进的预训练视觉转换器模型: (1)来自CLIP的viti - l /14 (Radford等人,2021)和(2)来自EVA-CLIP的viti -g/14 (Fang等人,2022)。我们删除了ViT的最后一层,并使用最后一层的输出特征,这导致性能稍微好一些。对于冻结语言模型,我们探索了基于解码器的非监督训练OPT模型族(Zhang et al ., 2022)和基于编码器-解码器的FlanT5模型族(Chung et al ., 2022)。
(3)预训练图像编码器和LLM
我们在第一阶段预训练250k步,在第二阶段预训练80k步。我们在第一阶段使用2320/1680批量生产viti - l / viti -g,在第二阶段使用1920/1520批量生产OPT/FlanT5。在预训练期间,我们将冻结的ViTs和llm参数转换为FP16,除了FlanT5,我们使用BFloat16。与使用32位模型相比,我们没有发现性能下降。由于使用了冻结模型,我们的预训练比现有的大规模VLP方法更具计算友好性。例如,使用一台16-A100(40G)的机器,我们最大的型号使用viti -g和FlanT5-XXL,第一阶段需要不到6天,第二阶段需要不到3天。
所有模型都使用相同的预训练超参数集。我们使用AdamW (Loshchilov & Hutter, 2017)优化器,其中β1 = 0:9, β1 = 0:98,权重衰减为0.05。我们使用余弦学习率衰减,峰值学习率为1e-4,线性热身为2k步。第二阶段的最低学习率为5e-5。我们使用大小为224×224的图像,增强了随机调整大小的裁剪和水平翻转。
图4 使用BLIP-2模型w/ vitg和FlanT5XXL进行指导的零镜头图像到文本生成的示例,其中它显示了广泛的功能,包括视觉对话,视觉知识推理,视觉常识推理,讲故事,个性化图像到文本生成等。
(4) 实验评价
表1 概述了BLIP-2在各种零射击视觉语言任务中的表现。与之前最先进的模型相比,BLIP-2在视觉语言预训练过程中需要的可训练参数数量大大减少,从而提高了性能。
表1 各种零样本视觉语言任务的BLIP-2结果综述。与以前最先进的模型相比。在视觉语言预训练中,BLIP-2在需要最少可训练参数的情况下实现了最高的零样本学习性能。
表2 零样本学习视觉答题方法与最新方法的比较。
(4-1) Instructed Zero-shot Image-to-Text Generation
BLIP-2有效地使LLM能够理解图像,同时保留其在以下文本提示中的能力,这使我们能够用指令控制图像到文本的生成。我们只需将文本提示附加在可视提示之后,作为LLM的输入。图4展示了一些示例,这些示例展示了广泛的零图像到文本功能,包括视觉知识推理、视觉常识推理、视觉对话、个性化图像到文本生成等。
(A)Zero-shot VQA
我们对零样本视觉问答任务进行定量评价。对于OPT模型,我们使用“Question: fg Answer:”提示符。对于FlanT5模型,我们使用提示符“Question: fg Short answer:”。在生成过程中,我们使用波束搜索,波束宽度为5。我们还将长度惩罚设置为-1,以鼓励更短的答案,更符合人类注释。
如表2所示。BLIP-2在VQAv2 (Goyal等人,2017)和GQA (Hudson & Manning, 2019)数据集上取得了最先进的结果。它在VQAv2上的性能比Flamingo80B高出8.7%,尽管可训练参数减少了54倍。在OK-VQA (Marino et al, 2019)数据集上,BLIP-2次于Flamingo80B。我们假设这是因为k - vqa更关注开放世界知识而不是视觉理解,并且来自Flamingo80B的70B Chinchilla (Hoffmann et al, 2022)语言模型比11B FlanT5XXL拥有更多的知识。
我们从表2中得出了一个有希望的观察结果:更强的图像编码器或更强的LLM都能带来更好的性能。这一观察结果得到了几个事实的支持:(1)viti -g在OPT和FlanT5上都优于viti - l。(2)在同一LLM家族中,较大的模型优于较小的模型。(3)指令调优LLM FlanT5在VQA上优于无监督训练的OPT。这一观察结果验证了BLIP-2作为一种通用的视觉语言预训练方法,可以有效地收获视觉和自然语言社区的快速进展。
(B)Effect of Vision-Language Representation Learning
第一阶段表征学习预训练QFormer学习与文本相关的视觉特征,减少了LLM学习视觉语言对齐的负担。QFormer没有表征学习阶段,仅依靠视觉到语言的生成学习来弥合模态差距,类似于Flamingo中的percepver Resampler。图5展示了表征学习对生成学习的影响。没有表示学习,这两种llm在零射击VQA上的性能都明显较低。特别是,OPT患有灾难性遗忘,随着训练的进行,表现会急剧下降。
图5 视觉语言表征学习对视觉语言生成学习的影响。如果没有表示学习,Q-Former无法跨越模态差距,导致零样本VQA的性能显著降低。
(4-2) Image Captioning
我们为图像字幕任务调整了BLIP-2模型,该任务要求模型为图像的视觉内容生成文本描述。我们使用提示“a photo of”作为LLM的初始输入,并训练模型生成具有语言建模损失的标题。我们在微调过程中保持LLM冻结,并与图像编码器一起更新Q-Former的参数。我们用vitg和各种llm进行实验。详细的超参数可以在附录中找到。我们对COCO进行了微调,并对COCO测试集和零射击转移到NoCaps (Agrawal et al, 2019)验证集进行了评估。
结果如表3所示。BLIP-2实现了最先进的性能,在NoCaps方面比现有方法有了显著的改进,对域外图像表现出较强的泛化能力。
表3 NoCaps和COCO字幕上最先进图像字幕方法的比较。所有方法都优化了微调过程中的交叉熵损失。C:苹果酒,S:香料,B@4: BLEU@4。
表4 与最先进的模型进行比较,对视觉问题回答进行了微调。
(4-3) Visual Question Answering
给定带注释的VQA数据,我们在保持LLM冻结的同时微调Q-Former和图像编码器的参数。我们使用开放式答案生成损失进行微调,其中LLM接收Q-Former的输出和问题作为输入,并被要求生成答案。为了提取与问题更相关的图像特征,我们在问题上附加Q-Former条件。具体来说,问题标记作为Q-Former的输入,并通过自关注层与查询交互,这可以引导Q-Former的交叉关注层关注更多信息的图像区域。
在BLIP之后,我们的VQA数据包括来自VQAv2的训练和验证分割,以及来自Visual Genome的训练样本。表4展示了开放式生成模型中最先进的BLIP-2结果。
(4-4) Image-Text Retrieval
由于图像-文本检索不涉及语言生成,因此我们直接对第一阶段预训练模型进行微调。具体来说,我们在COCO上使用相同的目标(即ITC, ITM和ITG)对图像编码器和Q-Former进行微调。然后,我们在COCO和Flickr30K (Plummer et al, 2015)数据集上评估图像到文本检索和文本到图像检索模型。在推理过程中,我们遵循Li等人(2021;2022),首先根据图像文本特征相似度选择k = 128个候选对象,然后根据成对的ITM分数重新排序。我们用vitl和vitg作为图像编码器进行了实验。详细的超参数可以在附录中找到。
结果如表5所示。BLIP-2实现了最先进的性能,比现有的零拍摄图像文本检索方法有了显著的改进。
表5所示 与最先进的图像-文本检索方法的比较,对COCO进行微调,并将零拍摄转移到Flickr30K。
表6所示 基于图像的文本生成(ITG)损失通过强制查询提取与语言相关的视觉特征来提高图像文本检索性能。
图7 用于VQA调优的模型架构,其中LLM接收Q-Former的输出并将问题作为输入,然后预测答案。我们还将问题作为条件提供给Q-Former,使得提取的图像特征与问题更加相关
ITC和ITM损失(图像文本对比学习(ITC);图像文本匹配(ITM))对于图像-文本检索至关重要,因为它们直接学习图像-文本相似度。在表6中,我们展示了ITG(基于图像的文本生成)损失也有利于图像文本检索。这个结果支持我们在设计表示学习目标时的直觉:ITG损失强制查询提取与文本最相关的视觉特征,从而提高视觉语言一致性。
(4-5) Limitation
最近的LLM可以在给定几个例子的情况下进行上下文学习。然而,我们对BLIP-2的实验在为LLM提供上下文中的VQA示例时并没有观察到VQA性能的改善。我们将缺乏上下文学习能力归因于我们的预训练数据集,该数据集每个样本只包含单个图像-文本对。llm不能从中学习单个序列中多个图像-文本对之间的相关性。在Flamingo的论文中也报告了相同的观察结果,该论文使用了一个封闭来源的交错图像和文本数据集(M3W),每个序列有多个图像-文本对。我们的目标是在未来的工作中创建一个类似的数据集。
由于各种原因,包括来自LLM的不准确的知识,激活不正确的推理路径,或者没有关于新图像内容的最新信息,BLIP-2的图像到文本生成可能会产生不满意的结果(见图7)。此外,由于使用冻结模型,BLIP-2继承了LLM的风险,例如输出攻击性语言,传播社会偏见,或泄露私人信息。补救方法包括使用指令来指导模型的生成或在删除有害内容的过滤数据集上进行训练。
不当言论例子
(4-6) Conclusion
我们提出了一种通用的、计算效率高的视觉语言预训练方法BLIP-2,它利用了冷冻预训练图像编码器和llm。在预训练过程中,BLIP-2在具有少量可训练参数的情况下,在各种视觉语言任务上实现了最先进的性能。BLIP-2还展示了零样本指示图像到文本生成的新兴功能。我们认为BLIP-2是构建多模态会话AI代理的重要一步。
blip-2与Diffusion结合