Skip to content

LLaVA架构:让LLM通过指令理解图像

模型名称: LLaVA — Large Language and Vision Assistant
论文链接: Visual Instruction Tuning

1. 研究动机(Motivation)

背景问题

大型语言模型(LLMs)通过 Instruction Tuning 获得了显著的“指令跟随”与“零样本泛化”能力。
但在 视觉语言领域(V+L),这种方法还鲜有系统研究。
现有模型(CLIP、BLIP、ALIGN)多为单任务:分类、检测、描述等,缺乏自然语言驱动的“任务切换”能力。

研究目标

将指令微调扩展到视觉领域,构建一个能通过语言指令理解图像、完成多任务的通用助手。

挑战

  1. 缺乏视觉指令训练数据
  2. 如何高效连接图像特征与语言模型输入
  3. 缺少系统化的多模态指令评测。

2. 创新点(Innovation)

(1) GPT-4 合成视觉指令数据

  • 以 COCO / CC3M 图像及标注为基础,输入 GPT-4。
  • GPT-4 输出 “人类指令 + Assistant 回复” 的对话格式。
  • 构建 LLaVA-Instruct-158K 数据集(三类指令:对话/细描/复杂推理)。

(2) 轻量化端到端架构

  • 模型结构:
    CLIP ViT-L/14 → Linear Projection → Vicuna(LLM)
  • 通过线性矩阵 W 将ViT encoder输出的图像特征映射到 LLM 词嵌入空间,实现视觉 token 输入。
  • 冻结视觉编码器,减少训练不稳定性。

(3) 两阶段训练策略

  1. Stage 1 — 特征对齐 (Feature Alignment)

  2. Stage 2 — 指令微调 (Visual Instruction Tuning)

(4) 指令评测基准

  • 提出 LLaVA-Bench (COCO / In-the-Wild)
  • 以及 ScienceQA 上的新基线结果。

3. 模型与方法(Main Content)

3.1 模型框架

模型流程:

Image → CLIP Encoder → Vision Tokens → Linear Projection → Vicuna(LLM) → Text Output

数学定义如下:

Zv=g(Xv),Hv=WZv

其中:

  • g() 为 CLIP 视觉编码器;
  • Zv 为原始视觉特征;
  • W 为线性投影矩阵;
  • Hv 为注入语言模型的视觉 token。

语言模型的自回归预测目标:

p(Xa|Xv,Xinstruct)=i=1Lpθ(xi|Xv,Xinstruct,<i,Xa,<i)

仅对 Assistant 输出 token 计算交叉熵损失。


3.2 训练流程

Stage 1 — 特征对齐

  • 数据:CC-595K
    • 文本:固定的“描述性指令” + 目标 caption 作为答案
json
{
  "image": "images/COCO_val2014_000000391895.jpg",
  "conversations": [
    { "from": "human", "value": "Please describe the image in detail." },
    { "from": "assistant", "value": "A small child in a red jacket is skiing on a snowy slope..." }
  ],
  "meta": {
    "source": "COCO",
    "split": "val2014",
    "caption_id": 123456
  }
}
  • 仅训练 W,冻结 CLIP 与 Vicuna ,也就是训练Linear Projection
  • 目标:让 LLM “听懂”视觉 token

Stage 2 — 指令微调

  • 数据:LLaVA-Instruct-158K (三类指令混合:对话/细描/复杂推理)
json
{
  "image": "images/000123.jpg",
  "conversations": [
    { "from": "human", "value": "What is the person doing in the image?" },
    { "from": "assistant", "value": "They are riding a bicycle on a city street." },
    { "from": "human", "value": "List three visual clues that support your answer." },
    { "from": "assistant", "value": "1) Hand on the handlebar; 2) Two visible wheels; 3) Pedals and chain." }
  ],
  "meta": {
    "type": "dialogue",          // 或 "detailed_description" / "complex_reasoning"
    "source": "LLaVA-Instruct"
  }
}
  • 解冻 Vicuna,联合训练 W + LLM
  • 目标:获得视觉理解 + 指令对齐能力

3.3 数据类型

类型样本量特点示例
对话型58K多轮互动“请描述这张图片的气氛。”
详细描述23K精细内容“解释图中所有动物的位置。”
复杂推理77K涉及知识逻辑“为什么图中人物要撑伞?”

