【多模态大模型paper阅读笔记-5】LLaVA:Visual Instruction Tuning,5千字精读,最适合入门多模态大模型的工作

LLaVA(视觉指令微调)

论文名称:Visual Instruction Tuning

论文链接:https://arxiv.org/pdf/2304.08485

论文发布时间:2023年4月初版,2023年12月更新。

名字来源:Large Language and Vision Assistant,大型视觉语言助手。

keypoints

模型架构

Vision Encoder:pre-trained CLIP visual encoder ViT-L/14

LLM:Vicuna

Projection:简单的线性投射。

相比于Flamingo更简单,对训练数据要求更少,适合迭代做实验。

训练

Stage1:特征对齐预训练(Pre-training for Feature Alignment)

此阶段冻结ViT和LLM,只训练Proj层。

数据
  1. 从CC3M中过滤了595K的图文对。这些图文对被改造为指令跟随数据(instruction-following data)
  2. 每个样本是一个单轮对话。
  3. 预测结果是图像的原始描述文本。

通过这一步,视觉编码器输出的图像特征可以和预训练的LLM的词向量对齐。

参数设置

epoch 1

lr 2e-3

bs 128

Stage2:端到端微调(Fine-tuning End-to-End)

此阶段冻结ViT,训练Proj和LLM。

数据
  1. 自建的对话形式数据集LLaVA-Instruct-158K。
  2. 三种不同的对话类型。
参数设置

epoch 3

lr 2e-5

bs 32

全文精读

1. Background&Motivition

使用机器生成的指令跟随数据对大型语言模型(llm)进行指令调优已被证明可以提高新任务的zero-shot能力,但该想法在多模态领域的探索较少。

社区出现了很多语言增强的视觉模型,具有强大的开放世界视觉理解能力。然而,每个任务由一个单一的大视觉模型独立解决,而且仅使用描述图片的语言(例如Grounding SAM),交互性较差,泛用性差。

LLM则被证实了具有较强的泛化能力,通常能解决多种任务,且能遵循人类指令,出现了很多开源LLM如LLaMA、Qwen。

2. Contributions

本文提出了visual instruction-tuning,第一次将visual instruction-tuning扩展到多模态视觉领域。

  1. Multimodal instruction-following data。提出一种经典的数据生成方式,使用GPT4等LLM将图文对数据转换为instruction-following。
  2. Large multimodal models。提出一种vision encoder+LLM decoder的架构。
  3. Multimodal instruction-following benchmark
  4. Open-source

3. GPT-assisted Visual Instruction Data Generation 数据生成

使用ChatGPT/GPT-4将图文对转换为instruction-following数据。

图中上半部分为两种处理前的图文对,分别是caption(图像内容描述)和box(标签对应的坐标框)。

容易想到的一种构造格式是:给定图像 I和caption c,构造一组问题q,得到如下对话:

Human:I+q_i

GPT: c

但这样的数据缺乏多样性和深度推理。

所以,作者得到了如图下半部分,使用GPT4这种LLM来构造的更丰富更深度的数据。

包括三类问答,仅第一种是多轮,其他为单轮:

  1. (多轮)对话:模拟两个人之间的一问一答,涉及输入图片的对象类型、对象计数、对象动作、对象位置、对象之间的相对位置。
  2. 详细描述:对图片进行更加详细的描述。
  3. 复杂推理:根据图片内容进行一步一步的逻辑推理。

具体如何提示GPT4:

向GPT4输入如上内容后,输出如下格式 数据:

{"role":"user", "content":sample['context']}

