多模态论文阅读-LLaVA

Visual Instruction Tuning

  • Abstract
  • 1. Introduction
  • 2. Related Work
  • 3. GPT-assisted Visual Instruction Data Generation
  • 4. Visual Instruction Tuning
    • 4.1 Architecture
    • 4.2 Training
  • 5 Experiments
    • 5.1 Multimodal Chatchot
    • 5.2 ScienceQA
  • 6 Conclusion

Abstract

使用机器生成的instruction-following data 对大型语言模型(LLMs)进行指令调优已被证明可以提高新任务的zero-shot能力,但该想法在多模态领域的探索较少。我们首次尝试使用languguage-only GPT-4来生成multimodal language-image instruction-following data。通过对这些生成的数据进行指令调优,我们引入了LLaVA:大型语言和视觉助理(Large Language and Vision Assistant),这是一个端到端训练的大型多模态模型,它将视觉编码器和LLM连接起来,用于通用的视觉和语言理解。为了促进视觉指令跟随的进一步研究,我们构建了****两个具有多样化和挑战性的应用导向任务的evaluation benchmarks。我们的实验表明,LLaVA展示了令人印象深刻的多模态聊天能力,有时在看不见的图像/指令上表现出multimodal GPT-4的行为,与GPT-4在合成(synthetic)的多模态指令遵循数据集上相比,产生了85.1%的相对分数。当在Science QA上进行微调时,LLaVA和GPT-4的协同(synergy)作用达到了92.53%的最新先进水平。我们让GPT-4生成的visual instruction tuning data、我们的模型和代码公开可用。

1. Introduction

人类通过视觉和语言等多种渠道与世界互动,每一种渠道在表达和交流某些概念方面都具有独特的优势,因此有助于更好地理解世界。人工智能的核心目标之一是开发一种通用(general-purpose)的助手,它可以有效地遵循多模态视觉和语言指令,与人类的意图保持一致,在野外完成各种现实世界的任务。
为此(to end this),社区对开发语言增强基础视觉(language-augmented foundation vision models)产生了浓厚的兴趣,这些模型具有强大的开放世界视觉理解能力,如分类、检测、分割和字幕,以及视觉生成和编辑。在这一系列工作中,每个任务由一个单一的大视觉模型独立解决,在模型设计中隐式地(implicityly)考虑任务指令。此外,语言仅用于描述图像内容。虽然这允许语言在将视觉信号映射到语言语义(人类交流的常见渠道)方面发挥重要作用,但它导致模型通常具有固定接口,交互性和对用户指令的适应性有限。

另一方面,大型语言模型(LLM)已经表明,语言可以发挥更广泛的作用:作为通用助手的通用接口,各种任务指令可以显式地用语言表示,并引导端到端训练的神经助手切换到感兴趣的任务来解决它。例如,最近ChatGPT和GPT-4的成功证明了对齐LLM在遵循人类指令方面的强大功能,并激发了开发开源LLM的巨大兴趣。其中,LLaMA是一个与GPT-3性能相匹配的开源LLM。Alpaca , Vicuna , GPT-4-LLM利用各种机器生成的高质量指令遵循示例来提高LLM的对齐能力,与所有的(proprietary)LLM相比,展现了令人印象深刻的性能。重要的是,这一些工作是纯文本的**(text-only**)。

在本文中,我们提出了visual instruction-tuning,这是将visual instruction-tuning扩展到语言-图像多模态空间的第一次尝试,为构建通用的视觉助手铺平了道路(pave the way)。特别地,我们的论文做出了以下贡献:

  • Multimodal instruction-following data. 一个关键的挑战是缺乏visual-language instruction-following data 。我们使用ChatGPT/GPT-4提出了一个数据转换视角(reformation perspective)和管道,将图像-文本对转换为适当的instruction-following格式.
  • Large multimodal models:我们通过将open-set的视觉编码器CLIP与语言解码器Vicuna连接起来,开发了一个大型多模态模型(LMM),并对我们生成的instruction vision-language decoder进行端到端的微调。我们的实证(empirical)研究验证了使用生成数据进行LMM指令调优的有效性,并提出了构建通用instruction-following visual agent的实用技巧。当与GPT-4集成时,我们的方法在Science QA多模态推理数据集上实现了SoTA。
  • Multimodal instruction-following benchmark:我们现在的LLaVA-Bench有两个具有挑战性的基准,有多种选择的配对图像,instruction和详细的注释。
  • open-source: the generated multimodal instruction data, the codebase,the model checkpoints以及一个visual chat demo.

