仅微调0.02%参数,性能接近全量微调!上交大推出高效微调统一新范式

ChouJay 投稿
量子位 | 公众号 QbitAI

Scaling Laws当道,但随着大模型应用的发展,基础模型不断扩大的参数也成了令开发者们头疼的问题。

为了减轻训练负担,Adapter、Prompt-Tuning以及LoRA等高效微调(Parameter Efficient Fine-Tuning, PEFT)算法越来越受到大家伙的青睐。

那么,问题来了——

尽管近年来高效微调领域发展迅速,涌现了多种方法,但不同PEFT方法背后的数学基础几乎没有得到深入研究。

此外,不同PEFT方法之间的性能差异及其原因尚未系统地探讨。这种理论深度的缺乏限制了研究者对这些方法潜在优势和局限性的理解,阻碍了它们在实际应用中的优化和创新。

为了解决这一问题,来自上海交通大学的研究者们在对各种PEFT方法进行全面数学分析后,提出了一种新的框架——子空间微调,旨在将所有已知的PEFT方法统一在一个理论下,

39badc49a08d4621b8ee0bb8fc2ec328.png

具体来说,子空间微调方法主要集中于调整原始参数的子空间,涉及子空间的重构和扩展。研究者深入探讨了不同方法如何操作子空间,并从分解理论的角度阐明了每种方法的数学原理。此外,研究者分析了为什么这些方法会导致性能差异,提供了理解不同PEFT策略内在动态的全面理论基础。

他们基于此提出了两种新的PEFT方法,新方法在仅微调0.02%参数的情况下,性能接近于全面微调

研究者还介绍了一个有效的框架,在不引入额外训练参数的情况下,提升了LoRA等方法的性能。通过在三种不同模型上测试超过十种方法,广泛的实验验证了其理论的稳健性,同时展示了提出的方法和框架的有效性。

897948e62c42a4d61e791717cfcb4b82.png

来看论文细节。

子空间微调理论

考虑任何给定主干网络层的冻结权重矩阵17b5fd660998eb801551afd078dbb2b7.png,其中n≤m,并用权重矩阵3717669236539780ac4258732da723d8.png的性能86299a5c587f221af2c0c8bf97fca1a2.png来量化模型的性能,值越高表示性能越好。

假设存在最优权重矩阵57e3d65a8236e562a1a7c0816702ca0b.png ,且c82cca0c043cd4b2bb7927c6d08d6c0d.png对所有c55cdbb8ff635e53fc832cc370f3ec4e.png成立。PEFT的目标公式化为:

db11382a6fbc32f1ec198b4ee3a830cb.png

其中90177fe387abf57debab40144b768382.png衡量两个矩阵之间的差异。函数0543b1c074c6d3699e21517125d15138.png被视为增量调优,表示对矩阵e1ca5ced8059f725949b907e11c79291.png的每个元素的修改,但这种表征过于笼统。

从分解理论的角度看,调整矩阵涉及修改其对应的子空间,因此,所有PEFT方法可视为子空间微调。

如此,优化的目标是找到ee26df288e597e7b7686a735a8ff0397.pngcedf145e6a1856ae689f16fe0e5c5151.png基所生成的子空间内的最大投影,然后将c02da6399be6685d8d8d27b98b7eebfc.png与其对齐。

有两种方法实现这一目标:通过调整ce8c48e5f7323846f9b1c61a90118432.png来逼近fe7e3bccffe75a11d136bbdf5b390f90.png,或操作f9bf819b226fa6b2709536674c399f03.png的子空间以接近或包含3302cd3017e28fc52b61370cf1be4634.png

研究者将函数9a973de771bddd01340af7d385c0b029.png分配给两个主要角色:直接重构对应6b86071a1c53bf42f08bbacb87cb0a39.png的子空间,以更好地对齐972a6b0496c8dccc6561d7827b970de6.png,或引入一个新子空间并与原始子空间结合。这些过程数学表示为:

e754b42ff7fde63861280c3124fd8306.png

