VPGTrans: 10%的成本定制你自己的类GPT-4多模态大模型

news2024/11/18 7:32:05

作者 | 张傲

最近的多模态(对话)大模型将基于文本的ChatGPT的强大能力扩展到了多模态输入,实现强大的多模态语义理解,比如GPT-4、BLIP-2、Flamingo等。但咱们普通玩家训练一个多模态GPT代价非常昂贵。来自于新加坡国立大学和清华大学的研究工作提出一个VPGTrans框架,帮助小伙伴们实现极低成本训练一个高性能多模态大模型。

各个大模型的研究测试传送门

阿里通义千问传送门:
https://tongyi.aliyun.com

百度文心一言传送门:
https://yiyan.baidu.com

ChatGPT传送门(免墙,可直接测试):
https://yeschat.cn

GPT-4传送门(免墙,可直接测试,遇到浏览器警告点高级/继续访问即可):
https://gpt4test.com

论文题目:
VPGTrans:Transfer Visual Prompt Generator across LLMs

论文作者:
张傲,费豪,姚远,吉炜,黎力,刘知远,Chua Tat-Seng

论文单位:
新加坡国立大学,清华大学

论文链接:
https://arxiv.org/pdf/2305.01278.pdf

代码:
https://github.com/VPGTrans/VPGTrans

多模态对话模型Demo:
https://vpgtrans.github.io/

本工作亮点摘要:

1. 极低训练成本:

通过我们提出的VPGTrans方法,可以快速(少于10%训练时间)将已有的多模态对话模型的视觉模块迁移到新的语言模型,且达到类似或更优效果。比如,相比于从头训练视觉模块,我们可以将BLIP-2 FlanT5-XXL的训练开销从19000+人民币缩减到不到1000元:

图 1:基于我们的VPGTrans方法的BLIP-2训练开销缩减对比
▲图 1:基于我们的VPGTrans方法的BLIP-2训练开销缩减对比

2. 多模态大模型定制:

通过我们的VPGTrans框架可以根据需求为各种新的大语言模型灵活添加视觉模块。比如我们在LLaMA-7B和Vicuna-7B基础上制作了VL-LLaMA和VL-Vicuna。

3. 开源多模态对话模型:

我们开源了VL-Vicuna,类GPT4多模态对话模型,可实现高质量的多模态对话:

图 2:VL-Vicuna的交互实例
▲图 2:VL-Vicuna的交互实例

一、动机介绍

1.1 背景

2023年是AI元年,以ChatGPT为代表的大语言模型(LLM)大火。LLM除了在自然语言领域显示出巨大的潜力之外,也开始逐渐辐射到其他相关领域。比如,LLM在多模态理解领域掀起了一股从传统预训练视觉语言模型(VLM)到基于大语言模型的视觉语言模型(VL-LLM)的变革。通过为LLM接入视觉模块,VL-LLM可以继承已有LLM的知识,零样本泛化能力,推理能力和规划能力等。相关模型有BLIP-2[1],Flamingo[2],PALM-E等。

图 3:常用的VL-LLM架构
▲图 3:常用的VL-LLM架构

现有的常用的VL-LLM基本采取图3所示的架构:在一个基座LLM基础上训练一个视觉soft prompt生成模块(Visual Prompt Generator, VPG),以及一个进行维度变换的线性层(Projector)。在参数规模上,LLM一般占主要部分(比如11B),VPG占次要部分(比如1.2B),Projector最小(4M)。在训练过程中,LLM参数一般不会被更新,或者仅仅更新非常少量的参数。可训练参数主要来自于VPG和projector。

1.2 动机

实际上,即便基座LLM的参数冻结不训,但由于LLM的大参数量,训练一个VL-LLM的关键开销依然在于加载基座LLM。因此训练一个VL-LLM依然无法避免极大的计算代价。比如,要得到BLIP-2(基座LLM为FlanT5-XXL)需要付出超过600个小时的A100训练时长。如果租用亚马逊的A100-40G机器,大概需要将近2万元人民币的费用。既然从零训练一个VPG代价如此昂贵,那么我们开始思考能否把一个已有的VPG迁移到新的LLM上来节省开销。

图 4:VPG迁移: 跨LLM大小迁移和跨LLM类型迁移
▲图 4:VPG迁移: 跨LLM大小迁移和跨LLM类型迁移

