LoRAFusion: Efficient LoRA Fine-Tuning for LLMs
作者: Zhanda Zhu, Qidong Su, Yaoyao Ding, Kevin Song, Shang Wang, Gennady Pekhimenko
分类: cs.LG, cs.AI, cs.DC
发布日期: 2025-09-30
备注: Accepted by EuroSys 2026
🔗 代码/项目: GITHUB
💡 一句话要点
LoRAFusion:面向LLM的高效LoRA微调系统,加速单任务和多任务微调。
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: LoRA微调 参数高效微调 大语言模型 GPU优化 并发微调
📋 核心要点
- 现有LoRA微调系统存在冗余内存访问和无法并发微调多个LoRA适配器的低效问题,导致运行时开销大和性能提升受限。
- LoRAFusion通过图分割融合内存受限操作,消除不必要的内存访问,并采用自适应批处理算法实现多任务并发微调。
- 实验结果表明,LoRAFusion在端到端加速和内核性能方面均优于Megatron-LM和mLoRA,具有显著的性能提升。
📝 摘要(中文)
LoRA(Low-Rank Adaptation)已成为大语言模型(LLMs)参数高效微调(PEFT)的主流方法,它在显著降低GPU内存使用的同时,保持了下游任务上具有竞争力的微调模型质量。然而,现有LoRA微调系统存在两个关键低效之处。首先,由于对大型激活张量的冗余内存访问,它们会产生大量的运行时开销。其次,它们错失了在同一组GPU上并发微调多个共享相同基础模型的独立LoRA适配器的机会。这导致了性能提升的损失,例如减少流水线气泡、更好地重叠通信以及改善GPU负载平衡。为了解决这些问题,我们提出了LoRAFusion,一个面向LLM的高效LoRA微调系统。在内核级别,我们提出了一种图分割方法,该方法融合了内存受限的操作。这种设计消除了不必要的内存访问,并保留了计算受限GEMM的性能,而不会产生重新计算或同步的成本。在调度级别,LoRAFusion引入了一种自适应批处理算法,用于多任务微调。它首先将LoRA适配器分成几组,以有意地错开跨作业的批处理执行,然后解决每个组内的装箱问题,以生成平衡的、依赖感知的微批次。与Megatron-LM相比,LoRAFusion实现了高达1.96倍(平均1.47倍)的端到端加速,与最先进的多LoRA微调系统mLoRA相比,实现了高达1.46倍(平均1.29倍)的改进。我们的融合内核实现了高达1.39倍(平均1.27倍)的内核性能提升,可以直接作为现有LoRA系统中的即插即用替代品。我们在https://github.com/CentML/lorafusion开源了LoRAFusion。
🔬 方法详解
问题定义:现有LoRA微调系统在训练大型语言模型时,由于需要频繁访问内存中的激活张量,导致了显著的运行时开销。此外,现有系统无法有效地利用GPU资源,并发地微调多个独立的LoRA适配器,从而限制了整体的训练效率。这些问题使得LoRA在实际应用中面临性能瓶颈。
核心思路:LoRAFusion的核心思路是通过优化内核操作和调度策略来提高LoRA微调的效率。在内核层面,通过图分割方法融合内存受限的操作,减少不必要的内存访问。在调度层面,采用自适应批处理算法,实现多个LoRA适配器的并发微调,从而充分利用GPU资源。
技术框架:LoRAFusion包含两个主要模块:融合内核和自适应批处理调度器。融合内核通过图分割技术优化内存访问,提高计算效率。自适应批处理调度器将LoRA适配器分组,并使用装箱算法生成平衡的微批次,以实现并发微调。整体流程包括:输入LoRA适配器,分组,生成微批次,执行融合内核,更新LoRA参数。
关键创新:LoRAFusion的关键创新在于融合内核和自适应批处理调度器的协同设计。融合内核通过图分割技术,在不引入额外计算或同步开销的前提下,减少了内存访问。自适应批处理调度器通过智能分组和装箱算法,实现了多个LoRA适配器的并发微调,提高了GPU利用率。
关键设计:在融合内核中,关键设计在于确定哪些操作可以安全地融合,以及如何避免融合引入的额外开销。在自适应批处理调度器中,关键设计在于如何选择合适的分组策略和装箱算法,以实现负载均衡和最小化依赖关系。
🖼️ 关键图片
📊 实验亮点
LoRAFusion在实验中表现出色,与Megatron-LM相比,实现了高达1.96倍(平均1.47倍)的端到端加速。与最先进的多LoRA微调系统mLoRA相比,实现了高达1.46倍(平均1.29倍)的改进。融合内核本身也实现了高达1.39倍(平均1.27倍)的内核性能提升。
🎯 应用场景
LoRAFusion可广泛应用于各种需要对大型语言模型进行高效微调的场景,例如自然语言处理、机器翻译、文本生成等。它能够显著降低微调成本,提高开发效率,并加速模型的部署和应用。未来,LoRAFusion有望成为大模型微调的标准工具。
📄 摘要(原文)
Low-Rank Adaptation (LoRA) has become the leading Parameter-Efficient Fine-Tuning (PEFT) method for Large Language Models (LLMs), as it significantly reduces GPU memory usage while maintaining competitive fine-tuned model quality on downstream tasks. Despite these benefits, we identify two key inefficiencies in existing LoRA fine-tuning systems. First, they incur substantial runtime overhead due to redundant memory accesses on large activation tensors. Second, they miss the opportunity to concurrently fine-tune multiple independent LoRA adapters that share the same base model on the same set of GPUs. This leads to missed performance gains such as reduced pipeline bubbles, better communication overlap, and improved GPU load balance. To address these issues, we introduce LoRAFusion, an efficient LoRA fine-tuning system for LLMs. At the kernel level, we propose a graph-splitting method that fuses memory-bound operations. This design eliminates unnecessary memory accesses and preserves the performance of compute-bound GEMMs without incurring the cost of recomputation or synchronization. At the scheduling level, LoRAFusion introduces an adaptive batching algorithm for multi-job fine-tuning. It first splits LoRA adapters into groups to intentionally stagger batch execution across jobs, and then solves a bin-packing problem within each group to generate balanced, dependency-aware microbatches. LoRAFusion achieves up to $1.96\times$ ($1.47\times$ on average) end-to-end speedup compared to Megatron-LM, and up to $1.46\times$ ($1.29\times$ on average) improvement over mLoRA, the state-of-the-art multi-LoRA fine-tuning system. Our fused kernel achieves up to $1.39\times$ ($1.27\times$ on average) kernel performance improvement and can directly serve as a plug-and-play replacement in existing LoRA systems. We open-source LoRAFusion at https://github.com/CentML/lorafusion.