如何拯救LoRA初始化?LoRA-GA:性能显著提升+收敛速度更快!

发布于 2024-8-5 09:49
浏览
0收藏

如何拯救LoRA初始化?LoRA-GA:性能显著提升+收敛速度更快!-AI.x社区

文章链接:https://arxiv.org/pdf/2407.05000

亮点直击

  • 提出了LoRA-GA,一种新颖的 LoRA 初始化方法,通过近似低秩矩阵的梯度与全权重矩阵的梯度来加速收敛
  • 确定了在非零初始化下的缩放因子,该因子确保适配器输出的方差不受适配器的秩和输入维度的影响。
  • 通过广泛的实验验证了 LoRA-GA,证明了与原版 LoRA 相比,其性能显著提升且收敛速度更快。具体而言,LoRA-GA 在 T5-Base 的 GLUE 子集上比 LoRA 提高了 5.69%,在 Llama 2-7B 上在 MT-bench、GSM8K 和 HumanEval 上分别提高了 0.34%、11.52% 和 5.05%,同时实现了高达 2-4 倍的收敛速度提升。


微调大规模预训练模型在计算和内存成本方面是非常昂贵的。LoRA 作为最流行的参数高效微调 (PEFT) 方法之一,通过微调一个参数显著更少的辅助低秩模型,提供了一种成本有效的替代方案。尽管 LoRA 显著减少了每次迭代的计算和内存需求,但大量实证证据表明,与完全微调相比,它的收敛速度明显较慢,最终导致总体计算增加且测试性能往往较差。本文对 LoRA 的初始化方法进行了深入研究,并表明细致的初始化(不改变架构和训练算法)可以显著提高效率和性能。本文引入了一种新颖的初始化方法,LoRA-GA(带梯度近似的低秩适应),该方法在第一步将低秩矩阵乘积的梯度与完全微调的梯度对齐。广泛实验表明,LoRA-GA 达到了与完全微调相当的收敛速度(因此显著快于原版 LoRA 及其他各种最新改进方法),同时达到相当或更好的性能。例如,在 T5-Base 的 GLUE 数据集子集上,LoRA-GA 平均比 LoRA 提高了 5.69%。在更大的模型如 Llama 2-7B 上,LoRA-GA 在 MT-bench、GSM8K 和 Human-eval 上分别表现出 0.34%、11.52% 和 5.05% 的性能提升。此外,与原版 LoRA 相比,收敛速度提高了 2-4 倍,验证了其在加速收敛和提升模型性能方面的有效性。

如何拯救LoRA初始化?LoRA-GA:性能显著提升+收敛速度更快!-AI.x社区

方法

本节分析了 LoRA 的初始化并介绍了LoRA-GA。它包括两个关键组件,分别检查每个组件,并介绍它们在 LoRA-GA 中的整合。

  1. 近似全微调的梯度方向
  2. 确保初始化过程中的秩和Scale稳定性。

原版 LoRA 回顾

如何拯救LoRA初始化?LoRA-GA:性能显著提升+收敛速度更快!-AI.x社区


梯度近似

如何拯救LoRA初始化?LoRA-GA:性能显著提升+收敛速度更快!-AI.x社区

如何拯救LoRA初始化?LoRA-GA:性能显著提升+收敛速度更快!-AI.x社区

Scale稳定性

如何拯救LoRA初始化?LoRA-GA:性能显著提升+收敛速度更快!-AI.x社区

LoRA-GA 初始化

如何拯救LoRA初始化?LoRA-GA:性能显著提升+收敛速度更快!-AI.x社区

如何拯救LoRA初始化?LoRA-GA:性能显著提升+收敛速度更快!-AI.x社区

如何拯救LoRA初始化?LoRA-GA:性能显著提升+收敛速度更快!-AI.x社区

实验

本节中,评估了 LoRA-GA 在各种基准数据集上的性能。首先,使用 T5-Base 模型 在 GLUE 数据集 的一个子集上评估自然语言理解 (NLU) 能力。随后,使用 Llama 2-7B 模型评估对话、数学推理和编码能力。最后,进行消融研究以证明本文方法的有效性。


Baselines 将 LoRA-GA 与几个基线进行比较,以展示其有效性:

如何拯救LoRA初始化?LoRA-GA:性能显著提升+收敛速度更快!-AI.x社区

自然语言理解实验

模型与数据集 在 GLUE 基准的多个数据集上微调 T5-Base 模型,包括 MNLI、SST-2、CoLA、QNLI 和 MRPC。使用准确率作为主要指标,在开发集上评估性能。


实现细节 使用提示微调 (prompt tuning) 方法对 T5-Base 模型进行 GLUE 基准的微调。这涉及将标签转换为令牌(例如,“positive” 或 “negative”),并使用这些令牌的归一化概率作为分类的预测标签概率。每个实验使用 3 个不同的随机种子进行,并报告平均性能。


结果如下表 1 所示,LoRA-GA 一直优于原版 LoRA 和其他基线方法,取得了与完全微调相当的性能。特别是,LoRA-GA 在较小的数据集如 CoLA 和 MRPC 上表现突出,展示了其在有限训练数据下更快收敛和有效利用的能力。

如何拯救LoRA初始化?LoRA-GA:性能显著提升+收敛速度更快!-AI.x社区

大语言模型实验

