(ICML-2023)BLIP-2:使用冻结图像编码器与大型语言模型的语言-图像预训练引导方法

发布于:2025-06-25 ⋅ 阅读:(22) ⋅ 点赞:(0)

BLIP-2:使用冻结图像编码器与大型语言模型的语言-图像预训练引导方法

paper是Salesforce Research发表在ICML 2023的工作

paper title:BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models

Code:链接

Abstract

随着大规模端到端模型训练的兴起,视觉-语言预训练的成本日益高昂。本文提出BLIP-2,这是一种通用且高效的预训练策略,通过利用现成的冻结图像编码器和大型冻结语言模型,推进视觉-语言预训练的引导过程。BLIP-2通过一个轻量级的查询变换器(Querying Transformer)来弥合模态差距,该组件通过两个阶段的预训练实现:第一阶段从冻结图像编码器中引导视觉-语言表征学习;第二阶段从冻结语言模型中引导视觉到语言的生成式学习。尽管BLIP-2的可训练参数远少于现有方法,但它在多项视觉-语言任务中仍取得了当前最优性能。例如,在零样本VQAv2任务上,BLIP-2以仅1/54的可训练参数数量超过了Flamingo-80B模型8.7%的表现。此外,BLIP-2还展现出强大的零样本图像到文本生成能力,能够遵循自然语言指令生成合理描述。

1. Introduction

近年来,视觉-语言预训练(VLP)研究取得了飞速发展,越来越大规模的预训练模型被开发出来,在多个下游任务上不断刷新最新性能(Radford et al, 2021;Li et al, 2021;2022;Wang et al, 2022a;Alayrac et al, 2022;Wang et al, 2022b)。然而,大多数最先进的视觉-语言模型在预训练过程中需要高昂的计算成本,这主要由于使用大规模模型和数据集进行端到端训练所致。视觉-语言研究处于计算机视觉与自然语言处理的交叉领域,因此人们自然期望视觉-语言模型能够充分利用来自视觉和语言两个领域的现成单模态预训练模型。本文提出了一种通用且计算效率高的视觉-语言预训练方法,通过引导利用现成的预训练视觉模型和语言模型。预训练视觉模型提供了高质量的视觉表征;预训练语言模型,特别是大型语言模型(LLMs),则具备强大的语言生成能力和零样本迁移能力。为降低计算成本并避免灾难性遗忘问题,这些单模态预训练模型在本方法中保持冻结状态,不参与参数更新。

图1

图1. BLIP-2 框架概览。我们采用两阶段策略预训练一个轻量级的 Querying Transformer,用以弥合视觉与语言模态之间的差距。第一阶段从冻结的图像编码器中引导视觉-语言表示学习。第二阶段则从冻结的大型语言模型(LLM)中引导视觉到语言的生成式学习,使模型具备零样本的图像到文本生成能力,并能够响应自然语言指令(更多示例见图4)。

为了在视觉-语言预训练(VLP)中有效利用已有的单模态预训练模型,关键在于促进跨模态对齐。然而,由于大型语言模型(LLMs)在其单模态预训练过程中并未接触过图像,若保持其参数冻结状态,将使视觉-语言对齐变得尤为困难。在这种情况下,现有方法(如 Frozen(Tsimpoukelli et al, 2021)、Flamingo(Alayrac et al, 2022))采用图像到文本的生成损失作为训练目标,但我们发现该策略不足以有效弥合模态间的差距。为此,我们提出了一个名为 Querying Transformer(Q-Former)的模块,并设计了一个新的两阶段预训练策略以实现有效的视觉-语言对齐。如图1所示,Q-Former 是一个轻量级的 Transformer,其核心机制是引入一组可学习的查询向量,用于从冻结的图像编码器中提取视觉特征。它作为冻结图像编码器与冻结语言模型之间的信息瓶颈,负责提取对语言生成最有用的视觉信息,并将其传递给 LLM,从而生成所需文本。在第一阶段的预训练中,我们进行视觉-语言表示学习,使 Q-Former 能够学习到与文本高度相关的视觉特征。在第二阶段,我们将 Q-Former 的输出连接到冻结的 LLM,进行视觉到语言的生成学习,训练 Q-Former 使其输出的视觉表征能够被 LLM 正确理解和使用。

