← 返回论文库
奠基 Groundwork ICML 2023 · 2023 arXiv:2301.12597 ↗

BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language ModelsBLIP-2:冻结图像编码器与大语言模型的引导式预训练

用轻量 Q-Former 桥接冻结的 ViT 与冻结的 LLM,以极少可训练参数实现图文对齐与生成。

作者:Junnan Li, Dongxu Li, Silvio Savarese, Steven Hoi
机构:Salesforce Research
发布:ICML 2023
时间:2023-01
视觉-语言模型模态桥接
原文摘要 · English Abstract

This paper proposes BLIP-2, a generic and efficient pre-training strategy that bootstraps vision-language pre-training from off-the-shelf frozen pre-trained image encoders and frozen large language models. BLIP-2 bridges the modality gap with a lightweight Querying Transformer (Q-Former), which is pre-trained in two stages. BLIP-2 outperforms Flamingo80B by 8.7% on zero-shot VQAv2 with 54x fewer trainable parameters.

概要

视觉-语言预训练模型近年不断变大,端到端联合训练视觉和语言两个模态的成本越来越难以承受。BLIP-2 提出一种通用且省算力的预训练策略:把冻结的图像编码器和冻结的大语言模型直接“拼接”起来,中间插入轻量的 Querying Transformer(Q-Former)作为信息瓶颈,把视觉特征转成 LLM 能理解的语言化摘要,训练分表征对齐、生成对齐两阶段。BLIP-2 只训练 188M 参数就取得多项任务最优结果,零样本 VQAv2 上比 Flamingo80B 高 8.7 个百分点,可训练参数却少 54 倍。

此前视觉-语言预训练主要靠端到端联合训练大规模视觉和语言模型,随着模型规模增长计算成本极高;即使有 Frozen、Flamingo 等尝试冻结部分模型以省算力,它们也只用图文生成损失来对齐视觉和语言——因为 LLM 预训练时从未见过图像,仅靠这一个目标很难弥合模态鸿沟,对齐效果有限。

关键贡献

  • 提出轻量的 Querying Transformer(Q-Former),作为冻结图像编码器与冻结大语言模型之间的信息瓶颈桥梁。
  • 设计两阶段预训练策略,先做视觉-语言表征学习、再做视觉到语言的生成式学习,逐步弥合模态鸿沟。
  • 用共享参数和不同注意力掩码,在同一次前向里联合优化对比、匹配、生成三个目标,让 32 个 query 学到多种对齐能力。
  • 仅用 188M 可训练参数就在零样本 VQA、图像描述、图文检索等任务上取得开源模型最佳成绩。
  • 在零样本 VQAv2 上比参数量大 54 倍的 Flamingo80B 高出 8.7 个百分点,大幅降低了多模态预训练所需算力。
  • 展示了 BLIP-2 遵循自然语言指令做零样本图文生成的涌现能力。

方法详解(完整做法)

总体思路

BLIP-2 不重新训练一个大型端到端多模态模型,而是把“视觉”和“语言”两个已经训练好、被冻结的模型直接接起来,中间插入一个轻量的桥梁模块 Q-Former。整个流程是:图像先经过冻结的图像编码器(CLIP ViT-L/14 或 EVA-CLIP ViT-g/14)得到网格特征,Q-Former 用一组可学习的 32 个 query 向量与这些特征做交叉注意力,把最相关的文本信息压缩进固定长度的输出 ZZ;ZZ 经过投影后作为软提示喂给冻结的大语言模型,由 LLM 生成文本。训练分两阶段:先只用图像编码器训练 Q-Former 学会“看图抓重点”,再接上冻结 LLM 训练它“把重点说出来”。全程图像编码器和 LLM 参数都不更新,只需训练 188M 参数的 Q-Former,计算成本因此大幅下降。

Q-Former 架构与信息瓶颈

Q-Former 由两个共享自注意力层的 transformer 子模块组成:一个图像 transformer 负责与冻结图像编码器交互抽取视觉特征,一个文本 transformer 既能编码也能解码文本。32 个可学习 query(每个维度 768,用 BERT_base 权重初始化,交叉注意力层随机初始化)先彼此做自注意力,再通过每隔一层插入的交叉注意力层读取冻结图像特征:

Z=CrossAttn(Q, Fimg, Fimg),Q∈R32×768Z=\mathrm{CrossAttn}\big(Q,\,F_{\mathrm{img}},\,F_{\mathrm{img}}\big),\qquad Q\in\mathbb{R}^{32\times768}

输出 ZZ 的大小只有 32×76832\times768,远小于原始图像特征(如 ViT-L/14 的 257×1024257\times1024),这个瓶颈架构和后续预训练目标一起,逼迫 query 只保留对文本最有用的视觉信息。

第一阶段:图文对比学习(ITC)

第一阶段把 Q-Former 接到冻结图像编码器上,用图文对做表征学习。ITC 让每个 query 的输出与文本 [CLS] 表示对齐:从 32 个 query 与文本的相似度里取最大值作为图文相似度,再用 batch 内负样本做对比损失(query 与文本之间加单模态掩码、彼此不可见,避免信息泄漏):

si=max⁡k(zi(k)⊤ti),LITC=−1N∑i=1Nlog⁡esi/τ∑j=1Nesij/τs_i=\max_{k}\big(z_i^{(k)\top}t_i\big),\qquad \mathcal{L}_{\mathrm{ITC}}=-\frac{1}{N}\sum_{i=1}^{N}\log\frac{e^{s_i/\tau}}{\sum_{j=1}^{N}e^{s_{ij}/\tau}}

