云镜收藏

稍后阅读

清单保存在当前浏览器,方便下次回来继续阅读。

清单还是空的

在笔记卡片或正文页点击“加入稍后阅读”即可收藏。

卷3 · 多模态理解 VLM

3.3 Connector 设计空间:Flamingo、BLIP-2 与开源双雄的答案

约 6 分钟阅读
全书目录

展开本章目录与同卷章节1. 问题重述2. 谱系四站2.1 Flamingo(2022):Perceiver Resampler + 门控交叉注意力2.2 BLIP-2(2023):Q-Former ——参数最重的 connector2.3 LLaVA 系:MLP 投影——简单者生存2.4 现代 token 压缩工程(Qwen-VL / InternVL 的答案)3. 设计空间地图(给任何 connector 定位的三个轴)4. 自测题5. 动手作业案例 · 数值:576 个 token 如何无损变成 144 个6. 延伸资源同卷章节3.1 多模态总览:把视觉接进语言模型的三条路线3.2 LLaVA 范式精读与复现:两阶段训练全流程3.3 Connector 设计空间:Flamingo、BLIP-2 与开源双雄的答案3.4 视觉 Tokenizer:VQ-VAE 与 VQGAN——离散化是生成路线的地基3.5 开源双雄精读:Qwen-VL 与 InternVL 系列技术报告3.6 文档理解与 OCR-free:让 VLM 读懂 PDF3.7 多模态评测体系与陷阱3.8 数据为中心的 VLM:具体案例研读

本章目标:横评 connector 的设计谱系——从 Perceiver Resampler 到 Q-Former 再到”MLP 赢了”,以及 Qwen-VL / InternVL 两个头部家族各自怎么解决 token 压缩与高分辨率。学完标准:能按”信息保真 / token 数 / 训练成本”三个轴给任何 connector 定位,并理解”Q-Former 之死”的教训。

1. 问题重述

3.1 的核心矛盾再具体一点:CLIP ViT-L 在 336px 下给 576 个 token——一条样本还扛得住;但高分辨率(文档、图表)要 2000+,多图对话和多帧视频直接爆炸。connector 的本质是信息瓶颈的设计权:压多少、按什么结构压、在哪一层压。

2. 谱系四站

2.1 Flamingo(2022):Perceiver Resampler + 门控交叉注意力

  • Resampler:64 个可学习 query 对视觉特征做交叉注意力,输出固定 64 个 token——无论输入多少 patch,出口恒定;
  • 更激进的:不在输入端拼接,而是在 LLM 每层之间插入交叉注意力层(文本 query 直接查视觉特征),用门控(初始为零的 tanh gate)保证训练起点等价于纯 LLM;
  • 遗产:交叉注意力的”后融合”思想、门控稳定训练的技巧、图文交错数据格式(interleaved)。后续做视频/多图理解的工作普遍引用它。

2.2 BLIP-2(2023):Q-Former ——参数最重的 connector

  • 32 个可学习 query + 一个完整的 BERT 式 Transformer 模块(~200M 参数),靠 ITC/ITM/ITG 三个损失预训练(从 BLIP 继承),再接 LLM;
  • 出口仅 32 token,压缩率极高;
  • 命运:被后续实验证明性价比不敌两层 MLP——LLaVA-1.5 用更简结构+更好数据全面超越 InstructBLIP。Q-Former 预训练的三个损失与 LLM 的使用方式错位,成为瓶颈。“Q-Former 之死”是本领域”数据 > 架构”的最强案例;但它的思想(learned query 池)在视频和 3D 里仍活着。

2.3 LLaVA 系:MLP 投影——简单者生存

  • 两层 MLP,576 token 原样进 LM,压缩交给分辨率控制(336px)而不是模块;
  • 阶段一用海量 caption 做对齐,比 Q-Former 的代理损失更直接服务下游。

2.4 现代 token 压缩工程(Qwen-VL / InternVL 的答案)

