多模态大模型升级:LLaVA→LLaVA-1.5,MiniGPT4→MiniGPT5

Overview

  • LLaVA-1.5
    • 总览
    • 摘要
    • 1.引言
    • 2.背景
    • 3.LLaVA的改进
    • 4.讨论
    • 附录

LLaVA-1.5

总览

题目: Improved Baselines with Visual Instruction Tuning
机构:威斯康星大学麦迪逊分校,微软
论文: https://arxiv.org/pdf/2310.03744.pdf
代码: https://llava-vl.github.io/
任务: 多模态大模型
特点: 预训练与指令微调只用非常少的数据(8张A100训练一天),就可以超过InstructBLIP和千问-VL。

  • LLaVA-1.5(预训练:558K,指令微调:665K,分辨率336,LLM:Vicuna 13B,projector:两层全连接)
  • InstructBLIP(预训练:129M,指令微调:1.2M,分辨率:224,LLM:Vicuna 13B,projecter:Q-former)
  • 千问-VL(预训练:1.4B,指令微调:50M,分辨率:448,LLM:千问-7B,projecter:VL-Adapter)等模型

方法: 研究数据、模型和图像输入分辨率的规模影响;

  1. 数据上(1)使用了InstructBLIP的VQA子集(2)VQA指令格式优化(3)ShareGPT多语言纯文本数据
  2. 模型上(1)双层全连接层充当adapter(2)LLM Vicuna 7B -> Vicuna 13B
  3. 分辨率上 224 -> 336

前置相关工作:LLaVA,千问-VL,InstructBLIP
历史博客:多模态大模型综述: LLaVA, MiniGPT4

摘要

近期,大型多模态模型(LMM)在视觉指令调优方面展示出了鼓舞人心的进步。在这篇简报中,我们证明了LLaVA中全连接的视觉语言跨模态连接器的强大力量和高效的数据效率。通过对LLaVA进行简单的修改,即使用带有MLP(多层感知器)映射的CLIP-ViT-L-336px,并添加以学术任务为导向,带有简单响应格式提示的视觉问答数据,我们成功建立了在11个基准测试中达到最先进水平的更强基线。我们最终的13B checkpoint仅使用了1.2M公开可用的数据,在单个8-A100节点上完成了全程训练,仅需大约1天的时间。我们希望这能让最先进的LMM研究更易于接触。代码和模型将公开发布。

1.引言

大型多模态模型(LMMs)已在研究社区中愈发受到欢迎,因为它们是通向通用助理的关键基础模块[1, 22, 35]。近期对LMMs的研究逐渐聚焦于被称为视觉指令调优[28]的核心概念上。结果十分令人鼓舞,例如,LLaVA[28]和MiniGPT-4[49]在自然指令跟随和视觉推理能力上展示出了卓越的成果。为了更好地了解LMMs的能力,已有多个基准测试[MME 11, Seed bench 20, 26, MM bench 29, 43]被提出。最近的研究进一步通过扩大预训练数据[千问-VL 2, InsctructBLIP 9],指令跟随数据[9, Otter 21, Llavar 45, Svit 46],视觉编码器[2]或语言模型[31]来展示改进的性能。LLaVA架构也被用于不同的下游任务和域,包括区域级别[Shikra 6, GPT2ROI 44]和像素级别[LISA 19]的理解,生物医学助手[23],图像生成[3],对抗性研究[4, 47]。

本文在LLaVA框架的基础上建立了更强,更可行的基线。我们报道了两个简单的改进,也就是,一个MLP跨模态连接器和结合如VQA这样的学术任务相关数据,它们与LLaVA的框架是正交的,而且当它们和LLaVA一起使用的时候,这会带来更好的多模态理解能力。与InstructBLIP [9]或Qwen-VL [2]相反,后两者在几亿,几十亿甚至更多的图像-文本配对数据上训练专门设计的视觉重新采样器,LLaVA仅使用最简单的LMMs架构设计,并且只需要在仅有的600K图像-文本配对上训练一个简单的全连接投影层。我们的最终模型可以在一台单个的8-A100机器上在1天内完成训练,而且在一系列基准测试上实现了最先进的结果。此外,与Qwen-VL [2]不同,后者在训练中包含了内部数据,LLaVA仅利用公开可用的数据。我们希望这些改进并易于复制的基线将为未来的开源LMM研究提供参考。