如图4所示,我们主要探索了两种类型的VPG的迁移:

(1)跨LLM大小迁移 (TaS): 比如从OPT-2.7B到OPT-6.7B。

(2)跨LLM类型迁移 (TaT): 比如从OPT到FlanT5

其中TaS的意义在于:在LLM相关科研中,我们通常需要在小LLM上调参,再扩展到大LLM。有了TaS,我们可以在调参之后,把小LLM上已经训好的VPG直接迁移到大LLM上。TaT的意义在于:不同功能种类的LLM层出不穷,比如今天有了LLaMA,明天又有了Alpaca和Vicuna。TaT可以让我们利用已有的VPG快速为新语言模型添加视觉感知能力。

1.3 贡献

(1) 提出高效的方法: 我们首先通过一系列的探究实验,探究了影响VPG迁移效率的关键因素。根据探索实验发现,我们提出了一个两阶段的高效迁移框架VPGTrans。该框架可以大幅度缩减训练VL-LLM所需的计算开销和需要的训练数据。比如,相比于从头训练,我们通过BLIP-2 OPT-2.7B到6.7B的VPG迁移,可以仅用大约10%的数据和计算时间就达成各个数据集相似或更好的效果(图1)。训练花销从17901人民币到1673元。

(2) 得到有趣的发现: 我们同时提供了TaS和TaT场景下一些有趣的发现,并尝试给出解释: a) TaS场景下,使用VPGTrans从小到大迁移不会影响最终模型效果。b) TaS场景下,越小的语言模型上训练的VPG,迁移到大模型时效率越高,最终效果越好。c) TaT场景下,越小的模型之间迁移的gap越大。在我们验证实验中,OPT350M和FlanT5-base使用VPGTrans互相迁移几乎和从头训练一样慢。

(3) 实现社区回馈: 我们使用VPGTrans得到了两个新的VL-LLMs: VL-LLaMA和VL-Vicuna,并开源在了社区上。其中VL-Vicuna实现了类GPT4的高质量的多模态对话。欢迎小伙伴尝试:https://vpgtrans.github.io/.

二、高效率的VPG迁移方案: VPGTrans

首先我们进行一系列的探索验证实验,分析如何最大化对于VPG的迁移效率。接着我们基于这些重要观察提出一个解决方案。

2.1 探究实验

我们选取BLIP-2架构作为我们的基础模型,预训练语料采用COCO和SBU,总共1.4M图文对。下游任务采用COCO Caption, NoCaps, VQAv2, GQA和OK-VQA的zero-shot设定进行评测(对caption任务并非严格zero-shot)。下面是我们的关键发现:

(1)直接继承一个训练好的VPG可以加速收敛,但效果有限:我们发现,直接迁移一个LLM上训练好的VPG到大LLM可以加速模型收敛,但加速效果有限,且收敛后模型效果相比于从头训练VPG会掉点(图5的VQAv2、GQA蓝线最高点均低于橘线)。我们猜测,这个掉点是由于随机初始化的projector会在训练起始阶段损伤VPG中已有的视觉感知能力。

图 5:VPG inherit (蓝线): 直接继承训练好的VPG。train from scratch (橘线):从头训练VPG。only linear (绿线):只训练linear projector不训练VPG。
▲图 5:VPG inherit (蓝线): 直接继承训练好的VPG。train from scratch (橘线):从头训练VPG。only linear (绿线):只训练linear projector不训练VPG。

(2)先warm-up训练projector可以防止掉点,且进一步加速收敛:于是,我们固定住VPG和LLM,先warm-up训练projector 3个epoch,再解冻VPG进行下一步训练。我们发现,这样不仅仅可以避免掉点情况,还能够进一步加速VPG收敛(图6)。但值得强调的是,由于训练的主要开销在LLM(参数巨多),仅仅训练projector的开销不会比同时训练VPG和projector的开销小太多。所以,我们开始探究加速projector warm-up的关键技术。

图6:先warm-up训练projector可以防止掉点+加速收敛
▲图6:先warm-up训练projector可以防止掉点+加速收敛