真正被产业保留下来的压缩发生在特征层面而非独立模块:

  • Pixel Shuffle(InternVL / Qwen-VL 系):把空间上相邻的特征重排到通道维——例如 2×2 邻域重排,token 数 ÷4、通道 ×4,信息无损(只是重新打包),再用线性层压回原通道。这是当前开源 VLM 的主力压缩手法,InternVL 压 256 token,Qwen2-VL 动态压缩;
  • 动态分辨率(Qwen2-VL 起,NaViT 思路):图像不 resize 到固定方块,按原生比例切 patch,token 数随内容变化——文档小字用高预算,缩略图用低预算。配套 M-RoPE(多模态旋转位置编码:时间/高/宽三维解耦的位置 ID);
  • 大视觉塔路线(InternVL):与其压得更狠,不如把视觉塔做大做强(InternViT-6B 级别)再压——“视觉特征的质量决定压缩后的下限”。

3. 设计空间地图(给任何 connector 定位的三个轴)

轴一端另一端权衡
token 数576(LLaVA-1.5)32(Q-Former)信息保真 vs LM 负担
模块参数两层 MLP200M Q-Former训练简单 vs 表达能力
压缩位置输入端投影LM 内部交叉注意力管线简洁 vs 深度融合

结论公式(当前共识):MLP/轻投影 + pixel shuffle 压缩 + 动态分辨率 + 好数据。你做研究时若要动 connector,先证明”数据打不满”再动结构——否则审稿人一句”data scaling 就能解决”就拒了。

4. 自测题

  1. Resampler 和 Q-Former 的共同思想?(learned query 池把变长视觉特征池化成定长 token)
  2. Q-Former 输在哪里?(代理损失与 LLM 使用方式错位;同等算力下数据收益率更高——LLaVA-1.5 证明)
  3. pixel shuffle 为什么”无损”?压在哪?(空间信息重排进通道维,只是打包方式变化;后续线性层有损压缩)
  4. 动态分辨率解决固定方块的两个什么问题?(小图浪费预算 / 大图小字细节丢失)
  5. Flamingo 的零初始化门控和 LoRA 的 B 置零(2.6)共享什么哲学?(新模块从”恒等/不干扰”起点出发,不破坏预训练能力)
  6. M-RoPE 解耦了哪三个维度,为什么需要?(时间/高/宽;多帧多 patch 时单一位置序列表达不了时空结构)

5. 动手作业

  1. 读 LLaVA-1.5 论文的 ablation 表:列出”数据/分辨率/connector”三个因素的贡献量级——亲手验证”数据 > 架构”;
  2. 实现 pixel shuffle 压缩:(B, 576, 1024) → (B, 144, 4096)(2×2 重排),用随机张量验证信息往返一致;
  3. 用 transformers 加载 Qwen2.5-VL-3B(或 InternVL3-2B),数一张 448×448 图的视觉 token 数,对比同图 resize 到 336 的 CLIP 式 token 数——建立”现代 VLM 的 token 账单”直觉;
  4. 挑战:给 3.2 的迷你 LLaVA 把 576 token 换成 pixel shuffle 压缩到 144,对比阶段二的 loss 曲线和 caption 质量——你的第一个多模态结构消融。

案例 · 数值:576 个 token 如何无损变成 144 个

案例:pixel shuffle(2) 的完整流水账

CLIP 特征:24×24 网格,每位置 1024 维(合计 576 token)。

pixel shuffle(2):把相邻 2×2 的 4 个向量沿通道维打包 → 网格变 12×12 = 144 个位置,每位置 1024×4 = 4096 维。

信息核对:144×4096=576×1024=589,824144 \times 4096 = 576 \times 1024 = 589{,}824 个数字——一个都没丢,只是重新打包(这一步无损);随后接 Linear(4096→1024) 才发生真正的有损压缩。

读出设计的聪明处:把”压缩的学习”集中在最后那一个 Linear 层上(便宜、好训),而不是让 LLM 的注意力去硬扛 576 个 token(贵、平方复杂度)。这就是 3.3 正文说的”压缩发生在特征层面”的具体形状——InternVL 与 Qwen 系的公共底盘。

6. 延伸资源

  • Flamingo / BLIP-2 论文——精读设计动机部分即可
  • Qwen2-VL 技术报告(NaViT 式动态分辨率 + M-RoPE)——当代标准答案
  • InternVL 系列报告——大视觉塔路线