LORAHUB: EFFICIENT CROSS-TASK GENERALIZATION VIA DYNAMIC LORA COMPOSITION

文章汇总

动机

image.png
效果如上:希望将多个任务训练得到的LoRA组合起来,效果比单独一个任务得到的LoRA效果更好。
愿景:那未来我们每个人都贡献出自己训练出来的LoRA,之后通过LoRAHub简单组合起来,就可以得到适用于多任务且功能强大的LoRA。

解决办法

组成办法:

image.png
每个LoRA结构为 m i = A i B i , i = 1 , . . . , N m_i=A_iB_i,i=1,...,N mi=AiBi,i=1,...,N,组合后的LoRA模块 m ^ \hat m m^可得:
image.png

权重如何得到?

理论上,不同的LoRA m i m_i mi对不同下游的任务的重要程度是不同,所以如何合理地对LoRA m i m_i mi授予相应的权重就很重要了。
作者采用了无梯度的种群的随机优化算法——协方差矩阵自适应进化策略(CMA-ES)。(作者在论文上没介绍,我翻阅了文献发觉很劝退┭┮﹏┭┮,希望得到好心人指导(*❦ω❦))
优化目标是最小化 L + α ⋅ ∑ i = 1 N ∣ w i ∣ L+\alpha\cdot\sum^N_{i=1}|w_i| L+αi=1Nwi,其中 α \alpha α作为超参数。

摘要

低秩适应(Low-rank adaptations,LoRA)通常用于为新任务微调大型语言模型(LLM)。本文研究了跨任务泛化的LoRA可组合性,并介绍了LoraHub,这是一个简单的框架,用于有目的地组装在不同给定任务上训练的LoRA模块,目的是在未知任务上实现自适应性能。只需新任务中的几个示例,LoraHub就可以流畅地组合多个LoRA模块,从而消除了对人工专业知识和假设的需求。值得注意的是,该组合既不需要额外的模型参数,也不需要梯度。Big-Bench Hard基准测试的实证结果表明,LoraHub虽然没有超越上下文学习的性能,但通过在推理过程中显著减少每个示例的令牌数量,在小样本学习场景中提供了显著的性能效率权衡。值得注意的是,当与不同的演示示例配对时,LoraHub与上下文学习相比建立了更好的上限,显示了其未来发展的潜力。我们的愿景是建立一个LoRA模块的平台,使用户能够分享他们训练有素的LoRA模块。这种协作方法促进了LoRA模块在新任务中的无缝应用,有助于形成自适应生态系统。我们的代码可在https://github.com/sail-sg/lorahub上获得,所有预训练的LoRA模块都在https://huggingface.co/lorahub上发布。

1.介绍

