能像乐高一样组合,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)在不同数量的任务示例下的表现对比。

相关文章
|
2月前
|
机器学习/深度学习 自然语言处理 算法
RAPTOR:多模型融合+层次结构 = 检索性能提升20%,结果还更稳健
本文探讨了通过多模型集成技术提升信息检索系统性能的方法,重点介绍了RAPTOR框架。RAPTOR通过构建层次化的信息组织结构和递归摘要技术,显著提高了检索系统的性能和适应性。研究建立在RAG Fusion技术基础上,旨在提供更全面的信息检索解决方案。
192 2
RAPTOR:多模型融合+层次结构 = 检索性能提升20%,结果还更稳健
|
1月前
|
监控
SMoA: 基于稀疏混合架构的大语言模型协同优化框架
通过引入稀疏化和角色多样性,SMoA为大语言模型多代理系统的发展开辟了新的方向。
47 6
SMoA: 基于稀疏混合架构的大语言模型协同优化框架
|
1月前
|
机器学习/深度学习 自然语言处理 人机交互
综合RLHF、DPO、KTO优势,统一对齐框架UNA来了
在大型语言模型(LLM)的预训练中,尽管模型已接触数万亿个标记,但仍可能生成不符合预期的响应。为解决这一问题,研究者提出了RLHF、DPO和KTO等对齐技术。然而,这些技术各有局限。为此,论文《UNA: Unifying Alignments of RLHF/PPO, DPO and KTO by a Generalized Implicit Reward Function》提出了一种新的统一对齐方法UNA。UNA通过引入广义隐式奖励函数,成功将RLHF/PPO、DPO和KTO统一起来,简化了训练过程,提高了模型的鲁棒性和性能。
68 15
|
2月前
|
人工智能 前端开发
大模型体验体验报告:OpenAI-O1内置思维链和多个llm组合出的COT有啥区别?传统道家理论+中学生物理奥赛题测试,名不虚传还是名副其实?
一个月前,o1发布时,虽然让人提前体验,但自己并未进行测试。近期终于有机会使用,却仍忘记第一时间测试。本文通过两个测试案例展示了o1的强大能力:一是关于丹田及练气的详细解答,二是解决一道复杂的中学生物理奥赛题。o1的知识面广泛、推理迅速,令人印象深刻。未来,或许可以通过赋予o1更多能力,使其在更多领域发挥作用。如果你有好的测试题,欢迎留言,一起探索o1的潜力。
|
3月前
|
机器学习/深度学习 测试技术 数据处理
KAN专家混合模型在高性能时间序列预测中的应用:RMoK模型架构探析与Python代码实验
Kolmogorov-Arnold网络(KAN)作为一种多层感知器(MLP)的替代方案,为深度学习领域带来新可能。尽管初期测试显示KAN在时间序列预测中的表现不佳,近期提出的可逆KAN混合模型(RMoK)显著提升了其性能。RMoK结合了Wav-KAN、JacobiKAN和TaylorKAN等多种专家层,通过门控网络动态选择最适合的专家层,从而灵活应对各种时间序列模式。实验结果显示,RMoK在多个数据集上表现出色,尤其是在长期预测任务中。未来研究将进一步探索RMoK在不同领域的应用潜力及其与其他先进技术的结合。
111 4
|
6月前
|
JavaScript 前端开发
模块化(Modularization)是一种软件工程实践,旨在将大型、复杂的系统分割成一系列松散耦合、功能独立且具有明确定义接口的模块。
模块化简化复杂软件,通过划分独立模块提升代码可读性、维护性、复用性和扩展性。JavaScript模块化有多种方式:CommonJS(Node.js,`require()`/`module.exports`),AMD(RequireJS,异步加载,`define()`/`require()`),以及ES6 Modules(官方标准,`import`/`export`)。早期还有闭包和IIFE等非正式方法。现代工具如Webpack和Rollup处理兼容性问题,使模块化代码能在各种环境中运行。
86 0
|
7月前
|
机器学习/深度学习 搜索推荐 物联网
微软开源创新LoRA组合方法,增强文生图复杂细节控制
微软研究团队推出Multi-LoRA Composition技术,改善文本到图像模型的细节控制。利用低秩适应(LoRA)提升图像生成精度,通过LORA SWITCH和LORA COMPOSITE解决组合复杂图像的挑战。新方法在ComposLoRA平台上测试,性能优于基线,为图像生成和个性化内容创作开辟新途径。尽管有学习曲线和定制需求优化的问题,但该研究仍为领域带来显著进步。
435 3
微软开源创新LoRA组合方法,增强文生图复杂细节控制
|
7月前
|
机器学习/深度学习 算法 计算机视觉
YOLOv8 | 卷积模块 | 提高网络的灵活性和表征能力的动态卷积【附代码+小白可上手】
本教程介绍了如何在YOLOv8中使用动态卷积提升网络性能和灵活性。动态卷积利用注意力机制动态选择和组合卷积核,适应输入数据特征,解决了轻量级CNN的局限。文中提供了详细步骤教读者如何添加和修改代码,包括在`conv.py`中添加`Dynamic_conv2d`模块,更新`init.py`、`task.py`和`yaml`配置文件。此外,还分享了完整代码和进阶技巧,帮助深度学习初学者实践目标检测。参考[YOLOv8改进](https://blog.csdn.net/m0_67647321/category_12548649.html)专栏获取更多详情。
|
算法 搜索推荐 UED
转:说说排列组合算法在文档管理系统中的应用优势
在现代信息时代,随着数据量的不断增长,文档管理系统变得超级重要!就是在这样的背景下,排列组合算法展现出了在文档管理系统中的多种应用优势。这可是对于提高系统的效率和用户体验来说,简直太关键了!
68 0
|
机器学习/深度学习
结合亲和力提高了 28.7 倍,基于端到端贝叶斯语言模型的方法设计大型、多样化的高亲和力抗体库
结合亲和力提高了 28.7 倍,基于端到端贝叶斯语言模型的方法设计大型、多样化的高亲和力抗体库
132 0