BLIP-2:连接冻结的视觉编码器和冻结的语言模型

张开发
2026/4/11 1:58:49 15 分钟阅读

分享文章

BLIP-2:连接冻结的视觉编码器和冻结的语言模型
论文BLIP-2:BootstrappingLanguage-ImagePre-training with Frozen Image Encoders and Large Language ModelsarXiv: 2301.12597 | Salesforce Research | Junnan Li, Dongxu Li, Silvio Savarese, Steven Hoi | 2023 ICML写在前面既然 CLIP 已经能把图像和文字对齐GPT 系列已经能生成流畅的文本为什么不直接把两者拼起来问题的关键不是拼不拼得起来而是拼起来之后 LLM 能不能听懂。BLIP-2 的整个设计本质上就是在回答这一个问题在两个都冻结的大模型之间怎么架一座合格的桥一、问题背景端到端预训练的代价越来越难以承受2023 年前后视觉-语言预训练Vision-Language Pre-trainingVLP的主流范式是端到端训练图像编码器和语言模型打包在一起在海量图文对数据上从头或从预训练权重联合微调。这个路子的问题很实际——随着模型规模增大训练成本呈指数级上升且每次想换一个更强的语言模型整个系统就得重新训练一遍。另一条路是冻结策略把已经训好的图像编码器和 LLM 都锁住只训一个中间的适配模块。这条路计算效率高也能即插即用地享受社区最新的基础模型。但问题是冻结的 LLM 在单模态文本上预训练它从未见过图像视觉特征直接塞给它它根本不懂。之前的尝试并不令人满意。FrozenTsimpoukelli et al., 2021直接把图像编码器的输出当作软提示soft prompt喂给 LLM效果有限。FlamingoAlayrac et al., 2022在 LLM 内部插入新的交叉注意力层来注入视觉特征效果不错但需要在数十亿图文对上预训练这些插入层成本极高。论文作者对这两种做法的诊断是单纯依赖语言建模损失image-to-text generation loss来驱动视觉-语言对齐是不够的——它没有显式地强迫视觉表示与文本语义对齐LLM 只能靠自己猜图像的意思。BLIP-2 的核心贡献是提出了一个叫Q-FormerQuerying Transformer的轻量模块用一套两阶段的预训练策略在不动两侧大模型的前提下把这件事做好。二、整体架构三块拼图只训中间那块BLIP-2 的结构非常清晰由三部分组成冻结的图像编码器 → Q-Former唯一可训练部分→ 冻结的 LLM图像编码器的候选是两个视觉 TransformerCLIP 的 ViT-L/14以及 EVA-CLIP 的 ViT-g/14。论文有一个值得注意的处理细节使用倒数第二层penultimate layer的输出特征而非最后一层。作者发现这样做效果稍好原因可能是最后一层的特征已经过度偏向图像-文本对比任务丢失了部分通用视觉信息。LLM 的候选是两类基于 Decoder 的 OPT 系列Meta 的无监督预训练语言模型以及基于 Encoder-Decoder 的 FlanT5 系列Google 的指令微调语言模型。两侧都完全冻结不参与任何梯度更新。中间的 Q-Former 是整个系统里唯一被训练的模块参数量 188M。它扮演的角色是信息瓶颈information bottleneck从图像编码器里过滤出 LLM 最需要的那部分视觉信息丢弃与任务无关的内容。这种三段式、只训中间的设计极大地降低了计算成本。整个训练第一阶段在 16 张 A10040G上不超过 6 天第二阶段不超过 3 天。三、Q-Former 的内部结构两个共享自注意力层的 Transformer它由两个 Transformer 子模块组成但这两个子模块共享同一套自注意力层self-attention layers图像 TransformerImage Transformer负责从冻结图像编码器中提取视觉特征文本 TransformerText Transformer既可以作为文本编码器也可以作为文本解码器使用Q-Former 的输入端有一组可学习的 query 向量你可以把query 向量理解成一组可学习的 “问题”。数量固定为 32 个每个维度 768与 Q-Former 的隐层维度一致。这 32 个 query 是模型的参数随训练更新。这 32 个 query 与图像特征的交互方式是通过交叉注意力层cross-attention layers每隔一个 Transformer block 插入一次query 作为 Q冻结的图像特征作为 K/V。这意味着 query 不能修改图像特征只能读取它。同时这 32 个 query 也通过共享的自注意力层与文本 token 交互——但到底允不允许 query 和文本互相看到对方取决于当前预训练任务使用的 attention mask 策略这是第一阶段三个目标的核心差异所在。Q-Former 的初始化权重来自 BERT-base交叉注意力层随机初始化。一个关键的几何视角图像编码器输出的特征大小是 257×1024对于 ViT-L/14257 196 个 patch 1 个 CLS token而 Q-Former 输出的 Z 大小是 32×768。这个从高维到低维的压缩本身就是一种约束迫使 32 个 query 必须有所取舍只保留对文本最有价值的视觉信息。四、第一阶段从冻结图像编码器引导视觉-语言表示学习第一阶段将 Q-Former 接在冻结的图像编码器后面在 129M 图文对数据上训练。训练数据来自 COCO、Visual Genome、CC3M、CC12M、SBU以及 LAION400M 中的 1.15 亿张图像。论文还使用了来自 BLIP 的 CapFilt 方法对网络图文对进行质量过滤用 BLIPlarge 模型为每张图像生成 10 条合成描述再用 CLIP ViT-L/14 的图文相似度打分排序保留每张图最高分的两条作为训练文本。这一阶段同时优化三个目标三者共享同一套 Q-Former 参数但使用不同的自注意力 mask 策略4.1 图文对比学习Image-Text Contrastive LearningITC目标是让图像表示和文本表示的互信息最大化即正样本对相似度高、负样本对相似度低。具体操作文本 Transformer 的 [CLS] token 输出作为文本表示 t图像 Transformer 的 32 个 query 输出 Z 作为图像表示。由于 Z 是 32 个向量论文计算每个 query 输出与 t 之间的点积相似度取最高值作为整体图文相似度。Attention mask 策略单模态自注意力 maskunimodal self-attention mask——query 只能和 query 互相 attend文本 token 只能和文本 token 互相 attend两者完全隔离不能互相偷看。这样才能保证各自的表示是独立学出来的对比学习才有意义。由于图像编码器被冻结每个 GPU 可以放更多样本不需要为图像编码器存梯度所以用 in-batch 负样本而非动量队列训练更稳定高效。4.2 基于图像的文本生成Image-grounded Text GenerationITG目标是让 Q-Former 能够基于图像生成对应的文本描述强迫 query 提取文本生成所需的全部视觉信息。由于 Q-Former 的设计里冻结图像编码器和文本 token 之间没有直接交互通道——图像信息必须先被 query 提取再通过自注意力层传递给文本 token——这个设计本身就逼着 query 去捕获与文本生成相关的一切视觉细节。Attention mask 策略多模态因果自注意力 maskmultimodal causal self-attention mask——query 可以互相 attend但不能看文本文本 token 可以 attend 所有 query 以及它前面的所有文本 token因果语言模型的标准做法。同时[CLS] token 被替换为一个新的 [DEC] token用来标志解码任务的开始。4.3 图文匹配Image-Text MatchingITM目标是学习更细粒度的图文对齐让模型能判断一对图文是否匹配二分类任务。Attention mask 策略双向自注意力 maskbi-directional self-attention mask——所有 query 和所有文本 token 都可以互相 attend信息充分融合。输出的 32 个 query embedding Z 包含了多模态融合信息分别过一个二分类线性层32 个 logit 取平均作为最终的匹配分数。为了产生更难的负样本hard negatives论文采用了与 BLIP 一样的难负例挖掘策略根据 ITC 计算的相似度在 batch 内选取相似度高但标签为负的配对作为难负例迫使 ITM 学到更精细的区分能力。三个目标的本质区别可以用一句话概括ITCquery 和 text 完全隔离 → 各自独立表示 → 对比学习ITGquery 能读 imagetext 能读 query单向→ 用视觉信息生成文本ITMquery 和 text 双向互看 → 深度融合判断匹配五、第二阶段从冻结 LLM 引导视觉-语言生成学习第一阶段训练完成后Q-Former 已经知道如何从图像中提取与语言相关的视觉表示。第二阶段的任务是让这 32 个 query 的输出能被 LLM 理解实现真正的视觉-语言生成。做法极其简洁在 Q-Former 的 32 个输出 embedding Z 后面接一个全连接层FC layer将 Z 从 768 维线性投影到 LLM 的输入 embedding 维度。投影后的 32 个向量直接拼接prepend在文本 embedding 的前面作为软视觉提示soft visual prompts输入 LLM。LLM 看到的输入序列结构是[视觉 prompt × 32] [文本 tokens]LLM 完全冻结只有 FC 层的参数在这一阶段参与训练但 Q-Former 同样继续更新因为它需要学会生成 LLM 能理解的输出。根据 LLM 的类型训练目标有所不同Decoder-based LLM如 OPT采用标准语言建模损失LLM 的任务是根据视觉 prompt 生成完整的文本描述。Encoder-Decoder-based LLM如 FlanT5采用前缀语言建模损失prefix language modeling loss。具体是把文本分成两部分前半段prefix和视觉表示一起输入 Encoder后半段suffix作为 Decoder 的生成目标。这种设计让 Encoder 同时处理视觉和部分文本上下文Decoder 完成续写更适合 FlanT5 这类 seq2seq 结构。论文认为这一阶段之所以奏效很大程度上是因为第一阶段已经完成了大部分对齐工作——Q-Former 输出的 Z 已经是语言友好的视觉表示LLM 无需再费力猜测图像内容只需专注于语言生成本身从而大大缓解了灾难性遗忘catastrophic forgetting的风险。六、实验结果用 188M 可训练参数打败参数量 54 倍的 Flamingo论文在零样本 VQAv2 上的对比最能说明问题模型可训练参数零样本 VQAv2Flamingo 80B10.2B56.3BLIP-2 (ViT-g FlanT5-XXL)188M65.054 倍的参数差距8.7 个百分点的精度优势。在图像描述NoCaps任务上BLIP-2 在 CIDEr 指标达到 121.6而 BLIP 是 113.2BLIP-2 在可训练参数远少于 BLIP 的情况下反超。在图文检索Flickr30K上TR1 达到 97.6IR1 达到 89.7同样超越了 BLIP 和 BEIT-3。除了标准 benchmark论文还展示了 BLIP-2 在零样本指令跟随上的涌现能力emergent capabilities给定图像和自然语言指令模型能完成视觉对话、视觉常识推理、讲故事、个性化图文生成等任务。这一切能力都来自于 LLM 本身BLIP-2 所做的只是给它接上了眼睛。七、局限性论文的 Limitation 部分写得很诚实有几点值得专门提出来。视觉定位能力弱。Q-Former 输出的是 32 个聚合的视觉 token丢失了大量空间细节。这导致 BLIP-2 在需要精确空间理解的任务上比如图中左上角的物体是什么表现较差在 Referring Expression Comprehension 等定位任务上也有明显差距。复杂推理的失败模式难以预测。由于 LLM 完全冻结BLIP-2 的视觉推理能力受制于语言模型本身的推理路径。当视觉信息和语言模型的先验知识冲突时模型倾向于听语言模型的导致幻觉hallucination。LLM 的偏见被完整继承。OPT 和 FlanT5 各自带有训练数据里的社会偏见BLIP-2 完整继承了这些问题并且因为引入了视觉模态而可能产生新的偏见组合。对话历史的利用有限。第一版 BLIP-2 没有针对多轮对话设计在视觉对话场景下性能有限这一问题后来被 InstructBLIP 等工作跟进解决。论文链接https://arxiv.org/abs/2301.12597代码https://github.com/salesforce/LAVIS/tree/main/projects/blip2附几个设计选择1. 为什么 32 个 query 就够了32×768 的输出维度是一个工程上的权衡而不是理论上的最优解。论文没有做详细的 query 数量消融但有一个直觉query 越多压缩程度越低传给 LLM 的信息越多但 LLM 需要处理的 soft prompt 也越长query 太少则会丢失重要的视觉细节。32 这个数字在实验中效果不错并且与 BERT-base 的 32 token 输出对齐从初始化的角度也合理。2. 为什么只用倒数第二层的 ViT 特征这是一个常见的工程 trick在 CLIP、DINO 系列的工作中也有类似观察。ViT 的最后一层特征被强烈地拉向对比学习目标丢失了部分空间和语义多样性。倒数第二层保留了更丰富的中间层表示对下游任务更友好。3. Q-Former 为什么初始化自 BERT-base 而非随机BERT-base 已经在大规模语言数据上预训练其 self-attention 层对文本的语义理解有基本能力。Q-Former 的文本 Transformer 部分直接继承这些能力可以让第一阶段的文本相关目标ITC、ITG、ITM更快收敛也避免了从随机初始化训练带来的不稳定性。4. 两阶段设计的本质是什么第一阶段解决的是视觉和语言在 embedding 空间里能不能对上第二阶段解决的是对上之后 LLM 能不能用。这两个问题其实是不同层面的前者是表示对齐representation alignment后者是生成对齐generation alignment。把它们分开训练每个阶段都有清晰的优化目标比一个阶段硬撑两件事要稳定得多。

更多文章