自然语言处理(NLP)的最新进展在很大程度上是由大型语言模型(LLM)推动的,如OpenAI GPT (Brown等人,2020)、FLAN-T5 (Chung等人,2022)和LLaMA (Touvron等人,2023)。这些模型展示了不同NLP任务的顶级性能。然而,它们巨大的参数大小在微调期间带来了计算效率和内存使用方面的问题。为了缓解这些挑战,低秩适应(Low-Rank Adaptation, LoRA) (Hu et al ., 2022)已经成为一种参数高效的微调技术(Lester et al ., 2021;他等人,2022;An et al, 2022)。通过减少内存需求和计算成本,它加快了LLM的训练。LoRA通过冻结基本模型参数(即LLM)和训练轻量级模块来实现这一点,该模块定期在目标任务上提供高性能。
虽然先前的研究针对的是LoRA促进的效率提高,但缺乏对LoRA模块固有的模块化和可组合性的研究。通常,以前的方法训练LoRA模块专门处理单个任务。然而,LoRA模块固有的模块化提出了一个有趣的研究问题:是否有可能组合LoRA模块以有效的方式推广到新的任务?在本文中,我们挖掘了LoRA模块化在广泛任务泛化方面的潜力,超越了单任务训练,精心组合LoRA模块,以在未知任务上获得可扩展的性能。至关重要的是,我们的方法能够自动组装LoRA模块,消除对手动设计或人工专业知识的依赖。仅使用来自新任务的少量示例(例如,5),我们的方法就可以自主地组成兼容的LoRA模块,而无需人工干预。我们不假设在特定任务上训练的LoRA模块可以组合在一起,允许灵活地合并任何模块,只要它们符合规范(例如,使用相同的LLM)。由于我们的方法利用了几个可用的LoRA模块,我们将其称为LoraHub,并将我们的学习方法表示为LoraHub学习。
为了验证我们提出的方法的效率,我们使用广泛认可的BBH基准测试我们的方法,FLAN-T5 (Chung et al ., 2022)作为基础LLM。结果强调了通过少量的LoraHub学习过程,LoRA模块组成对于不熟悉的任务的有效性。值得注意的是,我们的方法实现了与上下文中少数镜头学习密切匹配的平均性能,同时展示了优越的上限,特别是在使用不同的演示示例时。此外,与上下文学习相比,我们的方法大大降低了推理成本,消除了LLM对示例作为输入的要求。在推理过程中,由于每个示例的令牌更少,我们的方法显著降低了计算开销并实现了更快的响应。它与更广泛的研究趋势相一致,最近的研究正在积极探索减少输入令牌数量的方法(Zhou等人,2023;Ge等,2023;Chevalier等,2023;蒋等,2023a;Li et al ., 2023;Jiang et al ., 2023b)。我们的学习过程也以其计算效率而闻名,使用无梯度方法获得LoRA模块的系数,并且只需要少量的推理步骤来处理未见任务。例如,当应用于BBH中的新任务时,我们的方法可以在不到一分钟的时间内使用单个A100卡提供卓越的性能。
重要的是,LoraHub学习可以用一台只有cpu的机器来完成,只需要熟练地处理LLM推理。在我们追求人工智能民主化的过程中,我们设想建立LoRA平台,这是向前迈出的重要一步。该平台将作为一个市场,用户可以无缝地共享和访问各种应用程序的训练有素的LoRA模块。LoRA提供商可以灵活地在平台上自由共享或销售其模块,而不会损害数据隐私。配备CPU功能的用户可以利用其他人通过自动分发和组合算法提供的训练有素的LoRA模块。该平台不仅培养了具有无数功能的可重用LoRA模块的存储库,而且还为协作AI开发奠定了基础。它使社区能够通过动态LoRA组合来共同丰富LLM的功能。

3.方法

在本节中,我们概述了我们提出的方法。然后详细解释LoRA调优过程。最后,介绍了LoraHub的学习过程,包括COMPOSE阶段和ADAPT阶段。
image.png
图2:我们的方法包含两个阶段:COMPOSE阶段和ADAPT阶段。在COMPOSE阶段,现有的LoRA模块被集成为一个统一的模块,使用一组系数,记为 w w w。在ADAPT阶段,组合的LoRA模块对未见任务中的几个示例进行评估。随后,采用无梯度算法对 w w w进行细化。在执行K次迭代后,产生一个高度适应的组合LoRA模块,该模块可以与LLM合并以执行预期的任务。

3.1方法概述

如图2所示,我们最初在各种上游任务上训练LoRA模块。具体来说,对于 N N N个不同的上游任务,我们分别训练 N N N个LoRA模块,对于任务 τ i ∈ T \tau_i \in T τiT,每个模块表示为mi。随后,对于新任务 τ i ′ ∉ T \tau_i' \notin T τi/T,如图2所示的布尔表达式,我们利用其示例 Q Q Q来引导LoraHub的学习过程。LoraHub学习封装了两个主要阶段:COMPOSE阶段和ADAPT阶段。在COMPOSE阶段,使用 { w 1 , w 2 , . . . , w N } \{w_1,w_2,...,w_N\} {w1,w2,...,wN}将所有可用的LoRA模块组合成单个集成模块 m ^ \hat m m^。每个 w i w_i wi都是一个标量值,可以取正值或负值,并且可以通过不同的方式进行组合。在ADAPT阶段,将合并后的LoRA模块 m ^ \hat m m^与LLM M θ M_{\theta} Mθ合并,并对其在新任务 τ ′ \tau' τ的少量样本上的性能进行了评估。随后部署无梯度算法来更新 w w w,增强 m ^ \hat m m^在少量样本 Q Q Q上的性能(例如,损失)。最后,迭代 K K K步后,将性能最佳的LoRA模块应用于LLM M θ M_{\theta} Mθ,得到最终的LLM M ϕ = LoRA ( M θ , m ^ ) M_{\phi}=\text{LoRA}(M_{\theta},\hat m) Mϕ=LoRA(Mθ,m^)。这将作为未见任务 τ ′ \tau' τ的有效调整模型,然后将部署它,不再更新它。

