LoRA+:大型模型的高效低秩自适应

💡 原文中文,约1700字,阅读约需5分钟。
📝

内容提要

LoRA通过低秩矩阵注入减少微调参数量,性能媲美全参数微调且无额外推理延迟。后续研究不断优化:FLoRA支持多任务批处理,LoRA-FA降低内存,rsLoRA改进缩放因子,LoTR用张量分解提升参数效率,Delta-LoRA将学习传播至预训练权重,SoRA动态调整内在秩,MultiLoRA增强多任务适应性。

🔎

延伸解读

LoRA 变体的优化方向

文章梳理了多个 LoRA 改进工作,它们分别针对不同瓶颈:FLoRA 解决多任务批处理效率,LoRA-FA 降低内存占用,rsLoRA 调整缩放因子以提升训练效果,LoTR 利用张量分解提高参数效率,Delta-LoRA 将更新传播至预训练权重,SoRA 动态调整内在秩,MultiLoRA 增强多任务适应性。这些方向表明 LoRA 的优化并非单一维度,而是围绕效率、内存、多任务等实际需求展开。

效率与性能的权衡

这些改进方法在提升某方面效率的同时,往往需要付出其他代价。例如 rsLoRA 通过增加训练计算资源来换取更好的微调性能,而推理成本不变;SoRA 在保留 70% 参数和训练时间的情况下超越基准,体现了参数效率与性能的平衡。读者在选择方法时,需根据自身任务对训练资源、推理延迟和内存的限制进行权衡。

多任务适应性的进展

FLoRA 和 MultiLoRA 都致力于提升 LoRA 在多任务场景下的表现。FLoRA 通过将每个输入示例与独特的低秩适应权重关联,实现个性化适应,缓解了多适配器批处理的性能瓶颈;MultiLoRA 则通过减少顶层奇异向量的主导性,以仅增加 2.5% 参数的代价,在多个基准上优于单个 LoRA 和全参数微调。这些工作表明,多任务适应是 LoRA 优化的重要方向。

❓

Q&A

LoRA 是什么?它如何减少微调参数量?

LoRA(Low-Rank Adaptation)是一种参数高效微调方法,通过将可训练的低秩分解矩阵注入 Transformer 的每一层,大幅减少下游任务的可训练参数。其性能与全参数微调相当或更好,同时提高训练吞吐量且不增加推理延迟。

LoRA 有哪些后续改进方法?

后续改进包括:FLoRA 支持多任务批处理,LoRA-FA 降低内存,rsLoRA 改进缩放因子,LoTR 用张量分解提升参数效率,Delta-LoRA 将学习传播至预训练权重,SoRA 动态调整内在秩,MultiLoRA 增强多任务适应性。

FLoRA 解决了 LoRA 的什么问题?

FLoRA 通过将每个输入示例与其独特的低秩适应权重关联,实现个性化任务特定适应,从而缓解了 LoRA 在处理多个任务特定适配器时的性能瓶颈,支持对多样化和全球用户群体的实时请求进行批处理。

Delta-LoRA 与 LoRA 的主要区别是什么?

Delta-LoRA 不仅更新低秩矩阵 A 和 B,还通过两个低秩矩阵乘积的增量将学习传播到预训练权重 W,从而解决低秩矩阵增量更新对学习下游任务表示的不足。同时,它不需要计算 W 的梯度并存储其动量,因此与 LoRA 具有相当的内存需求和计算成本。

SoRA 如何提高 LoRA 的表现能力?

SoRA 通过引入稀疏低秩适应性,在适应过程中动态调整内在秩,并通过稀疏更新高效控制参数数量。实验表明,SoRA 在保留 70% 参数和训练时间的情况下,能够胜过其他基准模型。

MultiLoRA 如何提升多任务适应性?

MultiLoRA 通过减少 LoRA 中顶层奇异向量的主导性,水平扩展 LoRA 模块并改变适应矩阵的参数初始化,减少参数依赖性,产生更平衡的单元子空间,从而提升多任务适应性。它在多个基准和模型规模上优于单个 LoRA 和微调,仅需额外 2.5% 的参数。

🏷️

标签

➡️

继续阅读