Abstract

由于大规模模型的端到端训练,视觉与语言预训练的成本已变得日益昂贵 。本文提出了 BLIP-2,这是一种通用且高效的预训练策略,它从现成的冻结预训练图像编码器和冻结的大语言模型中引导出视觉-语言预训练 。BLIP-2 通过一个轻量级的查询 Transformer(Querying Transformer)来桥接模态鸿沟,该 Transformer 分两个阶段进行预训练 。第一阶段从冻结的图像编码器中引导视觉-语言表示学习 。第二阶段从冻结的语言模型中引导从视觉到语言的生成学习 。尽管 BLIP-2 的可训练参数显著少于现有方法,但它在各种视觉-语言任务上均实现了先进的性能 。例如,我们的模型在零样本 VQAv2 上的表现优于 Flamingo80B 8.7%,而可训练参数却减少了 54 倍 。我们还展示了该模型具有新兴的零样本图像到文本生成能力,能够遵循自然语言指令 。

Introduction

视觉-语言预训练(VLP)研究在过去几年中见证了飞速的发展,规模日益扩大的预训练模型被开发出来,不断推高各种下游任务的最先进水平(Radford et al., 2021; Li et al., 2021; 2022; Wang et al., 2022a; Alayrac et al., 2022; Wang et al., 2022b)。然而,由于使用大规模模型和数据集进行端到端训练,大多数最先进的视觉-语言模型在预训练期间会产生高昂的计算成本。视觉-语言研究处于视觉与语言的交汇处,因此自然地期望视觉-语言模型可以从视觉和自然语言社区中现成的单模态模型中获益。在本文中,我们通过从现有的预训练视觉模型和语言模型中进行引导(bootstrapping),提出了一种通用且计算高效的 VLP 方法。预训练视觉模型提供高质量的视觉表示。预训练语言模型,特别是大语言模型(LLMs),提供强大的语言生成和零样本迁移能力。为了降低计算成本并对抗灾难性遗忘问题,单模态预训练模型在预训练期间保持冻结(frozen)。

为了利用预训练单模态模型进行 VLP,促进跨模态对齐(cross-modal alignment)是关键。然而,由于 LLMs 在其单模态预训练期间未见过图像,冻结它们使得视觉-语言对齐尤其具有挑战性。在这方面,现有方法(例如 Frozen (Tsimpoukelli et al., 2021), Flamingo (Alayrac et al., 2022))借助于图像到文本生成损失(image-to-text generation loss),我们证明这不足以桥接模态鸿沟。为了使用冻结的单模态模型实现有效的视觉-语言对齐,我们提出了一个查询 Transformer(Querying Transformer,简称 Q-Former),并使用一种新的两阶段预训练策略进行预训练。如图 1 所示,Q-Former 是一个轻量级的 Transformer,它采用一组可学习的查询向量从冻结的图像编码器中提取视觉特征。它充当冻结图像编码器和冻结 LLM 之间的信息瓶颈(information bottleneck),将最有用的视觉特征输入给 LLM 以输出所需的文本。在第一预训练阶段,我们进行视觉-语言表示学习,强制 Q-Former 学习与文本最相关的视觉表示。在第二预训练阶段,我们通过将 Q-Former 的输出连接到冻结的 LLM 来进行视觉到语言的生成学习,并训练 Q-Former 使得其输出的视觉表示可以被 LLM 理解。

我们将我们的 VLP 框架命名为 BLIP-2:利用冻结单模态模型引导语言-图像预训练(Bootstrapping Language-Image Pre-training with frozen unimodal models)。BLIP-2 的关键优势包括:

• BLIP-2 有效地利用了冻结的预训练图像模型和语言模型。我们使用经过两阶段预训练(表示学习阶段和生成学习阶段)的 Q-Former 桥接了模态鸿沟。BLIP-2 在包括视觉问答(VQA)、图像描述(image captioning)和图像-文本检索在内的各种视觉-语言任务上实现了最先进的性能。

• 在 LLMs(例如 OPT (Zhang et al., 2022), FlanT5 (Chung et al., 2022))的助力下,BLIP-2 可以通过提示(prompted)来执行遵循自然语言指令的零样本图像到文本生成,这实现了诸如视觉知识推理、视觉对话等新兴能力(示例见图 4)。

• 由于使用了冻结的单模态模型和轻量级的 Q-Former,BLIP-2 比现有的最先进模型更具计算效率。例如,在零样本 VQAv2 上,BLIP-2 的表现优于 Flamingo (Alayrac et al., 2022) 8.7%,而使用的可训练参数减少了 54 倍。此外,我们的结果表明,BLIP-2 是一种通用方法,可以利用更先进的单模态模型来获得更好的 VLP 性能。

2. Related Work

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

