MLLM2023· NeurIPS 2023· CLASSIC

LLaVA: Visual Instruction Tuning

Liu et al.

CLIP-ViT + LLaMA + 一个 linear projection——简单但有效的开源 VLM 基线。

arXiv:2304.08485
#vlm#multimodal#instruction-tuning

核心贡献

  • 01极简架构:CLIP-ViT 编码图像 → 一层 Linear 投影到 LLM 词向量空间 → 拼接文本 token 喂 LLaMA
  • 02用 GPT-4 生成的 158K 视觉指令数据做 instruction tuning
  • 03两阶段训练:阶段 1 只训 projection(对齐);阶段 2 训 projection + LLM(微调)
  • 04开源 + 训练高效——成为多模态研究基线

架构

text
1Image → [CLIP-ViT-L/14] → [Linear Projection] → image_tokens
2Text → [Tokenizer] → text_tokens
3→ [LLaMA] → Answer

image_tokens 和 text_tokens 拼在一起,作为 LLaMA 的输入。LLaMA 看来它们是同一种 token,只是前几个是"图像语义 token"。

Linear Projection 的作用

CLIP-ViT 输出维度 1024;LLaMA 词向量维度 4096。中间一层 W ∈ R^(1024×4096)

  • LLaVA-1: 单层 Linear
  • LLaVA-1.5: 两层 MLP(小改进)
  • LLaVA-NeXT: 动态分辨率 + 更大分辨率

视觉指令数据

论文关键贡献之一——用 GPT-4 生成多模态指令数据:

  • GPT-4 图片的 caption(文字描述)
  • 让它生成各种指令格式:描述、多轮对话、复杂推理
  • 158K 条数据,人工筛质量

两阶段训练

阶段 1(Pre-training)

  • 数据:595K 图像-caption 对
  • 只训 Linear projection(LLaMAViT 都冻结)
  • 目标:让视觉 token 落在 LLM 能理解的语义空间

阶段 2(Visual Instruction Tuning)

  • 数据:158K GPT-4 生成的多模态指令
  • 训练 projection + LLM(ViT 仍冻结)
  • 目标:学习遵循视觉相关的指令

为什么简单但有效

对比 BLIP-2 的 Q-Former(复杂,需要 pretrain):LLaVA 的 Linear 投影几乎没参数,但凭借

  1. CLIP-ViT 已经对齐语言
  2. LLaMA 本身理解能力强
  3. 高质量指令数据

就能达到 SOTA 级多模态能力。

面试视角

面试考点

"LLaVA 的核心简化是什么?" 把所有复杂性塞进"大 LLM + 强 vision encoder + 简单桥接"的设计——而不是像 Flamingo 那样用复杂的 cross-attention 模块。

"为什么只用 Linear 就够了?" CLIP-ViT 已经学会了图像的语义向量——这些向量已经在某种"语言对齐"的空间里。LLM 的词向量空间也是语义向量。两者都是语义向量,差一个线性变换合理。

"两阶段训练为什么?" 避免破坏 LLM 预训练能力。阶段 1 只训 projection,让视觉 token 安全落在 LLM 理解的空间;阶段 2 小心地微调整个 LLM(视觉相关能力)。

"LLaVAFlamingo 的关键差异?"

  • LLaVA: visual token 和 text token 同等喂入——LLM 看来是纯语言任务
  • Flamingo: 用 cross-attention 把视觉信息注入 LLM 的中间层——更精细但更复杂

"LLaVA 的扩展方向?"

  • 高分辨率:LLaVA-NeXT 动态切图
  • 视频:Video-LLaVA
  • 多图:VILA、IXC-2.5
  • 更强视觉编码器:InternVL 的 InternViT-6B

"面试常被追问:怎么训练一个 VLM?" 答案框架:

  1. 选 vision encoder(CLIP-ViT / SigLIP / 更强的 InternViT)
  2. 选 LLM backbone(LLaMA / Qwen / Yi)
  3. 设计桥接模块(Linear / MLP / Q-Former / Perceiver Resampler)
  4. 两阶段训练(alignment → instruction tuning)
  5. 可选第三阶段:RLHF / DPO 对齐
相关论文