← 所有笔记
// VLM 架构 · 合集 / 阅读地图

VLM 架构合集:按组件拆解

Vision Encoder · Connector/Projector · LLM Backbone —— 附 MoE / Transformer 细节 / VLM→VLA 衔接
合集 / Index VLM 内部结构 面试向
§ 00

三段式总览

一句话

一个 VLM = 视觉编码器(把图变成视觉 token) + 连接器 / 投影器(把视觉 token 翻译进 LLM 的语义空间) + 语言模型(自回归生成)。面试问的所有细节,都能挂到这三个槽里的某一个。

① VISION ENCODER
视觉编码器
图像切 patch → ViT → 视觉特征(CLIP / SigLIP / DINOv2)
② CONNECTOR
连接器 / 投影器
视觉特征 → LLM embedding 空间(MLP / Q-Former / cross-attn / pixel shuffle)
③ LLM BACKBONE
语言模型
视觉 token ⊕ 文本 token → 自回归输出文本 / 动作
怎么用这页

按组件读,每篇给了「为什么读它 / 它答的是哪道面试题」。带 必读 的是性价比最高的,带 站内 的已有精读笔记可直接点进去。时间紧就看最底下的优先级

§ 01

Vision Encoder:把图变成 token

作用:图像切成 patch(如 14×14),过 ViT 得到一组视觉特征 token(如 336² 图 → 576 个 token)。核心分歧是用什么信号训这个 encoder,这直接决定了它擅长语义还是几何。

路线代表训练信号擅长在具身里
语言对齐(对比学习)CLIP · SigLIP图-文对语义强、天生和文本对齐,接 LLM 顺VLM 默认
自监督(SSL)DINOv2 · MAE纯图像(无文本)稠密 / 空间 / 几何特征,细粒度定位强机器人偏爱
融合双 encoderPrismatic · Cambrian-1CLIP + DINOv2 拼接兼得语义对齐 + 空间细节兼顾派
DINOv2 到底算什么(你问的)

DINOv2 是一个自监督视觉 encoder,填的就是 ①「vision encoder」这个槽,和 CLIP-ViT 平级、可替换或并用。区别在训练信号:CLIP 用图文对做对比学习(语义、和语言对齐),DINOv2 用纯图像自监督(无需任何文本),产出的是稠密空间特征。所以 DINOv2 的表征在检测 / 分割 / 深度 / 对应点这类"看得细、懂几何"的任务上更强,但它没有语言语义,单独接 LLM 需要更多对齐数据。

为什么具身圈爱用它:操作任务(抓、放、对齐)吃的是空间几何而不是 caption 级语义——这也是很多 VLA(含 π₀ 用的视觉侧)倾向 DINOv2 或 CLIP+DINOv2 融合的原因。

§ 02

Connector / Projector:对齐的核心

作用:把视觉 encoder 的输出映射进 LLM 的 embedding 空间,再和文本 token 拼接(或注入)。这是面试的重灾区——"encoder 和 LM 怎么连"问的就是这块。五条主流路线:

MLP · LLaVA
线性 / MLP 直投
一两层 MLP,视觉 token 数量不变(576 个)。保留全部信息、实现最简;缺点是 token 多、算力贵。当前主流。
Q-FORMER · BLIP-2
Query 抽取压缩
一组可学习 query 通过 cross-attention 从视觉特征里抽出固定数量(如 32)表征。压 token 数,但训练复杂、信息有损。
RESAMPLER · Flamingo
Perceiver 重采样
固定数量 latent query 做 cross-attention 重采样,思路同 Q-Former。
CROSS-ATTN · Flamingo / Llama3.2-V
插层式注入
不拼进输入序列,而是在 LLM 每隔几层插入 gated cross-attention 去读视觉特征。LLM 主干可冻结。
PIXEL SHUFFLE · InternVL / Qwen-VL
空间下采样压缩
对 patch 做空间重排下采样压 token 数(如 4→1)。压缩靠它,投影仍用 MLP。
趋势(可以在面试补这句)

LLaVA 那套证明了「简单 MLP + 好数据」就足够打,所以主流回到 MLP;token 压缩交给 pixel shuffle 而不是 Q-Former。Q-Former 现在更多是"历史上的一种复杂解法"。

§ 03

LLM Backbone + Transformer / MoE 细节

视觉 token 进来后,真正做推理和生成的是 LLM。这一档考的是 Transformer block 的现代标配和 MoE。