(3)词向量转化器初始化可以加速projector warm-up:首先,VPG是通过把图像转化为LLM可以理解的soft prompt来产生效果的。而soft prompt的使用方式和词向量其实是非常相似的,都是直接输入语言模型来提示模型产生对应内容。所以,我们使用词向量来作为soft prompt的一个代理,训练了一个到的词向量转化器(一个线性层)。然后,我们将词向量转化器和上的projector融合作为projector的初始化。通过这个初始化,我们可以将projector的warm-up训练由3个epoch减为2个epoch。

(4)projector可以在超大学习率下快速收敛:我们进一步实验发现,projector由于其参数量较少,可以使用5倍的正常学习率进行训练而不崩溃。通过5倍学习率的训练,projector warm-up可以进一步被缩短到1个epoch。

(5)一个附加发现: 虽然projector warm-up很重要,但仅训练projector是不够的。尤其在caption任务上面,仅仅训练projector的效果要比同时训练VPG的效果差一截 (图5绿线在COCO Caption和NoCaps均远低于蓝线)。这也就意味着,仅仅训练projector会导致欠拟合,也就是无法充分对齐到训练数据。

2.2 我们所提出的方法

图 7:VPGTrans框架: (1) 一阶段:projector的warm-up (2) 二阶段: 整体微调
▲图 7:VPGTrans框架: (1) 一阶段:projector的warm-up (2) 二阶段: 整体微调

如图7所示,我们的方法共分为两个阶段: (1)第一阶段: 我们首先使用词向量转化器和原有projector进行融合作为新projector的初始化,然后用5倍学习率训练新projector一个epoch。 (2) 第二阶段:直接正常训练VPG和projector。

三、实验结果

3.1 加速比

表1:我们的VPGTrans的相比于从头训练在各个数据集的加速比
▲表1:我们的VPGTrans的相比于从头训练在各个数据集的加速比

如表1所示,我们测试了不同迁移类型下,VPGTrans在不同数据集上的加速比。VPGTrans在某指定数据集A上的加速比是通过从头训练达到A上最佳效果a的轮数除以VPGTrans在A上效果超过a的最小训练轮数得到。比如,从头在OPT-2.7B上训练VPG,在COCO caption达到最佳效果需要10个epoch,但从OPT-125M迁移VPG到OPT-2.7B,仅需1个epoch就能达到该最佳效果。则加速比为10/1=10倍。我们可以看到,无论是在TaS还是在TaT场景下,我们的VPGTrans都可以实现稳定的加速。

3.2 有趣的发现

我们选取了一个比较有趣的发现进行了说明,其他更多更有意思的发现请参照我们的论文。

TaS场景下,越小的语言模型上训练的VPG,迁移起来效率越高,最后模型效果越好。参考表1,我们可以发现OPT-1.3B到OPT-2.7B的加速比要远小于OPT-125M、OPT-350M到OPT-2.7b的加速比。我们尝试提供了一个解释:一般越大的语言模型,由于其文本空间的维度更高,会更容易损害VPG(VPG一般都是类似于CLIP的预训练模型)本身的视觉感知能力。我们通过类似于linear probing的方式进行了验证:

图 8:仅训练linear projector层的跨LLM大小迁移 (模拟linear probing)
▲图 8:仅训练linear projector层的跨LLM大小迁移 (模拟linear probing)

如图8所示,我们进行了OPT-125M,350M,1.3B,2.7B之间的跨LLM大小的迁移。在实验中,为了公平对比不同模型大小下训练过的VPG的视觉感知能力,我们固定住VPG的参数仅仅训练linear projector层。我们选取了COCO Caption上的SPICE指标作为视觉感知能力的衡量手段。不难发现,对于每一个给定的,几乎都符合越小,最终SPICE越高的一个现象。

3.3 大规模实验

前文实验主要是在小规模场景下验证猜想。为了证明我们的方法的有效性,我们模拟BLIP-2的预训练过程进行了大规模实验:

表2:真实场景下的大规模实验结果
▲表2:真实场景下的大规模实验结果

如表2所示,我们的VPGTrans在大规模场景下依然有效。通过OPT-2.7B到OPT-6.7B的迁移,我们仅用10.8%的数据和不到10%的训练时长达到了相似或更优的效果。尤其是,我们的方法在BLIP-2 以FlanT5XXL为基座LLM下实现了4%的训练成本控制。

四、定制您的VL-LLMs

