7.1 视觉指令微调范式 视觉指令微调(Visual Instruction Tuning)是 LLaVA 在 2023 年提出的范式,它把 NLP 领域的指令微调思想扩展到多模态场景。本节梳理这一范式的方法论。 一、为什么需要指令微调 经过预训练的多模态模型具备「看图说话」的能力,但还存在两个问题: 问题一:不会「听话」 预训练数据是「图像 + 字幕」格式,模型学到的是「给一张图,输出一段描述」。但用户实际问的是: 模型需要学会根据指令调整输出,而不是无差别输出描述。 问题二:零样本能力差 预训练模型遇到没见过的任务(如「给这张图起个标题」「分析图的构图」)就束手无策。指令微调通过多任务、多格式的训练数据,让模型获得泛化到未见任务的能力。
视觉指令微调(Visual Instruction Tuning)是 LLaVA 在 2023 年提出的范式,它把 NLP 领域的指令微调思想扩展到多模态场景。本节梳理这一范式的方法论。
经过预训练的多模态模型具备「看图说话」的能力,但还存在两个问题:
预训练数据是「图像 + 字幕」格式,模型学到的是「给一张图,输出一段描述」。但用户实际问的是:
"这张图里有几只猫?" ← 不是要描述,是要计数 "图中的猫在做什么?" ← 不是要全描述,是要聚焦动作 "这张图适合发朋友圈吗?" ← 不是要客观描述,是要主观判断
模型需要学会根据指令调整输出,而不是无差别输出描述。
预训练模型遇到没见过的任务(如「给这张图起个标题」「分析图的构图」)就束手无策。指令微调通过多任务、多格式的训练数据,让模型获得泛化到未见任务的能力。
指令微调的核心思想是:用「指令-回答」格式重新组织训练数据,让模型学会「理解意图并执行」。
{ "图像": <一张猫的图>, "指令": "请描述这张图的主要内容", "回答": "图中是一只橘色的猫,坐在窗台上,阳光从左侧照入..." }
模型的任务是:给定图像与指令,生成与训练数据中「回答」类似的输出。
标准的自回归交叉熵:
注意损失只在「回答」部分计算,不对「指令」部分计算——模型不需要学习模仿问题,只需要学习回答。
LLaVA 是首个大规模视觉指令微调模型,其训练流程已成为标准范式:
[图像] → 冻结的 CLIP ViT → 视觉 token ↓ 训练 MLP 投影器(其他冻结) ↓ 拼接进冻结的 LLM → 生成字幕
目标:让 MLP 投影器学会把视觉 token 映射到 LLM 能理解的词表空间。
数据:约 55.8 万对图文(来自 CC3M 等精标字幕数据)。
关键点:只训投影器,CLIP 与 LLM 全部冻结。这一阶段是「对齐阶段」——让视觉特征与语言空间对齐。
[图像] → CLIP ViT(解冻或冻结)→ 视觉 token ↓ MLP 投影器(参与训练) ↓ 拼接进 LLM(参与训练)→ 生成回答
目标:让模型学会根据图像 + 指令生成高质量回答。
数据:约 15 万条高质量「图像 + 指令 + 回答」三元组(GQA、ScienceQA、ShareGPT 等)。
关键点:投影器与 LLM 都参与训练(LLaVA-1.5 全量微调 LLM;有些变体用 LoRA)。
视觉指令数据是 LLaVA 成功的关键。它有三种主要来源:
如 ScienceQA、VQA-v2 等数据集,人工标注的图像问答对。质量高但规模小(万级)。
LLaVA 原论文用 GPT-4 自动生成指令数据:
输入: 图像的描述(来自 COCO Captions)+ bounding box 信息 GPT-4 任务: - 生成关于图像的对话 - 生成详细描述 - 生成推理问题 输出: 大量多样化的「指令-回答」对
这种方法生成了约 15 万条指令数据(LLaVA-Instruct-150K),是 LLaVA 成功的关键。
ShareGPT、ShareGPT4V 等社区数据,用户分享与 GPT-4 的多模态对话。规模大、多样性高,但质量参差不齐。
随着 LLaVA 系列演化,数据规模快速增长:
数据规模的扩张是 LLaVA 系列性能提升的最重要驱动力。
指令数据应覆盖多种任务类型,让模型获得通用智能:
覆盖越广,零样本泛化越强。
指令的措辞、长度、风格应尽量多样:
多样性让模型不会过拟合到某种固定格式。
LLaVA 团队发现:少量高质量数据 > 大量低质量数据。LLaVA-1.5 的 15 万条 GPT-4 生成数据,效果优于数百万条低质数据。
这呼应了 LLM 领域「LIMA 用 1000 条精标数据达到 GPT-4 水平」的发现——指令微调主要不是学知识,而是学格式与意图理解。
数据来源应包括:
来源多样让模型适应真实世界的各种图像类型。
LLaVA-1.5 的典型超参:
只对「回答」部分计算损失:
输入: [图像] [指令] [回答] ↑ 这里之前的 token 不计算损失 这里及之后的 token 计算损失
这避免模型学习模仿指令,专注学习生成回答。
不同组件的解冻策略:
混合多种数据时,采样比例影响效果。常见做法:
视觉指令微调是文本指令微调的扩展,两者核心思想一致:
| 维度 | 文本指令微调 | 视觉指令微调 |
|---|---|---|
| 输入 | 文本指令 | 图像 + 文本指令 |
| 输出 | 文本回答 | 文本回答 |
| 数据来源 | 人工 + GPT-4 生成 | 人工 + GPT-4V 生成 |
| 训练目标 | 自回归 LM | 自回归 LM(含视觉 token) |
| 关键挑战 | 数据质量 | 视觉-语言对齐质量 |
视觉指令微调最大的额外挑战是视觉信息的引入——模型不仅要理解文本指令,还要从图像中提取相关信息。这要求训练数据中「回答」部分必须真正基于图像内容。
LLaVA 1.0 的指令微调效果震惊了社区——只用 15 万条数据,就让一个 13B 模型在视觉对话上接近 GPT-4V 水平(在 LLaVA-Bench 上达到 GPT-4V 的 70%+)。
后续工作进一步证明:
这些成果让指令微调成为多模态大模型训练的标配环节——没有任何 SOTA 模型会跳过这一步。
指令数据质量直接决定效果。GPT-4 生成的数据虽然好,但有 GPT-4 自身的偏见(如英文场景偏多、西方文化视角等)。
指令微调后模型更「自信」,会生成更详细但有时是幻觉的内容。RLHF 等对齐方法可以缓解(7.3 节)。
指令微调让模型什么都能聊,但也可能给出超出能力范围的回答。需要训练模型识别「我不知道」并拒绝。
对训练数据中没出现的任务(如医学影像分析、法律文档解读),指令微调的迁移效果有限,需要领域适配。
主流多模态大模型的指令数据策略:
| 模型 | 数据规模 | 数据来源 | 特色 |
|---|---|---|---|
| LLaVA-NeXT | 100 万+ | GPT-4V + 开源 | 多任务、多分辨率 |
| Qwen-VL | 数百万 | 阿里内部 | 中文场景、文档 |
| InternVL 2 | 数百万 | 多源融合 | OCR、推理 |
| MiniCPM-V | 数百万 | GPT-4V + 过滤 | 高质量小数据 |
| CogVLM | 数百万 | 智谱内部 | 中文优化 |
| GPT-4o | 未公开 | OpenAI 内部 | 大规模高质量 |
可以看到,指令数据已成为各厂商的核心资产,闭源模型的数据质量明显优于开源。
视觉指令微调通过「图像 + 指令 → 回答」格式让模型学会遵循人类意图。LLaVA 提出的两阶段流程(投影器预训练 + 全量指令微调)已成为标准范式。指令数据的质量、多样性、规模决定模型能力。指令微调是当代多模态大模型的标配,但它仍有幻觉、长尾任务等局限,需要 RLHF/DPO 等对齐方法补充。
下一节(7.2)我们深入 LLaVA 系列的架构与数据演化——这是理解当代开源多模态大模型的最佳案例。