NIPS2024论文《Visual instruction tuning》LLaVA视觉大模型技术介绍

本文是关于NIPS 2024的一篇oral论文《Visual instruction tuning》的简要技术介绍,这项工作提出的框架名称为LLaVA,全称为Large Language and Vision Assistant。作者构建了语言视觉指令(language-image instruction-following)数据集,并且使用该数据集微调了大型语言模型,使之在构建的两个benchmark以及ScienceQA任务上取得优秀的效果。本文的创新点在于:

  1. 基于COCO以及ChatGPT/GPT4生成了多模态指令跟随(multimodal instruction-following)数据集;
  2. 基于视觉编码器CLIP和语言解码器Vicuna构建了多模态的大型语言模型,可以在通用视觉问答以及ScienceQA等视觉推理任务中取得SOTA效果;
  3. 提出了两个指令跟随基准,可以用来评估多模态指令跟随任务的性能;
  4. 开源。

这篇论文是跨模态大型语言模型中的里程碑式作品,论文的数据集构造和跨模态大模型联合训练的思想被后续广大研究者借鉴使用。在阅读这篇文章时,读者可能会有疑惑:

  • 视觉-指令数据集是怎么构建的?
  • 如果要构建一个图片-指令的问答系统,模型的框架是怎样的?视觉模块和大型语言模型如何串联?
  • 使用构建的数据集,如何才能将上述框架进行联合训练?
  • 训练好一个可以实现视觉问答任务的模型,定性评价容易,怎样定量的评价这个模型的好坏?
  • 为什么这些微调方式可以提高视觉语言模型的推理性能?

我们通过这篇文章来回答上面的疑问。

有关本专栏的更多内容,请参考大语言模型文献调研专栏目录

1. 论文基本信息

1.1 资源

项目主页:https://llava-vl.github.io/

文章:https://arxiv.org/pdf/2304.08485.pdf

代码:https://github.com/haotian-liu/LLaVA

引用:

@article{liu2024visual,
  title={Visual instruction tuning},
  author={Liu, Haotian and Li, Chunyuan and Wu, Qingyang and Lee, Yong Jae},
  journal={Advances in neural information processing systems},
  volume={36},
  year={2024}
}

1.2 研究背景

任务介绍。现在的大型语言模型(LLM)在语言对话与问答等任务中表现出优秀的性能。但是,对于多模态的输入(例如一张图片以及一个关于这张图片的问题),大型语言模型就难以应对,尤其是考察其推理能力时。

视觉问答的一个案例

以往的工作。通常来讲,针对某个特定的视觉任务,会专门设计一个视觉模型来解决,大型语言模型出现后,很多研究者试图将视觉任务和大型语言模型的推理能力结合起来,诞生了诸如GPT-4、BLIP-2、PALM-E等经典作品,不过这些作品并没有在视觉-指令数据集上做微调,如果构建一个专门微调视觉-指令任务的数据集,兴许可以进一步改善性能,这也是这篇文章所做的事情。

2. 使用GPT构建指令生成数据集

本文构建数据集的方式十分巧妙,基于COCO数据集,在GPT-4的帮助下生成大量指令数据集。一个最简单的思路是,直接问GPT-4,输入一张图片和一些预先定义好的问题,获得这个问题的描述。这种生成方式很轻便,但是能拿到的回复文本的丰富性和推理性较差,为了缓解这个问题,作者鼓励GPT-4生成更加细节的描述,构建的数据集的图片对应的文本部分包含三种类型:

  1. 对话。作者设计了丰富的对话问题来问GPT-4,比如图片中有什么,是啥,这个物体左边是什么,这个人在干什么等等,获得一系列对话数据;
  2. 细节描述。通过指令鼓励GPT-4生成尽可能详细的描述;
  3. 复杂推理。鼓励GPT-4进行一步步推理,将推理过程返回。

三种类型的response

最终,上述类型数据一共收集58K、23K、77K,合计158K个样例;

3. 视觉指令微调

3.1 网络框架

作者设计了多模态大模型任务中规中矩的网络框架,即将视觉编码器通过projection模块和大型语言模型进行连接:

视觉编码器:CLIP视觉编码器ViT-L/14,取其最后一个transformer层前后的特征使用

Projection:一个简单的线性层,实现视觉编码到语言模型输入token的映射

大型语言模型:采用Vicuna作为语言解码器,接收token化的视觉编码以及语言指令的token,输出语言回应

视觉-指令大模型设计框架

3.2 训练数据准备

我们已经知道,整个框架输入图片和指令,输出模型回应。对于上述提到的三种类型的数据,细节描述和复杂推理比较好处理,因为只有一轮人机交互,但是对于第一类,作者设计了一种迭代式的数据组成,实现多轮数据的训练。

序列输入

3.3 训练

LLaVA采用两阶段训练方式进行微调。

第一阶段。这一阶段中固定CLIP视觉编码器和Vicuna语言解码器,只训练Projection模块。

第二阶段。这一阶段固定CLIP视觉编码器,将Projection模块和Vicuna语言解码器采用更小的学习率进行联合训练。

4. 实验部分

4.1 量化评测指标

模型训练完成后,就要对生成的模型进行测试。然而,视觉-指令任务的输出是一种较为复杂的语言结构形式,作者采用GPT-4对模型的输出结果进行评测。针对每个样本三元组(图片,真值文本描述,问题),模型输出针对该问题的解答作为评测的预测值文本,将真值文本描述和问题输入GPT-4生成评测所使用的真值文本,然后将得到的真值和预测值输入到GPT-4中进行纯文本的评测,让GPT-4输出各个评测领域(有帮助性,相关性、准确率、精细程度)的从1到10的打分,并进行平均作为量化结果。

4.2 两个Benchmark

LLaVA Benchmark (COCO)。作者从COCO-Val-2014中随机选择了30张图片,每张图片生成上述三类问题,一共得到90个图片-指令对。

LLaVA Benchmark (In-the-Wild)。作者收集了室内和室外一共24张图片,以及60个问题,并进行了详细的人工标注。

LLaVA Benchmark (In-the-Wild)

更多详细的实验结果请参考论文。

附录:论文的思维导图(大图,请在新标签页打开查阅)

LLaVA
有关本专栏的更多内容,请参考大语言模型文献调研专栏目录

者自知才疏学浅,难免疏漏与谬误,若有高见,请不吝赐教,笔者将不胜感激!

softargmax

2024年3月26日

  • 20
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值