前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【论文解读】LLaVA 多模态大模型,微软首创用GPT-4生成多模态指令数据集进行指令微调

【论文解读】LLaVA 多模态大模型,微软首创用GPT-4生成多模态指令数据集进行指令微调

作者头像
唐国梁Tommy
发布2023-09-01 09:53:14
2.2K0
发布2023-09-01 09:53:14
举报
文章被收录于专栏:唐国梁Tommy

注:本图由stable diffusion生成

1.1 摘要

在本文中,我们首次尝试使用仅基于语言的GPT-4生成多模态语言-图像指令跟随(instruction following)数据。通过对这些生成数据进行指令调整,我们介绍了LLaVA:Large Language and Vision Assistant,这是一个端到端训练的大型多模态模型,将视觉编码器与LLM连接起来,用于通用目的的视觉和自然语言理解。

1.2 引言

具体来说,我们的论文做出了以下贡献:

(1)多模态指令跟随(instruction-following)数据

一个关键挑战是缺乏视觉-语言指令跟随数据。我们提出了一个数据重组观点和管道,利用ChatGPT/GPT-4将图像-文本对转换成适当的指令跟随格式。

(2)大型多模态模型

我们开发了一个大型多模态模型(LMM),将CLIP的开放集视觉编码器与语言解码器LLaMA连接,并在我们生成的指令型视觉-语言数据上进行端到端的微调。我们的实证研究验证了使用生成数据进行LMM指令调整的有效性,并为构建通用指令跟随视觉代理提供了实用建议。通过GPT-4,我们在科学问答多模态推理数据集上实现了最优的性能。

1.3 Related Word

注:以下是我根据论文整理的资源,可以自行下载和学习
1.3.1 Multimodal Instruction-following Agents

(1)InstructPix2Pix

代码语言:javascript
复制
① 论文链接:https://arxiv.org/pdf/2211.09800.pdf
② github:https://github.com/timothybrooks/instruct-pix2pix

(2)LangChain

代码语言:javascript
复制
① github:https://github.com/hwchase17/langchain

(3)Visual ChatGPT

代码语言:javascript
复制
① 论文链接:https://arxiv.org/pdf/2303.04671.pdf
② github:https://github.com/microsoft/TaskMatrix

(4)X-GPT

代码语言:javascript
复制
① 论文链接:https://arxiv.org/pdf/2212.11270.pdf
② github:https://x-decoder-vl.github.io/

(5)MM-REACT

代码语言:javascript
复制
① 论文链接:https://arxiv.org/pdf/2303.11381.pdf
② github:https://multimodal-react.github.io/

1.3.2 Instruction Tuning

(1)T5

代码语言:javascript
复制
① 论文链接:https://arxiv.org/pdf/1910.10683.pdf
② github:https://github.com/google-research/text-to-text-transfer-transformer

(2)PaLM

代码语言:javascript
复制
① 论文链接:https://arxiv.org/pdf/2204.02311.pdf
② github:https://github.com/lucidrains/PaLM-rlhf-pytorch

(3)OPT

代码语言:javascript
复制
① 论文链接:https://arxiv.org/pdf/2205.01068.pdf
② github:https://github.com/facebookresearch/metaseq

(4)FLAN-T5

代码语言:javascript
复制
① 论文链接:https://arxiv.org/pdf/2210.11416.pdf
② github:https://github.com/google-research/t5x/tree/main

(5)OPT-IML

代码语言:javascript
复制
① 论文链接:https://arxiv.org/pdf/2212.12017.pdf
② github:https://github.com/facebookresearch/metaseq

(6)Flamingo

代码语言:javascript
复制
① 论文链接:https://arxiv.org/pdf/2204.14198.pdf
② github:https://github.com/lucidrains/flamingo-pytorch

(7)BLIP-2

代码语言:javascript
复制
① 论文链接:https://arxiv.org/pdf/2301.12597.pdf
② github:https://github.com/salesforce/LAVIS/tree/main

(8)FROMAGe

代码语言:javascript
复制
① 论文链接:https://arxiv.org/pdf/2301.13823.pdf
② github:https://github.com/kohjingyu/fromage

(9)KOSMOS-1

代码语言:javascript
复制
① 论文链接:https://arxiv.org/pdf/2302.14045.pdf
② github:https://github.com/microsoft/unilm

(10)PaLM-E [12]

代码语言:javascript
复制
① 论文链接:https://arxiv.org/pdf/2303.03378.pdf
② github:https://palm-e.github.io/

(11)OpenFlamingo

代码语言:javascript
复制
① Blog链接:https://laion.ai/blog/open-flamingo/
② github:https://github.com/mlfoundations/open_flamingo

(12)LLaMA-Adapter

代码语言:javascript
复制
① 论文链接:https://arxiv.org/pdf/2303.16199.pdf
② github:https://github.com/ZrrSkywalker/LLaMA-Adapter

(13)visual prompt tuning

代码语言:javascript
复制
① 论文链接:https://arxiv.org/pdf/2304.02643.pdf
② github:https://github.com/facebookresearch/segment-anything