其中,1ceb4caeac882bcd6842efe50ef5293e.png概括了fe37876fbd4ae8473ef078147b5476ca.png的子空间重构过程,43d9dcd9bccf894cae5e038628c9a668.png描述了子空间的联合。研究者将这些操作分别称为“子空间重构”和“子空间扩展”,并将现有方法分类为三类:

  1. 基于子空间重构的方法,将复杂空间分解为易理解的子空间,并调整这些派生子空间的基

  2. 基于子空间扩展的方法,引入一个新子空间,在新子空间和原始权重矩阵af9bec378526e62731df428f9a618338.png对应的子空间基所生成的空间内找到最优权重0810f94ba1ebd70c03c2ab4e34de9b57.png的最大投影;

  3. 基于子空间组合的方法,同时采用上述子空间调整。

9a2cee714016e8edb74c38d7f796feaf.png

子空间重构

基于先前概述的框架,子空间重构方法首先将1613aff09cd74402c077f2b9ed822404.png的空间分割为可解释的子空间,然后细化这些子空间以提高模型效率。许多PEFT策略集中于直接重构与原始权重矩阵相关的子空间,著名例子包括SAM-PARSER、Diff Pruning、(IA)3、BitFit、Prefix-tuning和Prompt-tuning等。

研究者从奇异值分解(SVD)开始探索,原始权重矩阵f91930adbaa71dec191697ba5acbf321.png被分解为正交子空间,涵盖了原始矩阵空间的全部。分解表示为375672027910f839cecc3e1145fd8da8.png,这种分解将9f79ce815fa1414ab1c9aa2f31b7dd3e.png分成左奇异向量d93d4970de1bfb8858f15540f89d06ef.png17b07204e08647248591d59d0ddd17d9.png列空间的正交基)、奇异值9664578be584db05a40920dd1c554007.png(调整维度和缩放)和右奇异向量47a2a7973bc921e55d733fcc0452fbde.pnga02e5a6b01aa45c3384468791c2de654.png行空间的正交基)。通过调整分解获得的子空间,可以重构原始空间,分为三种模式:

  1. 奇异值调整:调整004914152828053663298a962c4606ea.png中的奇异值,修改每个主成分的权重,而不影响子空间方向。

  2. 简单奇异向量调整:通过缩放生成的子空间来调整d1a5361e1b11f0fcecdd8444b58149a8.png110daa780307e7c68c42eafdd1fc6688.png中的奇异向量,保留方向特性,同时调整幅度。

  3. 复杂奇异向量调整:对奇异向量进行更复杂的变换,重新定向或重塑子空间,全面调整矩阵结构。

7448c190dd3e4e11483c9d053d9f3688.png

基于这一理论,研究者提出了两种新的微调方法:SSL(Scaling the Subspace of the Left singular vectors)和SSB(Scaling the Subspace of Both left and right singular vectors)。

从下图中可以看出,SSL最少只需要微调0.02%的参数,SSB最少只需要微调0.06%的参数,就能实现全量微调99%的性能

8058374d18b327adb46193254aa86b85.png

关于每种模式的具体操作、每种方法的具体内容、其背后的数学原理,以及研究者如何基于这一理论提出两种新方法的详细信息,请参阅原论文。

子空间扩展

基于扩展的方法引入新子空间,结合该新子空间和原始权重矩阵f4ba1d1f0b41ae699471fe7b0450976f.png的基生成扩展空间。

这些方法旨在找到最优权重f39618391b3e30bb2cdbf542b34160b2.png在新空间内的最接近投影,通过引入额外的权重矩阵来扩大原始子空间的基以覆盖更大维度区域。通常,这些方法的转换函数定义为aaba6e3de3bb8992fb6a22a4ce0633fd.png,其中s代表缩放因子,a4197ceed6191c2d942576ee1b5a630e.png对应于新子空间,也称为附加项。

考虑权重矩阵0f579dd14c5b2be5579b37a85100c282.png,假设n≤m。理想情况下,有6cb568eb8a2b21610f0085d9ab9415b4.png,即650ceef9dca8df6117642e365a0e8986.pnga2d2b322a4135d310807da0007e5daed.png占据相同的行和列空间,使它们定位在同一超平面内。

