Outlier-weighed Layerwise Sampling for LLM Fine-tuning

📄 arXiv: 2405.18380v3 📥 PDF

作者: Pengxiang Li, Lu Yin, Xiaowei Gao, Shiwei Liu

分类: cs.LG, cs.AI, cs.CL

发布日期: 2024-05-28 (更新: 2025-06-09)

🔗 代码/项目: GITHUB


💡 一句话要点

提出Outlier-weighed Layerwise Sampling(OWS),用于高效微调大型语言模型,提升性能并降低内存需求。

🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 大型语言模型 参数高效微调 分层采样 异常值检测 梯度低秩投影 内存优化 模型微调

📋 核心要点

  1. 现有参数高效微调方法(如LoRA)虽然降低了内存需求,但通常牺牲了模型性能,无法达到全参数微调的效果。
  2. OWS通过分析LLM层间的异常值分布,对异常值较多的层赋予更高的采样概率,选择性地微调部分层,从而提高效率。
  3. 实验结果表明,OWS在多个基准测试中优于现有方法,包括全微调,并在降低内存需求的同时显著提升了模型性能。

📝 摘要(中文)

大型语言模型(LLMs)的快速发展彻底改变了各种自然语言处理任务。然而,LLMs的巨大规模给训练或微调带来了重大挑战。虽然像低秩适应(LoRA)这样的参数高效方法已经流行起来,但与全秩微调相比,它们通常会牺牲性能。在本文中,我们受到LLMs的逐层异常值分布的启发,提出了一种新的内存高效微调方法,即Outlier-weighed Layerwise Sampling(OWS)。与将额外适配器添加到所有层的LoRA不同,OWS策略性地为具有更多异常值的层分配更高的采样概率,有选择地采样一些层并微调其预训练权重。为了在不按比例增加内存成本的情况下进一步增加微调层的数量,我们结合了梯度低秩投影,进一步提升了该方法的性能。我们对包括LLaMa2和Mistral在内的各种架构进行了广泛的实验,表明OWS始终优于包括全微调在内的基线方法。具体而言,它在常识推理基准测试中实现了高达1.1%的平均准确率提升,在MMLU上实现了3.0%的提升,在MT-Bench上实现了显著的10%的提升,同时更节省内存。OWS允许我们仅用21GB的内存来微调7B LLMs。我们的代码可在https://github.com/pixeli99/OWS获得。

🔬 方法详解

问题定义:现有的大型语言模型微调方法,如全参数微调,需要大量的计算资源和内存。而参数高效微调方法,如LoRA,虽然降低了资源需求,但往往牺牲了模型性能。因此,如何在有限的计算资源下,尽可能地提升LLM的微调性能是一个关键问题。

核心思路:OWS的核心思路是基于LLM层间的异常值分布进行分层采样。作者观察到LLM的不同层对微调的贡献不同,某些层包含更多的“异常值”,这些层对模型性能的影响更大。因此,OWS策略性地对这些包含更多异常值的层赋予更高的采样概率,从而在有限的计算资源下,更有效地微调模型。

技术框架:OWS方法主要包含以下几个阶段:1) 异常值检测:首先,对LLM的每一层进行异常值检测,确定每一层的异常值数量或比例。2) 分层采样:根据每一层的异常值数量,计算每一层的采样概率。异常值越多的层,采样概率越高。3) 参数微调:根据采样概率,选择部分层进行参数微调。4) 梯度低秩投影:为了进一步提升性能,在微调过程中,采用梯度低秩投影技术,降低梯度计算的维度,从而在不显著增加内存消耗的情况下,提升微调效果。

关键创新:OWS的关键创新在于其基于层间异常值分布的分层采样策略。与传统的均匀采样或随机采样不同,OWS能够更有效地利用有限的计算资源,将更多的资源分配给对模型性能影响更大的层。此外,梯度低秩投影的引入进一步提升了微调效率。

关键设计:OWS的关键设计包括:1) 异常值度量:如何准确地度量每一层的异常值数量或比例。论文中可能采用了某种统计方法或距离度量来衡量。2) 采样概率计算:如何将异常值数量转化为采样概率。论文中可能采用了某种归一化或指数函数来计算。3) 梯度低秩投影:梯度低秩投影的具体实现方式,包括低秩矩阵的维度选择等。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

实验结果表明,OWS在多个基准测试中优于现有方法。例如,在Commonsense Reasoning基准测试中,OWS实现了高达1.1%的平均准确率提升;在MMLU上实现了3.0%的提升;在MT-Bench上实现了显著的10%的提升。此外,OWS允许仅用21GB的内存来微调7B LLMs,显著降低了内存需求。

🎯 应用场景

OWS方法可应用于各种需要微调大型语言模型的场景,尤其是在计算资源受限的情况下。例如,在边缘设备上部署LLM,或者在资源有限的实验室环境中进行LLM研究。该方法可以显著降低微调所需的内存和计算资源,同时保持甚至提升模型性能,加速LLM的落地应用。

📄 摘要(原文)

The rapid advancements in Large Language Models (LLMs) have revolutionized various natural language processing tasks. However, the substantial size of LLMs presents significant challenges in training or fine-tuning. While parameter-efficient approaches such as low-rank adaptation (LoRA) have gained popularity, they often compromise performance compared to full-rank fine-tuning. In this paper, we propose Outlier-weighed Layerwise Sampling (OWS), a new memory-efficient fine-tuning approach, inspired by the layerwise outlier distribution of LLMs. Unlike LoRA, which adds extra adapters to all layers, OWS strategically assigns higher sampling probabilities to layers with more outliers, selectively sampling only a few layers and fine-tuning their pre-trained weights. To further increase the number of fine-tuned layers without a proportional rise in memory costs, we incorporate gradient low-rank projection, further boosting the approach's performance. Our extensive experiments across various architectures, including LLaMa2 and Mistral, demonstrate that OWS consistently outperforms baseline approaches, including full fine-tuning. Specifically, it achieves up to a 1.1% average accuracy gain on the Commonsense Reasoning benchmark, a 3.0% improvement on MMLU, and a notable 10% boost on MT-Bench, while being more memory efficient. OWS allows us to fine-tune 7B LLMs with only 21GB of memory. Our code is available at https://github.com/pixeli99/OWS.