能像乐高一样组合,LoraHub挖掘LoRA 模块化特性

简介: 能像乐高一样组合,LoraHub挖掘LoRA 模块化特性


编辑:Panda

低秩自适应(Low-Rank Adaptation, LoRA)是一种常用的微调技术,让基础 LLM 可以高效地适应具体任务。近日,来自新加坡 Sea AI Lab、圣路易斯华盛顿大学和艾伦人工智能研究所的研究者提出了一种新的 LoraHub 学习方法,可让 LLM 通过少量样本就能适应多种前所未见的新任务。研究者发布了 LoraHub 的代码以促进相关研究。

OpenAI GPT、Flan-T5 和 LLaMA 等大型预训练语言模型(LLM)极大的推动了自然语言处理(NLP)领域的发展。这些模型在许多 NLP 任务上都有绝佳表现。但是,由于这些模型都有大量参数,因此在微调时会涉及计算效率和内存使用量等问题。


低秩自适应(LoRA)就是一种可以缓解这些问题的高效微调技术。它能降低内存需求和计算成本,从而提升 LLM 训练速度。


LoRA 的做法是冻结基础模型(即 LLM)的参数,然后训练一个轻量级的辅助模块,并且这个模块通常在目标任务上能取得优良表现。


尽管之前已有研究探索过使用 LoRA 来提升效率,但少有人探究 LoRA 模块固有的模块化特性和可组合性。大体而言,之前的方法训练的 LoRA 模块都是专精于各个任务和领域。然而,LoRA 模块固有的模块化特性本身就具备一个有趣的研究问题:能否将 LoRA 模块用于将 LLM 高效地泛化用于未曾见过的任务?


这篇论文挖掘了 LoRA 的模块化特性在广泛围任务泛化方面的潜力,使之不再局限于单任务训练,通过精心构建 LoRA 模块使之在未知任务上也能取得一定性能。最重要的是,这种方法据称能实现 LoRA 模块的自动组合,从而无需再依赖人工设计或人类专家。只需从未曾见过的任务取少量示例,这种新方法就能自动编排兼容的 LoRA 模块,而无需人类干预。研究者并没有预设在具体任务上训练的哪些 LoRA 模块可以组合,而是符合规范(例如使用相同的 LLM)的模块都可以灵活地合并进来。由于该方法使用了多种可用的 LoRA 模块,因此研究者将其命名为 LoraHub,将新的学习方法称为 LoraHub 学习。



论文地址:https://arxiv.org/abs/2307.13269

代码地址:https://github.com/sail-sg/lorahub


他们也通过实验验证了新方法的效率,其中使用的基础 LLM 是 Flan-T5,评估基准是被广为认可的 BBH 基准。结果表明,通过一些少样本 LoraHub 学习过程,LoRA 模块组合就能高效地用于未曾见过的任务。值得注意的是,新方法获得的分数非常接近于少样本上下文学习的表现。


此外,相比于上下文学习,新方法还能显著降低推理成本,消除了 LLM 对示例输入的需求。这个学习过程还体现出了另一个重要优势,即计算效率;其使用了一种无梯度方法来获取 LoRA 模块的系数,并且对于未见过的任务只需少量推理步骤。举个例子,当在 BBH 基准上评估时,新方法使用单块 A100 在一分钟内就能取得更优的表现。


图 1:零样本学习、少样本上下文学习和新提出的少样本 LoraHub 学习。注意组合过程是基于每个任务执行的,而不是基于每个示例。新方法的推理吞吐量与零样本学习相近,而在 BIG-Bench Hard(BBH)基准上的性能表现接近上下文学习。


需要重点指出的是,LoraHub 学习在只有 CPU 的计算机上也能完成,毕竟它只需要熟练处理 LLM 推理。这种方法凭借其多功能性和稳健的性能表现,有望催生出一个平台,让用户可以毫不费力地共享和获取训练好的 LoRA 模块并将其用于新任务。研究者设想,通过这样一个平台,可培育一个包含无数功能的可复用 LoRA 模块库。这也能为协作式 AI 开发提供舞台,让社区能够通过动态 LoRA 组合来共同丰富 LLM 的能力。这种共享和复用模块的潜力可望实现在不同任务上的资源最优利用。


方法


如图 2 所示,研究者首先在多种上游任务上训练 LoRA 模块。具体来说,对于 N 个不同的上游任务,首先分别训练 N 个 LoRA 模块。然后,对于新任务(如图 2 中的布尔表达式),就使用该任务的示例来引导 LoraHub 学习过程。


图 2:新方法包含两个阶段:组合阶段(COMPOSE)和适应阶段(ADAPT)


