目录
LoRA
SVD:简单的数学
SVF
更多 SVD 数学
PiSSA
首页 科技周边 人工智能 您是否仍在使用Lora来微调LLM?

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

Mar 14, 2025 am 10:34 AM

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

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1675
14
CakePHP 教程
1429
52
Laravel 教程
1333
25
PHP教程
1278
29
C# 教程
1257
24
如何使用AGNO框架构建多模式AI代理? 如何使用AGNO框架构建多模式AI代理? Apr 23, 2025 am 11:30 AM

在从事代理AI时,开发人员经常发现自己在速度,灵活性和资源效率之间进行权衡。我一直在探索代理AI框架,并遇到了Agno(以前是Phi-

OpenAI以GPT-4.1的重点转移,将编码和成本效率优先考虑 OpenAI以GPT-4.1的重点转移,将编码和成本效率优先考虑 Apr 16, 2025 am 11:37 AM

该版本包括三种不同的型号,GPT-4.1,GPT-4.1 MINI和GPT-4.1 NANO,标志着向大语言模型景观内的特定任务优化迈进。这些模型并未立即替换诸如

如何在SQL中添加列? - 分析Vidhya 如何在SQL中添加列? - 分析Vidhya Apr 17, 2025 am 11:43 AM

SQL的Alter表语句:动态地将列添加到数据库 在数据管理中,SQL的适应性至关重要。 需要即时调整数据库结构吗? Alter表语句是您的解决方案。本指南的详细信息添加了Colu

Andrew Ng的新简短课程 Andrew Ng的新简短课程 Apr 15, 2025 am 11:32 AM

解锁嵌入模型的力量:深入研究安德鲁·NG的新课程 想象一个未来,机器可以完全准确地理解和回答您的问题。 这不是科幻小说;多亏了AI的进步,它已成为R

火箭发射模拟和分析使用Rocketpy -Analytics Vidhya 火箭发射模拟和分析使用Rocketpy -Analytics Vidhya Apr 19, 2025 am 11:12 AM

模拟火箭发射的火箭发射:综合指南 本文指导您使用强大的Python库Rocketpy模拟高功率火箭发射。 我们将介绍从定义火箭组件到分析模拟的所有内容

Google揭示了下一个2025年云上最全面的代理策略 Google揭示了下一个2025年云上最全面的代理策略 Apr 15, 2025 am 11:14 AM

双子座是Google AI策略的基础 双子座是Google AI代理策略的基石,它利用其先进的多模式功能来处理和生成跨文本,图像,音频,视频和代码的响应。由DeepM开发

您可以自己3D打印的开源人形机器人:拥抱面孔购买花粉机器人技术 您可以自己3D打印的开源人形机器人:拥抱面孔购买花粉机器人技术 Apr 15, 2025 am 11:25 AM

“超级乐于宣布,我们正在购买花粉机器人,以将开源机器人带到世界上,” Hugging Face在X上说:“自从Remi Cadene加入Tesla以来,我们已成为开放机器人的最广泛使用的软件平台。

DeepCoder-14b:O3-Mini和O1的开源竞赛 DeepCoder-14b:O3-Mini和O1的开源竞赛 Apr 26, 2025 am 09:07 AM

在AI社区的重大发展中,Agentica和AI共同发布了一个名为DeepCoder-14B的开源AI编码模型。与OpenAI等封闭源竞争对手提供代码生成功能

See all articles