首页 > 科技周边 > 人工智能 > 您是否仍在使用Lora来微调LLM?

您是否仍在使用Lora来微调LLM?

Mary-Kate Olsen
发布: 2025-03-14 10:34:09
原创
948 人浏览过

LoRA (低秩自适应 - arxiv.org/abs/2106.09685) 是一种经济高效微调大型语言模型 (LLM) 的流行技术。但 2024 年涌现出大量新的参数高效微调技术,各种 LoRA 替代方案层出不穷:SVF、SVFT、MiLoRA、PiSSA、LoRA-XS ?…… 其中大多数都基于我非常喜欢的一种矩阵技术:奇异值分解 (SVD)。让我们深入探讨。

LoRA

LoRA 的最初见解是,微调模型的所有权重是过度操作。相反,LoRA 冻结模型,只训练一对小的低秩“适配器”矩阵。请参见下面的插图(其中 W 是 Transformer LLM 中任何权重矩阵)。

Are You Still Using LoRA to Fine-Tune Your LLM?由于需要计算和存储的梯度要少得多,因此可以节省内存和计算周期。例如,这是一个使用 LoRA 微调以模拟海盗说话方式的 Gemma 8B 模型:只有 2200 万个参数可训练,85 亿个参数保持冻结状态。

Are You Still Using LoRA to Fine-Tune Your LLM?LoRA 非常流行。它甚至已作为单行 API 进入 Keras 等主流 ML 框架:

<code>gemma.backbone.enable_lora(rank=8)</code>
登录后复制

但是 LoRA 是最好的吗?研究人员一直在努力改进该公式。实际上,选择较小的“适配器”矩阵的方法有很多种。由于它们大多数巧妙地利用了矩阵的奇异值分解 (SVD),让我们暂停一下,进行一些数学运算。

SVD:简单的数学

SVD 是理解矩阵结构的一个好工具。该技术将矩阵分解为三个:W = USVT,其中 U 和 V 是正交的(即基变换),S 是排序的奇异值的对角矩阵。这种分解总是存在的。

Are You Still Using LoRA to Fine-Tune Your LLM?在“教科书式”SVD 中,U 和 V 是方阵,而 S 是一个矩形矩阵,对角线上是奇异值,后面是零。实际上,您可以使用方阵 S 和矩形 U 或 V——参见图片——截断的部分只是乘以零。这种“经济型”SVD 是常用库(例如 numpy.linalg.svd)中使用的。

那么我们如何利用这一点更有效地选择要训练的权重呢?让我们快速浏览五种最近基于 SVD 的低秩微调技术,并附带注释说明。

SVF

LoRA 最简单的替代方法是对模型的权重矩阵使用 SVD,然后直接微调奇异值。奇怪的是,这是最新的技术,称为 SVF,发表在 Transformers² 论文中 (arxiv.org/abs/2501.06252v2)。

Are You Still Using LoRA to Fine-Tune Your LLM?SVF 在参数方面比 LoRA 经济得多。此外,它使微调模型具有可组合性。有关这方面的更多信息,请参见此处我的 Transformers² 说明,但是组合两个 SVF 微调模型只是一个加法运算:

Are You Still Using LoRA to Fine-Tune Your LLM?SVFT

如果您需要更多可训练参数,SVFT 论文 (arxiv.org/abs/2405.19597) 探讨了多种方法,首先是在对角线上添加更多可训练权重。

Are You Still Using LoRA to Fine-Tune Your LLM?它还评估了其他多种替代方案,例如将它们随机分散到“M”矩阵中。

Are You Still Using LoRA to Fine-Tune Your LLM?更重要的是,SVFT 论文证实,拥有比对角线更多的可训练值是有用的。请参见下面的微调结果。

Are You Still Using LoRA to Fine-Tune Your LLM?接下来是几种将奇异值分成两组“大”和“小”的技术。但在我们继续之前,让我们暂停一下,进行更多 SVD 数学运算。