我们将我们的视觉-语言预训练框架命名为 BLIP-2:即在冻结的单模态模型基础上进行语言-图像预训练的引导式方法(Bootstrapping Language-Image Pre-training with frozen unimodal models)。BLIP-2 的主要优势包括:

• BLIP-2 有效结合了冻结的图像预训练模型与语言模型。我们通过一个 Q-Former,并采用两阶段预训练(表示学习阶段和生成学习阶段)来弥合模态间的差距。

• BLIP-2 在多项视觉-语言任务上达到了当前最先进的性能,包括视觉问答、图像描述和图文检索任务。

• 在大型语言模型(如 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 是一个通用方法,能够利用更强大的单模态模型以获得更优的视觉-语言预训练性能。

2. Related Work

2.1. End-to-end Vision-Language Pre-training


视觉-语言预训练旨在学习多模态基础模型,以在各种视觉-语言任务上实现更好的性能。根据下游任务的不同,提出了多种模型架构,包括双编码器架构(Radford 等,2021;Jia 等,2021)、融合编码器架构(Tan & Bansal,2019;Li 等,2021)、编码器-解码器架构(Cho 等,2021;Wang 等,2021b;Chen 等,2022b),以及最近的统一变换器架构(Li 等,2022;Wang 等,2022b)。多年来,还提出了多种预训练目标,并逐渐收敛到几个经过时间检验的目标:图文对比学习(Radford 等,2021;Yao 等,2022;Li 等,2021;2022)、图文匹配(Li 等,2021;2022;Wang 等,2021a)和(掩码)语言建模(Li 等,2021;2022;Yu 等,2022;Wang 等,2022b)。

大多数视觉-语言预训练(VLP)方法使用大规模图文对数据集进行端到端预训练。随着模型规模的不断扩大,预训练的计算成本变得异常高昂。此外,端到端预训练的模型在利用现成的单模态预训练模型(如大型语言模型LLMs(Brown 等,2020;Zhang 等,2022;Chung 等,2022))时缺乏灵活性。

2.2. Modular Vision-Language Pre-training


与我们方法相似的是,利用现成的预训练模型并在视觉-语言预训练(VLP)过程中保持其冻结状态的技术。一些方法冻结了图像编码器,包括早期的工作,采用冻结的目标检测器提取视觉特征(Chen 等,2020;Li 等,2020;Zhang 等,2021),以及最近的 LiT(Zhai 等,2022),该方法使用冻结的预训练图像编码器进行 CLIP(Radford 等,2021)预训练。一些方法则冻结了语言模型,以利用大型语言模型(LLMs)的知识来处理视觉到语言的生成任务(Tsimpoukelli 等,2021;Alayrac 等,2022;Chen 等,2022a;Tiong 等,2022;Guo 等,2022)。使用冻结的 LLM 的关键挑战在于如何将视觉特征与文本空间对齐。为了解决这个问题,Frozen(Tsimpoukelli 等,2021)微调图像编码器,其输出被直接用作 LLM 的软提示。Flamingo(Alayrac 等,2022)则通过在 LLM 中插入新的跨模态注意力层来注入视觉特征,并在数十亿个图文对上预训练这些新层。这两种方法都采用了语言建模损失,其中语言模型基于图像生成文本。

与现有方法不同,BLIP-2 能够有效且高效地同时利用冻结的图像编码器和冻结的 LLMs,处理各种视觉-语言任务,在较低的计算成本下实现更强的性能。

3. Method

我们提出了 BLIP-2,一种新的视觉-语言预训练方法,它基于冻结的预训练单模态模型进行引导训练。为了弥合模态间的差距,我们提出了一个查询变换器(Querying Transformer,简称 Q-Former),并采用两阶段的预训练策略:(1)在冻结图像编码器下进行视觉-语言表示学习阶段;(2)在冻结的大型语言模型(LLM)下进行视觉到语言的生成学习阶段。本节将首先介绍 Q-Former 的模型架构,然后详细说明两阶段的预训练过程。

3.1. Model Architecture


图2

图 2。(左)Q-Former 的模型结构以及 BLIP-2 第一阶段视觉-语言表示学习的预训练目标。我们联合优化三个目标,这些目标共同促进查询向量(一组可学习的嵌入)提取与文本最相关的视觉表示。(右)针对每个预训练目标的自注意力掩码策略,用于控制查询与文本之间的交互。

我们提出 Q-Former 作为可训练模块,用于弥合冻结图像编码器与冻结大型语言模型(LLM)之间的差距。它从图像编码器中提取固定数量的输出特征,与输入图像的分辨率无关。如图 2 所示,Q-Former 由两个共享相同自注意力层的变换器子模块组成:(1)一个与冻结图像编码器交互的图像变换器,用于提取视觉特征;(2)一个既可以作为文本编码器又可以作为文本解码器的文本变换器。我们创建了一组可学习的查询嵌入,作为图像变换器的输入。这些查询彼此之间通过自注意力层进行交互,并通过交叉注意力层(插入在每隔一个变换器块中)与冻结图像特征进行交互。这些查询还可以通过相同的自注意力层与文本进行交互。根据预训练任务的不同,我们应用不同的自注意力掩码,以控制查询与文本之间的交互。我们使用 B E R T b a s e BERT_{base} BERTbase(Devlin et al., 2019)的预训练权重初始化 Q-Former,而交叉注意力层则是随机初始化的。Q-Former 总共有188M参数。注意,查询向量本身也被计入模型参数中。

在实验中,我们使用了 32 个查询,每个查询的维度为 768(与 Q-Former 的隐藏层维度相同)。我们用 Z Z Z 表示最终输出的表示张量。 Z Z Z 的大小为 32 × 768 32 \times 768 32×768,远小于冻结图像特征的尺寸(例如 257 × 1024 257 \times 1024 257×1024,来自 ViT-L/14)。这种瓶颈结构结合预训练目标,共同作用于训练 Q-Former 强制其提取最相关于文本的视觉信息。

3.2. Bootstrap Vision-Language Representation Learning from a Frozen Image Encoder


在表示学习阶段,我们将 Q-Former 连接到一个冻结的图像编码器,并使用图文对进行预训练。我们的目标是训练 Q-Former,使其查询向量能够学会提取对文本最有信息量的视觉表示。受 BLIP(Li et al, 2022)启发,我们联合优化三个预训练目标,这些目标共享相同的输入格式和模型参数。每个目标使用不同的注意力掩码策略来控制查询与文本之间的交互(见图 2)。

图文对比学习(ITC)旨在对齐图像表示和文本表示,使它们之间的互信息最大化。它通过将正样本图文对的相似度与一组负样本的相似度进行对比来实现这一目标。

我们将图像转换器输出的查询表示 Z Z Z 与文本转换器中 [ C L S ] [CLS] [CLS] token 的输出表示 t t t 对齐。由于 Z Z Z 包含多个输出嵌入(每个查询一个),我们首先计算每个查询输出与 t t t 之间的成对相似度,然后选择其中最大者作为图文相似度。

为避免信息泄露,我们采用单模态的自注意力掩码,使得查询与文本不能相互看到。由于使用了冻结的图像编码器,我们相比端到端方法可以在每个 GPU 上处理更多样本。因此,我们在 BLIP-2 中使用了批内负样本(in-batch negatives),而不是动量队列。

图像引导文本生成(Image-grounded Text Generation, ITG)损失用于训练 Q-Former 根据输入图像作为条件生成文本。由于 Q-Former 的结构不允许冻结的图像编码器与文本 token 之间直接交互,生成文本所需的信息必须首先由查询向量提取,并通过自注意力层传递给文本 token。因此,查询向量被迫提取能够完整捕捉文本信息的视觉特征。我们采用多模态因果自注意力掩码来控制查询与文本的交互,类似于 UniLM(Dong et al., 2019)中使用的方法:查询向量之间可以相互注意,但不能看到文本 token;每个文本 token 可以关注所有查询向量以及它之前的文本 token。我们还将 [ C L S ] [CLS] [CLS] token 替换为新的 [ D E C ] [DEC] [DEC] token,作为第一个文本 token,以标志解码任务的开始。

图文匹配(Image-Text Matching, ITM)旨在学习图像与文本表示之间的细粒度对齐关系。这是一个二分类任务,模型需预测一对图文是否匹配。我们使用双向自注意力掩码,使所有查询和文本 token 之间都能相互注意。输出的查询嵌入 Z Z Z 因此能够捕捉多模态信息。我们将每个查询嵌入送入一个二分类线性分类器以获得 logit,并对所有查询的 logits 求平均作为匹配分数。我们还采用 Li 等人(2021;2022)提出的困难负样本挖掘策略,以生成更多信息丰富的负样本。

3.3. Bootstrap Vision-to-Language Generative Learning from a Frozen LLM


图3

图 3。BLIP-2 第二阶段视觉到语言的生成预训练,从冻结的大型语言模型(LLMs)中进行引导。(上图)从基于解码器的 LLM(例如 OPT)进行引导。(下图)从基于编码器-解码器的 LLM(例如 FlanT5)进行引导。全连接层将 Q-Former 输出维度适配到所选 LLM 的输入维度。

在生成预训练阶段,我们将 Q-Former(与冻结的图像编码器连接)与冻结的 LLM 连接,以利用 LLM 的生成语言能力。如图 3 所示,我们使用一个全连接(FC)层将输出的查询嵌入 Z Z Z 线性投影到与 LLM 文本嵌入相同的维度。然后,将投影后的查询嵌入添加到输入文本嵌入之前。它们作为软视觉提示,条件化 LLM,以使用 Q-Former 提取的视觉表示。由于 Q-Former 已经被预训练为提取对语言有信息量的视觉表示,它有效地充当了信息瓶颈,将最有用的信息传递给 LLM,同时去除无关的视觉信息。这减少了 LLM 学习视觉-语言对齐的负担,从而减轻了灾难性遗忘问题。

我们实验了两种类型的 LLM:基于解码器的 LLM 和基于编码器-解码器的 LLM。对于基于解码器的 LLM,我们使用语言建模损失进行预训练,其中冻结的 LLM 任务是基于来自 Q-Former 的视觉表示生成文本。对于基于编码器-解码器的 LLM,我们使用前缀语言建模损失进行预训练,其中我们将文本分为两部分。前缀文本与视觉表示一起作为输入送入 LLM 的编码器。后缀文本作为生成目标送入 LLM 的解码器。

3.4. Model Pre-training


预训练数据。我们使用与 BLIP 相同的预训练数据集,共计 1.29 亿张图像,包括 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) 和 1.15 亿张来自 LAION400M 数据集 (Schuhmann et al, 2021) 的图像。我们采用 CapFilt 方法 (Li et al, 2022) 为网页图像生成合成描述。具体来说,我们生成 10 个不同的描述,使用 BLIPlarge 描述模型进行图像标注,并根据 CLIP ViT-L/14 模型生成的图像-文本相似度对合成描述与原始网页描述进行排名。我们为每张图片保留排名前两位的描述,并在每次预训练步骤中随机选择其中一个。

预训练图像编码器和 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。

预训练设置。我们在第一阶段预训练 25 万步,在第二阶段预训练 8 万步。第一阶段对于 ViT-L/ViT-g 的批量大小分别为 2320/1680,第二阶段对于 OPT/FlanT5 的批量大小为 1920/1520。在预训练过程中,我们将冻结的 ViT 和 LLM 的参数转换为 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

图 4. 使用 BLIP-2 模型(配备 ViT-G 和 FlanT5-XXL)进行的指令式零-样本 图像到文本生成的选定示例,展示了广泛的能力,包括视觉对话、视觉知识推理、视觉常识推理、讲故事、个性化图像到文本生成等。


网站公告

今日签到

点亮在社区的每一天
去签到