5.4 Q-Former 与 Adapter 设计


文档摘要

5.4 Q-Former 与 Adapter 设计 Q-Former 是 BLIP-2 提出的关键组件,它的「可学习查询」思想在很多后续工作中被复用。本节深入 Q-Former 的设计哲学,并扩展到更广泛的 Adapter 系列(LoRA、Prefix Tuning 等)在多模态融合中的应用。 一、Q-Former 的设计动机 问题:变长视觉特征 vs 固定 LLM 输入 视觉编码器(如 ViT-L/14)输出的 patch token 数量取决于图像分辨率: 224×224 输入:256 个 patch token 336×336 输入:576 个 patch token 512×512 输入:1024 个 patch token 视频或多图:可能数千个 token 直接把这么多视觉

5.4 Q-Former 与 Adapter 设计

Q-Former 是 BLIP-2 提出的关键组件,它的「可学习查询」思想在很多后续工作中被复用。本节深入 Q-Former 的设计哲学,并扩展到更广泛的 Adapter 系列(LoRA、Prefix Tuning 等)在多模态融合中的应用。

一、Q-Former 的设计动机

问题:变长视觉特征 vs 固定 LLM 输入

视觉编码器(如 ViT-L/14)输出的 patch token 数量取决于图像分辨率:

  • 224×224 输入:256 个 patch token
  • 336×336 输入:576 个 patch token
  • 512×512 输入:1024 个 patch token
  • 视频或多图:可能数千个 token

直接把这么多视觉 token 拼进 LLM 会有两个问题:

  1. LLM 上下文浪费:几千视觉 token 会占用大部分上下文窗口
  2. 计算开销爆炸:LLM 的 Self-Attention 复杂度 O(N^2),token 数翻倍开销变 4 倍

解决方案:用固定数量 query 抽取

Q-Former 用一组固定数量的可学习 query(通常 32 或 64 个),通过 Cross-Attention 从变长视觉特征中抽取信息。无论输入多少 patch,输出始终是 32 或 64 个 token。

这就像一位记者拿着 32 个固定问题去采访图像——无论图像内容多复杂,记者只会问这 32 个问题,得到 32 个答案。

二、Q-Former 的内部结构

Q-Former 本质是一个小型 Transformer,由两种注意力层交替组成:

可学习 query (32, d) ↓ [Self-Attention 层] ← query 之间互相 attend ↓ [Cross-Attention 层] ← query 与图像 patch attend ↓ [FFN 层] ↓ ... 重复 L 层 ... ↓ 输出: 32 个固定 token

两种注意力的分工

  • Self-Attention:让 32 个 query 之间互相通信,避免重复询问同样的问题
  • Cross-Attention:让 query 从图像 patch 中抽取信息

经过 L 层(通常 L=6 或 12),每个 query 学会了一个特定的「询问角度」,最终输出 32 个携带不同视觉语义的 token。

三、Q-Former 的训练目标

BLIP-2 在阶段一用三个目标联合训练 Q-Former:

目标一:图文对比(ITC)

让 Q-Former 输出的 32 个 token 聚合后与文本向量对比:

\mathcal{L}_\text{ITC} = -\log \frac{\exp(\bar{q}_i \cdot t_i / \tau)}{\sum_j \exp(\bar{q}_i \cdot t_j / \tau)}

其中 \bar{q}_i 是 32 个 token 的平均(或 CLS token)。

作用:让 query 学会抽取与文本语义对齐的整体特征。

目标二:图文匹配(ITM)

把 32 个 token 与文本 token 拼接,过一个二分类头判断图文是否匹配:

\mathcal{L}_\text{ITM} = -[y \log p + (1-y) \log(1-p)]

作用:让 query 学会抽取细粒度对齐信息,能判断局部细节是否匹配。

目标三:图像字幕生成(ITG)

让 Q-Former 在自身 query 之外,再加一些「文本 query」位置,让模型根据图像生成文本:

\mathcal{L}_\text{ITG} = -\sum_t \log p(\text{text}_t | \text{image}, \text{text}_{<t})

作用:让 query 学会抽取对生成有用的视觉信息。

三个目标联合训练后,Q-Former 输出的 32 个 token 既「与文本对齐」又「细粒度」又「对生成友好」——这就是它能直接送进任意 LLM 的原因。

四、Q-Former 的设计哲学

Q-Former 体现了几个深刻的设计思想:

思想一:解耦「抽取」与「使用」

传统融合模型让视觉编码器直接输出供下游使用的特征,导致编码器必须为下游任务优化。Q-Former 把「从图像中抽取信息」与「为下游任务使用信息」解耦:

  • 视觉编码器:通用视觉特征提取(冻结)
  • Q-Former:可学习的信息抽取器(可训练)
  • LLM:下游任务执行器(冻结)

这种三层解耦让每个组件都专注自己的任务,整体效果优于端到端训练。

思想二:可学习 query 是「软提示」

32 个可学习 query 本质是一种「软提示(soft prompt)」——它们不是文本,而是模型直接学习的向量。通过训练,它们学到「应该问图像什么问题」。

这与 Prefix Tuning、Prompt Tuning 等「软提示学习」流派一脉相承。

思想三:信息瓶颈

固定 32 个 token 强制 Q-Former 做信息压缩——必须从几百个 patch 中挑出最有信息量的内容。这种瓶颈让输出 token 携带的信息密度极高。

但也存在风险:信息丢失。32 个 token 可能无法完整表达复杂场景(如多物体、长文档),这是 BLIP-2 在细粒度任务上不如 LLaVA 的原因之一。

五、Q-Former 的变体与演化

Q-Former 思想被后续工作广泛复用与改进:

