一个 VLM = 视觉编码器(把图变成视觉 token) + 连接器 / 投影器(把视觉 token 翻译进 LLM 的语义空间) + 语言模型(自回归生成)。面试问的所有细节,都能挂到这三个槽里的某一个。
按组件读,每篇给了「为什么读它 / 它答的是哪道面试题」。带 必读 的是性价比最高的,带 站内 的已有精读笔记可直接点进去。时间紧就看最底下的优先级。
作用:图像切成 patch(如 14×14),过 ViT 得到一组视觉特征 token(如 336² 图 → 576 个 token)。核心分歧是用什么信号训这个 encoder,这直接决定了它擅长语义还是几何。
| 路线 | 代表 | 训练信号 | 擅长 | 在具身里 |
|---|---|---|---|---|
| 语言对齐(对比学习) | CLIP · SigLIP | 图-文对 | 语义强、天生和文本对齐,接 LLM 顺 | VLM 默认 |
| 自监督(SSL) | DINOv2 · MAE | 纯图像(无文本) | 稠密 / 空间 / 几何特征,细粒度定位强 | 机器人偏爱 |
| 融合双 encoder | Prismatic · Cambrian-1 | CLIP + DINOv2 拼接 | 兼得语义对齐 + 空间细节 | 兼顾派 |
DINOv2 是一个自监督视觉 encoder,填的就是 ①「vision encoder」这个槽,和 CLIP-ViT 平级、可替换或并用。区别在训练信号:CLIP 用图文对做对比学习(语义、和语言对齐),DINOv2 用纯图像自监督(无需任何文本),产出的是稠密空间特征。所以 DINOv2 的表征在检测 / 分割 / 深度 / 对应点这类"看得细、懂几何"的任务上更强,但它没有语言语义,单独接 LLM 需要更多对齐数据。
为什么具身圈爱用它:操作任务(抓、放、对齐)吃的是空间几何而不是 caption 级语义——这也是很多 VLA(含 π₀ 用的视觉侧)倾向 DINOv2 或 CLIP+DINOv2 融合的原因。
作用:把视觉 encoder 的输出映射进 LLM 的 embedding 空间,再和文本 token 拼接(或注入)。这是面试的重灾区——"encoder 和 LM 怎么连"问的就是这块。五条主流路线:
LLaVA 那套证明了「简单 MLP + 好数据」就足够打,所以主流回到 MLP;token 压缩交给 pixel shuffle 而不是 Q-Former。Q-Former 现在更多是"历史上的一种复杂解法"。
视觉 token 进来后,真正做推理和生成的是 LLM。这一档考的是 Transformer block 的现代标配和 MoE。
x = x + Attn(RMSNorm(x)) # Pre-Norm:norm 在残差分支内
x = x + FFN(RMSNorm(x)) # 残差是恒等直连(identity path)| Norm | RMSNorm(比 LayerNorm 少减均值,更快)+ Pre-Norm(Post-Norm 深层训练不稳) |
| Attention | GQA(多 query head 共享一组 KV head,省 KV cache)+ RoPE 旋转位置编码 + causal mask |
| FFN | SwiGLU:W_down( SiLU(W_gate·x) * W_up·x ),三个矩阵,中间维 ≈ 8/3·d |
现代模型用 Pre-Norm:残差是恒等直连,从输入直接加到子层输出,归一化在子层内部、激活之前。原始 Transformer 是 Post-Norm(LayerNorm(x + Sublayer(x)))。Pre-Norm 让梯度能沿残差流无衰减回传,深层稳、少需 warmup;代价是最终表征略差,于是有 DeepNorm / Sandwich Norm 这些折中。
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×7B | 8 选 2 | 47B / 13B | ≈27% |
| DeepSeek-V3 | 256 路由 + 1 共享,选 8 | 671B / 37B | ≈5.5% |
| Qwen3-235B | 细粒度专家 | 235B / 22B | ≈9% |
Shared expert:所有 token 都过的公共专家,学通用知识,让 routed expert 更专精。Aux-loss-free 负载均衡:给每个 expert 加可学习 bias 调节路由,避免辅助 loss 干扰主任务梯度。趋势 = 更细粒度专家 + 更低激活比。
第一阶段一定冻(projector 随机、梯度噪声会毁掉视觉表征);后期可解冻,给 1/10 学习率,能提升 OCR、细粒度定位。可举 InternVL / Qwen2-VL 为例。
就是一个 nn.Linear(hidden_size, vocab_size)(无 bias),前面通常有 final RMSNorm,输出 logits 再 softmax。小模型常做 weight tying(和 embedding 共享权重省参数),LLaMA 系大模型则不共享。—— 记住这点,§05 的 VLA 衔接就是在这个 head 上做文章。
两条路:①离散派——把 action 离散成 token,直接复用 LM head 让 VLM 像输出文字一样输出动作(RT-2 / OpenVLA);②连续派——在 VLM 后接一个 action expert / diffusion / flow-matching head 输出连续高频动作(π₀ / RDT / GR00T)。前者简单但动作离散、频率低;后者连续平滑、适合精细高频控制。
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"这道必问衔接题,把被动挖细节变成主动展示体系。