3.2上游任务的LoRA调优

LoRA通过将LLM(记为 W 0 ∈ R d × k W_0\in R^{d\times k} W0Rd×k)的关注权矩阵更新分解为低秩矩阵的过程,有效地减少了可训练参数的数量。更具体地说,LoRA以 W 0 + δ W 0 + A B , A ∈ R d × r , B ∈ R r × k W_0+\delta W_0+AB,A\in R^{d\times r},B\in R^{r\times k} W0+δW0+AB,ARd×r,BRr×k的形式展示了更新后的权重矩阵,其中 A ∈ R d × r A\in R^{d\times r} ARd×r B ∈ R r × k B\in R^{r\times k} BRr×k是秩为 r r r的可训练低秩矩阵,其维数明显小于 d d d k k k。在这种情况下, A B AB AB定义了LoRA模块 m m m,如前面所述。通过利用低秩分解,LoRA大大减少了微调期间调整LLMs权重所需的可训练参数的数量。

3.3 Compose:按元素组合LoRA模块

在COMPOSE阶段,我们实现了一个元素方法来组合LoRA模块。该流程对LoRA模块的相应参数进行整合,要求被合并模块的等级r相同,以使其结构正确对齐。令 m i = A i B i m_i=A_iB_i mi=AiBi,则组合后的LoRA模块 m ^ \hat m m^可得:
image.png
值得注意的是,正如我们在第5节中所展示的,一次组合太多的LoRA模块会以指数方式扩展搜索空间,这可能会破坏LoraHub学习过程的稳定性,并妨碍最佳性能。为了缓解这种情况,我们采用随机选择来修剪候选空间,未来可以探索更先进的预滤波算法。

3.4 ADAPT:通过无梯度方法进行权重优化

在ADAPT阶段,我们的目标是修改系数 w w w,以提高模型对来自未知任务的示例的性能。人们可能会考虑使用梯度下降来优化 w w w,遵循标准的反向传播方法。然而,这种方法需要为所有LoRA模块构建一个超网络,类似于可微架构搜索方法(Zhang et al, 2019)。构建这些超级网络需要大量的GPU内存和时间,这是一个挑战。考虑 w w w由相对较少的参数组成,我们选择无梯度方法进行优化,而不是梯度下降。
受先前工作(Sun et al, 2022)的启发,我们利用黑盒优化技术来找到最优 w w w。优化过程由交叉熵损失引导,设定目标来定位最佳集 { w 1 , w 2 , . . . , w N } \{w_1,w_2,...,w_N\} {w1,w2,...,wN},减少了少量样本 Q Q Q上的损失 L L L。此外,我们采用L1正则化来惩罚 w w w的绝对值之和,有助于防止获得极值。因此,LoraHub的最终目标是最小化 L + α ⋅ ∑ i = 1 N ∣ w i ∣ L+\alpha\cdot\sum^N_{i=1}|w_i| L+αi=1Nwi,其中 α \alpha α作为超参数。
在无梯度方法方面,我们利用了组合优化方法Shiwa (Liu et al ., 2020)。Shiwa提供了多种算法,并根据不同的情况选择最适合的优化算法。在大多数即将到来的实验设置中,我们主要采用协方差矩阵自适应进化策略(CMA-ES) (Hansen & Ostermeier, 1996)。CMA-ES作为一种基于种群的随机优化算法,在解决广泛的优化挑战方面具有通用性。它动态地调整搜索分布,该分布由协方差矩阵定义。在每次迭代中,CMA-ES系统地更新该分布的均值和协方差,以优化目标函数。在我们的应用程序中,我们使用该算法来塑造 w w w的搜索空间。最终,我们使用它来识别最优的 w w w,通过评估它们在一个看不见的任务中的少数几个例子上的性能。
(疑点:协方差矩阵自适应进化策略(CMA-ES))