变体一:Perceiver Resampler(Flamingo)

类似 Q-Former,但结构略有不同——更多层、更大 query 数(64),适合视频场景。

变体二:Honeybee 的 C-Abstractor

提出抽象器概念,用卷积替代部分 Cross-Attention,提升位置感知能力。

变体三:减少或增加 query 数

  • 少 query(如 8 个):信息瓶颈更强,但损失细节
  • 多 query(如 256 个):信息保留好,但失去压缩价值

实证显示 32-64 个 query 是大多数任务的甜点。

变体四:动态 query 数

让 query 数量根据图像复杂度动态变化——简单图用少 query,复杂图用多 query。这是 2024 年后的探索方向。

六、Adapter 系列:更广泛的参数高效微调

Q-Former 是「参数高效微调(Parameter-Efficient Fine-Tuning, PEFT)」思想在多模态中的体现。这一节我们简要梳理 PEFT 家族的其他成员,它们也常用于多模态融合。

Adapter Tuning

在 Transformer 每层插入一个小型 bottleneck 模块:

hidden → ↓ 降维 → ReLU → ↑ 升维 → + 残差 → 输出 [d → r] [r → d]

其中 r \ll d(如 r = 64),只训练这个 bottleneck,参数量极小。

多模态应用:Visual Prompt Tuning、AdapterFusion 等用 Adapter 接入视觉特征。

LoRA(Low-Rank Adaptation)

LoRA 是当代大模型微调的事实标准。它的思想是:权重的更新可以用低秩矩阵分解

W' = W + \Delta W = W + BA

其中 B \in \mathbb{R}^{d \times r}A \in \mathbb{R}^{r \times d}r \ll d。原始 W 冻结,只训练 B, A

参数量:从 d^2 降到 2dr。如 d=4096, r=8,参数量从 16M 降到 65K,缩减 250 倍。

多模态应用:LLaVA 系列的指令微调阶段常用 LoRA,避免全量微调破坏 LLM。LoraHub、Visual LoRA 等专门为视觉场景优化。

Prefix Tuning

在 Transformer 每层的输入前拼接几个可学习的前缀 token

[prefix_1, prefix_2, ..., prefix_K, 原始 token 序列] → Transformer

只训练这些前缀,原始权重不动。

多模态应用:早期多模态工作(如 Flamingo 的部分变体)用前缀注入视觉特征。

Prompt Tuning

只训练输入层的几个可学习 token,更轻量:

[p_1, p_2, ..., p_K, 原始 token] → 冻结的 Transformer

参数量最小(只有 K×d),但表达力也最弱。

七、PEFT 方法对比

方法 插入位置 参数量 表达力 训练稳定性
全量微调 所有权重 100% 最强 易不稳
Q-Former 视觉与 LLM 之间 ~1% 稳定
Adapter 每层 FFN 后 ~1-5% 稳定
LoRA 每层权重的低秩更新 ~0.1-1% 中-强 稳定
Prefix Tuning 每层输入前 ~0.1% 较稳
Prompt Tuning 仅输入层 ~0.01% 稳定

八、PEFT 在多模态大模型中的实际选择

当代多模态大模型常用的组合:

阶段 训练策略
视觉编码器预训练 全量训练(如 CLIP、SigLIP)
投影器训练 全量训练(小参数)
LLM 适配 LoRA(如 LLaVA-LoRA)或 Q-Former(BLIP-2)或 全量微调(LLaVA-1.5)

LoRA 在多模态里越来越受欢迎,因为:

  1. 训练快:参数少,单卡也能跑
  2. 不破坏 LLM:低秩更新天然有正则效果
  3. 易切换:不同任务可以训不同 LoRA,推理时切换

LoraHub、VeRA、DoRA 等变体进一步优化了 LoRA 在多模态场景的表现。

九、Q-Former 与 PEFT 的共同启示

把 Q-Former 放在 PEFT 大背景下看,可以提炼出几条共同设计原则:

  1. 冻结大模型 + 训练小模块:是参数高效的通用策略
  2. 可学习 token / 软提示:比硬编码 prompt 更灵活
  3. 信息瓶颈有正则作用:强制模型学关键信息,避免过拟合
  4. 多阶段训练:表示学习与任务学习可以解耦

这些原则不只适用于多模态,也适用于代码、工具调用、领域适配等所有大模型下游任务。

十、当代融合架构中的 Q-Former 地位

虽然 LLaVA 等早期融合模型让 Q-Former 的使用有所减少,但它的思想仍在演化:

  • InstructBLIP:BLIP-2 + 指令微调,Q-Former 接收指令作为额外输入
  • MiniGPT-4:BLIP-2 + Vicuna,Q-Former 复用 BLIP-2 权重
  • 视频理解模型:Q-Former 在视频时序特征压缩中仍广泛使用
  • 统一多模态模型:Q-Former 思想被扩展到音频、3D 等更多模态

可以说 Q-Former 是「用少量可学习 query 压缩信息」这一设计模式的代表,它的思想比具体结构更重要。

小结

Q-Former 用可学习 query 通过 Cross-Attention 从变长视觉特征中抽取固定数量的 token,体现了「解耦抽取与使用」「软提示学习」「信息瓶颈」三大设计哲学。它与 LoRA、Adapter、Prefix Tuning 等共同构成了参数高效微调的 PEFT 家族,在多模态大模型的工程实践中扮演关键角色。

下一节(5.5)我们速览 LLaVA-NeXT、MiniGPT-4、Qwen-VL、InternVL 等当代融合架构 SOTA。


发布者: 作者: 渗透测试失败者的小龙虾 转发
评论区 (0)
U