组合阶段是通过一组权重系数将已有的 LoRA 模块整合成一个统一模块。适应阶段是使用未曾见过的任务的少量示例对合并得到的 LoRA 模块进行评估。然后,使用一个无梯度算法来优化上述权重。执行过几轮迭代后,会产生一个经过高度适应的 LoRA 模块,其可被集成到 LLM 中,用以执行目标任务。对该方法的详细数学描述请参阅原论文。


评估


研究者对新提出的方法进行了评估,其使用的 LLM 是 Flan-T5。


表 1 给出了实验数据,可以看到,新方法的功效接近零样本学习,同时在少样本场景中的性能表现又接近上下文学习。这一观察结论基于五次不同实验的平均结果。


表 1:零样本学习(Zero)、少样本上下文学习(ICL)和新提出的少样本 LoraHub 学习的性能表现对比。


需要重点指出,实验中,使用新方法的模型使用的 token 数量与零样本方法一样,明显少于上下文学习所用的 token 数。尽管性能表现偶尔会有波动变化,但新方法的表现在大多数实例中都优于零样本学习。新方法真正出彩的地方是其最优表现超越了上下文学习,但使用的 token 却更少。在 LLM 时代,推理成本与输入长度成正比,因此 LoraHub 能经济地利用输入 token 达到接近最佳性能的能力会越来越重要。


如图 3 所示,当未曾见过的任务的示例数量低于 20 时,新方法的表现大体上都优于 LoRA 微调。


图 3:传统微调(FFT)、LoRA 微调(LoRA)和新提出的 LoraHub 学习(Ours)在不同数量的任务示例下的表现对比。

相关文章
|
4月前
|
编解码 搜索推荐 UED
Sora的核心功能
【2月更文挑战第9天】Sora的核心功能
124 2
Sora的核心功能
|
1月前
|
人工智能 算法 前端开发
打破传统叙事逻辑,构建基于原子化任务的人机交互
在复杂中后台设计中,为解决配置变更影响多场景问题,提出结合正向和逆向信息架构,采用原子化任务,动态组合任务,降低用户和开发成本,优化体验并改变已有的产品迭代和人机交互模式。未来可能发展为AI自动根据业务规则和用户行为生成最佳方案。
|
2月前
|
机器学习/深度学习
现代深度学习框架问题之业务系统层面的广义控制流有哪些特性
现代深度学习框架问题之业务系统层面的广义控制流有哪些特性
|
3月前
|
缓存 Unix API
C标准库函数与Unbuffered I/O函数:平台间的差异与适用性
C标准库函数与Unbuffered I/O函数:平台间的差异与适用性
|
4月前
|
机器学习/深度学习 搜索推荐 物联网
微软开源创新LoRA组合方法,增强文生图复杂细节控制
微软研究团队推出Multi-LoRA Composition技术,改善文本到图像模型的细节控制。利用低秩适应(LoRA)提升图像生成精度,通过LORA SWITCH和LORA COMPOSITE解决组合复杂图像的挑战。新方法在ComposLoRA平台上测试,性能优于基线,为图像生成和个性化内容创作开辟新途径。尽管有学习曲线和定制需求优化的问题,但该研究仍为领域带来显著进步。
387 3
微软开源创新LoRA组合方法,增强文生图复杂细节控制
|
11月前
|
JSON 数据可视化 JavaScript
OneCode 基于“真实代码”代码的建模设计,无缝整合二次开发
在很多优秀的低代码平台中都支持了本地代码导出的设计,方便开发者二次集成,但能够导出的前提是已经通过低代码平台进行了初步的数据建模,界面绘制等基础性的操作。这些导出的代码虽然很大程度上减轻了开发者的代码量,但在项目的迭代过程中,遇到数据或需求变更。这些代码就又会成为开发者巨大的负担,重新由低代码平台建模会产生代码上的冲突无法解决,而重新用code编写这一步代码则又面临手工代码与“机器代码”的整合问题。而更为致命的问题是项目上线后,当直接用户希望通过低代码工具进行维护系统时更是“闪崩”。 本文将结合OneCode的底层编译原理来讲解 OneCode基于真实代码的建模解决方案。
|
PyTorch 算法框架/工具
pytorch诞生逻辑和演化过程
pytorch诞生逻辑和演化过程
82 0
|
机器学习/深度学习 Oracle 关系型数据库
华为团队开发组合贝叶斯优化框架,进行抗体计算机设计
华为团队开发组合贝叶斯优化框架,进行抗体计算机设计
148 0
|
机器学习/深度学习 数据采集 并行计算
脑补出新视角,一个统一的NeRF代码库框架已开源
脑补出新视角,一个统一的NeRF代码库框架已开源
309 0
|
安全 自动驾驶 中间件
为啥AUTOSAR自适应平台是一个安全的标准化软件框架
为啥AUTOSAR自适应平台是一个安全的标准化软件框架
为啥AUTOSAR自适应平台是一个安全的标准化软件框架