年份与会议
2023 · NeurIPS Workshop
用视觉编码器加语言模型,再通过视觉指令微调把“能看图”升级为“能围绕图片对话”,成为开源多模态 LLM 的关键里程碑。
年份与会议
2023 · NeurIPS Workshop
作者
Haotian Liu、Chunyuan Li、Qingyang Wu、Yong Jae Lee
主题
多模态
阅读时长
约 3 分钟
收录时间
2023/04/17
如果说 CLIP 解决的是“图像和语言如何对齐”,那么 LLaVA 真正推进的是另一件事:
如何把这种对齐能力接进大语言模型,让模型不仅能看图,还能围绕图片进行指令跟随与对话?
这听起来像是自然延伸,但其实跨度很大。因为“图文匹配”并不等于“多模态对话”:
LLaVA 的重要性就在于,它把视觉输入和 LLM 的指令跟随能力真正连起来了,而且采用了一条非常开源友好的路线。很多后来流行的开源视觉语言模型,本质上都在复用或变体化这条思路。
在 CLIP 之后,社区已经知道图像特征可以和语言对齐,但真正做多模态助手时,又会碰到新问题:
这说明多模态系统至少需要解决两层问题:
LLaVA 的贡献,就是把这两层拆开处理,并给出一条非常清晰的工程路径。
LLaVA 的整体结构其实相当直观:
这里最关键的不是结构复杂,而是设计足够干净:
这条思路后来几乎成为开源多模态 LLM 的标准模板。因为它既保留了强语言模型的能力,又不用从零训练一个巨大的统一模型。
把结构和训练阶段放到一张图里,LLaVA 的工程思路会更清楚:
<g>
<rect x="40" y="92" width="142" height="78" rx="18" fill="#e8f1ff" stroke="#98b7e1" />
<text x="111" y="126" text-anchor="middle" font-size="19" font-weight="700">图片输入</text>
<text x="111" y="149" text-anchor="middle" font-size="13" fill="#4b5563">scene / screenshot / chart</text>
</g>
<g>
<rect x="234" y="84" width="170" height="94" rx="20" fill="#eef6e8" stroke="#a8c48e" />
<text x="319" y="118" text-anchor="middle" font-size="19" font-weight="700">视觉编码器</text>
<text x="319" y="142" text-anchor="middle" font-size="13" fill="#4b5563">CLIP / ViT 等图像 backbone</text>
</g>
<g>
<rect x="456" y="96" width="128" height="70" rx="18" fill="#fff4dc" stroke="#e2c36f" />
<text x="520" y="125" text-anchor="middle" font-size="19" font-weight="700">Projector</text>
<text x="520" y="148" text-anchor="middle" font-size="13" fill="#4b5563">视觉 token 对齐</text>
</g>
<g>
<rect x="636" y="74" width="212" height="114" rx="22" fill="#f4ebff" stroke="#c7afe8" />
<text x="742" y="107" text-anchor="middle" font-size="20" font-weight="700">LLM 主干</text>
<text x="742" y="132" text-anchor="middle" font-size="14" fill="#4b5563">接收视觉 token + 文本指令</text>
<text x="742" y="155" text-anchor="middle" font-size="14" fill="#4b5563">输出对话、描述、问答结果</text>
</g>
<g>
<rect x="700" y="220" width="148" height="62" rx="18" fill="#dff4f0" stroke="#8dc7bd" />
<text x="774" y="248" text-anchor="middle" font-size="18" font-weight="700">多模态回答</text>
<text x="774" y="269" text-anchor="middle" font-size="12" fill="#4b5563">描述 / QA / 解释</text>
</g>
<g>
<rect x="40" y="230" width="250" height="82" rx="18" fill="#fbf7f7" stroke="#e5d0d0" />
<text x="165" y="258" text-anchor="middle" font-size="18" font-weight="700">阶段一:特征对齐</text>
<text x="165" y="280" text-anchor="middle" font-size="13" fill="#4b5563">先学会把视觉特征翻译到语言空间</text>
</g>
<g>
<rect x="322" y="230" width="300" height="82" rx="18" fill="#fbfaf5" stroke="#e6ddc4" />
<text x="472" y="258" text-anchor="middle" font-size="18" font-weight="700">阶段二:视觉指令微调</text>
<text x="472" y="280" text-anchor="middle" font-size="13" fill="#4b5563">图像 + 指令 + 助手回答,塑造成“会围绕图片说话”的行为</text>
</g>
<line x1="182" y1="131" x2="234" y2="131" stroke="#5b6b7f" stroke-width="3" marker-end="url(#llava-arrow)" />
<line x1="404" y1="131" x2="456" y2="131" stroke="#5b6b7f" stroke-width="3" marker-end="url(#llava-arrow)" />
<line x1="584" y1="131" x2="636" y2="131" stroke="#5b6b7f" stroke-width="3" marker-end="url(#llava-arrow)" />
<line x1="742" y1="188" x2="774" y2="220" stroke="#5b6b7f" stroke-width="3" marker-end="url(#llava-arrow)" />
</g>
LLaVA 的训练流程通常被理解为两阶段:
先训练视觉到语言空间的投影,让图像特征能够被 LLM 读懂。这一阶段更像表示适配。
再用图像问答、描述、推理类指令数据对整个系统进行 instruction tuning,让模型学会围绕视觉输入执行自然语言任务。
这两阶段拆分非常关键。因为如果直接把所有目标一次性混在一起,模型很容易在“看懂视觉特征”之前,就被更复杂的对话行为目标干扰。
你也可以把它类比成:
对很多多模态系统来说,这种分层训练思路非常实用。
LLaVA 真正有代表性的地方,不只是把图像塞进 LLM,而是强调 instruction tuning 在多模态场景里的作用。
这意味着训练样本不再只是“图像 + 标签”,而更像:
例如:
这种训练会让模型学到一种新的行为模式:不是纯粹匹配图文,而是围绕图片执行人类语言指令。这也是 LLaVA 与早期视觉-语言对齐模型最重要的差别之一。
从今天看,这一步几乎定义了“多模态聊天模型”的核心范式。
LLaVA 的影响力很大程度上来自它的工程可复用性。相比某些闭源大模型路线,它的方案更容易被社区理解和复制:
也就是说,LLaVA 提供的不是一次性答案,而是一套大家都能拿来搭自己多模态系统的“配方”。
这也是为什么后来你会看到很多模型并不一定叫 LLaVA,但整体结构非常像:
从开源生态角度看,它极大降低了多模态能力的进入门槛。
LLaVA 论文的实验价值,不只是“分数变好了”,而是展示了一个重要结论:
只靠图文对齐还不够,视觉 instruction tuning 对把系统变成可对话助手至关重要。
从任务表现上看,这类系统通常会在下面几种任务里明显受益:
它最关键的实验启示是:如果你的目标是做一个多模态助手,那么训练目标必须像助手,而不是像分类器。
这其实和纯语言模型里的 InstructGPT / RLHF 方法论 是同一条主线:模型能力不只来自预训练,也来自“后续如何被塑形成一种助手行为”。
很多人会把 LLaVA 看成“开源版 GPT-4V”,这种说法不完全准确,但方向上有一定道理。
两者的共同目标都是:
但 LLaVA 更像一种开放配方,而不是单一闭源产品。它的重要性在于证明:
因此,LLaVA 对生态的意义甚至超过单篇论文本身。它让很多团队第一次觉得:多模态助手不是遥不可及的“黑盒能力”,而是可以逐步搭出来的系统。
虽然 LLaVA 很重要,但它也有明显局限:
很多情况下它能做不错的描述和问答,但面对复杂图表推理、细粒度空间关系、长链视觉逻辑时,仍然不够稳。
如果视觉表征本身不足,再好的语言模型也只能在有限信息上组织回答。
多模态指令微调如果数据噪声重、偏差大,模型就容易学到“看起来会答,但细节不可靠”的行为。
多模态输入不代表模型就一定 grounded。有时模型仍会对视觉内容做过度补充或错误推断。
因此,LLaVA 非常像多模态世界里的“开源 Instruct 起点”,但不是终点。
到今天看,LLaVA 的长期价值主要体现在三点:
很多后续工作要么在改视觉编码器,要么在改 projector,要么在改指令数据与训练流程,但整体思路都能在 LLaVA 这里找到清晰原型。
这说明它的重要性并不只是“早”,而是“它把问题拆解得足够对”。
如果你只想抓住主线,请记住:
理解这三点后,你再去看多模态系统、视觉 Agent 或图像工具调用,就会更清楚它们分别是在这条链路的哪一层继续往前走。
沿着相近主题继续阅读,加深对方法边界与实践场景的理解。