({"role":"assistant", "content":sample['response']}

4. Visual Instruction Tuning

4.1 架构

公式:

keypoints中已经讲过了。

4.2 训练

因为一张图对应了多种问答,因此每轮问答t是如下构造方式:

第一个instruct是输入图像,和q1(你是一个ai blabla),哪个在前是随机的。

后面的就是正常是一问一答。训练LLaVA的数据格式如下:

目标函数采取和LLM相同的自回归损失

小xi是模型预测输出token,绿色的tokens用于计算自回归损失。θ是模型参数。

训练分两阶段:

Stage 1: Pre-training for Feature Alignment.

对keypoints的补充:数据是过滤CC3M to 595K。然后按照Sec3中一开始提到的简单粗暴的方式构造对话,回答就是caption。单论对话。对每张图片随机选择一个对应的对话。

Stage 2: Fine-tuning End-to-End

对keypoints的补充:这阶段的数据采用Sec3中描述的三类构建方法,构建了一个基准数据集Science QA。

5. 实验

通过两个主要的实验设置分别评估了LLaVA在指令跟随和视觉推理能力方面的性能: 多模态聊天机器人和ScienceQA数据集。

使用8× a100训练所有模型,遵循Vicuna的超参数。

5.1 Multimodal Chatbot

demo示例,和与其他大模型的对比:

值得注意的是:LLaVA使用的训练集很小(只有80k+的图像),但能在域外数据上根据问题给出合理的推理。

定量评估模型在多模态数据上的指令跟随能力:

给定图像、基本事实文本描述和问题组成的三元组,候选模型(例如,LLaVA)根据问题和图像预测答案。

为了提供一个近似的理论上限,使用纯文本GPT-4,基于问题和基本事实文本描述创建了一个参考预测。

在获得两个模型的响应后,我们将问题、视觉信息(以文本描述的格式)和两个助手生成的响应馈送给裁判(即纯文本GPT-4)。它评估助手回答的有用性、相关性、准确性和详细程度,并给出1到10分的总分,分数越高表明整体表现越好。以下表格中的分数都是相对于GPT-4输出的相对分数。

Bench

LLaVA-Bench (COCO).

从COCO-Val-2014中随机抽选30张图像,生成共90个问题,该基准测试研究模型的对齐行为和具有一致视觉输入的功能,进行训练数据的消融,结果如下:

LLaVA-Bench (In-the-Wild)

为了评估模型在更具挑战性的任务中的能力和对新领域的可泛化性,收集了24张不同的图像,总共有60个问题,包括室内和室外场景、模因、绘画、草图等,

模型架构对比:

局限性

如下图两个问题,模型仍然欠缺;

  1. 宽广的知识面和多语言,例如拉面是哪个牌子的;
  2. 高分辨率图像理解;
  3. 无法掌握图像的复杂语义。

5.2 ScienceQA

ScienceQA[34]包含21k个多模态选择题,具有丰富的领域多样性,涉及3个学科、26个主题、127个类别和379个技能。基准数据集分为训练、验证和测试部分,分别有12726、4241和4241个示例。我们考虑了两种具有代表性的方法,包括具有和不具有思维链(CoT)的GPT-3.5模型(text- davincici -002)、LLaMA-Adapter[59]以及多模态思维链(MM-CoT)。

结果如表7所示。对于LLaVA,使用最后一层之前的视觉特征,要求模型先预测原因再预测答案,并进行12次epoch的训练。它的准确率为90.92%,与SoTA的91.68%相当接近。为了探索LLM的局限性,还使用2次上下文学习提示GPT-4,并实现了82.69%的准确率,与GPT-3.5的75.17%相比,这是7.52%的绝对增益。对于大量的问题,我们注意到GPT-4失败仅仅是因为它报告没有足够的背景,如图像或情节。我们考虑了两种方案来结合我们的模型和GPT-4的结果。

(i) GPT-4补充。每当GPT-4无法提供答案时,我们就使用我们方法中的预测。该方案的精度为90.97%,与单独应用我们的方法几乎相同。

(ii) GPT-4作为裁判。每当GPT-4和LLaVA给出不同的答案时,我们会再次提示GPT-4,要求它根据问题和两个结果提供自己的最终答案。这种精神与CoT相似,但具有来自其他模型的外部知识。令人惊讶的是,该方案能够在所有问题类上提供一致的改进,并达到了92.53%的新的SoTA准确率。

这可能是首次使用GPT-4做ensample。

消融

  1. ViT输出特征的选择,用最后一层或者倒数第二层;
  2. 思维链,先给答案还是先推理;
  3. 训练,是否不要预训练,直接在Science QA上训;
  4. 模型大小,原本的配置是13B,这里试了7B。

后边会再读LLaVA1.6和LLaVA-grounded。

相关推荐
X_StarX11 分钟前
数据可视化期末复习-简答题
计算机视觉·信息可视化·数据挖掘·数据分析·数据可视化·大学生·期末
阿勉要睡觉28 分钟前
计算机图形学知识点汇总
计算机视觉
LuH11241 小时前
【论文阅读笔记】IC-Light
论文阅读·笔记
是十一月末1 小时前
Opencv实现图像的腐蚀、膨胀及开、闭运算
人工智能·python·opencv·计算机视觉
是小菜呀!1 小时前
实验四 触发器
笔记
悲伤小伞1 小时前
C++_数据结构_详解二叉搜索树
c语言·数据结构·c++·笔记·算法
云空1 小时前
《探索PyTorch计算机视觉:原理、应用与实践》
人工智能·pytorch·python·深度学习·计算机视觉
长风清留扬2 小时前
基于OpenAI Whisper AI模型自动生成视频字幕:全面解析与实战指南
人工智能·神经网络·opencv·计算机视觉·自然语言处理·数据挖掘·whisper
灰太狼不爱写代码4 小时前
CUDA11.4版本的Pytorch下载
人工智能·pytorch·笔记·python·学习
volcanical6 小时前
Dataset Distillation with Attention Labels for Fine-tuning BERT
人工智能·深度学习·bert