2.背景

指令跟随的LMM。常见的架构包括一个预训练的视觉主干来编码视觉特征,一个预训练的大型语言模型(LLM)来理解用户指令并产生响应,以及一个视觉-语言跨模态连接器来将视觉编码器的输出与语言模型对齐。如图1所示,LLaVA [28]可能是LMMs的最简单架构。视觉重采样器(例如 Qformer [24])被用来减少视觉补丁的数量[2, 9, 49]。训练一个指令跟随的LMM通常遵循两阶段协议。首先,视觉-语言对齐的预训练阶段利用图像-文本对来将视觉特征与语言模型的单词嵌入空间对齐。早先的工作使用相对较少的图像-文本对(例如~600K [LLaVA 28]或~6M [MiniGPT4 49]),而一些最近的工作在大量的图像-文本对上(例如129M [InstructBLIP 9]和1.4B [千问-VL 2])预训练视觉-语言连接器以用于特定的语言模型,从而最大化LMM的性能。第二,视觉指令调整阶段将模型调整到视觉指令上,使模型能够跟随用户对涉及视觉内容的指令的多样化请求。

BLIP model

多模态指令跟随数据。在自然语言处理(NLP)中,研究表明,指令跟随数据的质量在很大程度上影响了最终指令跟随模型的能力[48]。对于视觉指令微调,LLaVA [28]是第一个利用文本独立的GPT-4来扩展现有的COCO [27]bbox和caption数据集到一个包含三种类型指令跟随数据的多模态指令跟随数据集的先驱:对话式问答,详细描述和复杂推理。LLaVA的流程已被用来扩展到文本理解[45],百万级别[46],以及区域级别的对话[6]。InstructBLIP [9] incorporates学术任务定向的VQA数据集以进一步增强模型的视觉能力。相反,[5]认定这样简单的数据合并可以导致模型倾向于过度拟合VQA数据集,因此无法参与自然对话。作者进一步提出利用LLaVA流程将VQA数据集转换为对话风格。虽然这对训练有效,但它在数据扩展中引入了额外的复杂性。

3.LLaVA的改进

概述。作为视觉指令调整的初始工作,LLaVA已经在视觉推理能力上展示出了令人称赞的熟练技能,甚至在多样化的现实生活视觉指令跟随任务的多样化基准测试中超越了更多近期的模型,只是在通常需要短形答案(例如单个单词)的学术基准上稍显不足。后者归因于LLaVA没有像其他方法一样在大规模数据上进行预训练。在这篇短文中,我们首先研究了数据、模型和图像输入分辨率的规模影响,并在三个选择的数据集上进行验证,结果如表1所示。然后在表2中用最终模型与现有的LMMs在多样化的12组基准测试上进行比较。我们展示了LLaVA的架构对于视觉指令调整是强大且数据高效的,并且比所有其他方法使用显著更少的计算和训练数据就能达到最好的性能。

BLIP model

响应格式提示:我们发现像InstructBLIP[9]这样的方法无法在短篇和长篇视觉问答(VQA)之间达到平衡,主要原因如下。首先,关于响应格式的提示模棱两可。例如,问题:{问题} 回答:{回答}。这样的提示并没有清晰地指出期望的输出格式,甚至可能导致LLM在自然的视觉会话中甚至过度适应短形式的答案。其次,没有对LLM进行微调。InstructBLIP仅对Qformer进行指令调整的微调,使得第一个问题更加严重。它要求Qformer的视觉输出令牌来控制LLM的输出长度是长格式还是短格式,就像prefix tuning[25]一样,但是由于其与像LLaMA这样的LLM相比,只有有限容量,因此Qformer可能没有适当地做这件事的能力。请参见表6以了解一个定性的示例。