我们的VPGTrans可以快速为任意新的LLMs添加视觉感知模块,从而得到一个全新的高质量VL-LLM。在本工作,我们额外训练了一个VL-LLaMA和一个VL-Vicuna。其中VL-LLaMA的效果如下:

表3:VL-LLaMA的效果展示
▲表3:VL-LLaMA的效果展示

同时,我们的VL-Vicuna可以进行类GPT4的多模态对话。我们和MiniGPT-4进行了简单的比较:

alt alt

五、总结

在这项工作中,我们对 VPG 在 LLM 之间的可迁移性问题进行了全面调查。我们首先探讨了最大化迁移效率的关键因素。基于关键观察,我们提出了一种新颖的两阶段迁移框架,即 VPGTrans。它可以在显著降低训练成本的同时,实现相当或更好的性能。通过 VPGTrans,我们实现了从 BLIP-2 OPT 2.7B 到 BLIP-2 OPT 6.7B 的 VPG 迁移。相较于从零开始连接 VPG 到 OPT 6.7B,VPGTrans仅需10.7%训练数据和不到10%的训练时长。此外,我们展示并讨论了一系列有趣发现及其背后的可能原因。最后,我们通过训练VL-LLaMA和LL-Vicuna,展示了我们的 VPGTrans 在定制新的 VL-LLM 方面的实际价值。

本文由 mdnice 多平台发布

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

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

相关文章

基于SSM框架的核酸检测管理系统

基于SSM框架的核酸检测管理系统 快速查看 基于SSM框架的核酸检测管理系统功能需求开发工具模块相关技术系统相关图片 功能需求 用户模块: 注册功能:普通用户可以访问本系统进行账户注册,个人资料:登录系统对自己的个人资料&…

Parker派克伺服电机有哪些优势特点?如何选型?

一、什么是伺服电机? 伺服电机是一种可以通过控制器精确地控制位置、速度和加速度的电机,主要由电机、编码器和控制器三部分组成,具有高转矩、高精度、快速响应和低转速稳定特性,能够在负载扰动、电压变化及机械特性变化下保持较…

springboot整合邮箱功能二(普通邮件, html邮件, thymleaf邮件)

【SpringBoot整合Email发送邮件】_ζั͡ ั͡空 ั͡ ั͡白�的博客-CSDN博客 https://www.cnblogs.com/erlou96/p/16878192.html#_label1_5 1. 准备工作 1.1 qq邮箱设置 本文默认使用qq邮箱来发送邮件,然后使用一个在线临时邮箱来接收邮件。为了让程序能够通过…

srs one2one,one2many通话环境搭建

一、简介 二、go环境配置 三、srs编译配置 四、信令服务器编译 4.1 signaling8 4.2 web服务器 五、测试 六、附录 官⽅⽂档参考地址:https://github.com/ossrs/srs/wiki/v4_CN_WebRTC#sfu-one-to-one 一、简介 srs的webrtc能力和两个信令服务器不管是逻辑上还是代码…

Linux 进程基础

目录 1、进程的概念 2、进程与线程的区别、进程与程序的区别 2.1 进程与线程的区别 2.2 进程与程序的区别 3、进程相关 shell 命令 3.1 ps 3.3.1 参数说明 3.3.2 结果说明 3.2 pidof 3.3 pstree 3.4 top 3.5 kill 4、进程相关函数 4.1 fork 4.1.1 fork的函数原型…

医院内导航及智能导医,医院导诊图怎么制作?

在大型综合性医院,由于专业分工精细,一个诊疗过程涉及的功能单元往往分布在不同的楼宇、不同楼层的不同位置,再加上多数患者对医院环境不熟悉,导致滞院的时间长、诊疗效率低、患者对服务的满意度下降。为解决这一问题,…

VMware Aria Operations for Logs 8.12 - 集中式日志管理

VMware Aria Operations for Logs 8.12 - 集中式日志管理 请访问原文链接:https://sysin.org/blog/vmware-aria-operations-for-logs/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org 集中式日志管理 VMware Aria …

蓝牙mesh数据包格式解析

