基于LLMs的多模态大模型(MiniGPT-4,LLaVA,mPLUG-Owl,InstuctBLIP,X-LLM)

news2024/11/24 20:01:13

这个系列的前一些文章有:

  • 基于LLMs的多模态大模型(Visual ChatGPT,PICa,MM-REACT,MAGIC)
  • 基于LLMs的多模态大模型(Flamingo, BLIP-2,KOSMOS-1,ScienceQA)

前一篇博文的最后整理到KOSMOS-1,KOSMOS-1已经开始使用Unnatural Instruction进行微调,其能更好的服从用户需求,本篇博文将继续整理一堆最近出的文章们,包括粘合BLIP-2和Vicuna的MiniGPT-4模型,和一些使用Instruction Tuning来训练的文章们。


MiniGPT-4
MiniGPT-4是粘合基于BLIP-2和Vicuna的模型,模型结构比较简明,如下图所示:
在这里插入图片描述
具体来说,就是直接将BLIP-2的Qformer和视觉编码器来过来,再拼接用户的query(含多轮对话),再输入到Vicuna中生成句子即可。可以看到大多数模块都是蓝色的,即都会被冻结,只留下视觉端的一个用于映射模态的线性层参与微调,这种做法可微调的参数压缩到only 15M。

微调策略跟KOSMOS-1一样采取两阶段思路:

  • 第一阶段:采用CC、SBU、LAION等的图文对作为多模态训练数据集。
  • 第二阶段:利用ChatGPT构建一个多模态高质量的数据集。这里高质量数据主要是利用ChatGPT构造出来的,即先利用第一阶段的captino模型对5k个CC的图片生成多个caption(限制最小长度为80,如果不够就让模型继续描述),然后用ChatGPT进行改写、移除重复等以保证质量和扩展丰富度。最后还是人工review一遍这个数据集,共得到3.5k图文对进行训练,这一阶段只训练线性映射层。

paper:MiniGPT-4: Enhancing Vision-Language Understanding with Advanced Large Language Models
arxiv:https://arxiv.org/abs/2304.10592
github:https://minigpt-4.github.io/


LLaVA
LLaVA和MiniGPT-4类似,但它在做完第一阶段的微调后,会再更近一步在多模态指令下进行微调。

模型结构图下图所示,CLIP(ViT-L/14)作为视觉编码器,LLaMA作为文本解码器,外加一个线性映射层将视觉特征映射到文本空间。
在这里插入图片描述

LLaVA使用的多模态指令数据跟纯语言模型的LLaMA一样,也主要是通过GPT-4构造的,不过由于GPT-4只开放了文本接口,因此需要先将图片转化为文本,如将COCO数据中的5个caption和bounding box的坐标将作为图像的描述输入给GPT-4,并要求GPT-4输出:

  • 1)关于图像中对象的对话;
  • 2)针对图片的详细描述;
  • 3)和图片相关的复杂的推理过程。

此外作者还额外人工标注了一些数据用于in-context learning。最后得到的数据集主要包括:多轮对话的QA,图像描述、复杂推理等数据,使得模型能够应对各种各样的用户query。

在训练策略上,也采用两阶段的训练策略,即先训gap,然后训instruction:

  • 第一阶段:在CC3M中筛出595k条图文对(限制caption中名词词组的最小频率),用language model loss对模型进行微调。其中,冻结视觉和语言编码器,只微调线性层;
  • 第二阶段:用GPT-4生成的158k数据进行指令微调,同样用language model loss对模型进行微调。其中,冻结CLIP,微调线性层和LLaMA。另一个版本中也有对Science QA数据集进行微调,该数据集在文末再补充介绍。

paper:Visual Instruction Tuning
arxiv:https://arxiv.org/abs/2304.08485
github:https://llava-vl.github.io/