BLIP model

为了解决这个问题,我们建议使用一个单一的响应格式提示,清楚地指示输出格式,该提示将在推动简短回答时追加到VQA问题的末尾:“使用一个单词或短语来回答问题”。我们通过实证表明,当用这样的提示进行LLM微调时,LLaVA能够根据用户的指令适当地调整输出格式,并且不需要用chatgpt额外处理VQA数据。这进一步使其能够扩展至各种数据来源。如表1所示,仅通过在训练中包含VQAv2[12],LLaVA在MME上的表现显著提高(1323.8 vs 502.8),并且比InstructBLIP高出111点。

视觉语言连接器的MLP。 受到由线性投影改为MLP[7,8]在自监督学习中改善性能的启发,我们发现,通过将视觉语言连接器的表示能力改进为双层MLP,可以提高LLaVA的多模式能力,相比于原有的线性投影设计。

面向学术任务的数据。我们进一步包括了针对VQA,OCR和区域级感知的附加学术任务导向VQA数据集,如表1所示,以多种方式提升模型的能力。我们首先包括了InstructBLIP使用的四个附加数据集:开放知识VQA(OKVQA[33],A-OKVQA[37])和OCR(OCRVQA[34],TextCaps[39])。A-OKVQA被转化为多选题,使用了特定的响应格式提示:直接使用给定选项的字母来回答。仅使用InstructBLIP使用的数据集的一个子集,LLaVA就已经在表1的所有三项任务中超越了它,这表明LLaVA的有效设计。此外,我们发现,进一步添加区域级别的VQA数据集(Visual Genome[18],RefCOCO[17,32])可以提高模型定位细粒度视觉细节的能力。

额外的扩展。我们进一步放大输入图像分辨率,让LLM能清晰地“看到”图像的细节,并添加GQA数据集作为额外的视觉知识来源。我们还结合ShareGPT[38]数据,并根据[2,6,31]将LLM扩展到13B。在MM-Vet上的结果显示,当将LLM扩展到13B时,它的提升最为显著,这表明了基础LLM在视觉对话中的重要性。我们将所有这些修改后的最终模型称为LLaVA-1.5(在表的最后两行中)。其取得了令人印象深刻的表现,显著超过了原始的LLaVA [28]。

4.讨论

与SoTA的比较。我们在广泛的学术VQA基准测试和最近专门为遵循指令的LMM提出的基准测试上对LLaVA-1.5进行了评估,总共有12项基准测试。我们展示了它在12个基准测试中的11个基准测试上都取得了最佳性能,尽管与其他方法[2,9]相比,它使用的预训练和指令调整数据量小得多。令人鼓舞的是,LLaVA-1.5在最简单的架构,学术计算和公共数据集方面取得了最佳性能,并产生了一个完全可复制和负担得起的未来研究的基线。结果还表明,视觉指令调整在提高LMM能力上更重要,比预训练更为重要,并对普遍的观点产生了疑问,即“LMM需要大量的视觉-语言对齐预训练”[2,9,24],尽管视觉编码器(如CLIP[36],OpenCLIP[16],EVA-CLIP[10]等)已经在网络规模的图像-文本配对数据集上预训练过。LLaVA-1.5(甚至是7B模型)优于80B的IDEFICS[15],一个具有数十亿可训练参数的Flamingo-like LMM。这也使我们在多模态指令跟随能力方面,重新思考了视觉采样器的好处和额外大规模预训练的必要性。

BLIP model

zero-shot格式指令泛化。尽管LLaVA-1.5只使用了有限数量的格式指令进行训练,但它可以泛化到其他指令。首先,VizWiz[13]要求模型在提供的内容不足以回答问题时输出“无法回答”,我们的响应格式提示(表8)有效地指导模型这样做(在无法回答的问题上从11.1%提高到67.8%)。我们还提供了在指导LLaVA-1.5验证棘手问题(图3)和以约束性的JSON格式响应(图4)的定性例子。

