BLIP-2
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 × 1024LLM输入Embedding两者根本不是一个空间。如图ViT输出视觉tokenLLM理解的是语言token完全不同所以必须有一个翻译器。Q代表Query (Learnable)论文随机初始化了32个 Query。Query不断去询问Query Image Feature。所以名字叫Query Transformer。可以理解成Image Encoder产生1000多个视觉tokenQ-Former只要最重要的32个。因此论文把Q-Former称为Information Bottleneck信息瓶颈。四、Q-Former结构Q-Former 两个TransformerImage Transformer Text Transformer共享Self-AttentionCross Attention不同。使得Query既能看图片又能理解文本。五、两阶段训练这是论文最大的创新。如果直接Image → LLMLLM不知道图片是什么训练非常困难所以先学视觉表示再学语言生成。实验也证明没有Stage1VQA性能明显下降。第一阶段Vision-Language Representation Learning特征学习视觉语言对齐打基础目标学会视觉表示。这一阶段没有LLM只有Image Encoder → Q-Former → TextSelf-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 MaskSelf-Attention还能支持三种不同的预训练目标ITC、ITM、ITG因此它不仅承担了信息融合的作用还承担了任务切换和跨模态交互的作用是Q-Former能够同时完成图文对齐和文本生成的关键模块。损失函数三种任务训练三个Loss① ITCImage-Text Contrastive目的图片和文本靠近不同图片远离。同CLIP② ITMImage Text Matching判断图片是不是对应文本就是二分类。③ITGImage-grounded Text Generation就是Caption根据图片生成文本。这一Loss非常重要实验发现没有ITGRetrieval性能下降。计算方法假设有一个 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维度768LLM可能2048可能4096。对齐后的维度大小主要取决于LLM的维度Queries的和pre-fix text feature同时对齐至LLM的维度只训练QFormer、FCLLM继续冻结。损失函数那么进入第二阶段后它的任务只有一个了损失函数也是唯一的就是大语言模型最经典的语言建模损失 (Language Modeling Loss)无论选择哪种LLM架构第二阶段的目标只有一个让大模型说出正确的话。对于上半图 (Decoder-only 模型)模型接收到 32 个Queries需要逐词生成正确的描述文本 a cat wearing sunglasses。每生成一个词就会和真实的标签Ground Truth对比算一次交叉熵计算整个句子的交叉熵之和。对于下半图 (Encoder-Decoder 模型)模型接收到视觉 Queries 和前缀 a catDecoder 需要生成后缀 wearing sunglasses。同样只有生成这个后缀的过程中才会逐词计算 Loss。对于下半图 (Encoder-Decoder 模型)模型接收到视觉 Queries 和前缀 a catDecoder 需要生成后缀 wearing sunglasses。同样只有生成这个后缀的过程中才会逐词计算 Loss。六、测试阶段在第一阶段图文对齐预训练完之后进入第二阶段对接 LLM以及最终用户使用它时BLIP-2 把 Q-Former 的文本输入侧给掐断了或者只输入空的 query。用户的提问只传给后端的 LLM。这意味着虽然它在预训练时练就了“根据文本看图”的本领但在真正上战场推理时这个本领被封印了它只能靠 32 个固定 Query 去盲抽一个通用的视觉特征。InstructBLIP 不同在下游微调和推理时重新把这个文本入口打开把用户的 Instruction 实时塞进去。测试阶段的32个Queries不再是随机数而是 32 个已经完全训练好的、固定的数值向量它们就像模型的权重/常数一样保存在模型的.pth或.bin权重文件中。七、实验结果Zero-shot VQA训练参数188MFlamingo10B训练参数少了54倍。性能反而更好。Caption在NoCaps 和 COCO上都达到了SOTAQFormer学到了通用视觉表示。RetrievalImage-Text Retrieval SOTA说明Stage1非常成功。八、创新点1.提出Q-Former作为视觉—语言桥梁。2.冻结 Image Encoder 和 LLM只需要学习Vision → Language之间如何翻译只训练QFormer成本极低。3.两阶段训练 Representation Learning → Generative Learning4. 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太贵 │ └── 利用已有CLIPLLM │ ├── 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 数通常为 32D 是隐藏层维度。Text Tokens为其中 L 是输入文本序列的长度。进入 Self-Attention 层之前Q-Former 实际上会将这两组序列在长度维度上Concat形成一个统一的输入序列 X【无论采用哪种 MaskX 都是完整的 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]的特征过全连接层敏锐地判断图像和文本对在细微语义上是否匹配。