1.4 GPT辅助视觉指令数据生成

(1)受近期GPT模型在文本标注任务的成功启发,我们提出利用ChatGPT/GPT-4基于广泛存在的图像-文本对数据进行多模态指令跟随数据收集。

(2)为了将图像编码成其视觉特征以提示文本仅GPT,我们使用两种类型的符号表示:① 字幕(Captions)通常从不同角度描述视觉场景。②边界框(Bounding boxes)通常定位场景中的对象,每个框都编码了对象概念及其空间位置。

png-01

(3)这种符号表示使我们能够将图像编码为LLM可识别的序列。我们使用COCO图像并生成三种类型的指令跟随数据:

① 对话

我们设计了一场关于这张照片的助手和提问者之间的对话。回答的语气就像助手正在看这幅图像并回答问题一样。关于图像的视觉内容,提出了各种问题,包括对象类型、对象数量、对象动作、对象位置、对象之间的相对位置。只考虑有确定答案的问题。

② 详细描述

为了给图像提供丰富且全面的描述,我们创建了一个包含此类意图的问题列表。我们用GPT-4提示生成列表。对于每个图像,我们从列表中随机抽取一个问题,让GPT-4生成详细描述。

③ 复杂推理

上述两种类型关注于视觉内容本身,基于此,我们进一步创建深入推理问题。答案通常需要遵循严密逻辑的逐步推理过程。

(4)总共收集了158K个独特的语言-图像指令跟随样本,包括分别在对话中的58K、详细描述中的23K和复杂推理中的77k。

1.5 视觉指令微调

1.5.1 框架

png-02

(1)对于输入图像X_v,我们考虑预训练的CLIP视觉编码器ViT-L/14,它提供了视觉特征 Z_v = g(X_v)。我们的实验中考虑了最后一个Transformer层之前和之后的网格特征(grid features)。

(2)我们考虑一个简单的线性层将图像特征连接到词嵌入空间。具体来说,我们应用一个可训练的投影矩阵W将Z_v转换为语言嵌入tokens H_q,这些tokens与语言模型中词嵌入空间的维数相同:

png-03

1.5.2 训练

对于LLaVA模型训练,我们考虑一个两阶段的instruction-tuning过程:

阶段1:预训练用于特征对齐

① 筛选CC3M至595K图像-文本对;

② 使用朴素扩展方法(naive expansion method)将这些图像-文本pairs转换为指令跟踪数据。每个样本可以被视为单轮对话;

③ 在训练中,我们保持视觉编码器和LLM权重冻结,并仅通过可训练参数θ = W(投影矩阵)最大化似然。这样,图像特征H_v可以与预训练的LLM词嵌入对齐;

这个阶段可以理解为为冻结的LLM训练一个兼容的视觉分词器。

阶段2:端到端微调

我们只保持视觉编码器权重冻结,并继续更新LLaVA中投影层(projection layer)和LLM的预训练权重;

1.6 实验

1.6.1 多模态聊天机器人

尽管LLaVA仅使用了一个较小的多模态指令跟踪数据集(约80K个独特的图像)进行训练,但它在这两个示例上(请看本文后续的截图)展示了与多模态GPT-4非常相似的推理结果。需要注意的是,尽管这两张图片对于LLaVA来说都是领域外的,但LLaVA仍然能够理解场景并遵循问题指令进行响应。

(1) 定量评估

GPT-4评估了助手回应的有用性、相关性、准确性和细节水平,并给出了一个1到10的总分,分数越高表示整体性能越好。

png-07

1.6.2 ScienceQA

ScienceQA包含了21k多模态多项选择题,涵盖了3个学科、26个主题、127个类别和379个技能,领域多样性丰富。基准数据集分为训练、验证和测试集,分别包含12726、4241和4241个示例。

代码语言:javascript
复制
ScienceQA : https://arxiv.org/pdf/2209.09513.pdf

png-08

(1) 消融实验

① 视觉特征

我们尝试使用CLIP视觉编码器的最后一层特征,得到的准确率为 89.96%,比最后一层之前的特征低0.96%。我们推测这是因为CLIP的最后一层特征可能更关注全局图像属性,而其前一层可能更关注有助于理解特定图像细节的局部属性。

② 思维链条

我们得出结论,类似CoT的以推理为首要策略可以大大提高收敛速度,但对最终性能的贡献相对较小。

③ 预训练

我们跳过预训练,直接从头开始在Science QA上训练模型,性能下降到 85.81% 准确率。5.11%的绝对下降表明了我们预训练阶段的重要性,在对齐多模态特征的同时保留了大量预训练知识。

④ 模型大小

我们保持与最佳13B模型相同的所有配置,并训练一个7B模型。这得到了89.84%的准确率,比90.92%低1.08%,表明模型规模的重要性。


>>> 实验结果 <<<

图-1

图-02

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-05-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 唐国梁Tommy 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.3 Related Word
    • 注:以下是我根据论文整理的资源,可以自行下载和学习
      • 1.3.1 Multimodal Instruction-following Agents
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档