摘要
本文首次尝试使用仅基于语言的 GPT-4 来生成多模态(语言-图像)指令跟随数据。在此基础上,作者提出了 LLaVA(Large Language and Vision Assistant),这是一个端到端训练的大型多模态模型,通过将视觉编码器与 LLM 相连接,实现了通用的视觉与语言理解。
引言
本文首次将指令微调的思想扩展到语言-图像的多模态领域,探索构建通用视觉助手的可能性。我们的主要贡献包括:
- 多模态指令跟随数据生成: 针对当前缺乏视觉-语言指令数据的问题,我们提出了一种数据生成流程,使用 ChatGPT/GPT-4 自动将图像-文本对转换成指令跟随格式
- 大型多模态模型设计: 我们将 CLIP 视觉编码器与 Vicuna 语言模型连接,基于生成的视觉指令数据,端到端训练一个多模态大模型,并总结了如何高效训练通用视觉助手的实用经验。与 GPT-4 联合推理时,在 Science QA 多模态推理任务上达到了新的 SOTA
- 多模态指令跟随基准: 我们提出了 LLaVA-Bench,包含两个具有挑战性的多模态任务集合,涵盖多样图像、指令和细致标注
相关工作
多模态指令跟随智能体
- 端到端训练的模型:
这类方法通常针对特定任务单独设计。例如:- 视觉-语言导航任务(Vision-Language Navigation):如 VLN、Habitat,要求智能体在视觉环境中根据自然语言指令移动并达成目标。
- 图像编辑任务: 例如 InstructPix2Pix,可以根据输入图像和文本指令自动完成图像编辑。
- 多模型协作系统:
这类方法通过调用多个子模型或工具协同完成任务,代表性方法包括:- LangChain
- Visual ChatGPT
- X-GPT、MM-REACT、VisProg、ViperGPT 等。
这类方法通常利用语言模型(如 ChatGPT)作为主控,协调多个视觉子模块
相比之下,本文聚焦于端到端训练的语言-视觉多模态模型,目标是支持多任务通用指令跟随
指令微调
-
在自然语言处理(NLP)领域,已有大量工作利用指令微调提升 LLM 的指令跟随能力
-
这些工作表明,简单的指令微调方法可以显著提升 LLM 的零样本与小样本泛化能力
-
本文受到这类工作启发,首次将该思路引入计算机视觉领域,扩展到视觉-语言联合任务
-
视觉指令微调(Visual Instruction Tuning) 不等同于 视觉提示微调(Visual Prompt Tuning)。前者关注提升模型的指令跟随能力,后者关注参数高效的模型适配。
GPT辅助的视觉指令数据生成
核心问题
目前公开的多模态数据(例如:图文对齐数据,如 CC、LAION)虽然数量庞大,但缺乏足够的多模态指令跟随数据
本文提出利用 ChatGPT / GPT-4 辅助自动生成多模态指令跟随数据,输入来自已有的图像-文本对
数据生成
本文设计了一套更强的生成策略, 用于增强模型的视觉推理:
- 采用 语言-only 的 GPT-4 或 ChatGPT(它们仅接受文本输入)
- 利用两种图像的符号化表达方式,作为输入给 GPT:
- 图像描述(Captions):从不同角度描述图像内容
- 目标框(Bounding Boxes):提供图像中各对象的位置信息
GPT 学到如何从图像的文字描述中, 推理图像, 并生成问题后, 让 GPT-4(无多模态能力), 自动生成图片对应的问题
数据类型
- 对话式问答
- 详细描述
- 复杂推理
视觉辅助微调
架构
核心目标
让视觉模型和语言模型无缝连接,可以像 GPT 一样,通过图片+语言同时理解和回答用户问题
模型架构
输入:
图像(X_v
)+ 语言指令(X_q
)
↓
视觉编码器(CLIP ViT-L/14)
把图像转换成特征(Z_v
)
↓
线性投影层(Projection Layer)
把图像特征转换成语言模型能理解的“词向量格式”视觉 token(H_v
)
↓
语言模型(Vicuna)
用视觉 token + 语言输入一起推理,生成多轮对话或答案。
训练
特征对齐预训练
让图像特征和语言模型的词向量空间对齐
方法
- 数据集:用 CC3M(现有大规模图像-文本数据集,约 595K 图像-文本对)
- 输入:图像
X_v
+ 一个简单问题(随机采样的指令) - 输出:图像原本的 caption 作为答案
训练目标:
- 冻结:CLIP视觉编码器、Vicuna语言模型参数
- 只训练:线性投影矩阵 W
目的:让 CLIP 输出的视觉特征,经过 W 变换后,能够完美适配语言模型的词向量空间
端到端微调
全面训练,让模型学会真正的多模态指令跟随
方法
用作者生成的视觉指令跟随数据
目标
语言模型根据图像和对话上下文,预测 Assistant 的回答
总结
作者的训练流程:
- 阶段一:只训练图像-语言的输入通道(投影矩阵),让视觉特征和词向量对齐
- 阶段二:全面训练语言模型,让它学会处理图像+对话,支持多模态指令跟随
这个两阶段训练策略:
✔️ 保留了视觉模型和语言模型的预训练知识
✔️ 快速对齐视觉-语言空间
✔️ 有效提升了指令跟随能力
实验
多模态聊天机器人
作者训练了一个多模态聊天机器人 LLaVA, 重点关注:
- 是否真正理解图片
- 是否能根据用户指令给出回答
- 是否支持多轮对话
-> LLaVA 能够真正理解用户提问背后的重点,并生成符合上下文、结构合理的完整回答
实验发现
- 没有指令微调时,模型几乎完全不会跟随指令
- 使用详细描述、复杂推理数据,会显著提升对话和推理能力
多模态科学问答
ScienceQA 是一个多模态科学问答数据集
难度高,因为:
- 涉及跨学科推理
- 有的题目必须看图才知道答案
组合方法
可以将 LLaVA 与 GPT-4 组合, 进一步提升准确率
- 互补方案(Complement)
- GPT-4 无法回答时,直接用 LLaVA 的答案补上
- 仲裁方案(Judge) ✅(重点)
- 当 GPT-4 和 LLaVA 答案不一致时,再让 GPT-4 判定哪一个更合理
这样的组合使得正确率进一步提升
结论
本文首次提出:
视觉指令微调(Visual Instruction Tuning, VIT) 的方法
通过:
- 使用 GPT-4 自动生成 视觉-语言指令跟随数据
- 构建并训练了一个强大的多模态模型 LLaVA(Large Language and Vision Assistant)
最终,作者证明:
- LLaVA 能够支持图像+语言的复杂指令跟随
- 在 ScienceQA 多模态推理任务 上达到了新的 SOTA,表现优于现有的所有公开模型