原文摘要 · English Abstract
We present the first attempt to use language-only GPT-4 to generate multimodal language-image instruction-following data. By instruction tuning on such generated data, we introduce LLaVA: Large Language and Vision Assistant, an end-to-end trained large multimodal model that connects a vision encoder and LLM for general-purpose visual and language understanding.
概要
LLaVA 把 NLP「机器生成数据 + 指令微调」的范式迁移到视觉-语言领域:用纯文本 GPT-4 把图像标题与物体框转成「伪视觉」提示,自动生成 158K 条覆盖对话、详细描述、复杂推理三类的多模态指令数据,无需人工标注。架构上用冻结的 CLIP ViT-L/14 视觉编码器接一层可训练线性投影,把图像特征映射进 Vicuna 词嵌入空间,再经两阶段指令微调训练出通用视觉助手,证明极简架构配合高质量数据即可逼近多模态 GPT-4,并在 ScienceQA 上取得新 SOTA。
此前的视觉-语言模型要么把分类、检测、分割、描述当独立问题单独求解,语言只是描述视觉内容的输出通道,接口固定、不具备指令跟随能力;要么像 Flamingo、BLIP-2 用门控交叉注意力、Q-Former 等较重模块对齐图文,训练成本高。NLP 领域已用机器生成数据证明指令微调(Alpaca、Vicuna)能提升 LLM 零样本泛化,但这一思路尚未扩展到图文多模态场景,缺的正是规模化视觉指令数据与配套训练方案。
关键贡献
- 提出用纯文本 GPT-4 把图像描述和物体框转成伪视觉输入,自动生成 158K 条覆盖对话、详细描述、复杂推理三类的多模态指令数据
- 提出 LLaVA 架构:冻结的 CLIP 视觉编码器接一层可训练线性投影,把视觉特征直接映射进 Vicuna 语言模型的词嵌入空间
- 设计两阶段指令微调流程:先用 CC3M 筛选出的 595K 图文对只训练投影层做特征对齐,再用 158K 条指令数据端到端微调投影层与语言模型
- 构建 LLaVA-Bench 两个评测基准(COCO 版与 In-the-Wild 版),并提出用 GPT-4 作裁判给出相对分数的量化评测协议
- 与文本 GPT-4 模型集成后在 ScienceQA 多模态推理数据集上取得 92.53% 的新 SOTA 准确率
- 开源生成的指令数据、代码、模型权重与可视化对话 Demo,为后续视觉指令微调研究奠定基础
方法详解(完整做法)
总体思路
LLaVA 要解决的问题是:如何在没有大规模人工标注的视觉指令数据的前提下,训练出一个能像 ChatGPT 一样理解图像并按自然语言指令作答的通用视觉助手。整体流程分两步:先用纯文本 GPT-4 把图像的符号化描述(标题与物体框)转成三类多模态指令-回答样本,构造出 158K 条训练数据;再用一个极简架构——冻结的 CLIP 视觉编码器加一层可训练线性投影——把图像特征接入 Vicuna 语言模型的词嵌入空间,经两阶段指令微调后,模型输入图像与自然语言指令,输出符合指令要求的回答。
GPT-4 生成视觉指令跟随数据
为了让纯文本 GPT-4「看懂」图片,作者把图像转成两种符号表示:多条人工标注的图片说明(caption)作为整体场景描述,以及物体检测框(类别 + 归一化坐标)作为空间布局信息,拼成一段文本提示喂给 GPT-4。以少量人工设计的种子样例做上下文学习,提示 GPT-4 生成三类数据:对话(多轮问答)、详细描述(单轮长描述)、复杂推理(需要多步逻辑的问答)。基于 COCO 图像,最终收集到 158K 条指令样本,其中对话 58K、详细描述 23K、复杂推理 77K。整个过程完全不使用真实图像像素,GPT-4 全程只依赖文本符号化信息。
视觉-语言桥接:线性投影层
LLaVA 用预训练 CLIP ViT-L/14 提取图像的网格特征 ,再用一个可训练的线性投影矩阵 把它映射到语言模型词嵌入同维空间,得到一串「视觉 token」:
这些视觉 token 与文本 token 被拼接成同一个序列直接喂给 Vicuna,视觉信息因此以「伪词嵌入」的形式无缝融入语言模型,不需要额外的跨模态注意力模块。
多轮指令序列的组织方式
每张图像对应一段多轮对话 ,训练时把每一轮的提问包装成指令 :第一轮里图像 token 与第一个问题 的先后顺序随机打乱,后续轮次则只有问题本身:
这样设计是为了避免模型把图像 token 的位置和「第一轮」这一角色绑死,提升对不同输入顺序的鲁棒性。
自回归训练目标
把一次多轮对话拼成的完整序列长度记为 ,模型只在助手回答对应的 token 位置计算损失,其余(系统提示、问题、 标记)不参与损失计算:
其中 是当前阶段的可训练参数。这与纯文本 LLM 的自回归训练完全一致,LLaVA 只是显式地把图像 作为每一步预测的条件,不需要为多模态设计新的损失函数。
两阶段指令微调:特征对齐预训练与端到端微调
第一阶段「特征对齐预训练」只训练投影矩阵 ,冻结 CLIP 编码器和 Vicuna 全部参数:用 CC3M 筛选出的 595K 图文对(每对转成单轮「简要描述图像」指令),学习率 2e-3、batch 128 训练 1 个 epoch,目的是让视觉 token 与语言模型已有的词嵌入对齐,相当于为冻结的 LLM 训一个「视觉分词器」。第二阶段「端到端微调」继续冻结视觉编码器,但同时更新投影层与 Vicuna 参数(),在 158K 条指令数据上以学习率 2e-5、batch 32 训练 3 个 epoch,分别用于多模态对话与 ScienceQA 两个场景。
为什么选用极简的线性投影而非更复杂的跨模态模块
Flamingo 用门控交叉注意力、BLIP-2 用 Q-Former 来对齐视觉与语言表示,这些模块参数量大、训练更慢。LLaVA 刻意选择最简单的线性层,是为了让「数据质量」而非「架构复杂度」成为实验的主要变量——轻量投影能让研究者快速迭代不同的数据构造方案,论文也明确把更复杂的连接方式留作未来工作。这一取舍背后的直觉是:当指令数据本身已经由 GPT-4 生成得足够丰富、多样时,语言模型强大的上下文学习能力足以从简单的线性映射中学出图文对齐,不需要额外的架构容量。
小结
LLaVA 的关键不是新的模型结构,而是「用纯文本 GPT-4 把图文对转成高质量指令数据 + 极简线性投影桥接冻结的视觉编码器和语言模型 + 两阶段指令微调」这一整套可复现的数据-训练配方,证明了指令微调范式在视觉-语言领域同样有效。
实验与关键数据
在自建 LLaVA-Bench(COCO) 90 题、LLaVA-Bench(In-the-Wild) 60 题上用 GPT-4 作裁判给相对分数;在 ScienceQA 21K 选择题上评估准确率。指令数据规模与多样性对对话质量至关重要,LLaVA 与文本 GPT-4 互补集成取得 ScienceQA 新 SOTA。
关键数据
影响与局限
LLaVA 是把 NLP 的「指令微调 + 机器生成数据」范式首次系统搬到多模态领域的工作,验证了「简单线性投影 + 海量高质量指令数据」路线的可行性。它的两阶段训练配方与用 GPT-4 构造视觉指令数据的方法被后续 LLaVA-1.5、LLaVA-NeXT 等一系列开源多模态大模型直接沿用,是开源视觉对话模型的奠基性工作之一。
局限与不足
论文自己承认的局限:LLaVA 有时把图像当作「一袋图像块」处理,在需要跨图像块精细语义整合的场景会出错,例如误判冰箱里是否有草莓味酸奶;模型依赖的知识主要来自训练数据本身,缺乏检索外部知识的能力,因此难以识别小众餐厅名称、酸奶品牌等需要广泛世界知识或高分辨率细节的问题;视觉编码器的输入分辨率受 CLIP ViT-L/14 限制,处理高分辨率图像细节的能力有限;此外线性投影是对齐视觉-语言表示的最简单方案,论文明确指出更复杂的跨模态连接方式(如 Flamingo 的门控交叉注意力、BLIP-2 的 Q-Former)尚未被探索,留作未来工作。量化评测还完全依赖 GPT-4 作为裁判打分,其评判本身可能存在偏置,且论文承认这套方法主要在真实生活场景上验证,学术基准上的定量结果需参考后续改进工作。