mPLUG-Owl
mPLUG-Owl是来自阿里达摩院的文章,在论文的开头作者们有对比它们跟其他主要模型的区别(主要是LLaVA、Kosmos-1、MiniGPT4),如下图所示。
在这里插入图片描述

  • 四个模型都是使用了两阶段训练,其中第一阶段是pre-training,第二阶段是instruction tuning。
  • 训练预料在第一阶段都是用的多模态数据集,在第二阶段略有差异,有纯文本也有多模态数据,更有混合数据的训练模式。
  • LLaVA、Kosmos-1、MiniGPT4都冻住基础视觉编码器,而mPLUG-Owl没有。作者们认为冻住视觉模块会限制模型关联视觉知识和文本知识的能力,而训练视觉模块可以得到更好的跨模态理解能力。

mPLUG-Owl的具体模型结构如下,结构上采用CLIP ViT-L/14作为视觉模块+LLaMA作为文本模块(和LLaVA的选择一样),但同时融入了Flamingo的Perceiver Resampler结构对重要的视觉特征进行提取,即图中的Visual Abstractor模块,以期望用少量的token来表征更长的序列。

在这里插入图片描述
训练过程同样是两阶段:

  • 第一阶段: 使用LAION-400M,COYO-700M,CC以及MSCOCO的图文对数据集进行训练,这一阶段只冻住LLM的参数,而CLIP和Visual Abstractor都要训练,以帮助模型学到视觉和语言模态之间的对齐。
  • 第二阶段: 采用混合数据进行instruct tuning。即102k的纯文本指令数据( Alpaca和Vicuna的数据)、150k多模态指令数据( LLaVA)。CLIP和Visual Abstractor和LLaMA都被冻住,仅仅训练adapter(如上图左的LoRA,在prefix上训练少部分参数)。

另外文章还提出了一个多模态指令评测集,不过它暂时没有自动化评分也没有人工评分(确实是很难评价,在单文本大模型中很多工作用目前最好的模型即GPT-4来打分,但GPT-4没有开多模态模块接口,确实暂时没有什么公认的metric,也希望达摩院团队能继续这个路线的研究吧)。

paper:mPLUG-Owl: Modularization Empowers Large Language Models with Multimodality
arxiv:https://arxiv.org/abs/2304.14178
github:https://github.com/X-PLUG/mPLUG-Owl

更新一下:mPLUG-2已经可以支持video了,也在上面的网址上。mPLUG-2的模型结构如下图所示:
在这里插入图片描述
可以看到,不同的任务将首先通过不同的文本、图像和视频模块,可以在解决模态纠缠问题的同时受益模态协作。随后有一个universal layers,以将不同的模态投影到共享语义空间来对齐。VL fsuion模块需要根据具体任务来适配,对于单模态任务是不需要该层而是直接通过下游的dec来输出结果的,多模态或跨模态任务则需要再fusion一下。


InstuctBLIP
好的,之前还说BLIP2跟chatgpt的训练范式差很远,现在它也来instruct tuning了。

首先看看它所收集到的多模态指令数据集吧,如下图所示,涵盖了以下11个任务类别和28个数据集,再加上LLaVA-Instruct-150K。对于每一项任务的数据集,都为人为设置10-15个不同的指令模板,然后由这些模板来构建指令。

在这里插入图片描述
指令模板如下图所示,博主个人理解是加上这些instruction templates之后将普通数据集转换为一个instruction形态的数据集。
在这里插入图片描述

模型结构如下所示,整体结构跟BLIP2大差不大,Q-Former仍然充当图像编码器来提取视觉特征,这里直接拿BLIP-2预训练好的模型即可,为了融合instructions,在推理过程中,可以看到instructions被输入给LLM(frozen Vicuna 7B and 13B models)和QFormer中。
在这里插入图片描述

paper:InstructBLIP: Towards General-purpose Vision-Language Models with Instruction Tuning
arxiv:https://arxiv.org/pdf/2305.06500.pdf
github:https://github.com/salesforce/LAVIS/tree/main/projects/instructblip


X-LLM
补一篇X-LLM,它有一个中文多模态指令数据集,这个数据集主要包括:

  • 图像-文本指令数据,源于MiniGPT-4
  • 语音-文本指令数据,源于AISHELL-2
  • 视频-文本指令数据,源于ActivityNet
  • 图像-文本-语音指令数据。