2. Related Work

  • Multimodal Instruction-following Agents.在计算机视觉中,现有的构建指令跟随agent的工作可以大致分为两类:(i)端到端训练模型,它们分别针对每个特定的研究主题进行探索。例如,视觉语言导航任务(vision-languague navigation task)和Habitat要求嵌入的AI智能体遵循自然语言指令,并采取一系列动作来完成视觉环境中的目标。在图像编辑领域(image editing domain),给定输入图像和告诉agent该做什么的书面指令,InstructPix2Pix通过遵循人类指令来编辑图像。(ii)通过LangChain / LLMs协调各种模型的系统,如Visual ChatGPT、X-GPT、MM-REACT、VisProg和ViperGPT。虽然在构建Instruction-following Agents方面有相同的目标,但我们专注于为mltiple tasksl开发端到端的训练语言视觉多模态模型。
  • **Instruction Tuning.**在自然语言处理(NLP)领域,为了使GPT-3、T5、PaLM和OPT等LLM能够遵循自然语言指令并完成现实世界的任务,研究人员探索了LLM指令调优的方法,从而分别产生了指令调优的对应物countpart,如InstructGPT /ChatGPT、FLAN-T5、FLAN-PaLM和OPT- iml。结果表明,这种简单的方法可以有效地提高llm的zero-shot和few-shot的泛化能力。因此,将NLP的思想借用到计算机视觉是很自然的。更广泛地说,基于基础模型的teacher-student distillation已经在图像分类等其他主题中得到了研究。Flamingo可以被看作是多模态域的GPT-3,因为它在zero-shot任务迁移和in-context-leaning方面表现出色。其他在图像文本对上训练的lmm包括BLIP-2、FROMAGe和KOSMOS-1。PaLM-E是一个用于嵌入AI的LMM。基于最近“最好的”开源LLM LLaMA, OpenFlamingo和lama - adapter使LLaMA能够使用图像输入,为构建开源多模态llm铺平了道路。虽然这些模型表现出很好的任务转移泛化性能,但它们没有明确地与视觉语言指令数据进行tuning,并且它们在多模态任务中的性能通常低于(fall short)仅语言任务。本文旨在填补这一空白,并研究其有效性。最后,需要注意的是,视觉指令调优与视觉prompt调优不同:前者旨在提高模型的指令跟随能力,后者旨在提高模型自适应的参数效率。

3. GPT-assisted Visual Instruction Data Generation

社区见证了公共multimodal数据(如图像-文本对)数量的激增,从CC到LAION。然而,当提到multimodal instruction-following data,可用的数量有限,部分原因是,当考虑到人类crowd-scouring筛选时,创建此类数据的过程既耗时又不well-defined。受到最近GPT模型在文本注释任务中的成功的启发,我们提出基于广泛存在的image-pair数据利用ChatGPT/GPT-4进行多模态instruction-following data collection。

对于图像Xv及其相关的captionXc,创建一组指示助手描述图像内容的问题Xq是很正常的。我们prompt GPT-4整理(curate)这样一个问题列表。因此,将图像-文本对扩展到其instruction-following版本的一个简单方法是Human: Xq Xv < STOP> Assistant: Xc< STOP>。虽然构建成本低廉,但这种简单的扩展版本在指令和响应方面缺乏多样性和深度推理。为了缓解这个问题,我们利用仅语言的GPT-4或ChatGPT作为强大的教师(两者都只接受文本作为输入),以创建包含视觉内容的instruction-following data。具体来说,为了将图像编码为视觉特征以提示纯文本GPT,我们使用两种类型的象征(symbolic)表示:(i)Captions:典型地从不同的角度描述视觉场景。(ii)Bounding boxes:通常对场景中的物体进行定位,每个方框对object概念及其空间位置进行编码。如下图所示:
在这里插入图片描述
这种象征表示允许我们将图像编码为llm可识别的序列。我们使用COCO图像,生成三种类型的指令跟随数据。如下图所示。对于每种类型,我们首先手动设计一些示例。它们是我们在数据收集过程中唯一的人工注释,并被用作在上下文学习中query GPT-4的种子示例。
在这里插入图片描述
我们总共收集了158K个unique的语言图像指令遵循样本,其中对话58K,详细描述23K,复杂推理77k。我们在早期实验中消融了ChatGPT和GPT-4的使用,发现GPT-4持续地提供更高质量的指令跟随数据,例如空间推理。