因为图像编码器冻结、显存占用小,作者用 in-batch negatives 替代了 BLIP 里的动量队列,简化了实现。

第一阶段:图像匹配与图像引导文本生成(ITM / ITG)

同一组参数还联合优化另外两个目标,只靠切换注意力掩码区分任务。ITM 是二分类:query 和文本双向可见,每个 query 的输出过一个二分类线性头,取平均 logit 判断图文是否匹配,并引入难负样本挖掘。ITG 则用因果掩码让文本 token 只能看到所有 query 和它之前的 token,query 之间可互相看但看不到文本——迫使生成文本所需的一切信息必须先被 query 从图像里抽取出来,再经自注意力传给文本:

LITG=−∑tlog⁡pθ(yt∣y<t,Z)\mathcal{L}_{\mathrm{ITG}}=-\sum_{t}\log p_\theta\big(y_t\mid y_{<t},Z\big)

三个目标共享同一套输入格式和参数,只是注意力掩码不同,这是 Q-Former 用一次前向同时学三种能力的关键设计。

第二阶段:视觉到语言的生成式学习

第二阶段把(已经过第一阶段训练、带着冻结图像编码器的)Q-Former 接到冻结 LLM 上。一个全连接层把 query 输出 ZZ 线性投影到 LLM 的文本嵌入维度,再拼接到输入文本嵌入前面,充当“软视觉提示”:

Z~=WFCZ+b,LLLM=−∑tlog⁡pLLM(yt∣y<t,Z~)\tilde Z=W_{\mathrm{FC}}Z+b,\qquad \mathcal{L}_{\mathrm{LLM}}=-\sum_{t}\log p_{\mathrm{LLM}}\big(y_t\mid y_{<t},\tilde Z\big)

对 decoder-only LLM(OPT 系列)用标准语言建模损失;对 encoder-decoder LLM(FlanT5 系列)则把文本切成前缀和后缀,前缀与视觉表示一起送编码器,后缀作解码器的生成目标(prefix language modeling)。

为什么要先做第一阶段,不能直接接 LLM

如果跳过第一阶段、直接把未经训练的视觉特征接给冻结 LLM(如 Frozen、Flamingo 的做法),由于 LLM 预训练时从未见过图像,只靠一个图文生成损失很难学会把视觉特征对齐到语言空间——论文称之为“模态鸿沟”。先用 ITC/ITM/ITG 在纯视觉-语言表征层面把 query 训练成“看得懂图、说得出文字要点”的状态,再接 LLM 时,LLM 只需学会读取已经语言化的视觉摘要,不必从零学习跨模态对齐,这既降低了 LLM 端的学习负担,也缓解了冻结大模型场景下常见的灾难性遗忘问题。

小结

BLIP-2 的核心是用一个轻量、可学习的 Q-Former 作为信息瓶颈,通过两阶段(先对齐表征、再对齐生成)把冻结图像编码器和冻结 LLM 接起来,用极少的可训练参数复用两个单模态大模型已有的能力。

实验与关键数据

预训练用 COCO、Visual Genome、CC3M/CC12M、SBU 及 LAION400M 共 129M 图文对(经 BLIP CapFilt 筛选合成字幕);图像编码器用 CLIP/EVA-CLIP ViT,LLM 用 OPT 或 FlanT5。零样本 VQAv2、图像描述、图文检索均取得开源模型最佳成绩。

关键数据

VQAv2 (test-dev) 零样本 VQA acc.
65.0%
vs Flamingo80B 56.3%(+8.7)
NoCaps (val) 零样本 CIDEr
121.6
vs BLIP 113.2(+8.4)
Flickr30K (test) 零样本 IR@1
89.7%
vs BLIP 86.7%(+3.0)
预训练可训练参数量
188M(Q-Former)
vs Flamingo80B 10.2B(少54倍)
COCO 图文检索消融:加入 ITG 损失后图→文 R@1
85.4%
vs 仅ITC+ITM 84.5%(+0.9)

影响与局限

BLIP-2 确立了“冻结视觉编码器 + 轻量桥接模块 + 冻结 LLM”这一模块化对齐范式,证明不必端到端训练也能拿到 SOTA,大幅降低了多模态预训练门槛。其 Q-Former 设计和两阶段训练思路被后续 InstructBLIP、MiniGPT-4 等指令跟随多模态模型直接沿用,是从“纯预训练视觉-语言模型”迈向“可对话多模态大模型”的关键一步。

局限与不足

模型在提供少样本上下文 VQA 示例时并未表现出情境学习能力的提升,作者认为原因是预训练数据每条样本只含一张图和一段文本,LLM 学不到同一序列里多个图文对之间的关联,这与 Flamingo 论文的观察一致,作者计划未来构造带交错图文序列的数据集来解决。此外,BLIP-2 的图文生成有时会给出不准确的结果,原因包括 LLM 自带的知识错误、激活了错误的推理路径,或对图像里的新内容缺乏更新的信息。由于底层 LLM 被冻结,BLIP-2 还会继承 LLM 自身的风险,例如输出攻击性语言、传播社会偏见或泄漏训练数据中的隐私信息,作者建议用指令引导生成或在过滤后的数据上训练来缓解,但论文本身并未解决这些问题。