让 AI 看图回答问题,为什么"一句话概括"成了天花板?——LLaVA 用 GPT-4 合成 158k 条指令,把视觉对话打成 92.53% SOTA
- 关联论文:2304.08485
你有没有试过这种体验 🖼️:
你把一张客厅照片丢给 AI,说"扮演一个室内设计师,分析这张图里沙发的摆放缺点并给出 3 条改进建议"—— 它回你"图像里有沙发、桌子、台灯" 🫠
它在背 caption。
不是它不聪明,而是它根本没学过"看图 + 按指令回答"。它只学过"看图 + 描述一句话"。
这件事有个名字:视觉指令微调(visual instruction tuning)。
2023 年春天之前,所有"AI 看图"的训练数据都长这样:
(image, caption) ← "这张图里有沙发、桌子、台灯"
(image, VQA pair) ← "图里有几个苹果?" → "3 个"
全是单轮、单图、一句话。一旦指令变成"扮演设计师,给出 3 条建议"——它直接退化成 caption 模式。
arXiv 2304.08485(LLaVA) 第一次把 InstructGPT / Alpaca 的范式平移到多模态:
用 GPT-4 当数据生成器,把视觉对话能力用少样本 + 视觉 prompt 工程压到可学习的指令数据里; 一个极简架构——CLIP ViT-L/14 视觉编码器 + 一层线性投影 + LLaMA 语言模型; 一个两阶段训练策略——先对齐投影层,再端到端指令微调。
🎯 结果:合成多模态指令跟随基准上相对分 85.1% vs GPT-4,ScienceQA 上LLaVA+GPT-4 协同监督拿到 92.53% SOTA。
为什么这事值得每个做"AI 看图"产品的人关心
今天你做任何一个"AI 看图 + 多轮对话"的应用——AI 客服、AI 设计助手、AI 教育、AI 医疗问诊——都绕不开同一道坎:
- 指令跟随 ≠ 视觉问答:VQA 模型会答"几个苹果",但不会"扮演设计师"
- 多模态指令数据极贵:人工标注 1 条"看图 + 设计建议"对话要 5 分钟,10 万条要几年
- 跨模态对齐 ≠ 跨任务泛化:Flamingo / BLIP-2 已经能做对齐,但没做指令微调
- 多轮对话评测缺失:MM-Bench / MMStar 都还在路上
LLaVA 的核心价值是范式平移——把"GPT-4 当数据生成器"这条路打通,后续 MiniGPT-4、InstructBLIP、ShareGPT4V、LLaVA-1.5、InternVL 全部沿用这套流水线。
一句话核心
LLaVA = CLIP ViT-L/14 视觉编码器 + 一层线性投影 + LLaMA 语言模型;用 GPT-4 合成 158k 多模态指令数据分两阶段训练(先对齐投影层、再端到端指令微调);合成多模态指令跟随基准上相对分 85.1% vs GPT-4,ScienceQA 上 LLaVA+GPT-4 协同监督拿到 92.53% SOTA;首次把"GPT-4-as-Data-Generator"范式平移到多模态指令微调领域。
三个洞察
洞察 1:架构极简到"令人发指"——一层线性投影就够了
2023 年之前的"AI 看图"模型几乎都默认要复杂对齐模块:
Flamingo:Perceiver Resampler + 门控 cross-attention(heavy)
BLIP-2:Q-Former(可学习 query + cross-attention)→ 略重
MiniGPT-4:Q-Former(与 BLIP-2 同思路)
LLaVA:一层线性投影(甚至只是个 Linear)
关键设计:
- 视觉编码器:CLIP ViT-L/14(冻结,224×224 输入 → 256 个 visual tokens)
- 投影层 W:单层 Linear,把视觉 patch 映射到 LLM 词向量空间(Stage I 唯一可训练)
- LLM:LLaMA / Vicuna(Stage II 解冻做端到端微调)
翻译成大白话:"看图 + 说话"这件事的视觉-语言对齐模块不一定需要复杂到 ASPP / Q-Former 那种程度——先跑一遍"线性投影",再决定要不要加深。
洞察 2:两阶段训练策略是这套流水线的"地基"
LLaVA 的两阶段训练直接被后续所有"GPT-4 数据 + 视觉指令微调"工作抄走:
# Stage I:视觉-语言对齐预训练(Pre-training for Feature Alignment)
# 冻结 LLM,仅训练投影层 W
# 数据:CC-3M 子集 + CC-595k 过滤后的 image-caption 对
# 训练时长:1 epoch,batch 128×8 = 1024
# 目的:让 W 学会"把视觉 patch 翻译成 LLM 看得懂的 token"
text_emb = embed_llm(prompt_with_image_token(tokens))
image_emb = W(visual_encoder(images)) # 只训 W
x = concat([image_emb, text_emb], dim=seq)
logits = llm_decoder(x)
loss = cross_entropy(logits, labels) # 全量 LM loss
# Stage II:端到端指令微调(Visual Instruction Tuning)
# 解冻 W 与 LLM(视觉编码器仍冻结)
# 数据:LLaVA-Instruct 158k(GPT-4 合成)
# 目的:把"看图 + 按指令回答"能力压到模型里
为什么两阶段不能颠倒:
- 跳过 Stage I 直接 Stage II → LLM 看不到视觉 token,loss 不收敛
- Stage I 训太久(> 2 epoch) → 投影层过拟合 CC-3M 风格,泛化差
- 检查 Stage I 是否到位:W 参数的 L2 范数应与 LLM embedding 层相近
翻译成大白话:这不是"加几行代码"的事——这是要把"视觉-语言对齐"作为独立训练阶段做扎实,否则端到端指令微调就是空中楼阁。
洞察 3:GPT-4-as-Data-Generator 是这条范式的"低成本杠杆"
LLaVA-Instruct 158k 条样本被精心设计成 3 个互补子集:
| 子集 | 数量 | 内容 | 设计意图 |
|---|---|---|---|
| Conversation | 58k | 每图 3 轮对话,覆盖景物 / 关系 / 动作 / 推断 | 多轮对话能力 |
| Detail description | 23k | 2-3 段细节描述,每段 50-100 字 | 细粒度视觉理解 |
| Complex reasoning | 77k | 多跳视觉推理("图里有几个人?穿红衣服的是谁?做什么?") | 推理能力 |
关键工程细节:
- GPT-4 看不到原图,只能看到 bounding box + caption——这是成本的关键,但也是幻觉的来源
- 用 ground-truth box 而不是 detection box 缓解 box 外幻觉(代价:只能用 Visual Genome / RefCOCO 这类带 box 的数据集)
- 数据规模敏感性:158k → 35k,性能下降约 5-10 个百分点
翻译成大白话:"用 GPT-4 生成数据训练开源模型"是 LLaVA 立的标准流水线——任何想做"领域专用 LLaVA"(医疗 / 法律 / 工业)的团队都该把这套 prompt 模板翻译一遍,配自己的图 + caption 语料,能在 1 周内得到 50k-100k 指令样本。
关键实验与数据
- 合成多模态指令跟随基准:人类评分相对分 85.1% vs GPT-4(基线 OpenFlamingo ~50%,BLIP-2 ~30%)
- ScienceQA:
- LLaVA 单独 fine-tune:90.92%
- LLaVA + GPT-4 协同监督:92.53%(SOTA)
- LLaVA + GPT-4 (only-CoT):90.81%
- GPT-4 单独:82.69%
- 视觉 token 数:256(CLIP ViT-L/14 @ 224×224)
- 训练数据:LLaVA-Instruct 158k(GPT-4 合成)+ CC-595k caption 对齐
- 训练硬件:8×A100 几天可完成 Stage II
- 公开:模型权重 + 训练脚本 + 数据生成 prompt 全部开源
⚠️ 事实存疑: - "85.1% vs GPT-4"是合成指令跟随基准上的人类评分相对偏好,不是 MM-Bench / MMBench 等标准 benchmark——引用时要注明"自建合成评测集" - "92.53%"是 LLaVA + GPT-4 协同监督结果(LLaVA 先出初稿、GPT-4 二次思考),不是 LLaVA 单独得分——LLaVA 单独 fine-tune 为 90.92% - "256 visual tokens"指 v1 配置;LLaVA-1.5 已升级到 576(ViT-L 336×336) - GPT-4 数据生成的 box 幻觉未量化,后续 v1.5 通过数据清洗缓解但未完全消除
为什么这件事对 2026 年的多模态产品至关重要
如果你在做下面任何一种产品,LLaVA 的思路都值得今晚抄一抄:
| 你在做的产品 | 能抄的设计 |
|---|---|
| 多模态客服 / 助手 | LLaVA-Instruct 158k prompt 模板翻译一遍,配你的图 + caption 语料 |
| 领域专用视觉对话(医疗 / 法律 / 工业) | GPT-4-as-Data-Generator + 两阶段训练,一周内得到 50k-100k 指令样本 |
| AI 设计 / 教育 / 评测助手 | 多轮对话 + 复杂推理子集直接对齐 LLaVA-Instruct 配方 |
| GPT-4V / Gemini-Vision 替代品 | 开源 LLaVA 当 fallback,v1.5 + SigLIP 视觉编码器精度跨一个台阶 |
| 小模型微调研究 | 投影层极简 + Stage I 对齐是可复现的 baseline |
| 合成数据研究 | box + caption 的 prompt 模板 + 幻觉检测(POPE / HallusionBench)流水线 |
| AI 政策 / 合规 | 注意"用 GPT-4 生成的数据训练开源模型"的 OpenAI ToS 风险 |
一句话总结对你的启发:别再花钱雇人标多模态对话数据了——GPT-4 当数据生成器,两阶段训练策略直接抄 LLaVA,1 周内就能得到一个能跑的多模态助手。
一段给普通人的话
下次你让 AI 看一张图,问"扮演设计师,给出 3 条改进建议"—— 它回你"图里有沙发、桌子、台灯"——
不是 AI 不够聪明,是它压根没学过"看图 + 按指令回答"。 它只学过"看图 + 一句话描述"。
arXiv 2304-08485(LLaVA) 给的反直觉解法很工程师 💡:
用 GPT-4 当数据生成器—— 让 GPT-4 看到 bounding box + caption,合成 158k 条多模态对话样本; 极简架构—— CLIP ViT-L/14 视觉编码器(冻结)+ 一层线性投影 + LLaMA 语言模型; 两阶段训练—— Stage I 只训投影层(对齐视觉-语言空间), Stage II 端到端指令微调(解冻 LLM + 投影层)。
🎯 结果:
- 合成多模态指令跟随基准上相对分 85.1% vs GPT-4
- ScienceQA 上 LLaVA+GPT-4 协同监督 92.53% SOTA
- 模型权重 + 训练脚本 + 数据 prompt 全部开源
- 8×A100 几天可完成 Stage II
这种事 2026 年仍然值得抄 🛠️——
后续 MiniGPT-4、InstructBLIP、ShareGPT4V、LLaVA-1.5、InternVL、CogVLM 全部沿用这套流水线: - GPT-4-as-Data-Generator - 两阶段训练 - 极简投影层
但也得提一句坑 ⚠️:
- GPT-4 看不到原图,只能看到 box + caption——box 外的细节会幻觉(生产落地必须跑 POPE / HallusionBench)
- CLIP ViT-L/14 在 2024+ 已经是较弱视觉编码器——实际生产应升级到 SigLIP-SO400M 或更强(v1.5 已升级)
- GPT-4 协同监督在生产中不可持续(每次推理调 GPT-4 API 太贵)——只在评测阶段用 GPT-4-as-judge
- OpenAI ToS 对"用 GPT-4 生成的数据训练开源模型"有潜在限制——商业使用前咨询法务
但至少,多模态指令微调第一次有了一个"GPT-4 当老师 + 两阶段训练 + 极简架构"的范式。
而抄这种范式,正是我们擅长的 🚀。
关联论文:2304.08485 原标题:Visual Instruction Tuning(LLaVA) 状态:v2,2023-04 提交;模型权重 + 数据 prompt 全部开源 核心数字:合成多模态基准 85.1% vs GPT-4 · ScienceQA 92.53% (LLaVA+GPT-4 协同) · 158k 指令样本
三个标题变体
- 让 AI 看图回答问题,为什么"一句话概括"成了天花板?——LLaVA 用 GPT-4 合成 158k 条指令,把视觉对话打成 92.53% SOTA
- "GPT-4 当数据生成器"——LLaVA 把 InstructGPT 范式平移到多模态,13B 模型在 ScienceQA 拿 92.53%
- 看图 AI 为什么只会背 caption?——LLaVA 用一层线性投影 + 两阶段训练,把视觉指令微调打成开源范式
小红书风格卡片文案(可直接发布)
🖼️ "AI 看图"为什么只会背 caption? 🖼️
你把一张客厅照片丢给 AI,说 "扮演设计师,分析沙发摆放缺点,给 3 条改进建议"—— 它回你"图里有沙发、桌子、台灯" 🫠
不是它不聪明,是它压根没学过"看图 + 按指令回答"。 它只学过"看图 + 一句话描述"。
这件事有个专门名字:视觉指令微调(visual instruction tuning)。
传统做法是人工标注多模态对话数据—— 1 条"看图 + 设计建议"对话要 5 分钟, 10 万条要几年 😭
arXiv 2304.08485(LLaVA) 给了一个反直觉解法 💡:
用 GPT-4 当数据生成器 极简架构:CLIP + 一层 Linear + LLaMA 两阶段训练:先对齐投影层,再端到端指令微调
🎯 三大关键设计:
1️⃣ 架构极简到令人发指
# 传统 Flamingo:Perceiver Resampler + 门控 cross-attention(heavy)
# 传统 BLIP-2:Q-Former(可学习 query + cross-attention)
# MiniGPT-4:Q-Former
# LLaVA:一层线性投影(甚至只是个 Linear)
class LLaVA(nn.Module):
visual_encoder = CLIPViTL14(冻结) # 224×224 → 256 visual tokens
projector = nn.Linear(...) # Stage I 唯一可训练
llm = LLaMA(Vicuna) # Stage II 解冻微调
2️⃣ 两阶段训练是这套流水线的"地基"
# Stage I:视觉-语言对齐预训练
# 冻结 LLM,仅训练 projector
# 数据:CC-3M + CC-595k caption 对
# 训练:1 epoch,batch 128×8
# Stage II:端到端指令微调
# 解冻 projector + LLM
# 数据:LLaVA-Instruct 158k(GPT-4 合成)
# 训练:8×A100 几天完成
3️⃣ GPT-4-as-Data-Generator 是低成本杠杆
| 子集 | 数量 | 内容 |
|---|---|---|
| Conversation | 58k | 每图 3 轮对话(景物 / 关系 / 动作 / 推断) |
| Detail description | 23k | 2-3 段细节描述(每段 50-100 字) |
| Complex reasoning | 77k | 多跳视觉推理题 |
| 合计 | 158k |
关键细节:GPT-4 看不到原图,只能看到 bounding box + caption—— 成本的关键,但也是幻觉的来源(生产落地必须跑 POPE 幻觉检测)
📚 核心数字:
- 合成多模态指令跟随基准:85.1% vs GPT-4(人类评分相对偏好)
- ScienceQA:LLaVA + GPT-4 协同 92.53% SOTA
- LLaVA 单独 fine-tune:90.92%
- GPT-4 单独:82.69%
- 模型权重 + 训练脚本 + 数据 prompt 全部开源
- 8×A100 几天可完成 Stage II
🛠️ 今晚就能抄的领域专用 LLaVA:
# 1. 把 LLaVA-Instruct prompt 模板翻译一遍
# 把"室内设计"换成你的领域(医疗 / 法律 / 工业 / 教育)
# 配你的图 + caption 语料
# → 1 周内得到 50k-100k 指令样本
# 2. Stage I:跑视觉-语言对齐
python -m llava.train.stage1 \
--vision_tower openai/clip-vit-large-patch14 \
--llm lmsys/vicuna-13b-v1.5 \
--data ./data/captions.json \
--epochs 1 --batch_size 128
# 3. Stage II:端到端指令微调
python -m llava.train.stage2 \
--vision_tower openai/clip-vit-large-patch14 \
--llm lmsys/vicuna-13b-v1.5 \
--data ./data/your_domain_instruct.json \
--epochs 3 --batch_size 32
# 4. 跑 POPE 幻觉检测(必做!)
python -m llava.eval.pope --model ./checkpoints/your_llava
💡 为什么每个"AI 看图"团队都该抄?
今天任何"AI 看图 + 多轮对话"应用都绕不开同一道坎: 🤖 AI 客服 / 助手 → 多轮对话 + 指令跟随 🩺 领域专用视觉对话(医疗 / 法律 / 工业)→ 1 周内得到领域模型 🎨 AI 设计 / 教育 / 评测助手 → 多轮对话 + 复杂推理 🔄 GPT-4V / Gemini-Vision 替代品 → 开源 LLaVA 当 fallback 🧪 小模型微调研究 → 极简投影层 + Stage I 对齐是可复现 baseline 📜 AI 政策 / 合规 → 注意 OpenAI ToS 风险
LLaVA 第一次给了一个"GPT-4 当老师 + 两阶段训练 + 极简架构"的范式—— 后续 MiniGPT-4、InstructBLIP、ShareGPT4V、LLaVA-1.5、InternVL、CogVLM 全部沿用 📐
而抄这种范式,正是我们擅长的 🚀
⚠️ 坑也得提一句:
- GPT-4 看不到原图,box + caption 的 box 外幻觉是系统性风险——必须跑 POPE / HallusionBench
- CLIP ViT-L/14 在 2024+ 已是较弱视觉编码器——生产应升级到 SigLIP-SO400M(v1.5 已升级)
- "85.1% vs GPT-4"是合成指令基准——不是 MM-Bench / MMBench 等标准 benchmark,引用要注明
- "92.53%"是 LLaVA + GPT-4 协同监督——不是 LLaVA 单独得分(LLaVA 单独 90.92%)
- GPT-4 协同监督在生产中不可持续(每次推理调 GPT-4 API 太贵)——只在评测阶段用 GPT-4-as-judge
- OCR 任务(文档 / 票据 / 截图)是 v1 已知弱点——v1.5 才系统解决
- ⚠️ 多轮对话标准 benchmark 缺失——v1 只在单轮 MM-Bench 有数字,多轮场景无标准评测
- ⚠️ GPT-4 生成数据训练开源模型的 OpenAI ToS 风险——商业使用前咨询法务