如果d05a51898e6e12a41aa71b7847a69566.png的秩为n,其列空间的维度等于n,生成44b209686bbf0a74b09451f10845374e.png子空间。若5597168f1f0d5e42c60e20a2c9f7a29d.png的秩小于n,它只能在d7e1188c8a787e52056eee3918137ae5.png内生成一个子空间。假设a9fd8a3a44b30c7ffb4d6acdf01c1fb4.pnge91391ac84a74a443ab63d88062d59ae.png的列空间基可以生成整个3e822a579ee875f0a07509d3788e716c.png空间,在最优情况下,7f7cfae19fb491d5c946748de53833b5.png的列基向量应补充b224480528a9ca66d38952d28ba89c75.png的列基,意味着de513748bd42cfc883d592db5e345d1d.png的列空间代表这些空间的直和。

一些研究表明,最优权重081292a16225d76539f48d86383611d9.png会放大原始权重矩阵中某些特定任务的方向,这些方向对于预训练并不关键。此外,最优权重还会调整625f7cd38ff62967554e3d48b12c2d25.png的主要方向。这些见解表明3f202940f03cd053111a64d0cf47208d.png可能与ec69433f7a50d9417742920c5a5948a2.png 的子空间共享大量共同基。因此,9bae78270fc74b71a0234c84fb1756c1.png可能只需考虑0d3c63fad79c861cc4033a8330223c76.png中缺少但0d943856e75fe3efdbc10e5caadbf845.png中存在的一小部分基,使ae69a73a06f5f695427ad5259bf6cf6c.png成为低秩矩阵。

实证研究表明,预训练模型的全参数微调通常可重新参数化为在低维子空间内优化,表明最优权重在这个受限的低秩子空间内变化。20acd13426eb1eedf44455a3fd22aed5.png的低秩特性突出了基于扩展方法的参数效率基础。

另一个关键方面是缩放因子s。基于扩展的方法目标是确定59adc93a9c652cd0eb0f3c1d1d424ce9.png082e4175cfaafd322e45b0a8092c4ed2.png2d59b71f4d4748a5274c675d9a8981ff.png形成的超平面内的最大投影,确保6996c5b8495ab737fa03a8205970cebe.png尽可能与ebc9f7e00efe58c1b12ddfa98d17a278.png方向对齐。给定固定的ad59e8625fc73285d3073ad085d39b40.pngb360c0dfa4320d6d12aa7d90e8f8d48b.png,只有一个s值能使 \be410ed248c4428413594002eb113ae3.png 的方向与5a0a09011725311f729ccb34d56949d9.png方向对齐,因此s值对性能的影响可能非常显著。

在参数高效微调中,有两大系列基于扩展的方法。第一系列是LoRA衍生,包括LoRA、AdaLoRA、TriLoRA、FLoRA、VeRA等。第二系列是适配器衍生,包括Adapter(H),Adapter(P),Parallel Adapter等。

在此基础之上,研究者提出了MPC框架,以进一步提升现有算法的性能。

从下图中可以看出,在不引入额外参数的情况下,MPC框架显著增强了各种PEFT方法的性能。

另外,MPC可以帮助PEFT方法实现更稳定的训练。与不使用MPC的方法相比,结合MPC的方法通常表现出更小的标准偏差。

关于这些方法的具体分析,LoRA和Adapter系列算法性能差异的原因,以及MPC框架的详细设计思路,请参阅原论文。

子空间组合

基于组合的方法同时执行子空间重构和扩展,结合了这两种方法的原理。

此外,对于某些方法,它们既可以分类为基于重构的方法,也可以分类为基于扩展的方法,研究者也将它们分类为基于组合的方法。研究者分析介绍几种代表性的基于组合的方法,如DoRA,Spectral Adapter和SVDiff等。

关于这些方法的具体细节请参阅原论文。

论文:https://arxiv.org/pdf/2407.05417
代码:https://github.com/Chongjie-Si/Subspace-Tuning

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值