LLaVA: Visual Instruction Tuning

LLaVA: Visual Instruction Tuning

LLaVA: 使用text-only的LLM构造多模态instruct following数据

论文:Visual Instruction Tuning

ChatGPT 等一系列大语言模型之所以能做到令人惊艳的对话能力,关键在于 alignment 对齐。而 alignment 的实现有方法和数据两个要素,目前主流的方法是 SFT (+ RLHF),数据则是 instruction following 数据。那么,在多模态大模型(LMM)的训练过程中,在多模态 instruction following 数据上进行 SFT 是一个很自然的,目前看起来也是很有效的方法。LLaVA 提出了一种使用语言模型来构造多模态 instruction following 数据的,并首次以此构建 LMM。

数据构造

多模态 instruction following 数据的构造是关键,LLaVA 提出了一种结合数据集中图像的各种标签信息,使用语言模型进行多模态 instruction following 数据构造的方法。具体来说,LLaVA 使用 MSCOCO 数据集中的标注信息:每张图有 5 个较简短的 ground truth caption 和 object bbox(包括类别和位置)序列,将这些作为 text-only GPT4 的输入,通过 prompt 的形式让 GPT4 “假装” 看到了图片并生成 3 种类型的文本:1)关于图像中对象的对话 (conversation);2)针对图片的详细描述 (detailed description);3)和图片相关的复杂的推理过程 (complex reasoning)。注意,这三种类型的 caption 都是 GPT4 在不看到图片的情况下,根据 COCO 数据中每张图像丰富的标注信息,“脑补” 出图片的画面生成的,为了让 GPT4 理解这些意图,作者额外人工标注了一些样例用于 in-context learning。

在这里插入图片描述

最终,构建了共 158K 条多模态 instruction following 数据,其中包括 58K 的对话数据,23K 的细节描述和 77K 的复杂推理。这些数据均已开源。

模型结构

LMM 的结构都大同小异,一般包括 LLM、visual encoder 和 adapter 三部分。LLM 和 visual encoder 都是预训练好的自回归结构和 ViT 模型,各个多模态的模型在结构上的区别一般都在 adapter 这里,常见的有 linear、cross attention、q-former、perceiver resampler 等。

LLaVA 这里使用的 adaper 就是最简单的 linear 线性映射,采用 CLIP 的 ViT-L/14 作为 visual encoder,采用 Vicuna(LLaMa 的一个 SFT 指令微调版本) 作为基座 LLM。

在这里插入图片描述

模型训练

  • 第一阶段:跨模态对齐预训练,从 CC3M 中通过限制 caption 中名词词组的最小频率过滤出 595k 图文对数据,冻结视觉编码器和文本解码器,只训练线性映射层;
  • 第二阶段:指令微调,线性层和 LLM 都会进行优化。共调了两个版本。一版针对多模态对话场景,使用构建的 158k 多模态 instruction following 数据集进行微调;另一版针对 Science QA 数据集进行微调。
个人理解

llava 的主要贡献是指出了指令微调对于多模态理解模型的重要作用,并提出了如何利用图像信息,给到 text-only 的 ChatGPT/GPT4 来进行生成视觉 instruct-following 数据。

LLaVA 1.5

论文:

Improved Baselines with Visual Instruction Tuning (arXiv)

Improved Baselines with Visual Instruction Tuning (新)

如论文标题所示,LLaVA 1.5 没有什么特别新的技术,而是在 LLaVA 的基础上通过模型结构改动、训练数据增加和分辨率提升来得到了一个更强的模型。

在模型结构上,LLaVA 1.5 相对于 LLaVA 改动很小,只是将 adapter 从单层的 linear 换成了多层的 MLP,称为 connector。

在这里插入图片描述

在分辨率上,LLaVA 1.5 提升到 336。

在数据上,LLaVA 1.5 增加了许多 QA 和 OCR 的数据。

消融实验如下:

在这里插入图片描述

与其他 LMM 的对比如下:

在这里插入图片描述

LLaVA 1.6 (LLaVA-NeXT)