BLIP model BLIP model

zero-shot多语言能力。尽管LLaVA-1.5并未针对多语言多模态指令进行微调,但我们发现,它能够遵循多语言的指令,这部分可能得益于ShareGPT [38]中的多语言语言指令。我们在MMBench-CN [29]上定量评估模型对中文的泛化能力,其中MMBench的问题被转换成中文。值得注意的是,尽管Qwen对中文多模态指令进行了微调,而LLaVA-1.5没有,但LLaVA-1.5的表现仍然超过了Qwen-VL-Chat 7.3%(63.6% vs 56.7%)。

计算成本。对于LLaVA-1.5,我们使用的预训练数据集是LCS-558K1(来自LAION-CC-SBU的约558K图像-文本对的子集,用BLIP打标,这在LLaVA-Lightning系列中被使用。),训练迭代次数和批次大小大致与LLaVA [28]保持一致。由于图像输入分辨率提高到336px,LLaVA-1.5的训练时间大约是LLaVA的2倍:预训练大约需要6小时,视觉指令调整大约需要20小时,使用的是8个A100s。

限制。尽管LLaVA-1.5展示出了有希望的结果,但仍需承认它存在几个限制。首先,LLaVA使用的是全图像块,可能将每次训练迭代拖长。尽管视觉重采样器 [2,9,24] 减少了LLM的视觉块数,但它们当前在相同训练数据量下,无法像LLaVA一样高效地达到收敛,这可能是由于重采样器中的可训练参数更多。有效样本的视觉重采样器的开发可能会为未来指令遵循的多模态模型的扩展铺平道路。

其次,由于缺乏此类指令跟随数据和上下文长度的限制,LLaVA-1.5还无法处理多张图片。第三,尽管LLaVA-1.5显示出了遵循复杂指令的熟练性,但其在某些领域的问题解决能力仍然有限,通过更强大的语言模型和高质量的,针对性的视觉指令调整数据可以得到改进。最后,尽管其产生错觉的倾向显著降低,但LLaVA并非完全不会产生错觉,偶尔还会传播错误信息,在关键应用(如医疗)中应慎重使用。

附录

数据。我们的最终训练数据混合包含了各种数据集:VQA [12, 14, 33, 37], OCR [34, 39], 区域级别的 VQA [17, 18, 32], 视觉对话 [28] 和语言对话 [38] 数据。我们采用了多种策略来降低训练成本和提高效率,详述如下:

  1. 对于所有的VQA数据集,来自同一训练图片的QA对被合并为一次对话。
  2. 对于ShareGPT [38],我们过滤掉了无效的对话,就像[41]所做的那样。与Vicuna [41]不同,超过2048个令牌的长对话被截断,而不是分成多个对话。这导致了大约有40K的对话。
  3. 在A-OKVQA [37]中,每一对QA都被扩充k次,其中k是每个问题的选项数量,以对抗缺乏多选数据的情况。
  4. 从OCRVQA [34]中抽取了80K的对话。
  5. 对于VisualGenome,我们为有附加注释的图像抽取了10个注释。
  6. 对于RefCOCO,对话被分解成片段,每个片段包含少于10个对话。
  7. 我们观察到语言对话通常比视觉对话长。对于每个批次,我们只从单一模态中抽取对话,这加快了训练速度25%,并且不影响最后的结果。

所有的数据切片都被一起连接,并且以相同的概率进行采样。我们在表7中展示了最终的指令跟踪数据混合的响应格式提示,以及在表8中用于每个评估基准的响应格式提示。
在这里插入图片描述

超参数。LLaVA-1.5使用的超参数集合与原始的LLaVA相同,唯一的不同是在预训练中我们将学习率减半,因为我们使用的是MLP投影层而不是原来的线性投影层设计。我们在表5中展示了第一阶段视觉语言对齐预训练和第二阶段视觉指令调整的训练超参数。
在这里插入图片描述

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

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