具体如下图所示,
在这里插入图片描述
模型结构也比较明晰,通过一些adapter来映射不同模态到文本空间,然后输入到大模型中,如下图所示。图像接口采用 BLIP-2 中的 Q-Former,视频接口跟图像一样(只是特征不一样),语言接口采用 CIF+Transformer 。
在这里插入图片描述

paper:X-LLM: Bootstrapping Advanced Large Language Models by Treating Multi-Modalities as Foreign Languages
arxiv:https://arxiv.org/pdf/2305.04160.pdf
github:https://x-llm.github.io/


下一篇博文继续更新:

  • 基于LLMs的多模态大模型(PALM-E,ArtGPT-4,VPGTrans )

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

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

相关文章

《汇编语言》- 读书笔记 - 第3章-寄存器(内存访问):mov、add、sub、push、pop

《汇编语言》- 读书笔记 - 第3章-寄存器(内存访问) 3.1 内存中字的存储问题 3.1 3.2 DS 和 [address]问题 3.2 3.3 字的传送问题 3.3问题 3.4 3.4 mov、add、sub 指令3.5 数据段问题 3.53.1~3.5 小结检测点 3.1 3.6 栈3.7 CPU 提供的栈机制问题 3.6 3.8 …

基于LSB实现文本、图片、压缩包的隐藏

关于LSB的相关介绍: LSB全称为 Least Significant Bit(最低有效位),是一种基于图片最低有效位修改储存信息的隐写方法,在CTF杂项中经常会遇到,LSB属于空域算法中的一种,是将信息嵌入到图像点中…

OPCUA从入门到精通看这里就够了

本文将会从以下几个方面介绍 1.OPCUA是什么 2.OPCUA常用的工具有那些 3.OPCUA的官网 4.使用opcua常用的方法和功能介绍 5.根据官网自己封装了一个opcuaclient类,并说明每个方法的用处 6.根据4中的opcuaclient类自己写了demo 本文所有用到的资料在此下载包括U…

Android平台音视频推送选RTMP还是GB28181?

技术背景 早在2015年,我们发布了RTMP直播推送模块,那时候音视频直播这块场景需求,还不像现在这么普遍,我们做这块的初衷,主要是为了实现移动单兵应急指挥系统的低延迟音视频数据传输。好多开发者可能会疑惑&#xff0…

信息系统建设和服务能力评估证书CS

信息系统建设和服务能力评估体系CS简介 简介:本标准(团标T/CITIF 001-2019)是信息系统建设和服务能力评估体系系列标准的第一个,提出了对信息系统建设和服务提供者的综合能力要求。 发证单位:中国电子信息行业联合会。…

整型,浮点型,大小字节知识细节一网打尽!

目录 一. 整型 2.11 C语言内置整型 2.12整型在内存如何存储? 2.12 原码,反码, 补码 2.13 当 整型遇上unsigned 2.1 unsigned 与 signed 解析 2.2 printf 输出 有无符号数解析 2.3 有关练习 二. 浮点型 2.51 浮点型与整型在存储上的…

视频会议产品对比分析

内网视频会议系统如何选择?有很多单位为了保密,只能使用内部网络,无法连接互联网,那些SaaS视频会议就无法使用。在内网的优秀视频会议也有很多可供选择,以下是几个常用的: 1. 宝利通:它支持多种…

港联证券|新产品“内卷”,史上最火光伏展能否带动光伏板块行情

在光伏成为“能源老大”之前,指数何时能够跑赢A股股主要股指,或是散户关注的重点。 时隔两年,SNEC上海光伏展如约举办。本届展会吸引了3000余家光伏公司参展,累计50万人涌进场馆,现场人群拥挤度丝毫不逊于过去两年资金…

Navicat连接Oracle时报错ORA-28547

错误信息 这是因为Navicat自带的oci.dll并不支持oracle11g,网上这么说的,需要去官网下载支持的版本。 直接动手。 1. 先DBeaver的连接到oracle数据库(为了查询版本) 1.1 查询版本 SQL:select * from v$version;1.2 …