视觉-语言预训练旨在学习多模态基础模型,以提高在各种视觉和语言任务上的性能 。根据下游任务的不同,研究者提出了不同的模型架构,包括双编码器架构(Radford et al., 2021; Jia et al., 2021)、融合编码器架构(Tan & Bansal, 2019; Li et al., 2021)、编码器-解码器架构(Cho et al., 2021; Wang et al., 2021b; Chen et al., 2022b),以及最近的统一 Transformer 架构(Li et al., 2022; Wang et al., 2022b) 。多年来也提出了各种预训练目标,并逐渐收敛于几种经受住时间考验的目标:图像-文本对比学习(Radford et al., 2021; Yao et al., 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 方法使用大规模图像-文本对数据集进行端到端预训练 。随着模型规模不断增大,预训练可能会产生极高的计算成本 。此外,端到端预训练模型难以灵活地利用现有的单模态预训练模型,如大语言模型(LLMs)(Brown et al., 2020; Zhang et al., 2022; Chung et al., 2022) 。

2.2. Modular Vision-Language Pre-training

与我们更为相似的是那些利用现成预训练模型并在 VLP 期间保持其冻结的方法 。一些方法冻结图像编码器,包括采用冻结的目标检测器来提取视觉特征的早期工作(Chen et al., 2020; Li et al., 2020; Zhang et al., 2021),以及最近使用冻结的预训练图像编码器进行 CLIP (Radford et al., 2021) 预训练的 LiT (Zhai et al., 2022) 。

一些方法冻结语言模型,以利用大语言模型的知识来完成视觉到语言的生成任务(Tsimpoukelli et al., 2021; Alayrac et al., 2022; Chen et al., 2022a; Mañas et al., 2023; Tiong et al., 2022; Guo et al., 2022) 。使用冻结的大语言模型的主要挑战是将视觉特征对齐到文本空间 。为了实现这一点,Frozen (Tsimpoukelli et al., 2021) 微调了一个图像编码器,其输出直接用作大语言模型的软提示(soft prompts) 。Flamingo (Alayrac et al., 2022) 在大语言模型中插入了新的交叉注意力层以注入视觉特征,并在数十亿个图像-文本对上预训练这些新层 。这两种方法都采用了语言建模损失,即语言模型在图像的调节下生成文本 。

与现有方法不同,BLIP-2 可以有效且高效地利用冻结的图像编码器和冻结的大语言模型来处理各种视觉-语言任务,以更低的计算成本实现了更强的性能 。

3. Method

我们提出了 BLIP-2,一种新的视觉-语言预训练方法,该方法通过从冻结的预训练单模态模型中进行引导(bootstraps) 。为了桥接模态鸿沟,我们提出了一个查询 Transformer(Querying Transformer,简称 Q-Former),并分两个阶段进行预训练:(1) 使用冻结图像编码器的视觉-语言表示学习阶段;(2) 使用冻结大语言模型(LLM)的视觉到语言生成学习阶段 。本节首先介绍 Q-Former 的模型架构,然后详述两阶段预训练流程 。

3.1. Model Architecture

我们提出 Q-Former 作为可训练模块,用以桥接冻结图像编码器与冻结 LLM 之间的差距 。它从图像编码器中提取固定数量的输出特征,且与输入图像分辨率无关 。如图 2 所示,Q-Former 由两个共享相同自注意力层的 Transformer 子模块组成:(1) 一个与冻结图像编码器交互以进行视觉特征提取的图像 Transformer;(2) 一个既能充当文本编码器又能充当文本解码器的文本 Transformer 。我们创建了一组固定数量的可学习查询嵌入(query embeddings)作为图像 Transformer 的输入 。这些查询通过自注意力层相互交互,并通过交叉注意力层(每隔一个 Transformer 块插入一个)与冻结的图像特征交互 。查询还可以通过相同的自注意力层与文本进行额外交互 。根据预训练任务的不同,我们应用不同的自注意力掩 码来控制查询与文本的交互 。我们使用 BERTbase​ 的预训练权重初始化 Q-Former,而交叉注意力层则是随机初始化的 。Q-Former 总计包含 1.88 亿参数 。需注意,查询被视为模型参数 。在我们的实验中,我们使用了 32 个查询,每个查询的维度为 768(与 Q-Former 的隐藏层维度相同) 。我们使用 Z 来表示输出查询表示 。Z 的尺寸(32×768)远小于冻结图像特征的尺寸(例如 ViT-L/14 为 257×1024) 。这种瓶颈架构与我们的预训练目标协同工作,迫使查询提取与文本最相关的视觉信息

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

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

图像-文本对比学习(Image-Text Contrastive Learning, ITC) 学习对齐图像表示和文本表示,从而最大化它们的互信息 。它通过对比正样本对与负样本对的图像-文本相似度来实现 。我们将图像 Transformer 的输出查询表示 Z 与文本 Transformer 的文本表示 t 进行对齐,其中 t 是 [CLS] 标记的输出嵌入 。由于 Z 包含多个输出嵌入(每个查询对应一个),我们首先计算每个查询输出与 t 之间的成对相似度,然后选择最高的一个作为图像-文本相似度 。为了避免信息泄漏,我们采用单模态自注意力掩码,不允许查询和文本相互看到 。由于使用了冻结的图像编码器,与端到端方法相比,我们可以在每个 GPU 上容纳更多样本 。因此,我们使用批内负样本(in-batch negatives)而非 BLIP 中的动量队列 。

以图像为条件的文本生成(Image-grounded Text Generation, ITG) 损失训练 Q-Former 在给定输入图像作为条件下生成文本 。由于 Q-Former 的架构不允许冻结图像编码器与文本标记之间直接交互,因此生成文本所需的信息必须首先由查询提取,然后通过自注意力层传递给文本标记 。因此,查询被迫提取捕获文本所有信息的视觉特征 。我们采用多模态因果自注意力掩码(multimodal causal self-attention mask)来控制查询与文本的交互,类似于 UniLM 中使用的掩码 。查询可以相互关注但不能关注文本标记 。每个文本标记可以关注所有查询及其之前的文本标记 。我们还用一个新的 [DEC] 标记替换 [CLS] 标记,作为第一个文本标记以发出解码任务信号 。

图像-文本匹配(Image-Text Matching, ITM) 旨在学习图像和文本表示之间的细粒度对齐 。这是一个二分类任务,要求模型预测图像-文本对是正样本(匹配)还是负样本(不匹配) 。我们使用双向自注意力掩码,使所有查询和文本都能相互关注 。因此,输出查询嵌入 Z 捕获了多模态信息 。我们将每个输出查询嵌入输入到一个二分类线性分类器中以获得逻辑值(logit),并对所有查询的逻辑值取平均作为输出匹配分值 。我们采用 Li 等人(2021; 2022)的难负样本挖掘(hard negative mining)策略来创建具有信息量的负样本对 。

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

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

我们实验了两种类型的 LLM:基于解码器(decoder-based)的 LLM 和基于编码器-解码器(encoder-decoder-based)的 LLM 。对于基于解码器的 LLM,我们使用语言建模损失进行预训练,冻结的 LLM 被要求以来自 Q-Former 的视觉表示为条件生成文本 。对于基于编码器-解码器的 LLM,我们使用前缀语言建模损失(prefix language modeling loss)进行预训练,我们将文本分为两部分 。前缀文本与视觉表示拼接后作为 LLM 编码器的输入 。后缀文本作为 LLM 解码器的生成目标 。

3.4. Model Pre-training

预训练数据。 我们使用与 BLIP 相同的预训练数据集,总计 1.29 亿张图像,包括 COCO、Visual Genome、CC3M、CC12M、SBU 以及来自 LAION400M 数据集的 1.15 亿张图像 。我们采用 CapFilt 方法为网络图像创建合成标题 。具体而言,我们使用 BLIPlarge​ 标题生成模型生成 10 个标题,并根据 CLIP ViT-L/14 模型产生的图像-文本相似度对合成标题与原始网络标题进行排名 。我们为每张图像保留前两个标题作为训练数据,并在每个预训练步骤中随机采样一个 。

预训练图像编码器与 LLM。 对于冻结的图像编码器,我们探索了两种最先进的预训练视觉 Transformer 模型:(1) 来自 CLIP 的 ViT-L/14 和 (2) 来自 EVA-CLIP 的 ViT-g/14 。我们移除了 ViT 的最后一层,使用倒数第二层的输出特征,这会带来稍好的性能 。对于冻结的语言模型,我们探索了针对基于解码器 LLM 的无监督预训练 OPT 模型系列,以及针对基于编码器-解码器 LLM 的经过指令训练的 FlanT5 模型系列 。

预训练设置。 我们在第一阶段预训练 250k 步,在第二阶段预训练 80k 步 。第一阶段 ViT-L/ViT-g 的批大小为 2320/1680,第二阶段 OPT/FlanT5 的批大小为 1920/1520 。在预训练期间,我们将冻结的 ViTs 和 LLMs 的参数转换为 FP16,但 FlanT5 使用 BFloat16 。我们发现与使用 32 位模型相比,性能没有下降 。由于使用了冻结模型,我们的预训练比现有的视觉-语言预训练方法对计算更加友好 。例如,使用单台 16-A100(40G) 机器,我们最大的 ViT-g 加 FlanT5-XXL 模型第一阶段需要不到 6 天,第二阶段需要不到 3 天 。

所有模型使用相同的一组预训练超参数 。我们使用 AdamW 优化器,β1​=0.9,β2​=0.98,权重衰减为 0.05 。我们使用余弦学习率衰减,峰值学习率为 1e-4,线性预热为 2k 步 。第二阶段的最小学习率为 5e-5 。我们使用 224×224 尺寸的图像,并采用随机裁剪缩放和水平翻转进行增强

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