5.实验分析

在本节中,我们将彻底检查我们提出的方法的特点,并揭示几个有见地的发现。如果没有指定,我们使用FLAN-T5-large进行所有分析。

哪些LoRA模块对BBH任务最有效?

image.png
表2:对BBH任务最有利的5个LoRA模块及其关联的上游任务、所有BBH任务的平均权重值和平均性能。
我们假设LoRA模块的合并可以包含来自各种特定任务的技能和见解。为了评估这一点,我们检查了单个LoRA模块在BBH基准的所有任务中的影响程度。我们通过计算平均绝对权重来衡量每个孤立任务的影响。表2所示的前五个模块具有重大影响,正如它们的最大平均权重所示,这表明它们在跨任务转移方面明显更有效。值得注意的是,前五大模块的一个共同特征是,它们与需要阅读理解和推理技能的任务有关,这些特征表明了更高的认知复杂性。然而,值得注意的是,没有一个模块在所有BBH任务中表现出一致的改进,这反映在它们在所有BBH任务中的平均性能上,与原始FLAN-T5-large相比,除了Rank 2外,没有显示出显著的改进。结果强调了在LoraHub中组合不同模块的优势。

无梯度优化方法的有效性如何?

为了评估我们的无梯度优化方法在正确识别给定下游任务最合适的LoRA模块方面的有效性,我们使用WikiTableQuestions (Pasupat & Liang, 2015) (WTQ)数据集进行了实证研究。我们战略性地将一个专门在WTQ数据集上训练的LoRA模块包含到我们的LoRA候选模块池中,该模块最初源于Flan Collection独有的任务。随后,我们将WTQ指定为目标下游任务,并按照LoraHub学习中使用的方法计算权重。最终,特定于wtq的LoRA模块获得了最高的权重,这说明该算法成功地将其识别为最相关的模块。此外,组合LoRA模块比WTQ LoRA模块显示出边际优势。这强调了无梯度优化方法能够熟练地为未知任务选择最优的上游LoRA模块的主张。

LoraHub能在非指令调优模型上很好地工作吗?

在之前的调查中,我们主要关注的是通过指令调优训练的具有zero-shot能力的模型。然而,对于像T5这样没有zero-shot能力的模型,训练对参数的影响更大,目前尚不清楚LoraHub是否仍然可以有效地管理和改进它们。我们的实验表明,尽管这些模型的表现比FLANT5差,但LoraHub学习仍然可以使它们有效地泛化到看不见的任务。详见附录B。

LoRA模块的秩是否会影响LoraHub学习的性能?

参数秩在LoRA框架中起着至关重要的作用,直接影响LoRA调优过程中使用的可训练参数的数量。这引发了一个有趣的问题秩的变化是否会影响在LoraHub学习中观察到的结果?我们的分析表明,对于FLAN-T5,排名的选择影响最小。然而,对于T5来说,它仍然有一定的影响。实证结果表明,与秩4或64相比,秩为16在不同的运行中始终表现出卓越的性能,无论是在平均值还是最优值方面。其他结果见附录B。

更多的LoRA模块会带来更好的结果吗?

image.png
图3:LoRA模块数量对BBH中15个任务的影响,每个框分别从5次单独运行中获得。横轴表示在LoraHub学习中需要组成的LoRA模块的数量。
在我们的主要实验中,我们随机选择了20个LoRA模块进行LoraHub学习。因此,我们进行了实验来研究使用不同数量的LoRA模块的效果。结果表明,随着LoRA模块数量的增加,性能差异也会增加。然而,最大可实现性能也有所提高。更多方差分析和详细结果见附录G。

