LLaVA 系列
LLaVA: Visual Instruction Tuning
项目地址: https://github.com/haotian-liu/LLaVA
论文: LLaVA Technical Report
简介
LLaVA模型的架构,是将一个预训练的视觉编码器(CLIP ViT-L/14)与一个大规模语言模型(Vicuna)连接在一起。
这两个模型通过一个简单的映射矩阵连接,这个矩阵负责将视觉和语言特征对齐或转换,以便在一个统一的空间内对它们进行操作。
在多模态指令跟随数据集上,LLaVA表现出色,跟GPT-4相比,分数达到了85.1%。在Science QA上,LLaVA的准确率刷新了纪录,达到92.53%。
核心思想:LLaVA 提出了视觉指令微调数据集的三种构造方式和两阶段图文训练。
模型结构
- 图像编码器:采用 CLIP 中的预训练的 VIT-L/14
- 使用单层线性层实现图文 embedding 对齐
- LLM 部分采用 Vicuna
数据
当前没有视觉-语言指令数据集,借助 GPT4 首先将图片翻译成单一目标的 caption 和其位置为 box。全部图片转为文字 token 后+prompt 输入到 GPT4 得到带指令的图文对,共三种类型:
- Conversation:简短多轮对话
- Detailed description:单次详细问答
- Complex reasoning:复杂语义推理
训练
多轮对话训练,生成多轮对话问答数据,构造 ,代表 t 轮对话数据。在第一轮,图像输入和问题输入的顺序随机打乱,后续直接添加第 t 轮的问题即可:
两阶段训练
- Stage-1 预训练特征对齐:冻结视觉编码器和 LLM 模块,仅训练投影层 W,目的是将预训练的 ViT 和 LLM 的 embedding 进行对齐。
- Stage-2 端到端微调:冻结视觉编码器,训练投影层 W 和 LLM 模块,主要从科学问答和多模态聊天机器人两个场景进行训练。
LLaVA1.5: Improve Baselines with Visual Instruction Tuning
项目地址: https://github.com/haotian-liu/LLaVA
论文: LLaVA1.5 Technical Report
简介
核心改进:通过更改 LLaVA 结构,构建新数据,重构 prompt 格式来实现模型能力增强(8 张 A100 训练一天)。
模型结构
- 模态对齐层由单层 MLP 改为双层, 实验发现使用2层MLP改善视觉语言连接器的表示能力可以提高LLAVA的多模态功能
- ClIP-Large 图像分辨率 336*336
- Vicuna v1.5 13B(原来 7B),理解更好
数据
- 添加额外的面向学术任务问答数据集,OpenKonwledge VQA,region-level VQA,OCR VQA
- 使用 ShareGPT 的数据进行指令微调,说明文本复杂指令能提升多模态理解
LLaVA 系列
https://guokent.github.io/papernotes/llava/