训练成本不到1000元,直降90%!NUS、清华发布VPGTrans:轻松定制类GPT-4多模态大模型
来源:51CTO.COM
时间:2023-05-21 16:57:18 491浏览 收藏
目前golang学习网上已经有很多关于科技周边的文章了,自己在初次阅读这些文章中,也见识到了很多学习思路;那么本文《训练成本不到1000元,直降90%!NUS、清华发布VPGTrans:轻松定制类GPT-4多模态大模型》,也希望能帮助到大家,如果阅读完后真的对你学习科技周边有帮助,欢迎动动手指,评论留言并分享~
今年是AI技术爆发式发展的一年,以ChatGPT为代表的大语言模型(LLM)大火。
语言模型除了在自然语言领域显示出巨大的潜力之外,也开始逐渐辐射到其他模态,比如文生图模型Stable Diffusion的背后也需要语言模型。
从头开始训练一个视觉-语言模型(VL-LLM)往往需要消耗大量的资源,所以现有的解决方案都是把语言模型和视觉提示生成模型(Visual Prompt Generator, VPG)连接起来,但即便如此,继续调整VPG仍然需要几千个GPU小时和数百万的训练数据。
最近,来自新加坡国立大学和清华大学的研究人员提出了一个解决方案VPGTrans,将现有的VPG迁移到现有的VL-LLM模型中,就能以低成本的方式获得目标VL-LLM模型。

论文链接:https://arxiv.org/abs/2305.01278
代码链接:https://github.com/VPGTrans/VPGTrans
多模态对话模型Demo:https://vpgtrans.github.io/
作者:张傲,费豪,姚远,吉炜,黎力,刘知远,Chua Tat-Seng
单位:新加坡国立大学,清华大学
文章的主要创新点包括:
1. 极低训练成本:
通过我们提出的VPGTrans方法,可以快速(少于10%训练时间)将已有的多模态对话模型的视觉模块迁移到新的语言模型,且达到类似或更优效果。
比如,相比于从头训练视觉模块,我们可以将BLIP-2 FlanT5-XXL的训练开销从19000+人民币缩减到不到1000元:

图1:基于我们的VPGTrans方法的BLIP-2训练开销缩减对比
2. 多模态大模型定制:
通过我们的VPGTrans框架可以根据需求为各种新的大语言模型灵活添加视觉模块。比如我们在LLaMA-7B和Vicuna-7B基础上制作了VL-LLaMA和VL-Vicuna。
3. 开源多模态对话模型:
我们开源了VL-Vicuna,类GPT-4多模态对话模型,可实现高质量的多模态对话:

图2:VL-Vicuna的交互实例
一、动机介绍
1.1 背景
LLM在多模态理解领域掀起了一股从传统预训练视觉语言模型(VLM)到基于大语言模型的视觉语言模型(VL-LLM)的变革。
通过为LLM接入视觉模块,VL-LLM可以继承已有LLM的知识,零样本泛化能力,推理能力和规划能力等。相关模型有BLIP-2[1],Flamingo[2],PALM-E等。

图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的迁移:
(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的高质量的多模态对话。
二、高效率的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中已有的视觉感知能力。

下图显示的是使用直接继承训练好的VPG的方法(蓝色线):图5 VPG Inherit。重新训练VPG (橘线)。We will only train the linear projector and not the 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可以防止掉点+加速收敛
(3)词向量转化器初始化可以加速projector warm-up:
首先,VPG是通过把图像转化为LLM可以理解的soft prompt来产生效果的。而soft prompt的使用方式和词向量其实是非常相似的,都是直接输入语言模型来提示模型产生对应内容。
所以,我们使用词向量来作为soft prompt的一个代理,训练了一个 

的词向量转化器(一个线性层)。
然后,我们将词向量转化器和 
通过这个初始化,我们可以将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所示,我们的方法共分为两个阶段:
(1)第一阶段:我们首先使用词向量转化器和原有projector进行融合作为新projector的初始化,然后用5倍学习率训练新projector一个epoch。
(2)第二阶段:直接正常训练VPG和projector。
三、实验结果
3.1 加速比

表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所示,我们进行了OPT-125M,350M,1.3B,2.7B之间的跨LLM大小的迁移。
在实验中,为了公平对比不同模型大小下训练过的VPG的视觉感知能力,我们固定住VPG的参数仅仅训练linear projector层。我们选取了COCO Caption上的SPICE指标作为视觉感知能力的衡量手段。
不难发现,对于每一个给定的
,几乎都符合
越小,最终SPICE越高的一个现象。
3.3 大规模实验
前文实验主要是在小规模场景下验证猜想。为了证明我们的方法的有效性,我们模拟BLIP-2的预训练过程进行了大规模实验:

表2:真实场景下的大规模实验结果
如表2所示,我们的VPGTrans在大规模场景下依然有效。通过OPT-2.7B到OPT-6.7B的迁移,我们仅用10.8%的数据和不到10%的训练时长达到了相似或更优的效果。
尤其是,我们的方法在BLIP-2以FlanT5-XXL为基座的VL-LLM实现了4.7%的训练成本控制。
四、定制您的VL-LLMs
我们的VPGTrans可以快速为任意新的LLMs添加视觉感知模块,从而得到一个全新的高质量VL-LLM。在本工作,我们额外训练了一个VL-LLaMA和一个VL-Vicuna。其中VL-LLaMA的效果如下:

表3:VL-LLaMA的效果展示
同时,我们的VL-Vicuna可以进行类GPT-4的多模态对话。我们和MiniGPT-4进行了简单的比较:


五、总结
在这项工作中,我们对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方面的实际价值。
到这里,我们也就讲完了《训练成本不到1000元,直降90%!NUS、清华发布VPGTrans:轻松定制类GPT-4多模态大模型》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于ChatGPT,模型的知识点!
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
447 收藏
-
417 收藏
-
299 收藏
-
299 收藏
-
347 收藏
-
173 收藏
-
225 收藏
-
260 收藏
-
444 收藏
-
102 收藏
-
412 收藏
-
457 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 485次学习