组合LoRA模块是否超出了单个模块的优势?

image.png
表3:基准BBH中所有任务中各种方法的平均性能。
我们承认在先前的工作中对跨任务性能的调查(Jang等人,2023),该研究深入研究了LoRA的能力,并提出了一种以LoRA模块检索为中心的新方法。为了保证公平的比较,我们进行了一个实验,我们设计了一个基于少量样本产生的损失的LoRA检索机制。具体来说,我们根据这个损失对所有的候选LoRA模块进行排名,并在未见任务的测试集中评估最佳候选模块。如表3所示,LoRA检索的性能令人印象深刻,将其定位为一个强大的基线。但是,与LoraHub相比,LoRA检索的性能相对较差。

7.结论

在这项工作中,我们介绍了LoraHub,这是一个战略框架,用于组合经过不同任务训练的LoRA模块,以便在新任务上实现自适应性能。我们的方法仅使用来自新任务的几个示例就可以实现多个LoRA模块的流畅组合,而不需要额外的模型参数或人工专业知识。在BBH基准上的实证结果表明,LoraHub可以在少数场景下有效地匹配上下文学习的性能,在推理过程中不需要上下文示例。总的来说,我们的工作显示了战略性LoRA可组合性的前景,可以使LLM快速适应各种任务。通过促进LoRA模块的重用和组合,我们可以在最小化培训成本的同时,努力实现更通用和适应性更强的LLM。

参考资料

论文下载

https://arxiv.org/abs/2307.13269
image.png

代码地址

https://github.com/sail-sg/lorahub

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【C++】开源:坐标转换和大地测量GeographicLib库配置使用

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍坐标转换和大地测量GeographicLib库配置使用。 无专精则不能成,无涉猎则不能通。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关…

【微信小程序开发实战项目】——个人中心页面的制作

👨‍💻个人主页:开发者-曼亿点 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 曼亿点 原创 👨‍💻 收录于专栏&#xff1a…

App Cleaner Uninstaller 8.3.0激活版 最佳卸载程序和清理助手

App Cleaner & Uninstaller 完全安全地删除 Mac 上的程序,删除应用程序的残留物,管理扩展程序和启动程序。 App Cleaner & Uninstaller 8.3.0激活版下载 卸载应用程序和所有不需要的垃圾文件 当您将应用程序拖放到废纸篓时,请检查您…

VS2019_新建窗体应用文件SOP

文章目录 1. 打开VS2. 创建新项目3. 选择Windows窗体应用4. 起名,选位置,框架版本选择4.5及之后,这里选的4.85. 新建完成 1. 打开VS 2. 创建新项目 3. 选择Windows窗体应用 注意要选.NET的 4. 起名,选位置,框架版本…

分布式IO模块软件配置

组态接口模块 1、打开网络视图 2、拖拽出ET200SP 3、双击ET200SP的图片,进入从站配置 总线适配器的组态更换 关于IO地址分配,需要建立好子网通信后,在主机上配置。 可以看到IP 和设备名 设备与控制器的Profinet连接 先找到设备名称再找…

Python股票计算小程序(字符串格式化练习)

要求:打印的第一行使用f控制,第二行打印使用占位符,股价输出保留两位小数。 # 股价计算小程序 name"周氏集团" stock_price19.99 stock_code "9283" stock_price_daily_growth_factor1.2 growth_days7print(f"公司…

tableau基本表的使用 - 6

基本表的使用 1. 基本表1.1 基本表的使用 2. 凸显表的使用2.1 使用一2.2 使用二2.3 二值凸显表 1. 基本表 1.1 基本表的使用 获取行 文本标签 2. 凸显表的使用 2.1 使用一 点击智能显示,点击凸显表 2.2 使用二 标记:方块记录数:颜色…

【深度学习基础】环境搭建 Linux报错bash: conda: command not found...

目录 一、 问题描述二、 解决方法1. 在.bashrc文件中添加环境变量2. 卸载重装anconda 三、总结 一、 问题描述 在linux环境下安装anaconda时候报错:bash: conda: command not found… 二、 解决方法 1. 在.bashrc文件中添加环境变量 参考链接:【解决】…

