LLaVA 解读:视觉指令微调如何造出会看图的对话模型
LLaVA 用一层线性投影把 CLIP 编码器接到 Vicuna,再用纯文本 GPT-4 生成的图像指令数据微调,相对 GPT-4 达 85.1%,ScienceQA 达 92.53%。
快速答案
LLaVA 证明:把一个冻结的 CLIP 视觉编码器,通过一层可训练的线性投影接到 Vicuna 语言模型上,再用纯文本 GPT-4 替它写的指令数据微调,就能低成本造出一个会看图聊天的助手。公开模型在论文自建的多模态指令基准上,相对 GPT-4 拿到 85.1% 的得分;在 ScienceQA 上微调后,LLaVA 与 GPT-4 组合的准确率达到 92.53%,刷新了当时的最好成绩。数据、模型、代码全部开源。
用 GPT-4 生成指令数据
整套方法最关键的一招是:生成数据的 GPT-4 其实从头到尾没看过图。作者把图像在 COCO 这类数据集里已有的符号化信息——也就是它的文字描述(caption)和物体的边界框坐标——喂给纯文本版 GPT-4,让它假装能看见这张图,据此写出指令式对话。基于这些文字描述,GPT-4 产出三类数据:围绕图像内容的多轮对话、详细描述,以及需要推理而非照搬的复杂问答。
这同时是论文里最聪明、也最脆弱的一环。它绕开了 2023 年初几乎不存在的大规模人工标注多模态指令语料这个难题;但代价是,训练信号继承了 GPT-4 的盲区:GPT-4 是在对描述和坐标做推理,而不是看像素,凡是 caption 漏掉的东西,老师看不见,学生自然也学不到。最终数据集为 15.8 万条样本——以预训练标准看很小,而这恰恰是重点。
把视觉编码器接到大模型上
LLaVA 的架构刻意做到极简。一个冻结的 CLIP ViT-L/14 把图像编码成视觉特征;一层线性投影把这些特征映射进大模型的词嵌入空间,让它们看起来像普通的输入 token;Vicuna 大模型(一个 LLaMA 微调版)再把这些投影后的视觉 token 和文字提示一起读进去。整个连接器就这么简单——没有交叉注意力堆叠,没有 Q-Former,只有一个矩阵。
训练分两阶段。第一阶段冻结视觉编码器和大模型,只在图文配对上训练那层投影矩阵,把视觉特征对齐到语言空间。第二阶段再用 GPT-4 生成的指令数据,同时微调投影层和大模型,但仍冻结视觉编码器。一句实话:正是这种「投影即连接器」的设计,让多模态大模型在学术预算下变得可复现——它好用到整个领域先抄了它,之后才转向更复杂的连接器。
关键结果
- 相对 GPT-4 拿到 85.1%:在作者自建的 LLaVA-Bench 上,这个合成多模态指令基准用纯文本 GPT-4 的判断,给开放式视觉对话打分。
- ScienceQA 上 92.53%:LLaVA 在该数据集上微调并与 GPT-4 组合后,刷新了发表时该基准的最好成绩。
- 15.8 万条指令样本:全部由纯文本 GPT-4 生成,模型没在任何一条人工书写的视觉指令上训练过。
- 仅一层线性投影:这是唯一新增的视觉到语言组件,底座是现成的 CLIP ViT-L/14 和 Vicuna。
为什么重要
LLaVA 出现的时机很妙:GPT-4 的多模态演示刚放出,而开源界还没有任何能就图像聊天的模型。它给社区递上了一套完整、便宜、可复现的配方:用一个强文本大模型自举出多模态指令数据,用一层平凡的投影把视觉编码器粘上去,再分两阶段微调。「视觉指令微调」这个框架就此成了开源多模态模型的默认范式——LLaVA-1.5、LLaVA-NeXT 以及一大批模仿者都源自这篇论文。它真正的贡献,与其说是某个具体架构,不如说是证明了:GPT-4 可以当数据工厂,把它自己具备的能力教给一个更小的模型。
局限与存疑
最大的软肋直接长在数据管线里:因为 GPT-4 是从 caption 和边界框、而非像素生成指令的,LLaVA 会自信地编造图里根本没有的细节,并继承源标注遗漏的一切。论文自建的基准又是 GPT-4 评判的,所以那个 85.1% 的头条数字,有一部分衡量的是与同源模型的一致性,而非客观真值。那层线性投影虽优雅,却是个很薄的瓶颈——后续工作把它换成 MLP、并提高输入分辨率,就拿到了实打实的提升,可见当时留下了多少余地。作者自己也把这些定位为小数据集上的早期实验,所以演示里惊艳的对话质量,在细粒度感知上其实并不稳定。
常见问题
LLaVA 是什么?视觉指令微调又做了什么?
LLaVA(Large Language and Vision Assistant)是一个开源多模态对话模型,把 CLIP 视觉编码器接到 Vicuna 大模型上。视觉指令微调,就是用关于图像的指令式对话去微调这个组合模型,让它能回答关于图片的开放式问题。
LLaVA 是怎么用 GPT-4 生成训练数据的?
LLaVA 把图像的文字描述和物体边界框——而不是图像本身——喂给纯文本 GPT-4,让它写出关于这张图的对话、详细描述和推理问答,从而产出 15.8 万条指令样本,全程不需要任何人工视觉标注。
LLaVA 是怎么把视觉编码器接到语言模型上的?
靠一层可训练的线性投影,把冻结的 CLIP ViT-L/14 视觉特征映射进 Vicuna 的词嵌入空间,于是图像变成一串 token,让大模型和文字提示一起读。它不用交叉注意力,也不用 Q-Former。
LLaVA 和 GPT-4 比有多强?
在论文的 LLaVA-Bench 上,它相对 GPT-4 达到 85.1% 的得分;LLaVA 与 GPT-4 组合在 ScienceQA 上拿到 92.53%。这些是 2023 年初、小数据集上的结果,而且基准本身由 GPT-4 评判。
一句话:让纯文本 GPT-4 写出看图的课程,用一个矩阵把视觉编码器粘到大模型上,你就得到一个会看的开源对话模型。阅读 arXiv 原文。