如何利用Linkage Mapper工具包评估栖息地碎片化程度详解(含实例分析)

✅创作者:陈书予 🎉个人主页:陈书予的个人主页 🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区 🌟专栏地址: Linkage Mapper解密数字世界链接 文章目录 Linkage Mapper工具包评估栖息地碎片化程度详解1. 介绍1.1 简介1.2 ArcGIS概述1.3 Linkage Mapper工具包简介

生态伙伴 | 携手深圳科创学院,持续推动项目落地与成长

01 大赛介绍 中国硬件创新创客大赛始于2015年,由深圳华秋电子有限公司主办,至今已经成功举办八届,赛事范围覆盖华南、华东、华北三大地区,超10个省市区域。 大赛影响了超过45万工程师群体,吸引了35000多名硬创先锋报…

分享Python采集66个焦点图,总有一款适合您

分享Python采集66个焦点图,总有一款适合您 Python采集的66个焦点图下载链接:https://pan.baidu.com/s/1nHoPaUp2Bqtrs5d7J-XdwA?pwd3yfb 提取码:3yfb jQuery SuperSlide插件自适应banner大图焦点图片轮播切换特效 jQuerySwiper仿魅族幻灯…

3.复制Centos虚拟机并且安装Ansible

在2.VirtualBox安装CentOS 7已经创建好了CentOS_template,按下面的步骤,从已经创建好的模版,分别复制出来3个虚拟机:ansible-controller和ansible-target1和ansible-target2。 注意这里的MAC地址设定,要选择&#xff…

用Tushare获取股票信息

Tushare数据Tushare为金融数据分析提供便捷、快速的接口,与投研和量化策略无缝对接https://tushare.pro/register?reg593541 o(≧口≦)o 先别看着链接就走了,敲黑板。 教大家如何基础使用日线行情获取接口数据,不会告诉你们我就是为了骗积分…

spring security oauth2.0-密码式password

密码式(password)授权模式 简介 如果你高度信任对方应用,密码式授权模式也是被允许的. 密码模式,顾名思义,就是使用账号密码的形式在授权服务器上获取授权令牌, 但是这种令牌是不支持刷新令牌的. 这种方式一般是不建议使用的,因为它的高风险性, 但是如果只是两家应用之间的…

算法工程师的主要职责(合集)

算法工程师的主要职责 算法工程师的主要职责1 1、环境建模 根据设计的机器人方案,构建机器人的运动学模型、观测模型等概率学模型; 2、slam算法研发 研究基于多线激光雷达的slam算法,包括特征提取、数据关联、闭环检测等相关算法的开发; 3、定位算法研发…

gd32f103vbt6 串口OTA升级-4-从rk3399的串口升级1

一、需求: 因客户需求,觉得升级单片机程序需要打开设备的盖子,(抽出设备,拧螺丝,挺费事的)。 那能不能把单片机也做到linux系统下升级呢? 答案当然是可行的。(这里有个…

Shopee|Lazada电商平台api接口,接入获取商品评论|根据关键词取商品列表API说明示例

Shopee和Lazada是东南亚地区广受欢迎的电商平台。它们的模式非常类似,都是以C2C(消费者到消费者)、B2C(企业到消费者)和O2O(线上到线下)为主要销售模式。用户可以在平台上购买商品或者将自己的商…

如何在华为OD机试中获得满分?Java实现【组装新的数组】一文详解!

✅创作者:陈书予 🎉个人主页:陈书予的个人主页 🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区 🌟专栏地址: Java华为OD机试真题(2022&2023) 文章目录 1. 题目描述2. 输入描述3. 输出描述…

华为OD机试真题 Java 实现【查找重复代码】【2023Q1 100分】

一、题目描述 小明负责维护项目中的代码,需要查找出重复代码,用以支撑后续的代码优化,请你帮助小明找出重复的代码。 重复代码查找方法: 以字符串形式给定两行代码,找出两行代码中的最长公共子串。 如果不存在公共子串,返回空。 二、输入描述 输入两行代码。 三、…