Temu是什么?Temu自养号测评有什么优势?

一、 Temu是什么?Temu是拼多多于海外线的跨境电商平台,“Temu”这个名字的含义也和拼多多的意思相近。Temu跨境电商自上线以来,下载量不断攀升,发展势头一片大好,击穿地板价的商品在欧美市场掀起了一阵狂潮&#xff0c…

SpringAOP的坑

AOP中几种常见的通知类型及其基本作用: Before:前置通知,在目标方法执行之前执行。After:后置通知,无论方法执行结果如何(包括异常),都会在目标方法执行之后执行。AfterReturning&a…

自动驾驶算法———车道检测(一)

“ 在本章中,我将指导您构建一个简单但有效的车道检测管道,并将其应用于Carla 模拟器中捕获的图像。管道将图像作为输入,并产生车道边界的数学模型作为输出。图像由行车记录仪(固定在车辆挡风玻璃后面的摄像头)捕获。…

原生APP开发的优势

原生APP开发是指使用特定的编程语言和开发工具,针对特定的操作系统平台进行开发的应用程序。相比于混合开发和Web开发,原生APP开发具有以下优势。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1. 性能更优 原…

单一设备上的 2 级自动驾驶:深入探究 Openpilot 的奥秘

Level 2 Autonomous Driving on a Single Device: Diving into the Devils of Openpilot 单一设备上的 2 级自动驾驶:深入探究 Openpilot 的奥秘 Abstract Equipped with a wide span of sensors, predominant autonomous driving solutions are becoming more m…

文件上传漏洞:upload-labs靶场安装和实践

一、upload-labs靶场安装 安装:Windows下的Upload-labs环境搭建(Upload文件夹不存在报错)_upload-labs文件夹不存在-CSDN博客 当安装好phpstudy之后,在网址栏输入:localhost或127.0.0.1,如果没问题,就将下…

重塑智慧生活想象 Yeelight易来举行2024年战略及新品发布会圆满成功

7月9日,智能照明品牌Yeelight易来在广州举行“光为境和无界”——2024年Yeelight易来战略&新品发布会,此次发布会不仅展示了易来在新的一年中取得的显著业绩增长,还发布了多款引领行业潮流的智能新品。同时,发布会还邀请了权威…

10、Python之写出更加Pythonic的代码:unpacking拆包机制

引言 有些小伙伴有其他编程语言的学习、使用的经验,然后迁移到Python。一般会比完全的新手小白,更快速地把Python用起来。这是他们的优势,但也是他们的劣势。 之所以这么说,是因为从其他编程语言带过来的,除了相通的编…

Gamma生成ppt替代软件推荐!这3款AI工具不容错过!

在各类信息层出不穷的当下,让信息以最有效的方式传递,已成为我们面临的一大挑战。而PPT作为一种广泛使用的信息展示工具,其设计和制作更是影响信息传递效果的关键。 想要制作出既吸引人又具有专业感的PPT,却发现这并非易事&#…

一站式短视频矩阵开发,高效托管!

短视频矩阵系统源码SaaS解决方案提供全面的开发服务,包括可视化视频编辑、矩阵式内容分发托管以及集成的多功能开发支持。 短视频矩阵:引爆您的数字营销革命 短视频矩阵系统是一套多功能集成解决方案,专为提升在短视频平台上的内容创作、管理…

职升网:考取中专文凭的途径主要有三种!

考取中专文凭的途径主要有三种:成人高考、网络教育和自学考试。以下是针对每种途径的详细解释和说明: 成人高考 适合人群:适合已经工作的成年人,特别是希望在工作之余提升学历的人群。 报考层次:可以选择高起专或高…

Transformer中的编码器和解码器结构有什么不同?

Transformer背后的核心概念:注意力机制;编码器-解码器结构;多头注意力等; 例如:The cat sat on the mat; 1、嵌入: 首先,模型将输入序列中的每个单词嵌入到一个高维向量中表示&…