模型与数据集 为了评估 LoRA-GA 的可扩展性,在三个任务上训练了 Llama 2-7B 模型:对话、数学和代码。

  1. 对话 (Chat):在 WizardLM的 52k 子集上训练模型,过滤掉以“作为 AI”或“对不起”开头的回应。在 MT-Bench 数据集上测试模型,该数据集由 80 个多轮问题组成,旨在评估大语言模型的多个方面。回答的质量由 GPT-4 进行评判,报告第一次回答的得分。
  2. 数学 (Math):在 MetaMathQA 的 100k 子集上训练模型,这个数据集从其他数学指令调整数据集(如 GSM8K和 MATH)中引导而来,具有更高的复杂性和多样性。选择从 GSM8K 训练集中引导的数据并应用过滤。准确率在 GSM8K 评估集上报告。
  3. 代码 (Code):在 Code-Feedback的 100k 子集上训练模型,这是一个高质量的代码指令数据集,去除代码块后的解释。模型在 HumanEval上进行测试,该数据集包含 180 个 Python 任务,报告 PASS@1 指标。


实现细节 本文的模型使用标准的监督学习进行语言建模训练。输入提示的损失设置为零。每个实验使用 3 个不同的随机种子进行,并报告这些运行的平均性能。


结果 结果如下表 2 所示,表明 LoRA-GA 优于或与其他方法相当,包括完全微调。具体而言,LoRA-GA 在 GSM8K 和 Human-eval 数据集上表现出色,突显了其在处理具有更高复杂性和多样性的任务方面的有效性。在 MT-Bench 上,LoRA-GA 也展现了竞争力的性能,尽管略微落后于 DoRA。然而,LoRA-GA 在参数较少且大约仅需 DoRA 70% 的训练时间的情况下实现了这些性能。此外,如下图 2(左)所示,本文的方法在收敛速率上显著快于原版 LoRA,其收敛速率与完全微调相当。

如何拯救LoRA初始化?LoRA-GA:性能显著提升+收敛速度更快!-AI.x社区

如何拯救LoRA初始化?LoRA-GA:性能显著提升+收敛速度更快!-AI.x社区

影响秩

将 GSM8K 和 Human-eval 数据集上的性能差异(与完全微调相比)主要归因于低秩近似所带来的表示限制。为了解决这个问题,尝试了更高的秩设置,具体为秩=32 和秩=128。发现表明,LoRA-GA 在不同秩设置下保持稳定,并且在某些情况下,甚至超越了完全微调的性能。如图 2(左)所示,初始化方法下更高的秩也导致了与完全微调相似的损失曲线。

消融研究

研究者们进行了消融研究,以评估 LoRA-GA 中非零初始化、稳定输出和梯度近似的贡献,使用了五种不同的实验设置。每个设置的详细信息见下表 3。

如何拯救LoRA初始化?LoRA-GA:性能显著提升+收敛速度更快!-AI.x社区

消融结果

结果如下表 4 和表 6 所示。对于小型和大型模型,观察到,仅将 LoRA 的初始化更改为高斯初始化并未带来性能提升,甚至可能导致轻微的性能下降。然而,当与“+SO”(稳定输出)或“+GA”(梯度近似)结合使用时,性能优于 LoRA。LoRA-GA,结合了这两种技术,表现优于其他方法。如上图 2(左)和下图 4 所示,+SO 和 +GA 也提高了收敛速度,并且当两者结合时,训练损失曲线甚至更接近完全微调的曲线。这表明,输出稳定性和梯度近似都对 LoRA 的改进有所贡献,各自解决了模型性能的不同方面。

如何拯救LoRA初始化?LoRA-GA:性能显著提升+收敛速度更快!-AI.x社区

如何拯救LoRA初始化?LoRA-GA:性能显著提升+收敛速度更快!-AI.x社区

如何拯救LoRA初始化?LoRA-GA:性能显著提升+收敛速度更快!-AI.x社区

内存成本和运行时间

研究者们在单个 RTX 3090 24GB GPU、128 核 CPU 和 256GB RAM 上对 LoRA-GA 进行了基准测试。如下表 5 所示,本文的新方法的内存消耗不超过 LoRA 训练时的内存消耗,表明没有额外的内存需求。此外,与后续的微调过程相比,这项操作的时间成本相对微不足道。例如,在 Code-Feedback 任务中,训练过程大约花费了 10 小时,而初始化仅需约 1 分钟,这一时间差异可以忽略不计。

如何拯救LoRA初始化?LoRA-GA:性能显著提升+收敛速度更快!-AI.x社区

结论

本文提出了一种用于LoRA的新初始化方案,旨在加速其收敛。通过研究 LoRA 的初始化方法和更新过程,开发了一种新初始化方法——LoRA-GA,该方法从第一步起就将低秩矩阵乘积的梯度近似为完全微调的梯度。


通过大量实验,展示了 LoRA-GA 能够实现与完全微调相当的收敛速度,同时提供类似或更优的性能。由于 LoRA-GA 仅修改了 LoRA 的初始化,而未改变架构或训练算法,它提供了一种高效且易于实施的方法。此外,它还可以与其他 LoRA 变体结合使用。例如,ReLoRA 定期将适配器合并到冻结权重 W 中,这可能使 LoRA-GA 在更多步骤中展现其优势。将此作为一个有趣的未来研究方向。


本文转自 AI生成未来 ,作者:Shaowen Wang


原文链接:​​https://mp.weixin.qq.com/s/JfgiVue2-oSZPQb3Qu72WQ​


已于2024-8-5 09:50:34修改
收藏
回复
举报
回复
相关推荐