多模态论文阅读-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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JS中判断是否存在逗号,如果存在给去掉

.includes() 方法判断是否存在 split("需要去掉的字符串").join(" ") 去重的方法 去重复 划分后拼接

网络——DHCP服务器、DNS服务器实验

网络——DHCP服务器、DNS服务器实验 一、DHCP服务器实验 DHCP——动态主机配置协议,用来管理ip地址的分配。网络中的每台计算机都有至少一个ip地址。在Windows网络连接对话框中可以设置成自动获取ip地址,这样主机作为DHCP client就可以自动从DHCP server获取ip地址了。 DHC…

live555学习 - 环境准备

环境&#xff1a;Ubuntu 16.04.7 ffmpeg-6.1 1 代码下载 最新版本&#xff1a; http://www.live555.com/liveMedia/public/ 历史版本下载 https://download.videolan.org/pub/contrib/live555/ 选择版本live.2023.01.19.tar.gz ps&#xff1a;没有选择新版本是新版本在…

阿里开源的Java诊断利器Arthas

一.什么是Arthas 1.为什么需要Arthas 通常&#xff0c;本地开发环境无法访问生产环境。如果在生产环境中遇到问题&#xff0c;则无法使用 IDE 远程调试。更糟糕的是&#xff0c;在生产环境中调试是不可接受的&#xff0c;因为它会暂停所有线程&#xff0c;导致服务暂停。 开…

鸿蒙Harmony应用开发—ArkTS声明式开发(鼠标事件)

在鼠标的单个动作触发多个事件时&#xff0c;事件的顺序是固定的&#xff0c;鼠标事件默认透传。 说明&#xff1a; 从API Version 8开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。目前仅支持通过外接鼠标触发。 onHover onHover(event: …

vue中element-ui中的el-button自定义icon图标

实现&#xff1a; button的icon属性自定义一个图标名称&#xff0c;这个自定义的图标名称会默认添加到button下i标签的class上&#xff0c;我们只需要设置i标签的样式就可以了。 1. 控制台显示的代码 2 .图片展示 3. 按钮上使用自定义的icon 完整代码&#xff1a; <el-but…

postman切换成黑色主题

postman安装以后默认是白色背景&#xff0c;如果想要切换成黑色的&#xff0c;大家可以按照下图箭头指示来操作。 1打开设置 2在Themes页面选择黑色主题

Day06:基础入门-抓包技术HTTPS协议APP小程序PC应用WEB转发联动

目录 HTTP/HTTPS协议抓包工具 Web浏览器抓包 APP应用抓包 WX小程序&PC应用抓包 思维导图 章节知识点&#xff1a; 应用架构&#xff1a;Web/APP/云应用/三方服务/负载均衡等 安全产品&#xff1a;CDN/WAF/IDS/IPS/蜜罐/防火墙/杀毒等 渗透命令&#xff1a;文件上传下载…

最佳实践:Websocket 长连接状态如何保持

WebSocket 是一种支持通过单个 TCP 连接进行全双工通信的协议&#xff0c;相较于传统的 HTTP 协议&#xff0c;它更适合需要实时交互的应用场景。此协议在现代 Web 应用中扮演着至关重要的角色&#xff0c;尤其是在需要实时更新和通信的场合下维持持久连接。本文将探讨 WebSock…

安卓手机安装termux、kali linux及基本配置

相关阅读&#xff1a;Termux 高级终端安装使用配置教程 | 国光 百度安全验证 该文安装的 kali liunx 应该是简易版的&#xff0c;没有相关工具 一、下载安装termux 建议通过 f-droid 应用市场下载链接termux&#xff0c;点击即直接下载。 二、配置termux 1.更换镜像源 te…

如何访问内网服务器?

访问内网服务器是在网络架构中常见的需求。内网服务器是指在一个局域网中运行的服务器&#xff0c;可以提供各种服务&#xff0c;如文件共享、网站托管等。由于安全性的考虑&#xff0c;内网服务器一般不直接暴露在公网中&#xff0c;所以需要通过特定的方法来访问。 一种常见的…

基于语义解析的KBQA——代码和论文详细分析

根据论文&#xff1a;Semantic Parsing on Freebase from Question-Answer Pairs&#xff0c;分析其代码和步骤&#xff0c;以加强对这一流程的深入理解&#xff0c;重点关注模型的输入、输出和具体方法。 前言 提供阅读本文的前提知识&#xff0c;引用自Semantic Parsing on…

【探索AI】十二 深度学习之第2周:深度神经网络(一)深度神经网络的结构与设计

第2周&#xff1a;深度神经网络 将从以下几个部分开始学习&#xff0c;第1周的概述有需要详细讲解的的同学自行百度&#xff1b; 深度神经网络的结构与设计 深度学习的参数初始化策略 过拟合与正则化技术 批标准化与Dropout 实践&#xff1a;使用深度学习框架构建简单的深度神…

微信小程序的医院食堂订餐系统uniapp+vue+springboot/django/php

针对患者订餐的管理现状&#xff0c;本微信小程序的患者订餐主要实现以下几个目标&#xff1a; 1.系统界面简洁&#xff0c;操作简便。 2.拥有精准&#xff0c;高效的查询功能。 3.能使管理人员能够及时的获得精确的信息。 4.对数据内容的管理安全&#xff0c;…

腾讯:《智能科技 跨界相变——2024数字科技前沿应用趋势》

1月23日&#xff0c;腾讯发布了题为《智能科技 跨界相变——2024数字科技前沿应用趋势》的报告&#xff0c;报告从计算重塑、智能升维、沉浸交互、未来连接四个方面&#xff0c;对100多项未来技术和重点方向给出了趋势性判断。并表示我们正驶向一个由连接衍生交互、由计算催生智…

把简单留给用户,把复杂交给 AI

2024 年伊始&#xff0c;Kyligence 联合创始人兼 CEO 韩卿&#xff08;Luke&#xff09;分享了对 AI 与数据行业的一些战略思考&#xff0c;以及对中美企业服务市场的见解&#xff0c;引发业界同仁的广泛共鸣。正值 Kyligence 成立 8 周年&#xff0c;恰逢 AI 技术应用风起云涌…

FLask会话技术和Flask模板语言

二、FLask会话技术和Flask模板语言 1.会话技术 cookie 客户端的会话技术&#xff1a;让服务器认识浏览器&#xff0c;常用于登录 cookie本身由浏览器保存&#xff0c;通过Response将cookie写到浏览器上&#xff0c;下一次访问&#xff0c;浏览器会根据不同的规则携带cookie过…

ssm656基于JAVA的校园失物招领平台的设计与实现

** &#x1f345;点赞收藏关注 → 私信领取本源代码、数据库&#x1f345; 本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目希望你能有所收获&#xff0c;少走一些弯路。&#x1f345;关注我不迷路&#x1f345;** 一 、设计说明 1.1 课题…

(k8s中)docker netty OOM问题记录

1、首先查看docker的内存占用情况&#xff1a; docker top 容器名 -u 查看内存cpu占用率&#xff08;容器名来自kubectl describe pod xxx或者docker ps&#xff09; 可以看出内存一直增长&#xff0c;作为IO代理这是不正常的。 2、修改启动参数和配置文件 需要注意的是为了…

电子科技大学课程《计算机网络系统》(持续更新)

前言 本校的课程课时有所缩减&#xff0c;因此可能出现与你学习的课程有所减少的情况&#xff0c;因此对其他学校的同学更多的作为参考作用。本文章适合学生的期中期末考试&#xff0c;以及想要考研电子科技大学的同学&#xff0c;电子科技大学同学请先看附言。 第一章 计算…