博客:LLaVA-NeXT: Improved reasoning, OCR, and world knowledge

LLaVA 1.6 继续对 LLaVA 模型进行提升,甚至超过了商用的 Gemini Pro。

LLaVA 1.6 做出的改进主要在以下几个方面:

  1. 提升输入图像的分辨率:LLaVA 1.5 的分辨率为 335$\times$336,LLaVA 1.6 将像素数扩充了 4 倍,并支持不同的长宽比,其支持的图像分辨率有 672x672,336x1344,1344x336 三种
  2. 更强的视觉推理和 OCR 能力:LLaVA 1.6 加入了与视觉推理和 OCR 能力相关的多模态 instruction following 数据
  3. 多场景下更好的视觉对话能力:可以支持多种应用场景,更好地理解世界知识(world knowledge)和逻辑推理
  4. 使用 SGLang 支持了更高效的部署和推理

具体来说,LLaVA 1.6 的技术改进包含动态高分辨率,高质量数据,更强的 LLM 基座三个方面。

动态高分辨率

动态高分辨率技术使得模型对图像复杂细节的捕获更加精准,减弱了低分辨率 LMM 经常出现的幻觉(hallucination)现象。为了平衡性能和计算开销,LLaVA 1.6 采用了 2$\times$2 的配置策略,具体的图像块切分方式如下图所示。如此,就能支持 { 2 × 2 , 1 × { 2 , 3 , 4 } , { 2 , 3 , 4 } × 1 } { 2 × 2 , 1 × { 2 , 3 , 4 } , { 2 , 3 , 4 } × 1 } \{2×2,1×\{2,3,4\},\{2,3,4\}×1\}\{2×2,1×\{2,3,4\},\{2,3,4\}×1\} {2×2,1×{2,3,4},{2,3,4}×1}{2×2,1×{2,3,4},{2,3,4}×1} 多种不同的长宽比。

在这里插入图片描述

高质量数据

数据方面,LLaVA 1.6 的提升包括两部分:高质量用户指令数据和多模态图表数据。

对于用户指令数据,高质量有两点要求,一是指令任务的多样性要广,以应对现实中用户多种可能得要求;二是回答质量当然也要高。LLaVA 1.6 的用户指令数据第一部分来自开源现有的 LAION-GPT-VShareGPT-4V,第二部分则是过往用户试用 LLaVA demo 中积攒下来的图片和指令,用 GPT4V 来回答这些问题。

对于多模态图表数据,首先作者发现 TextCaps 的训练图片与 TextVQA 是同一批,为了能够在 TextVQA 上评估模型 zero-shot 的 OCR 能力,TextCaps 被移出了 LLaVA 1.6 的训练数据,同时补上了 DocVQA 和 SynDog-EN 作为代替。其次,和 Qwen-VL 一样,LLaVA 1.6 ChartQA,DVQA 和 AI2D 来提升模型对表格图像的理解。

更强的 LLM 基座

除了 LLaVA 系列一直沿用的 Vicuna 7B/13B,LLaVA 1.6 还尝试了 Mistral-7BNous-Hermes-2-Yi-34B

LLaVA 1.6 的训练策略、模型结构、训练数据如下表所示。

在这里插入图片描述

LLaVA 1.6 在主流 LMM benchmark 上超越了多数开源 LMM,甚至优于商用的 Gemini Pro。

在这里插入图片描述

总结

2023 年上半年,从 GPT4 接口机造训练数据来训练自己的 LLM 已成为基本操作。而在没有 GPT4V 的时代,多模态的 instruction following 数据构造却一直是个难题。LLaVA 提出了一种结合图像的各种标注信息,使用 text-only 的 GPT4 来机造多模态 instruction following 数据的方法,并首次使用多模态的 instruction following 数据训练出了 LMM。在后续的迭代中,LLaVA 坚持使用简单的 linear/mlp 作为 adapter,不断提升训练数据规模和输入分辨率,模型性能相比于同期 LMM 一直不错。最重要的是,还坚持完整开源(包含训练代码)。

  • 23
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值