VLM 架构:视觉编码器 + LLM 的连接方式
一句话定位:看图说话的模型几乎都是「视觉编码器 + 连接器 + LLM」三件套的拼装——本文讲三件各管什么、中间怎么接、业界三派连接方式的胜负手,以及两阶段训练怎么把它们捏成一台机器。前置:图像怎么变成 token——先知道图像怎么切成视觉 token。
先看一个反直觉的事实
你让 GPT-4o、Qwen-VL 这类模型看图聊天,行云流水,很容易以为它们是「一个模型端到端学会了看图说话」。
去翻它们的架构表,会发现相反的事实:几乎没有哪家是「从零开始又学看图又学说话」训出来的——清一色是「已经会看图的视觉编码器 + 已经会说话的语言模型」拼装而成。更微妙的是,同样三件套,中间那道接缝的接法不止一种:业界至少走过三派,拼对了事半功倍,拼错了训练烧钱还不讨好。
为什么是拼装而不是从头训?三件各管什么?接缝怎么接、接法怎么选?
拼装是笔划算的账:两个巨人的预训练成本早就付过了,新付的只是一层轻量连接器;接法之争集中在连接器上,三派各有取舍,最终主流回到最简单的一派;训练则分两阶段——先对齐格式,再教它听话。这三句话就是本文的地图。
全景图:三件套怎么拼
图:VLM 三件套与数据流向——编码器看图、连接器翻译、LLM 说话;接法与训练各有专节
渐进拆解:一场跨国圆桌会议
把一台看图模型想象成一场跨国圆桌会议。视觉这门「外语」,主持人一句都不会——他只懂一种语言、只认一种格式;但会议请了一位资深的画面速记员,他看得懂图,能把一整幅画浓缩成几百条要点;两位之间还有一位会议秘书,专管把速记员的要点誊写成主持人能用的格式。秘书誊写得好不好,直接决定主持人对画面的理解——三派接法之争,争的全是这个位置。
三件套的对应关系先钉在这里:
图:三件套与会议角色的映射——速记员、秘书、主持人各就各位
逐件点亮。 先看①视觉编码器。他不是现招的新人,而是一位预科班毕业的老手——用几亿对「图 + 配文」练过图文对齐,所以他的要点天然离语义不远。练眼力的方法叫对比学习:配对的图文在向量空间里拉近、错配的推远;选型主流是 CLIP 与 SigLIP 两个家族,差别在比赛规则——CLIP 让全图全文打一场 softmax 锦标赛,SigLIP 改成逐对独立判断(sigmoid),训练更省也更稳;SigLIP 2(2025)又把多语言(训练语料覆盖 109 种语言)与细粒度定位一并补齐,新一代编码器因此普遍偏好 SigLIP 系。
再看②连接器。她通常只是一层很小的网络——主流的 MLP 直通路线只有千万级参数,重一点的 Q-Former 也才 1.88 亿(188M)——是三件里最便宜、也最常被小看的部件。三派接法之争,全部发生在她身上。
最后看③LLM。他的语言能力来自自己的预训练,视觉 token 对他只是插班生递来的听课笔记——形式进了同一间教室,内容来自另一门课;注意力机制不区分来源,照常处理。
大白话:看图模型 = 两个现成的巨人 + 中间一层薄薄的翻译。真正要新付的学费,只有翻译那一层。
技术定义:这类模型叫视觉语言模型(VLM,Vision-Language Model)。它不是单一模型,而是一种组织方式:把两个各自预训练好的模型,用一层轻量网络缝在一起。缝合处的形态(下文三派)与「谁冻结、谁训练」(下文两阶段),是本文聚焦的两大设计变量。
连接方式三派:接缝上的数年之争
地图上说了「三派各有取舍」,现在把三条路走一遍。三派的分歧点只有一句话:视觉要点以什么形态、多大剂量进入 LLM。
图:三派连接方式的时间线——从每层插通道、压成摘要卡,到全量直通,再到多层注入
派别一:交叉注意力插入
不把要点誊给主持人,而是在速记稿旁坐一位随堂翻译:主持人每讲一段,翻译就低头把原稿里相关的那段现翻给他听。技术上是在 LLM 的部分层里插入交叉注意力模块,语言 token 作查询、视觉特征作被查对象——插入的模块是可训练的翻译件,LLM 本体可以整个冻结。好处是对齐灵活、两端都能保住原样;代价是动了 LLM 的内部结构,工程侵入大。Flamingo 走通此路(2022 年,重采样器把图压成 64 条要点)。
派别二:查询压缩
秘书先拿 32 张「问题卡片」去速记稿里各摘一条最相关的信息——这就是 BLIP-2 的 Q-Former:32 个可学习查询向量(768 维),把冻结编码器的几百条特征(BLIP-2 论文口径为 257 条)压成 32 条摘要卡再递进去。省上下文省得狠,但两头有代价——摘要卡装不下全部细节,且「问什么」本身要专门训练。
派别三:线性投影直通
不压缩、不插层,576 个视觉 token 经一层小投影原样排进队伍。LLaVA 用一层线性、LLaVA-1.5 升级成两层 MLP,就是这道最简单的接缝,配百万量级数据训出了超过 Q-Former 路线同量级模型的成绩,此后新一代开源模型基本都回归此路线。
Q-Former 为什么退场
表面是「省上下文」对「保信息」的权衡:Q-Former 省的是上下文,丢的是信息保真。但真正的胜负手是时代变了算盘,三笔账逐笔看:
- 时代账:长上下文普及后,576 个 token 的窗口成本不再肉疼,压缩省下的钱变小;而任务越来越细(读图表、看小字、定位坐标),摘要卡的丢信息从「可接受」变成「硬伤」。
- 训练账:Q-Former 要先教会查询「问什么」,多一段表示学习;MLP 直通没有这层,对齐数据一喂就通。
- 数据账:LLaVA-1.5 用约 120 万条公开数据,反超了预训练数据多两个数量级的 Q-Former 路线同门(InstructBLIP,1.29 亿条预训练数据)。
路线就此定局:压缩的价值随上下文变便宜而衰减,信息保真的价值随任务变难而上涨。
新探索:多层注入
2025 年起的新探索——把编码器多层特征按深度注入 LLM(Qwen3-VL 的做法)——可以看作直通派的加深版,本文不展开,参考段有技术报告入口。
训练策略:先对齐,再听话
三件套买回来不能直接用——编码器说的是「编码器话」,LLM 听的是「LLM 话」,中间还没对上表。业界的标准 recipe 是两阶段:
- 阶段 1:对齐预训练。 冻结编码器与 LLM,只训连接器;教材是「图 + 描述句」的图文对,LLaVA-1.5 用了 558K 条。目的只有一个:让秘书学会誊写格式——视觉 token 与文本 token 在表示上对齐。
- 阶段 2:指令微调。 放开连接器(通常连同 LLM,编码器仍常冻结),用「图 + 指令 + 回答」格式的多任务数据教模型听话,LLaVA-1.5 用了 665K 条(涵盖问答、描述、推理等任务)。目的:整套会议流程跑顺——看懂图、听懂要求、好好回答。
两阶段的分工记忆点:阶段 1 练「格式对齐」,阶段 2 练「照指令办事」。谁冻结谁训练是账本的关键行——编码器最常全程冻结(怕训坏老手),LLM 在阶段 2 放开(听话能力要进它的权重)。新一代模型的数据量大几个数量级(如 Qwen2-VL 的预训练达 1.4T token 量级,论文口径)、两阶段边界在模糊化,但「先对齐、后指令」的骨架没有变。
动手:三派对照表与一段拼接伪代码
把三派的取舍排进一张表(每图 token 数为各自论文口径,LLaVA 的 576 = 336px ÷ 14px patch 推得):
| 派别 | 代表模型 | 连接器形态 | 每图 token | 一句话取舍 |
|---|---|---|---|---|
| 交叉注意力插入 | Flamingo(2022) | LLM 层内插交叉注意力 | 64(重采样后) | 两端冻结也能对齐,动 LLM 内部侵入大 |
| 查询压缩 | BLIP-2(2023-01) | Q-Former,188M 参数 | 32 | 最省上下文,信息瓶颈 + 训练两段式 |
| 线性投影直通 | LLaVA-1.5(2023-10) | 两层 MLP | 576 | 信息全量保真,对齐数据最省,主流选点 |
三件套在前向计算里怎么协作,一段伪代码看清(拼接逻辑是真实现的核心骨架):
vision_feats = ViT(image) # ① 编码器:336² 图 → 576 条特征向量
vision_tokens = projector(vision_feats) # ② 连接器:两层 MLP 翻译成 LLM 输入格式
text_tokens = embed(tokenizer("这张图里有什么?")) # ③ 的文本侧输入,照常分词
inputs = concat("<|vision_start|>", vision_tokens,
"<|vision_end|>", text_tokens) # 特殊标记包住视觉段(标记风格取自 Qwen-VL 系)再拼接
answer = LLM(inputs) # ③ LLM:注意力一视同仁,输出回答
# 两阶段训练的区别只在「谁被冻结」:
stage1: freeze(ViT); freeze(LLM); train(projector) # 对齐预训练
stage2: freeze(ViT); train(projector, LLM) # 指令微调
对照着读:①②③与全景图编号一一对应;训练两行就是上文两阶段的代码形态——三件套架构的全部秘密,就是「拼接的次序」加「冻结的名单」。
边界与取舍:三件套不是终点
什么时候用三件套
已有强 LLM、想快速获得视觉能力——三件套是最省钱的路径,连接器与对齐数据的成本可以忽略。反过来,如果目标是从零打造原生多模态基座(图文在预训练阶段就混在一起训),那是大厂玩法:上限更高、成本高出几个量级,方向探索多在闭源与大厂内部(公开细节有限),开源生态的主流仍是三件套。
连接器怎么选
默认 MLP 直通:结构最简单、信息最保真、对齐数据最省。只有上下文预算真正紧张(比如塞视频、塞几十张图)才考虑压缩型连接器,且要接受信息保真的代价。一句话:连接器越简单越好,把智能留给两端。
坏味道预警
在连接器里塞表示学习(Q-Former 的教训之一):把「视觉特征该长什么样」的学习任务压进中间层,训练流程凭空多出一段难调的环节——这层复杂度后来被证明不划算。凡是想给连接器「加智能」的冲动,先想想三派数年之争的结局。
自测
合上文章先自己答,再展开对照:
Q-Former 为什么被线性投影路线取代(LLaVA 系)?省上下文和保信息怎么权衡?
Q-Former 的省是省上下文(32 条摘要对 576 条全量),代价是信息瓶颈:32 条装不下细粒度信息,读图表、小字、定位这类任务硬伤明显;且查询要先学会「问什么」,训练多一段表示学习。长上下文普及后 576 token 不再贵,压缩的价值衰减;任务变难后保信息的价值上涨,MLP 直通用少两个数量级的数据反超(约 120 万条对 1.29 亿条)——路线随之定局。权衡的算盘是动态的:上下文贵时压缩占优,上下文便宜、任务精细时直通占优。
CLIP 和 SigLIP 都做图文对齐,训练目标差在哪?为什么新一代编码器偏好 SigLIP 系?
两者都是对比学习:配对的图文拉近、错配的推远。差别在比赛规则——CLIP 把一个 batch 里的全部图文组织成 softmax 锦标赛,每张图要在全候选里争第一;SigLIP 改成逐对独立的 sigmoid 判断,只看「这一对是否匹配」。逐对判断省掉了全局归一化,训练更省、小 batch 下也更稳;SigLIP 2 本身补齐了多语言(训练语料覆盖 109 种语言)与细粒度定位能力——新一代模型(如 Qwen3-VL 的编码器)因此偏好 SigLIP 系。
参考与延伸
- CLIP 论文(2021-02,OpenAI):4 亿图文对对比学习的奠基出处 — arxiv.org/abs/2103.00020
- SigLIP 论文(2023-03,Google):sigmoid 逐对损失的出处 — arxiv.org/abs/2303.15343
- SigLIP 2 论文(2025-02,Google DeepMind):多语言(109 种)与细粒度增强 — arxiv.org/abs/2502.14786
- Flamingo 论文(2022-04):交叉注意力插入路线的开山之作 — arxiv.org/abs/2204.14198
- BLIP-2 论文(2023-01):Q-Former 32 查询 / 188M 参数的官方口径 — arxiv.org/abs/2301.12597
- LLaVA 论文(2023-04)与 LLaVA-1.5 论文(2023-10):线性投影路线 + 两阶段训练的标准 recipe(558K + 665K 数据) — arxiv.org/abs/2304.08485 · arxiv.org/abs/2310.03744
- Qwen3-VL 技术报告(2025-11):多层注入等新演进与 SigLIP 2 系编码器的现状 — arxiv.org/abs/2511.21631
- LLaVA 官方仓库:两阶段训练脚本与数据清单 — github.com/haotian-liu/LLaVA
下一站:Python + LLM API 基本功——模型怎么「用」起来:从消息结构到流式输出的工程基本功。