3.4 评测与结果

LLaVA-Bench (COCO)

  • 从训练数据集中随机采样30 张图像 × 3 问题,共 90 问
  • GPT-4 打分裁判
  • 结果: LLaVA (Full) = 85.1%,明显优于不指令微调模型

LLaVA-Bench (In-the-Wild)

  • 自采 24 张图像,60 问
  • 相对提升:
    • 对 BLIP-2:+29%
    • 对 OpenFlamingo:+48%
  • 复杂推理得分 81.7%,总体 67.3%

ScienceQA数据集

模型准确率
LLaVA90.92%
LLaVA + GPT-4 Judge92.53% (SOTA)

GPT-4 Judge方案:GPT-4 读取两者的理由和最终答案,对 LLaVA 输出进行裁定或纠正。

json
Human: Here is a ScienceQA question.
Image: [Symbolic representation, not raw pixels]
Question: ...
Choices: A)... B)... C)... D)...

Model A (LLaVA) answer: ...
Model B (GPT-4) answer: ...
Please decide which answer is more correct and explain why.

消融实验:

  1. 倒数第二层特征最佳(保留细节 + 兼顾语义)
    1. 对比将 CLIP ViT-L/14 的不同层作为视觉输入:最后一层、倒数第二层、中间层。
    2. 原因分析:最后一层过于抽象,细粒度纹理与局部空间关系被压缩;而倒数第二层仍保留局部结构信息,同时语义层级已足够,与文本对齐后更利于细描复杂推理
  2. Stage-1 对齐阶段不可省略(稳定优化的关键)
    1. 消融:若跳过 Stage-1,直接在指令数据上端到端训练(只做 Stage-2),ScienceQA 性能下降约 2.5%3%,并且训练前期更不稳定、收敛更慢。
    2. 机理:没有预对齐时,W 要一边学跨模态映射、一边学任务语义,梯度噪声大;先把视觉 token“翻译”到 LLM 词向量空间,再做指令微调,更易保留 LLM 的语言/世界知识并减少灾难性遗忘。
  3. 模型规模:13B 优于 7B(约 +2%),但收益次于数据与训练范式
    1. 同一视觉侧与训练数据下,Vicuna-13B 相比 7B 在 ScienceQA 提升约 2%;提升主要体现在复杂推理长指令遵循的稳定性上。
    2. 更大的 LLM 拥有更强的语言建模与多步推理能力,但在 LLaVA 框架中,数据设计(会话+细描+推理的混合)与两阶段训练对最终性能更“决定性”。
    3. 成本—收益:从 7B 升到 13B 带来显著显存/时延开销;若受限于资源,优先保障高质量指令数据完整两阶段流程,其性价比通常高于盲目增参。

3.5 技术要点总结

  • 冻结视觉编码器有助稳定训练;
  • 线性映射轻量,收敛快;
  • GPT-4 裁判机制增强推理一致性;
  • 倒数第二层特征保留局部纹理 → 细粒度识别更强。

🌟 4. 结果与意义(Significance)

  1. 方法论贡献
    将 NLP 的 Instruction Tuning 思想首次系统迁移至多模态领域。
  2. 实践价值
    轻量结构即可获得强视觉理解,为 MiniGPT-4、mPLUG-Owl、Qwen-VL 等奠基。
  3. 社区影响
    全面开源:代码 + 模型 + 数据 + 评测 → 成为标准基线。
  4. 局限性
    • 仍会出现幻觉与语义偏移;
    • 推理链条浅;
    • 不支持高分辨率与视频输入。

5. 关键公式(Key Equations)

视觉嵌入映射

Hv=Wg(Xv)

自回归语言生成

L=tAlogpθ(xt|x<t,Hv)

两阶段优化

  1. 特征对齐:minWLalign=logp(y|Wg(Xv))
  2. 指令微调:minW,θLinstruct=logp(y|x,Hv)

模型架构参数量连接方式特点
FlamingoPerceiver Resampler80B门控交叉注意表现强但闭源
BLIP-2Q-Former + LLM13BQuery Transformer高复杂度
LLaVALinear Projection + LLM13B线性映射简洁高效
OpenFlamingoCLIP + GPT9B门控融合需大规模预训练