多模态大模型如何把视觉特征接入 LLM?Projector、Q-Former 和 Cross-Attention 有什么区别?
简化版
连接器负责把视觉编码器的输出「翻译」成 LLM 能用的表示,三种主流方案:Projector(如 LLaVA) 用线性层/MLP 直接把每个视觉 token 映射到 LLM 词向量维度,简单、信息保留多,但视觉 token 数不变、可能很多;Q-Former(如 BLIP-2) 用一组可学习查询从视觉特征里提取固定数量表示,省上下文但形成信息瓶颈;Cross-Attention(如 Flamingo) 让 LLM 的语言层按需读取视觉特征,交互最深,但要改模型结构、工程更复杂。
详细版
- LLaVA 类:线性层/MLP 把视觉编码器输出投影成 LLM 输入嵌入,再和文本 token 拼接。
- BLIP-2:用 Q-Former,在冻结视觉编码器和 LLM 的前提下,用查询 token 桥接两端。
- Flamingo:对视觉特征重采样,并在冻结的语言模型层间插入门控 Cross-Attention。
三者都在解决「维度映射 + token 数 + 跨模态交互」这三件事,但训练方式不由连接器名字唯一决定——Projector 也能端到端训,Q-Former/Cross-Attention 也可能和其他模块一起更新。
完整版教学
记忆钩子:多模态题先看视觉信号如何变成 token,再看连接器如何对齐语言空间,最后看推理成本和幻觉风险。
一、为什么需要连接器:两个空间对不上
视觉编码器输出的向量,和 LLM 的词向量在三方面不匹配:维度不同(视觉可能 1024 维,LLM 4096 维)、统计分布不同、语义粒度不同。直接把视觉特征当词向量塞进去,LLM 根本读不懂。
连接器要做三件事:① 维度映射(对齐到 LLM 输入维度)、② 信息筛选(保留有用的、压掉冗余的)、③ 通过训练建立视觉表示与语言概念的对应。这最后一点是灵魂——连接器是唯一(或主要)在图文对齐训练中学习的桥梁。
二、Projector:逐 token 映射,简单直接
Projector 就是一个线性层或两层 MLP,对每个视觉 token 独立做映射:
视觉编码器输出 576 个 patch 向量(各 1024 维)
→ MLP 映射 → 576 个 LLM 输入嵌入(各 4096 维)
→ 和文本 token 拼接进 LLM
- 优点:参数少、实现和训练都简单,保留全部视觉 token、信息损失小。
- 缺点:token 数原封不动——高分辨率图切出上千 patch,就有上千视觉 token 挤占上下文、推高 Prefill。
- 它把更多对齐压力交给数据和 LLM 微调(靠海量图文指令数据学对齐)。
LLaVA 用这个方案证明了「简单 Projector + 好数据」就能做出强多模态模型,是当前最流行的路线。
三、Q-Former:固定查询提取,省 token 但有瓶颈
Q-Former(BLIP-2)用一组可学习的查询向量(如 32 个),通过 Cross-Attention 从冻结的视觉编码器特征里「问出」固定数量的表示:
576 个视觉特征 + 32 个可学习查询
→ 查询用 Cross-Attention 读取视觉特征
→ 输出 32 个查询表示 → 进 LLM
- 优点:无论原图多大,输出固定 32 个 token,上下文成本可控;能在冻结两端的情况下桥接。
- 缺点:固定查询数是信息瓶颈——复杂场景(密集文档、多物体)可能被压掉细粒度信息。
- BLIP-2 分两阶段训:先做视觉语言表示学习,再做「以冻结 LLM 为目标」的视觉到语言生成学习。
四、Cross-Attention:语言层按需读取,交互最深
Flamingo 的思路不同——不把视觉 token 拼进输入序列,而是在 LLM 的层之间插入门控 Cross-Attention,让语言隐藏状态按需读取视觉特征:
Cross-Attention:Query = 语言隐藏状态,Key/Value = 视觉特征
→ 不同文本位置可以在每一层反复"看图"
→ 门控(gating)初始为 0,保护预训练语言能力,训练中逐渐打开
- 优点:交互深、支持图文交错输入(多图穿插文本)、视觉不占主序列长度;
- 缺点:要改模型结构(插入新层)、缓存和部署更复杂,训练成本更高。
五、三者对比与选型
| 维度 | Projector | Q-Former | Cross-Attention |
|---|---|---|---|
| 视觉 token 数 | 原样(多) | 固定少量 | 不占主序列 |
| 信息保留 | 高 | 有瓶颈 | 高(按需读) |
| 交互深度 | 浅(拼接) | 中 | 深(逐层) |
| 结构改动 | 无 | 中 | 大 |
| 代表 | LLaVA | BLIP-2 | Flamingo |
选型建议:
- 快速复用现成视觉编码器 + LLM → 优先 Projector(简单有效);
- 想冻结两端、限制视觉 token → 查询式重采样(Q-Former);
- 需要多层反复的图文交互、图文交错 → Cross-Attention;
- 文档/OCR 等细节密集任务 → 重点检查连接器是否过度压缩丢了细节。
最终应比较任务质量、训练参数量、视觉 token 数、Prefill 时延、实现复杂度。
六、常见误区与追问
- 误区:连接器名字决定训练方式。 不,Projector 也能端到端训、Q-Former 也可联合更新,训练策略是独立选择。
- 误区:Q-Former 一定更好(更先进)。 它省 token 但有信息瓶颈;LLaVA 证明简单 Projector + 好数据往往更强更流行。
- 追问:为什么需要连接器? 视觉特征和 LLM 词向量在维度/分布/语义粒度上不匹配,要映射+筛选+对齐。
- 追问:Q-Former 的信息瓶颈指什么? 固定查询数(如 32)限制了能带出的信息,复杂场景会丢细节。
- 追问:Cross-Attention 的门控有什么用? 初始为 0,保护预训练语言能力,训练中逐渐打开,避免一上来破坏 LLM。
- 追问:高分辨率下哪种连接器压力大? Projector(token 随分辨率线性增长),要配合视觉 token 压缩。
- 追问:OCR 任务选连接器注意什么? 别过度压缩视觉 token,否则细小文字信息丢失。
七、加强记忆
三种连接器记「逐 token 映射 / 固定查询提取 / 语言层按需读取」:Projector(LLaVA,线性映射后拼接,简单信息多但 token 多)、Q-Former(BLIP-2,可学习查询提固定数量表示,省 token 有瓶颈)、Cross-Attention(Flamingo,语言层间门控交叉注意力按需读视觉,交互深但改结构)。差别集中在信息保留、交互深度、工程成本三点。选型口诀:图快速接现成模型用 Projector、要限 token 用查询式、要深度图文交互用 Cross-Attention、细节任务当心过度压缩。记住训练方式独立于连接器名字。