相关文章

10.2手动推导linux中file, cdev, inode之间的关系

是时候可以手动推导一下linux里面基类父类和子类的关系了 代码放最后把 简单说明版 详细流程 第一步注册驱动 cdev结构体能看做是一个基类,那么链表里面都是字符设备驱动的cdev连载一起,啥串口,lcd的,通过cdev->list_head连接 那cdev结构体里有主次设备号 第一步 使用r…

探索未来:硬件架构之路

文章目录 🌟 硬件架构🍊 基本概念🍊 设计原则🍊 应用场景🍊 结论 📕我是廖志伟,一名Java开发工程师、Java领域优质创作者、CSDN博客专家、51CTO专家博主、阿里云专家博主、清华大学出版社签约作…

矿区井下智慧用电安全监测解决方案

一、背景 矿区井下作业具有复杂的环境和较高的危险性,对于用电安全的要求尤为严格。传统的管理模式和监测方法往往无法实时、准确地掌握井下用电情况,对安全隐患的排查与预防存在一定局限性。因此,引入智慧用电安全监测解决方案&#xff…

【LeetCode刷题(数组and排序)】:存在重复元素

给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 示例 1: 输入:nums [1,2,3,1] 输出:true 示例 2: 输入:nums [1,2…

【ARM Coresight 系列文章 9.1 -- ITM 仪器化跟踪宏单元详细介绍】

文章目录 1.1 ITM 介绍1.1.1 ITM 功能介绍1.1.2 Cortex-M ITM 的地址范围1.2 ITM 使用1.2.1 ITM 寄存器介绍1.2.2 Cortex-M7 ITM 代码示例1.2.3 Cortex-M33 ITM 代码示例1.1 ITM 介绍 在debug 调试阶段通常都是使用 printf(printk) 来进行进行 log 输出,然后定位问题。那么如…

TikTok国际版 使用特网科技Bluestacks模拟器安装方法

特网科技Bluestacks模拟器主机 桌面自带Bluestacks模拟器 TikTok国际版Bluestacks模拟器搜索tiktot 登录google应用商店-安装TikTok 安装过程可能需要3-5分钟不等-配置过低可能会导致安装失败,建议升级更高内存。 安装完成-打开 安装成功APP-我的游戏查看 打开国际版…

普通螺纹基本牙型尺寸及拧紧力矩.exe

一、概要 本软件功能主要是通过输入螺纹原始三角形高度P,螺栓规格(公称直径)d,材料的屈服应力σs,计算出公称应力截面积As、外螺纹小径d1、外螺纹小径d2、拧紧力矩T等参数。 开发本软件的原因主要有以下几点: 提高设计效率:通过这款软件,工程师可以快速计算螺纹的基本牙…

【Java学习之道】网络编程的基本概念

引言 这一章我们将一同进入网络编程的世界。在开始学习网络编程之前,我们需要先了解一些基本概念。那么,我们就从“什么是网络编程”这个问题开始吧。 一、网络编程的基本概念 1.1 什么是网络编程 网络编程,顾名思义,就是利用…

05_51单片机led流水线的实现

1:step创建一个新的项目并将程序烧录进入51单片机 以下是51单片机流水线代码的具体实现 #include <REGX52.H>void Delay500ms() //11.0592MHz {unsigned char i, j, k;i 4;j 129;k 119;do{do{while (--k);} while (--j);} while (--i); }void main(){while(1){P1 0…

智慧水利:山海鲸数字孪生的革新之路

一、概念 什么是港口&#xff1f; "港口"通常指的是一个水域或岸边的设施&#xff0c;用于装载、卸载、储存和处理货物、以及提供与海上、河流或湖泊交通相关的服务。港口可以包括各种类型的码头、码头设备、仓库、货物运输设施、以及各种管理和物流设施。 什么是数…

LinkedHashMap与LRU缓存

序、慢慢来才是最快的方法。 背景 LinkedHashMap 是继承于 HashMap 实现的哈希链表&#xff0c;它同时具备双向链表和散列表的特点。事实上&#xff0c;LinkedHashMap 继承了 HashMap 的主要功能&#xff0c;并通过 HashMap 预留的 Hook 点维护双向链表的逻辑。 1.缓存淘汰算法…

车辆车型识别系统python+TensorFlow+Django网页界面+算法模型

一、介绍 车辆车型识别系统。本系统使用Python作为主要开发编程语言&#xff0c;通过TensorFlow搭建算法模型网络对收集到的多种车辆车型图片数据集进行训练&#xff0c;最后得到一个识别精度较高的模型文件。并基于该模型搭建Django框架的WEB网页端可视化操作界面。实现用户上…

【Unity基础】6.动画状态机

【Unity基础】6.动画状态机 大家好&#xff0c;我是Lampard~~ 欢迎来到Unity基础系列博客&#xff0c;所学知识来自B站阿发老师~感谢 &#xff08;一&#xff09;Animator Controller组件 &#xff08;1&#xff09;创建组件 Animator Controller组件是unity用于控制管…

机器学习-无监督算法之降维

降维&#xff1a;将训练数据中的样本从高维空间转换到低维空间&#xff0c;降维是对原始数据线性变换实现的。为什么要降维&#xff1f;高维计算难&#xff0c;泛化能力差&#xff0c;防止维数灾难优点&#xff1a;减少冗余特征&#xff0c;方便数据可视化&#xff0c;减少内存…

主动配电网故障恢复的重构与孤岛划分matlab程序

微❤关注“电气仔推送”获得资料&#xff08;专享优惠&#xff09; 参考文档&#xff1a; A New Model for Resilient Distribution Systems by Microgrids Formation&#xff1b; 主动配电网故障恢复的重构与孤岛划分统一模型&#xff1b; 同时考虑孤岛与重构的配电网故障…

嵌入式开发学习之STM32F407串口(USART)收发数据(三)

嵌入式开发学习之STM32F407串口&#xff08;USART&#xff09;收发数据&#xff08;三&#xff09; 开发涉及工具一、选定所使用的串口二、配置串口1.配置串口的I/O2.配置串口参数属性3.配置串口中断4.串口中断在哪里处理5.串口如何发送字符串 三、封装串口配置库文件1.创建头文…

低代码技术这么香,如何把它的开发特点发挥到极致?

前言 什么是低代码技术&#xff1f; 低代码是一种可视化软件开发方法&#xff0c;通过最少的编码更快地交付应用程序。图形用户界面和拖放功能使开发过程的各个方面自动化&#xff0c;消除了对传统计算机编程方法的依赖。 文章目录 前言低代码平台怎么选&#xff1f;用友Yonbu…

2024上海国际智慧城市展览会(世亚智博会)智慧城市,数字中国

在数字化、智能化的时代背景下&#xff0c;智慧城市成为了全球瞩目的焦点。而作为智慧城市领域的重要盛会&#xff0c;2024上海国际智慧城市展览会&#xff08;简称&#xff1a;世亚智博会&#xff09;则将再次汇聚全球目光。此次展览将于2024年3月26日至28日在上海跨国采购会展…

Java项目调用Python脚本(基于idea)

前期准备 1.首先需要在本地环境中安装配置python环境 Python(含PyCharm及配置)下载安装以及简单使用(Idea) 博主本次使用python版本为py3.7.3 2.idea安装python插件 位置&#xff1a;File->Settings->Plugins->python->安装后重启即可 3.引入jython依赖 &l…

在IE浏览器下fixed定位容器随着滚动条出现抖动问题(实测有效)

在ie浏览器下使用fixed定位的容器随着滚动条滚动出现晃动&#xff0c;这种问题比较常见&#xff0c;以下我们给两个解决方案。 方案一 把滑动滚动取消 方案二 在vue组件的created生命周期中添加此代码 document.addEventListener(wheel,function(event) {event.preventDefa…