现代 block 结构(以 LLaMA 为例)

x = x + Attn(RMSNorm(x)) # Pre-Norm:norm 在残差分支内 x = x + FFN(RMSNorm(x)) # 残差是恒等直连(identity path)
NormRMSNorm(比 LayerNorm 少减均值,更快)+ Pre-Norm(Post-Norm 深层训练不稳)
AttentionGQA(多 query head 共享一组 KV head,省 KV cache)+ RoPE 旋转位置编码 + causal mask
FFNSwiGLUW_down( SiLU(W_gate·x) * W_up·x ),三个矩阵,中间维 ≈ 8/3·d
"残差在激活前还是激活后" = Pre-Norm vs Post-Norm

现代模型用 Pre-Norm:残差是恒等直连,从输入直接加到子层输出,归一化在子层内部、激活之前。原始 Transformer 是 Post-Norm(LayerNorm(x + Sublayer(x)))。Pre-Norm 让梯度能沿残差流无衰减回传,深层稳、少需 warmup;代价是最终表征略差,于是有 DeepNorm / Sandwich Norm 这些折中。

MoE:把 FFN 换成 N 个专家

router(linear + softmax)给每个 token 打分,选 top-k 个 expert,输出按 gate 权重加权和。attention 层通常不做 MoE。路由策略:token-choice top-k(主流,但负载不均,需 aux load-balancing loss 或 capacity factor);expert-choice(天然均衡,但有 token 落选、不适合自回归);aux-loss-free(DeepSeek,用可学习 bias 调路由)。

模型路由总参 / 激活激活比
Mixtral 8×7B8 选 247B / 13B≈27%
DeepSeek-V3256 路由 + 1 共享,选 8671B / 37B≈5.5%
Qwen3-235B细粒度专家235B / 22B≈9%
DeepSeek 两个关键设计(面试常问)

Shared expert:所有 token 都过的公共专家,学通用知识,让 routed expert 更专精。Aux-loss-free 负载均衡:给每个 expert 加可学习 bias 调节路由,避免辅助 loss 干扰主任务梯度。趋势 = 更细粒度专家 + 更低激活比。

§ 04

训练与对齐:几阶段、encoder 冻不冻

STAGE 1 · 对齐
只训 projector
冻结 encoder + LLM,用图文对(CC3M/LAION)做 caption。目的:把视觉特征"翻译"进 LLM 能读的空间。projector 此时随机初始化、梯度噪声大,必须冻 encoder,否则会破坏 CLIP 预训练表征。
STAGE 1.5 · 可选
解冻 encoder 精修
用高质量数据继续训 encoder,给远小于 LLM 的学习率(≈1/10),提升 OCR / 细粒度定位。InternVL、Qwen2-VL 都在后期解冻 encoder。
STAGE 2 · 指令微调
解冻 LLM(+projector)
用多模态指令数据(VQA / 多轮对话 / OCR / grounding)做 SFT。这一步让模型"会听话"。
"对齐时 encoder 冻不冻" 标准答法

第一阶段一定冻(projector 随机、梯度噪声会毁掉视觉表征);后期可解冻,给 1/10 学习率,能提升 OCR、细粒度定位。可举 InternVL / Qwen2-VL 为例。

LM head 是什么(顺带一问)

就是一个 nn.Linear(hidden_size, vocab_size)(无 bias),前面通常有 final RMSNorm,输出 logits 再 softmax。小模型常做 weight tying(和 embedding 共享权重省参数),LLaMA 系大模型则不共享。—— 记住这点,§05 的 VLA 衔接就是在这个 head 上做文章。

§ ★

阅读优先级

时间紧就这四篇(覆盖九成问题)

LLaVA-1.5 → Mixtral → DeepSeek-V3 → π₀ / OpenVLA
LLaVA-1.5 拿下 encoder/connector/对齐/冻结;Mixtral+DeepSeek-V3 拿下 MoE;π₀/OpenVLA 拿下 VLM→VLA 衔接。Transformer 细节(SwiGLU / Pre-Norm / RoPE)三篇短的随手补。

面试提醒

上次面试官问 VLA 你答不了解,之后所有问题都往 VLM 内部挖——他在验证"具身架构懂但底层细节虚"这个判断。把 §05 这条线补上,就能主动接住"VLM 怎么变成 VLA"这道必问衔接题,把被动挖细节变成主动展示体系。