Sparse Matrix in Large Language Model Fine-tuning
作者: Haoze He, Juncheng Billy Li, Xuan Jiang, Heather Miller
分类: cs.CL
发布日期: 2024-05-24 (更新: 2025-05-19)
备注: 14 pages
💡 一句话要点
提出稀疏矩阵微调(SMT)方法,缩小PEFT与全量微调的性能差距,并降低计算和内存成本。
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 稀疏矩阵微调 参数高效微调 大型语言模型 LoRA 梯度选择
📋 核心要点
- 参数高效微调(PEFT)方法虽然降低了计算成本,但与全量微调(FT)之间存在性能差距,需要进一步缩小。
- 论文提出稀疏矩阵微调(SMT)方法,通过选择并更新梯度更新中最重要的子矩阵,来提升PEFT的性能。
- 实验结果表明,SMT在多个任务上优于LoRA和DoRA等PEFT基线,并显著降低了GPU内存占用。
📝 摘要(中文)
LoRA及其变体因其避免过度计算成本的能力,已成为流行的参数高效微调(PEFT)方法。然而,PEFT方法与全量微调(FT)之间通常存在准确性差距,并且这种差距尚未得到系统地研究。本文提出了一种选择稀疏子矩阵的方法,旨在最小化PEFT与全量微调(FT)之间的性能差距,同时降低微调的计算成本和内存成本。我们的稀疏矩阵微调(SMT)方法首先识别梯度更新中最重要的子矩阵,然后在微调过程中仅更新这些块。在我们的实验中,我们证明了SMT在微调流行的LLM(如LLaMA)时,在广泛的任务中始终优于其他PEFT基线(例如LoRA和DoRA),同时与FT相比,减少了67%的GPU内存占用。我们还研究了LoRA和DoRA的性能如何随着可训练参数数量的增加而趋于稳定和下降,相比之下,我们的SMT方法没有受到此类问题的影响。
🔬 方法详解
问题定义:现有参数高效微调方法(如LoRA)虽然降低了计算成本,但与全量微调相比,在模型性能上存在差距。如何缩小这种性能差距,同时保持参数高效性,是一个重要的挑战。现有方法在增加可训练参数时,性能提升会趋于饱和甚至下降,限制了其应用范围。
核心思路:论文的核心思路是,并非所有参数的更新都对模型性能有同等重要的影响。通过识别并仅更新梯度更新中最重要的子矩阵,可以在减少计算和内存成本的同时,尽可能地接近全量微调的性能。这种稀疏更新策略能够更有效地利用计算资源,避免不必要的参数更新带来的干扰。
技术框架:SMT方法主要包含以下几个阶段:1) 重要性评估:对模型参数的梯度更新进行评估,识别出最重要的子矩阵(或参数块)。可以使用不同的指标来衡量重要性,例如梯度的大小、方差等。2) 稀疏选择:基于重要性评估的结果,选择一部分子矩阵进行更新,其余子矩阵保持不变。选择的比例是一个超参数,可以根据实际情况进行调整。3) 微调更新:在微调过程中,仅更新选定的子矩阵,使用标准的优化算法(如Adam)进行参数更新。4) 性能评估:在验证集上评估微调后的模型性能,并根据性能调整超参数,例如稀疏比例等。
关键创新:SMT方法的关键创新在于其稀疏更新策略。与LoRA等方法不同,SMT不是随机地选择一部分参数进行更新,而是基于梯度信息动态地选择最重要的参数子集。这种自适应的参数选择机制能够更有效地利用计算资源,提升模型性能。此外,SMT方法能够避免LoRA等方法在增加可训练参数时出现的性能饱和甚至下降的问题。
关键设计:SMT方法的关键设计包括:1) 重要性评估指标:选择合适的指标来衡量参数的重要性,例如梯度的大小、方差等。不同的指标可能会影响最终的性能。2) 稀疏比例:确定需要更新的子矩阵的比例。比例过小可能会导致性能下降,比例过大则会增加计算成本。3) 子矩阵大小:确定子矩阵的大小。较小的子矩阵可以更精细地控制更新,但也会增加计算复杂度。4) 更新策略:确定如何更新选定的子矩阵。可以使用标准的优化算法,也可以采用一些特殊的更新策略。
🖼️ 关键图片
📊 实验亮点
实验结果表明,SMT方法在微调LLaMA等大型语言模型时,在多个任务上始终优于LoRA和DoRA等PEFT基线。与全量微调相比,SMT方法能够减少67%的GPU内存占用,同时保持接近的性能。此外,SMT方法能够避免LoRA和DoRA等方法在增加可训练参数时出现的性能饱和甚至下降的问题。
🎯 应用场景
SMT方法可应用于各种大型语言模型的微调任务,尤其适用于资源受限的场景,如边缘设备或低算力服务器。该方法能够在保证模型性能的同时,显著降低计算和内存成本,加速模型部署和应用。未来,SMT方法可以进一步扩展到其他深度学习模型和任务中,例如图像识别、语音识别等。
📄 摘要(原文)
LoRA and its variants have become popular parameter-efficient fine-tuning (PEFT) methods due to their ability to avoid excessive computational costs. However, an accuracy gap often exists between PEFT methods and full fine-tuning (FT), and this gap has yet to be systematically studied. In this work, we introduce a method for selecting sparse sub-matrices that aim to minimize the performance gap between PEFT vs. full fine-tuning (FT) while also reducing both fine-tuning computational cost and memory cost. Our Sparse Matrix Tuning (SMT) method begins by identifying the most significant sub-matrices in the gradient update, updating only these blocks during the fine-tuning process. In our experiments, we demonstrate that SMT consistently surpasses other PEFT baseline (e.g. LoRA and DoRA) in fine-tuning popular large language models such as LLaMA across a broad spectrum of tasks, while reducing the GPU memory footprint by 67% compared to FT. We also examine how the performance of LoRA and DoRA tends to plateau and decline as the number of trainable parameters increases, in contrast, our SMT method does not suffer from such issue.