BLIP-2提出了一种"冻结视觉模型+冻结LLM,仅训练一个中间桥梁(Q-Former)"的预训练策略,实现视觉信息和语言模型之间的高效对齐。
一、论文解决了什么问题?
任务:Vision-language pre-training (VLP)
当时(2022)已经有:CLIP(视觉很好)、ViT(视觉很好)、GPT、OPT、FlanT5、PaLM,这些模型都已经训练好了。
重新训练一个视觉语言模型,成本太高。希望在不重新训练大模型的前提下,让已经训练好的视觉模型(Image Encoder)和大语言模型(LLM)能够协同工作。
BLIP-2直接利用已经训练好的视觉模型和LLM,全部冻结,只训练一个小模块。学习视觉语言之间的映射(Alignment),而不是重新学习视觉能力和语言能力。
二、BLIP-2整体思想
整个模型其实只有三部分:
Q-Former :轻量级transformer,采用一组可学习的查询向量(Queries)从冻结的Image Encoder中提取视觉特征。 它充当冻结图像编码器和冻结 LLM 之间的信息瓶颈,为 LLM 提供最有用的视觉特征以输出所需的文本。 第一个预训练阶段,进行视觉语言表示学习,强制 Q-Former 学习与文本最相关的视觉表示。 第二个预训练阶段,通过将 Q-Former 的输出连接到冻结的 LLM 来学习视觉到语言的生成,并训练 Q-Former,使其输出的视觉表示可以由 LLM 解释。
Image ▼ Frozen Image Encoder (CLIP ViT) ▼ Q-Former(唯一训练) ▼ Linear Projection ▼ Frozen LLM (OPT / FlanT5)三、Q-Former是什么?
Image Encoder输出:257 × 1024,LLM输入:Embedding,两者根本不是一个空间。
如图,ViT输出视觉token,LLM理解的是语言token,完全不同,所以必须有一个翻译器。
Q代表:Query (Learnable),论文随机初始化了32个 Query。Query不断去"询问(Query)" Image Feature。所以名字叫:Query Transformer。
可以理解成:Image Encoder产生1000多个视觉token,Q-Former只要最重要的32个。
因此:论文把Q-Former称为Information Bottleneck(信息瓶颈)。
四、Q-Former结构
Q-Former = 两个Transformer
Image Transformer + Text Transformer共享Self-Attention,Cross Attention不同。使得Query既能看图片又能理解文本。
五、两阶段训练
这是论文最大的创新。如果直接Image → LLM,LLM不知道图片是什么,训练非常困难,所以先学视觉表示再学语言生成。
实验也证明:没有Stage1,VQA性能明显下降。
第一阶段:Vision-Language Representation Learning
特征学习,视觉语言对齐,打基础
目标学会视觉表示。
这一阶段没有LLM,只有Image Encoder → Q-Former → Text
Self-Attention负责让各个Query之间以及Query与文本Token之间(根据不同任务)进行信息交互和融合(虽然Queries是随机初始化的,但只有第一次进入self- attention时Queries什么都不知道)。
Cross-Attention 会让每个 Query 根据自己的注意力权重,从冻结的 ViT 输出中读取不同的视觉特征。例如,一个 Query 可能更关注猫的头部,另一个 Query 更关注背景,还有一个 Query 更关注沙发。当这些 Query 完成 Cross-Attention 后,它们的表示已经不再是随机向量,而是变成了"携带不同视觉信息的表示"。接下来进入下一层 Self-Attention 时,这些 Query 才真正开始交换信息。原本只知道猫头的 Query 可以从其他 Query 中获得墨镜、沙发等信息,最终形成更完整的图像理解。
所以,更准确地说,Self-Attention 的价值主要不是第一次计算,而是在 Cross-Attention 已经把视觉信息注入 Query 之后发挥作用。
Cross-Attention负责让Query从冻结的图像编码器中提取视觉特征。
通过不同的Attention Mask,Self-Attention还能支持三种不同的预训练目标(ITC、ITM、ITG),因此它不仅承担了信息融合的作用,还承担了任务切换和跨模态交互的作用,是Q-Former能够同时完成图文对齐和文本生成的关键模块。
损失函数
三种任务,训练三个Loss:
① ITC,Image-Text Contrastive,目的:图片和文本靠近,不同图片远离。(同CLIP)
② ITM,Image Text Matching,判断图片是不是对应文本,就是二分类。
③ITG,Image-grounded Text Generation就是Caption,根据图片生成文本。
这一Loss非常重要,实验发现没有ITG,Retrieval性能下降。
计算方法
假设有一个 Batch的图文对数据(比如 64 张图片和 64 句对应的文本)。
因为这三个任务需要用到完全不同的注意力掩码(Mask)策略,所以在底层的代码实现中,Q-Former 实际上会针对这同一个 Batch 的数据,走三遍前向传播流程(或者把数据复制成三份打包成一个大 Batch):
分别套用每种mask形式计算出相应的损失,然后计算
第二阶段:vision-to-language generative pre-training
生成学习
第一阶段结束,Q-Former已经会提取重要视觉信息。第二阶段:接 LLM结构:完成视觉到语言的生成式预训练
核心目的:把提炼出来的视觉特征,接入强大的大语言模型 (LLM) 中。
Image → Frozen ViT → QFormer → FC → LLMFC用于维度对齐,因为QFormer维度:768,LLM可能2048可能4096。对齐后的维度大小主要取决于LLM的维度,Queries的和pre-fix text feature同时对齐至LLM的维度
只训练:QFormer、FC,LLM继续冻结。
损失函数
那么进入第二阶段后,它的任务只有一个了,损失函数也是唯一的,就是大语言模型最经典的语言建模损失 (Language Modeling Loss),
无论选择哪种LLM架构,第二阶段的目标只有一个:让大模型说出正确的话。
对于上半图 (Decoder-only 模型):模型接收到 32 个Queries,需要逐词生成正确的描述文本 "a cat wearing sunglasses"。每生成一个词,就会和真实的标签(Ground Truth)对比算一次交叉熵,计算整个句子的交叉熵之和。
对于下半图 (Encoder-Decoder 模型):模型接收到视觉 Queries 和前缀 "a cat",Decoder 需要生成后缀 "wearing sunglasses"。同样,只有生成这个后缀的过程中才会逐词计算 Loss。
对于下半图 (Encoder-Decoder 模型):模型接收到视觉 Queries 和前缀 "a cat",Decoder 需要生成后缀 "wearing sunglasses"。同样,只有生成这个后缀的过程中才会逐词计算 Loss。
六、测试阶段
在第一阶段图文对齐(预训练)完之后,进入第二阶段(对接 LLM)以及最终用户使用它时,BLIP-2 把 Q-Former 的文本输入侧给掐断了(或者只输入空的 query)。用户的提问只传给后端的 LLM。这意味着,虽然它在预训练时练就了“根据文本看图”的本领,但在真正上战场(推理)时,这个本领被封印了,它只能靠 32 个固定 Query 去盲抽一个通用的视觉特征。
InstructBLIP 不同,在下游微调和推理时,重新把这个文本入口打开,把用户的 Instruction 实时塞进去。
测试阶段的32个Queries不再是随机数,而是 32 个已经完全训练好的、固定的数值向量(它们就像模型的权重/常数一样,保存在模型的.pth或.bin权重文件中)。
七、实验结果
Zero-shot VQA:训练参数:188M,Flamingo:10B+,训练参数少了54倍。性能反而更好。
Caption:在NoCaps 和 COCO上都达到了SOTA,QFormer学到了通用视觉表示。
Retrieval:Image-Text Retrieval SOTA,说明Stage1非常成功。
八、创新点
1.提出:Q-Former作为视觉—语言桥梁。
2.冻结 Image Encoder 和 LLM,只需要学习Vision → Language之间如何翻译,只训练QFormer成本极低。
3.两阶段训练 Representation Learning → Generative Learning
4. Information Bottleneck:不是把所有视觉信息送给LLM,只送最重要的信息。
九、BLIP、BLIP-2、LLaVA关系
BLIP │ ├── Image Encoder训练 ├── Language训练 └── End-to-End ↓ BLIP-2 │ ├── Frozen Image Encoder ├── Frozen LLM └── QFormer ↓ MiniGPT-4 │ ├── Frozen ViT ├── Frozen Vicuna └── Projection ↓ LLaVA │ ├── Frozen CLIP ├── Frozen LLM └── MLP Projection可以看到:LLaVA其实就是把QFormer进一步简化成MLP。
因此很多论文都认为BLIP-2是现代视觉大模型的重要里程碑。
十、局限性
1.不擅长 In-Context Learning:训练数据以单个图文对为主,难以从多组示例中学习上下文模式。
2.可能产生错误知识或推理:生成内容可能受到LLM已有知识错误、推理路径偏差的影响。
3.继承LLM风险:包括社会偏见、不当内容和隐私风险等,因为LLM保持冻结状态。
十一、整篇论文思维导图(速记版)
BLIP-2 │ ├── Motivation │ ├── End-to-End太贵 │ └── 利用已有CLIP+LLM │ ├── Architecture │ ├── Frozen Image Encoder │ ├── Q-Former │ ├── FC │ └── Frozen LLM │ ├── Stage1 │ ├── ITC │ ├── ITM │ └── ITG │ ├── Stage2 │ ├── 接LLM │ ├── Language Modeling │ └── Prefix LM │ ├── Innovation │ ├── Q-Former │ ├── Frozen Models │ ├── Two-stage Training │ └── Information Bottleneck │ └── Results ├── VQA SOTA ├── Caption SOTA ├── Retrieval SOTA └── 54× 更少可训练参数Q-Former中的Self-Attention之间如何交互
在 Q-Former 的架构中,Self-Attention 层不仅负责处理单一模态的内部信息,还要进行视觉 Queries 和文本 Tokens 之间的初步多模态融合。以Fig.2中图像-文本匹配 (Image-Text Matching, ITM)任务的双向掩码 (Bi-directional Self-Attention Mask)为例,从矩阵运算和特征融合的物理意义两个维度进行拆解。
1. 数学表达与矩阵构建
为了避免与注意力机制中的 Q, K, V 混淆,设定:
Learned Queries为
,其中 N 是 Query 数(通常为 32),D 是隐藏层维度。
Text Tokens为
,其中 L 是输入文本序列的长度。
进入 Self-Attention 层之前,Q-Former 实际上会将这两组序列在长度维度上Concat,形成一个统一的输入序列 X:
【无论采用哪种 Mask,X 都是完整的 N 个 Queries 和完整的 L 个 Text Tokens,变的只是M】
随后,输入序列 X 通过三个不同的线性变换矩阵映射出注意力机制所需的查询 (Query)、键 (Key) 和值 (Value) 矩阵:
Q、K、V 的维度均为。然后做点积注意力 (Scaled Dot-Product Attention) ,公式包含一个掩码矩阵 M:
掩码矩阵,作用是控制信息流向。
如果在位置 (i, j) 允许可见,则
。
如果在位置 (i, j) 被遮挡,则
(经过 softmax 后权重变为 0)。
3. 物理意义与宏观作用
在经过一次完全双向的 Self-Attention 后,输出的新 Z' 和 T' 已经不再是纯粹的单模态特征了。
对于 Queries:不再只是盲目的“视觉探针”,变成了“以文本条件为引导的视觉探针”。当它们随后进入 Cross-Attention 层与冻结的图像特征交互时,会优先提取与输入文本高度相关的视觉响应。
对于整个任务 (ITM):因为 Queries 和 Text 进行了这种细粒度、双向的深度交叉,模型最终可以利用输出的特征进行二分类(例如提取特殊 token
[CLS]的特征过全连接层),敏锐地判断图像和文本对在细微语义上是否匹配。