蓝牙mesh数据包的结构如下图: 总长31个字节。 Length (1Byte):数据长度 Type (1Byte):广播类型 IVI (1bit):用来认证加密Network PDU的IV index的最低位 NID (7bits):网络ID,network ID。从网络密钥(Ne…

学习了两个多月就进了我们公司,顺利过了试用期,我心塞了...

转行起因 公司前段时间来了个大专机械专业毕业的,挺好奇他在如今这个环境下怎么进来的而且非本科非科班,后面我请他喝了一次酒,我才了解到他的故事,写出来与大家分享,希望对各位有点启迪。 他以前在一个大厂做售后工…

新来的00后真卷,我想离职了···

都说00后躺平了,但是有一说一,该卷的还是卷。 这不,前段时间我们公司来了个00后,工作没两年,跳槽到我们公司起薪20K,都快接近我了。后来才知道人家是个卷王,从早干到晚就差搬张床到工位睡觉了。…

sentinel基本原理以及核心类介绍

Sentinel 核心类解析 架构图 ProcessorSlotChain Sentinel 的核心骨架,如上图结构,将不同的 Slot 按照顺序串在一起(责任链模式),从而将不同的功能(限流、降级、系统保护)组合在一起。slot ch…

2023.05.11-利用GPT4free免费使用ChatGPT4

1. 简介 现在OpenAI,虽然出了ChatGPT4,但是只给plus会员用,对于国内的用户来说,不仅需要魔法,还需要有一张外网的信用卡来开通会员,使用起来重重不便,有一种想要花钱买服务,都找不到…

tf卡文件隐藏怎样恢复,原来有这三种方法,你了解多少呢?

TF卡是一种便携式存储设备,非常方便用于存储数据。但是,有时TF卡中的数据会被不小心隐藏了,也许是误操作,也许是病毒攻击等原因。所以,下面将讲述如何找回TF卡中被隐藏的数据。 【一】关于TF卡概述 TF卡(…

uniapp打包ios保姆式教程【最新】

uniapp打包 打包方式ios打包一、前往官网登录二、添加证书 三、添加标识符(Identifiers)四、添加安装ios测试机(Devices)五、获取证书profile文件六、生成并下载p12文件七、开始打包 打包方式 安卓打包直接使用公共测试证书即可打包成功,简单方便,这里我…

【数据库数据恢复】sql server数据库无法附加查询的数据恢复案例

数据库数据恢复环境: 一台Dell PowerEdge某型号存储,数块SAS硬盘分别组建raid1和raid5两组磁盘阵列。其中2块磁盘组建的RAID1,用于安装操作系统;其余几块磁盘组建raid5,用于存放数据。 上层安装的windows服务器&#x…

vue中动态使用vh calc设置高度

动态设置高度 <div class"user_menu_box" :style"menuHeight"><!-- 用户信息 --><div class"user_info" :class"{ menu-collase: isCollapse }"><imgsrc"/assets/login_images/bg.jpg"alt"暂无图…

【python数据分析】对python开发岗位需求进行分析可视化

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 什么是数据分析 明确目的–获得数据(爬虫&#xff0c;现有&#xff0c;公开的数据)–数据预处理——数据可视化——结论 准备 环境使用&#xff1a; 在开始写我们的代码之前&#xff0c;我们要准备好运行代码的程序 Anacon…

空中下载技术(OTA)电控信息安全

随着汽车电子控制系统功能复杂度和数据颗粒度呈阶梯式增加&#xff0c;其发展速度逐渐超越网络安全防护方法、技术和标准的发展&#xff0c;现阶段汽车电子正面临巨大的网络信息安全风险&#xff0c;对功能安全的潜在影响也仍在探索和解决中&#xff0c;信息安全问题已经成为影…

maven从入门到精通 第五章 在IDEA2023中使用Maven

这里写自定义目录标题 一 Maven基础回顾1 archetype2 指定自己的maven工程所在的位置3 接下来是用文本编辑器打开自己下载的maven文件下的 conf >settings 二 创建maven子工程1 配置环境&#xff0c;测试运行2 打包maven的三种方式2.1 点击maven左侧的lifecycle2.2 点击m标签…

苹果录屏功能在哪?苹果如何进行屏幕录制?

案例&#xff1a;想知道苹果手机和苹果电脑的录屏功能在哪&#xff1f; 【用苹果手机和电脑很久了&#xff0c;但是我还是不知道它们的录屏功能在哪&#xff0c;如何使用&#xff1f;有没有小伙伴了解苹果的录屏功能&#xff1f;可以教教我吗&#xff1f;】 苹果手机和电脑自…