Flora: 低秩适配器是隐形的梯度压缩器
内容提要
本文综述低秩适应(LoRA)微调技术进展。LoRA通过向Transformer层注入可训练低秩矩阵,减少下游任务参数,性能媲美全量微调且无额外推理延迟。后续研究提出FLoRA、SoRA、LoRA-FA、RunLoRA、LoTR等改进,分别实现多任务批处理、动态秩调整、低内存更新、训练加速与张量分解压缩,提升参数效率与训练速度。
延伸解读
LoRA 的核心优势与适用场景
LoRA 通过向 Transformer 层注入可训练的低秩矩阵,大幅减少下游任务的可训练参数,同时保持与全量微调相当甚至更好的性能,且不增加推理延迟。这使其特别适合 GPU 内存有限、需要快速适配多个下游任务的场景,例如多语言代码生成和多语种语音识别。
LoRA 的改进方向:效率与灵活性
后续研究从不同角度优化 LoRA:FLoRA 支持多任务批处理,SoRA 动态调整内在秩,LoRA-FA 降低内存占用,RunLoRA 提升训练速度,LoTR 通过张量分解进一步压缩参数。这些改进分别针对多任务适配、参数效率、内存和速度等实际瓶颈,读者可根据需求选择合适变体。
实际部署中的权衡与选择
不同 LoRA 变体在参数效率、训练速度和内存使用上各有侧重。例如,SoRA 在保留 70% 参数和训练时间的情况下超越基准,RunLoRA 在 Llama 系列上实现高达 17% 的加速。选择时需权衡任务多样性、硬件限制和性能要求,没有一种方法在所有场景下最优。
Q&A
LoRA 是什么?它如何减少微调参数?
LoRA(Low-Rank Adaptation)是一种参数高效微调方法,通过将可训练的低秩分解矩阵注入 Transformer 的每一层,大幅减少下游任务的可训练参数,同时性能与全量微调相当或更好,且不增加推理延迟。
LoRA 相比全量微调有哪些优势?
LoRA 具有更高的训练吞吐量、没有额外推理延迟,并且性能与全量微调相当或更好,同时显著减少了可训练参数和 GPU 内存占用。
FLoRA 框架解决了 LoRA 的什么问题?
FLoRA 通过将每个输入示例与其独特的低秩适应权重关联,实现个性化任务适应,从而缓解了 LoRA 在处理多个任务特定适配器时的性能瓶颈,支持对多样化用户实时请求的批处理。
SoRA 如何动态调整秩?效果如何?
SoRA 通过稀疏低秩适应方法,在适应过程中动态调整内在秩,并利用稀疏更新控制参数数量。实验表明,SoRA 在保留 70% 参数和训练时间的情况下,能胜过其他基准模型。
RunLoRA 能带来多少训练加速?
RunLoRA 是一个高效实现 LoRA 的框架,可显著提高神经网络训练和微调速度,在 Llama 系列模型中可实现高达 17% 的加速。
LoTR 与 LoRA 相比有什么优势?
LoTR 通过张量分解形式对参数进行梯度更新,构建每层的低秩适配器,尤其适用于深度模型。相比 LoRA,LoTR 具有更好的参数效率,且核心张量不依赖于原始权重维度,可以任意小,实现极为廉价快速的下游微调。