更多 SVD 数学

SVD 通常被视为分解成三个矩阵 W=USVT,但它也可以被认为是许多秩 1 矩阵的加权和,由奇异值加权:

Are You Still Using LoRA to Fine-Tune Your LLM?如果您想证明这一点,请一方面使用 USVT 形式和矩阵乘法的公式来表达单个矩阵元素 Wjk,另一方面使用 Σ siuiviT 形式,使用 S 是对角线的事实进行简化,并注意它是一样的。

在此表示中,很容易看出您可以将总和分成两部分。并且由于您可以始终对奇异值进行排序,因此您可以将其分成“大”和“小”奇异值。

回到三矩阵形式 W=USVT,这就是分割的样子:

Are You Still Using LoRA to Fine-Tune Your LLM?基于此公式,两篇论文探讨了如果您只调整大的奇异值或只调整小的奇异值会发生什么,即 PiSSA 和 MiLoRA。

PiSSA

PiSSA(主奇异值和奇异向量自适应,arxiv.org/abs/2404.02948)声称您应该只调整大的主值。机制如下所示:

Are You Still Using LoRA to Fine-Tune Your LLM?摘自论文:“PiSSA 旨在通过调整主要奇异分量来近似完全微调,这些分量被认为捕捉了权重矩阵的本质。相反,MiLoRA 旨在适应新任务,同时最大限度地保留基础模型的知识。”

PiSSA 论文还有一个有趣的发现:完全微调容易过度拟合。使用低秩微调技术,您可能会在绝对值上获得更好的结果。

Are You Still Using LoRA to Fine-Tune Your LLM?MiLoRA

另一方面,MiLoRA(次要奇异分量 LoRA arxiv.org/abs/2406.09044)声称您应该只调整小的主值。它使用与 PiSSA 类似的机制:

Are You Still Using LoRA to Fine-Tune Your LLM?令人惊讶的是,MiLoRA 似乎占据了上风,至少在微调数学数据集时是这样,这些数据集可能与原始预训练相当一致。可以说,PiSSA 应该更适合将 LLM 的行为从其预训练中进一步弯曲。

Are You Still Using LoRA to Fine-Tune Your LLM?LoRA-XS

最后,我想提到 LoRA-XS (arxiv.org/abs/2405.17604)。与 PiSSA 非常相似,但机制略有不同。它还显示出比 LoRA 少得多的参数也能获得良好的结果。

Are You Still Using LoRA to Fine-Tune Your LLM?该论文提供了数学解释,说明在两种情况下这种设置是“理想的”:

  • 从 SVD 中截断底部的主要值仍然可以很好地近似权重矩阵
  • 微调数据分布接近预训练数据分布

在我看来,两者都值得怀疑,所以我不会详细介绍数学。一些结果:

Are You Still Using LoRA to Fine-Tune Your LLM?根本假设似乎是奇异值分为“大”和“小”两种,但事实是这样吗?我在 Colab 上快速检查了 Gemma2 9B。底线:99% 的奇异值在 0.1 – 1.1 范围内。我不确定将它们分成“大”和“小”是否有意义。

Are You Still Using LoRA to Fine-Tune Your LLM?结论

还有许多其他参数高效的微调技术。值得一提的是:

  • DoRA (arxiv.org/abs/2402.09353),它将权重分成大小和方向,然后调整这些权重。
  • AdaLoRA (arxiv.org/abs/2303.10512),它具有复杂的机制,可以为给定的可训练权重预算找到最佳调整秩。

我的结论:为了超越具有 10 倍参数的 LoRA 标准,我喜欢 Transformers² 的 SVF 的简单性。如果您需要更多可训练权重,SVFT 是一种简单的扩展。两者都使用所有奇异值(全秩,无奇异值修剪),并且仍然很便宜?。祝您微调愉快!

注意:所有插图均由作者创作或从 arxiv.org 论文中提取,用于评论和讨论。

以上是您是否仍在使用Lora来微调LLM?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板