4. Visual Instruction Tuning

4.1 Architecture

主要目标是有效地利用预训练的LLM和visual模型的能力。网络架构如下图。我们选择Vicuna作为我们的LLM fϕ(·)由ϕ参数化,因为它在公开可用的language tasks checkpoints中具有最佳的instruction following 能力。
在这里插入图片描述
对于输入图像Xv,我们利用预训练的CLIP视觉编码器ViT-L/14,它提供视觉特征Zv = g(Xv)。我们的实验利用 了最后一层Transformer前后的网格特征。我们利用一个简单的线性层将图像特征转换到词嵌入空间。具体来说,我们使用一个可训练的投影矩阵W将Zv转换为语言嵌入令牌Hv,它与语言模型中的词嵌入空间具有相同的维数:
在这里插入图片描述
这样,我们就有了一系列视觉标记Hv。请注意,我们的简单投影方案是轻量级的,它允许我们快速迭代以数据为中心的实验。还可以考虑更复杂的方案来连接图像和语言表征,例如Flamingo中的门控交叉注意[2]和BLIP-2中的Q-former[28]。我们将为LLaVA探索更有效、更复杂的架构设计作为未来的工作。

4.2 Training

对于每张图像Xv,我们生成多回合对话数据(X1 q, X1 a,···,XT q, XT a),其中T为总对话数。我们将它们组织成一个序列,将所有的回答视为助手的响应,并将指令Xt指令在第t轮处为:
在这里插入图片描述
这引出了多模态指令跟随序列的统一格式表2:
在这里插入图片描述
表2 用于训练模型的输入序列。这里只说明了两个对话回合;在实践中,回合数根据指令遵循数据而变化。在我们当前的实现中,我们遵循Vicuna-v0[9]来设置系统消息Xsystem-message,我们设置< stop > = ###。该模型被训练来预测assistabt答案和停止的位置,因此只有绿色序列/令牌用于计算自回归模型中的损失。

我们使用其原始的自回归训练目标对预测令牌执行LLM的指令调优。具体来说,对于长度为L的序列,我们计算目标答案Xa的概率:
在这里插入图片描述
其中,θ为可训练参数,xdirective,<i和Xa,<i分别为当前预测令牌xi之前所有回合的指令令牌和回答令牌。对于上述公式中的条件,我们显式地添加了Xv,以强调图像是基于所有答案的事实,并且为了更好的可读性,我们省略了Xsystem-message和所有前面的 。对于LLaVA模型训练,我们考虑一个两阶段的指令调优过程:

  1. **Pre-training for feature alignment.**为了在概念覆盖率和训练效率之间取得平衡,我们将CC3M过滤到595K图像-文本对。有关过滤过程的详情,请参阅附录。使用第3节中描述的朴素扩展方法将这些数据对转换为跟随指令的数据。每个样本都可以视为单回合对话。为了构造(2)中的输入x指令,对于图像Xv,随机采样一个问题Xq,这是一个语言指令,要求助手对图像进行简要描述。预测答案的ground-truth 是Xa原始的caption。在训练中,我们保持视觉编码器和LLM权值不变,并最大化(3)的似然值,只有可训练参数θ = W(投影矩阵)。这样,图像特征Hv可以与预训练的LLM词嵌入对齐。这个阶段可以理解为为冻结的LLM训练一个兼容的视觉tokenizer。
  2. **Fine-tuning End-to-End.**我们始终保持视觉编码器权值不变,并不断更新投影层和LLM的预训练权值;即,可训练的参数是θ = {W, ϕ} in(3)。我们考虑两个特定的用例场景:
    • **Multimodal Chatbot:**我们通过对第3节中的158K语言图像指令跟踪数据进行微调来开发聊天机器人。在这三种类型的响应中,会话是多回合的,而其他两种是单回合的。它们在训练中被统一采样。
    • Science QA:我们在ScienceQA基准上研究了我们的方法,这是第一个大规模的多模态科学问题数据集,它用详细的lecture和解释注释了答案。每个问题都以自然语言或图像的形式提供上下文。Assistant 用自然语言提供推理过程,并从多个选项中选择答案。对于(2)中的训练,我们将数据组织为单回合对话,问题和上下文作为Xinstruct,推理和答案作为Xa

5 Experiments

我们通过两个主要的实验设置分别评估了LLaVA在指令跟随和视觉推理能力方面的性能:多模态聊天机器人和ScienceQA数据集。我们使用8× A100训练所有模型,遵循Vicuna的超参数。我们在过滤后的CC-595K子集上对模型进行了1 epoch的预训练,学习率为2e-3,批大小为128,并对提出的llava - instruction - 158k数据集进行了3 epoch的微调,学习率为2e-5,批大小为32

5.1 Multimodal Chatchot

我们开发了一个聊天机器人演示,以展示LLaVA的图像理解和对话能力,并研究LLaVA在消化视觉输入和展示指令遵循方面的能力。我们首先使用原始GPT-4论文中的示例,如表3所示,这些示例需要深入的图像理解。为了比较,我们从他们的论文中引用了多模态GPT-4的prompt和response,并query了BLIP-2和OpenFlamingo模型检查点来获得它们的回答。
在这里插入图片描述

5.2 ScienceQA

6 Conclusion

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/418892.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【LeetCode-中等】209.长度最小的子数组-双指针/滑动窗口

力扣题目链接 1. 暴力解法 这道题的暴力解法是两层嵌套for循环&#xff0c;第一层循环从 i 0 开始遍历至数组末尾&#xff0c;第二层循环从 j i 开始遍历至找到总和大于等于 target 的连续子数组&#xff0c;并将该连续子数组的长度与之前找到的子数组长度相比较&#xff0…

tcpdump 常用用法

简要记录下tcpdump用法 监控某个ip上的某个端口的流量 tcpdump -i enp0s25 tcp port 5432 -nn -S 各个参数作用 -i enp0s25 指定抓包的网卡是enp0s25 -nn 显示ip地址和数字端口 &#xff0c;如果只 -n 则显示ip&#xff0c;但是端口为services文件中的服务名 如果一个…

YOLOv8-TensorRT on Jetson

YOLOv8-TensorRT Jetson 项目地址&#xff1a;https://github.com/triple-Mu/YOLOv8-TensorRT/blob/main/docs/Jetson.md 文档地址&#xff1a;https://github.com/triple-Mu/YOLOv8-TensorRT/blob/main/docs/Jetson.md 注意 engine 文件不跨平台&#xff0c;只能在对应的平台…

无人机飞行控制系统技术,四旋翼无人机控制系统建模技术详解

物理建模是四旋翼无人机控制系统建模的基础&#xff0c;主要涉及到无人机的物理特性和运动学特性。物理建模的目的是将无人机的运动与输入信号&#xff08;如控制电压&#xff09;之间的关系进行数学描述。 四旋翼无人直升机是具有四个输入力和六个坐标输出的欠驱动动力学旋翼…

基于springboot+vue的线上辅导班系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

Spring容器中使用依赖注入时对象为空的原因

问题描述 在用spring容器依赖注入时&#xff0c;Autowired注入的类对象为空。 如上图&#xff0c;new了一个handresponse对象&#xff0c;在调用的handresult()函数中用 Autowired注入了类实例化对象&#xff0c;导致该实例化对象为空&#xff0c;如下图。 从而引发了空指针异…

【Linux C | 网络编程】gethostbyaddr 函数详解及C语言例子

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…

Vue-4

自定义创建项目 目标&#xff1a;基于 VueCli 自定义创建项目架子 大致步骤&#xff1a; 安装脚手架创建项目 vue create 项目名称选择自定义 选择 Manually select features 这一项 step-1:按下空格 : 选择/取消--勾选请选择&#xff1a;Babel、Router、CSS、Linterstep-2…

nginx设置缓存时间、日志分割、开启多进程、网页压缩、配置防盗链

一、设置缓存时间 当网页数据返回给客户端后&#xff0c;可针对静态网页设置缓存时间&#xff0c;在配置文件内的http段内server段添加location&#xff0c;更改字段expires 1d来实现&#xff1a;避免重复请求&#xff0c;加快访问速度 第一步&#xff1a;修改主配置文件 #修…

Python爬取网站视频资源

思路&#xff1a; 在界面找到视频对应的html元素位置&#xff0c;观察发现视频的url为https://www.pearvideo.com/video_视频的id&#xff0c;而这个id在html中的href中&#xff0c;所以第一步需要通过xpath捕获到所需要的id 在https://www.pearvideo.com/video_id的页面&…

浅谈变电站鸟害及鸟害防治问题,激光驱鸟器有奇效!

今天&#xff0c;鼎信智慧带大家来探讨一下变电站鸟害及鸟害防治问题&#xff0c;一起来看看吧&#xff01; 变电站鸟害的概念 变电站鸟害问题是指在变电站周围或内部出现鸟类活动&#xff0c;可能对变电设施和电力系统带来一定的安全隐患和运行故障的现象。 变电站鸟害问题主…

【力扣hot100】刷题笔记Day18

前言 晚上巩固一下今天的回溯题&#xff0c;基础不牢地动山摇&#xff0c;po一张代码随想录总结的 组合补充 77. 组合 - 力扣&#xff08;LeetCode&#xff09; class Solution:def combine(self, n: int, k: int) -> List[List[int]]:path []res []def backtrack(star…

Python GUI开发库之nicegui使用详解

概要 在 Python 中,创建图形用户界面(GUI)应用程序通常需要大量的代码和时间。然而,随着 Python 生态系统的不断发展,出现了一些简化 GUI 开发过程的工具和库。其中之一就是 NiceGUI 库。本文将深入探讨 NiceGUI 库的功能、用法以及如何利用它来创建漂亮而功能丰富的 GUI…

Axios入门

1.概念 Axios是一个开源的可以用在浏览器和node.js的异步通信框架&#xff0c;他的主要功能是实现Ajax异步通信 2.Axios入门程序 2.1.准备json格式的文件 {"name": "小明","address": {"street": "雁塔","city"…

nginx使用详解--缓存

Nginx 是一个功能强大的 Web 服务器和反向代理服务器&#xff0c;它可以用于实现静态内容的缓存&#xff0c;缓存可以分为客户端缓存和服务端缓存。 客户端缓存 客户端缓存指的是浏览器缓存, 浏览器缓存是最快的缓存, 因为它直接从本地获取(但有可能需要发送一个协商缓存的请…

[设计模式Java实现附plantuml源码~行为型]算法的封装与切换——策略模式

前言&#xff1a; 为什么之前写过Golang 版的设计模式&#xff0c;还在重新写Java 版&#xff1f; 答&#xff1a;因为对于我而言&#xff0c;当然也希望对正在学习的大伙有帮助。Java作为一门纯面向对象的语言&#xff0c;更适合用于学习设计模式。 为什么类图要附上uml 因为很…

AI、AIGC、AGI、ChatGPT它们的区别?

今天咱们聊点热门话题&#xff0c;来点科普时间——AI、AIGC、AGI和ChatGPT到底是啥&#xff1f;这几个词听起来好像挺神秘的&#xff0c;但其实它们就在我们生活中。让我们一起探索这些术语的奥秘&#xff01; AI&#xff08;人工智能&#xff09;&#xff1a;先说说AI&#…

LTE 网络与互联网的连接

LTE 网络与互联网的连接 当用户设备 UE&#xff08;如手机&#xff09;开机后&#xff0c;就登记到 LTE 网络&#xff0c;以便使用网络资源传送 IP 数据业务。 LTE 网络内的数据路径由两大部分组成&#xff1a; -空口无线链路&#xff08;UE→eNB&#xff09;。 -核心网中的隧…

App应用程序(概念、开发步骤、技术要点介绍)

引言&#xff1a;踏上数字化创新之旅 在当今数字化时代&#xff0c;移动应用程序已经成为我们日常生活的不可或缺的一部分。无论是社交媒体、生产力工具还是娱乐应用&#xff0c;App的普及改变了我们与技术互动的方式&#xff0c;塑造了全新的用户体验。App应用程序开发正是这…

医学大数据|R|竞争风险模型:可视化与图像优化

前情回顾&#xff1a; 医学大数据|R|竞争风险模型&#xff1a;基础、R操作与结果解读-CSDN博客 代码复习&#xff0c;但是大家可见得知道图画的比较丑。 library("survival") library("cmprsk") library("mgus2") data(mgus2) #预处理 mgus2&l…