2021年6月17日 LoRA: LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS
2023年8月7日 LoRA-FA: Memory-efficient Low-rank Adaptation for Large Language Models Fine-tuning
2023年9月5日 Delta-LoRA:Delta-LoRA: Fine-Tuning High-Rank Parameters with the Delta of Low-Rank Matrices
2023年9月21日 LongLoRA: Efficient Fine-tuning of Long-Context Large Language Models
2023年10月17日 VeRA: Vector-based Random Matrix Adaptation
2023年12月20日 AdaLoRA:https://arxiv.org/pdf/2303.10512
2024年6月18日 LoRA-drop:LoRA-drop: Efficient LoRA Parameter Pruning based on Output Evaluation
2024年2月14日 DoRA:DoRA: Weight-Decomposed Low-Rank Adaptation
2024年7月 LoRA+: LoRA+: Efficient Low Rank Adaptation of Large Models
https://zhuanlan.zhihu.com/p/683368968
2025年1月21日 EDoRA: Efficient Weight-Decomposed Low-Rank Adaptation via Singular Value Decomposition
1、LoRA
方案优势:只有一个超参数r,且超参数对模型效果影响较小。
论文地址:https://arxiv.org/abs/2106.09685
发表时间:2021年6月17日
1.1 方法概述
在原有的参数旁,新增一个低秩分解的通路A、B,其中秩为r(r远小于n1、n2)。矩阵A进行高斯分布初始化,矩阵B进行全0初始化。额外有一个参数a,用于控制初始化参数的缩放。
公式定义如下:
∆
W
x
=
B
A
∆W_x=BA
∆Wx=BA 按α/r进行缩放,其中α是关于r的常数。在使用Adam优化器时,如果我们对初始化进行了适当缩放,调整α大致等同于调整学习率。
1.2 有益效果
与同类方法相比,可以发现LoRA的效果在不同参数规模下的模型近乎超过FT,同时训练的参数远低于FT理论上FT效果会更好,但需要更多的训练资源
。
同时与Adpt、BitFit等少量参数微调方法相比:
* 在小规模的模型(参数100M左右)上,LoRA方法能高2个点的差异;
* 在中规模的模型(参数350M左右)上,LoRA的优势比起Adpt仅高1个点左右
* 在大规模的模型(参数1G以上)上,作者没有给出Adpt的对比效果,预计跟LoRA模型效果是相同的。
基于论文中的图表也可以发现,在GPT模型(大模型)上,Adap方法在极少参数微调上,效率不如LoRA。但在微调参数增加后,LoRA的优势不明显。
在LoRA与其他方法的对比中,也可以发现LoRA的优势不是在于精度保持好(个别情况下Adap方法也可以达到LoRA模型的效果),而是效果稳定。
1.3 算法参数
LoRA有个关键参数r,通过论文中图表可以发现,调整r对结果影响比较小。
同时与其他微调方法相比,可以发现超参数对LoRA效果影响不大;而Adap、Prefix等方法受超参数影响较大。
2、LoRA-FA
论文地址:LORA-FA: MEMORY-EFFICIENT LOW-RANK ADAPTA-TION FOR LARGE LANGUAGE MODELS FINE-TUNING
发表时间:2023年8月7日
提出背景: 减少LoRA层数或采用激活重计算策略,可能损害微调性能或增加计算开销。能否在LoRA的基础上对显存利用再次进行优化
优化方案:
通过冻结每层LoRA中矩阵A的降维投影权重,仅更新矩阵B的升维投影权重,在保证模型权重变化始终处于低秩空间的同时,消除了存储全秩输入激活值的必要性。
2.1 方法概述
该方法在每层LoRA结构中冻结降维投影权重A,仅更新升维投影权重B。这一设计确保模型权重变化始终处于低秩空间,同时消除了存储全秩输入激活值的必要性。在多种模型类型(RoBERTa、T5、LLaMA)和不同规模上进行了广泛实验,结果表明:相较于全参数微调和标准LoRA方法,LoRA-FA在各类任务中均能保持相近的微调精度;相比LoRA方法,其总体内存消耗最高可降低40%(即减少至原需求的1/1.4倍)。
2.2 有益效果
精度影响
作者通过三个模型的效果对比,证明LoRA与LoRA-FA保持相同的性能。
ROBERTA 模型效果
T5 SMALL/BASE/LARGE 模型效果
LLAMA 模型效果
收敛速度
整体来看,LoRA-FA存在前10个step收敛速度偏慢的情况
显存需求
通过论文实际数据可以发现,LoRA-FA并不能节省LoRA 40%的显存,实际是在20~30%左右,也就是2 ~ 5g左右的显存。当显存实在不够,基于LoRA无法满足,可以尝试LoRA-FA。
2.3 算法参数
LoRA-FA与LoRA一样享有相同的超参数,但训练参数少了一半。预计在复杂任务上,LoRA-FA的效果收敛速度会不如LoRA,或者在精度上不如LoRA。
3、Delta-LoRA
论文地址:https://arxiv.org/abs/2309.02411
发表时间:2023年9月5日
提出背景:
低秩矩阵增量更新不足以学习适用于下游任务的表征这一局限性
优化方案:
Delta-LoRA不仅更新低秩矩阵A和B,还通过利用两个低秩矩阵乘积的增量(
)将学习效果传递至预训练权重W
3.1 方法概述
如图1和图2所示,Delta-LoRA包含两个关键设计:
- (i) 它在利用增量更新产生的差值(A(t+1)B(t+1) − A(t)B(t))来优化预训练权重(W)的同时,同步更新完整权重矩阵(W)及两个低秩自适应矩阵(A和B);
- (ii) Delta-LoRA移除了传统LoRA模块中原有的Dropout层。这一设计源于研究发现该层的存在会破坏∂L/∂W = ∂L/∂AB这一必要假设条件。
Delta-LoRA基于AB矩阵的梯度差异更新W,
3.2 有益效果
Delta-LoRA取得了超越LoRA、AdaLoRA的效果。同时证明AdaLoRA不如LoRA(这表面在个别任务上削减rank参数会降低效果)。
同时,论文还表明lora微调参数过小,无法接近FT局部参数(微调embedding layer【参数量与效果上都解决全量微调】,微调QV参数,能取得适中效果)的效果
Delta-LoRA展示的都是lora技术在小模型上的微调效果。表明了Delta-LoRA提升了小模型上的微调优势,应用价值或许不大。
3.3 算法参数
Delta-LoRA技术只是定义了一个参数更新规则,没有额外参数。其论文消融实验部分并没有超参数实验。
这里主要展示了Delta-LoRA技术对QV矩阵的微调能力。
4、LongLoRA
论文地址:https://arxiv.org/abs/2309.12307
发表时间:2023年9月21日
提出背景:
1、常规的LoRA方法在应用到长上下文后,精度上限明显,无法追平与FT的效果差异;
2、长上下文的模型训练要求高,需要一个方法能在有限计算成本下扩展预训练大语言模型(LLMs)的上下文长度
优化方案:
从两个方面加速LLMs的上下文扩展:一方面,尽管推理时需要密集的全局注意力,但模型微调可以高效地通过稀疏局部注意力完成
。我们提出的移位稀疏注意力(S2-Attn)能有效实现上下文扩展,在保持相近性能的同时带来显著的计算节省
。特别地,该方法在训练中仅需两行代码即可实现,而在推理时可选使用;另一方面,我们发现当可训练嵌入层和归一化层存在时,LoRA方法能很好地实现上下文扩展
。
4.1 方法概述
LongLoRA通过采用S2-Attn技术,将LoRA的训练速度提升了最高达1.8倍。该模型在推理阶段仍保持原有的标准自注意力机制。除了对线性层中的LoRA权重进行训练外,LongLoRA还进一步使嵌入层和归一化层可训练。这一扩展对于上下文扩展至关重要,并且仅引入了极少量的额外可训练参数。
S2-Attn包含三个步骤:
- 首先,将特征沿头维度划分为两个部分。
- 其次,对其中一个部分中的标记进行半个组大小的位移操作。
- 第三,我们将标记分组并重塑为批量维度。
在我们的方法中,注意力仅在各组内部进行计算,而组间的信息流动则通过位移操作实现。虽然位移操作可能会引入潜在的信息泄露,但只需对注意力掩码进行简单修改即可轻松避免这一问题。我们在附录B.3的变体2中对这一点进行了消融实验验证。
具体python实现如下
**在长上下文中,LoRA的效果下降显著。Norm 、Embed占据的参数量有限,却能对长上下文适应产生效果。为弥合这一差距,我们开放了嵌入层和归一化层的训练权限。**尤其是对于归一化层而言,在整个Llama2 7B模型中,其参数量仅占0.004%。在实验中,我们将这种改进版的LoRA称为LoRA +。
4.2 有益效果
基于对attention的优化, LongLoRA降低模型训练的显存需求,并提升了训练速度。
加粗样式
4.3 算法参数
LongLoRA相比于常规LoRA只是附加了attention的显存优化,多出来的参数为对应公式里面的G(group size),G/2为qkv参数shift的步长。
5、VeRA
https://arxiv.org/pdf/2303.10512
论文地址:https://arxiv.org/abs/2310.11454
发表时间:2023年10月17日
提出背景: 低秩自适应(LoRA)是一种在微调大语言模型时减少可训练参数数量的流行方法,但在扩展到更大规模模型或部署大量用户/任务定制化模型时仍面临严峻的存储挑战。【与LoRA-FA相同】
**优化方案: ** 提出基于向量的随机矩阵自适应方法(VeRA),相比LoRA能显著减少可训练参数数量,同时保持同等性能表现。该方法通过共享所有层间的一组低秩矩阵,并改而学习小型缩放向量来实现这一目标。
5.1 方法概述
LoRA(左)与VeRA(右)的示意图对比。LoRA通过训练低秩矩阵A和B(中间秩为r)来更新权重矩阵W;而在VeRA中,这些矩阵被冻结并在所有层间共享,转而采用可训练向量d和b进行适配,从而大幅减少可训练参数的数量。两种方法中,低秩矩阵和向量均可合并回原始权重矩阵W,不会引入额外延迟。
A和B是冻结的、随机初始化的,并在所有层之间共享,而缩放向量b和d是可训练的,并以对角矩阵Λb和Λd的形式正式表示。这种方法可以有效地对A和B的行和列进行缩放和禁用,从而以最少的可训练参数实现逐层自适应。 在推理时,每一个layer对应的b与d可以合并到对应的A、B矩阵中,实现与LoRA完全等效的结果
对冻结的低秩矩阵A和B采用Kaiming初始化。通过基于矩阵维度进行数值缩放,该方法能确保矩阵A与B的乘积在所有秩(rank)下保持一致的方差,从而无需针对每个秩单独调整学习率。
5.2 有益效果
与LoRA对比,可以发现VeRA需要调节的参数降低到原来的0.1~0.001倍。同时,不受rank的影响,调节的参数的固定的。VeRA 的可训练参数量远少于 LoRA。
所需微调的参数如下所示:
在效果上VeRA可以接近LoRA的效果。
基于下表,与前面的表格。可以发现在智能度不够(模型泛化能力不足或者权重低于10B的模型)上,VeRA的效果低于LoRA。但在更智能的模型上,VeRA的效果是可以接近LoRA的。其作用能力与CoT类似。
同时论文数据也再次反映,在小规模模型上高效微调方法(各类lora方法)精度不如全参数微调,只有在大规模模型上lora才能追平lora微调。这充分反映了大规模模型上参数在专属任务上的冗余,lora的微调方法在低rank空间对参数微调恰好规避了冗余参数。
5.3 算法参数
VeRA有两个缩放矩阵,d与b。我们首先考察方法中d和b两个缩放向量的必要性。我们构建了两种消融设置:一种排除d向量(称为仅b向量),另一种排除b向量(称为仅d向量)。在仅d向量的设置中,d向量初始化为零值。如表6所示,省略任一缩放向量都会导致性能下降。其中,仅d向量的配置表现略优于仅b向量的配置。这种性能差异凸显了d向量具有更高的表达能力。
表7结果显示,在RTE和STS-B任务中,两种方案的平均性能表现完全相同;而在MRPC和CoLA任务中,使用独立随机矩阵的方案取得了轻微的性能提升。这表明没有必要针对每一个lora层单独设置A、B矩阵
6、AdaLORA
论文地址:https://arxiv.org/pdf/2303.10512
发表时间:2023年12月20日
提出背景: LORA的局限性在于其预先规定了每个增量矩阵的秩必须相同。这样就忽略了不同层、不同类型参数对下游任务的重要程度,因此LORA微调的效果可能不是最优的。
优化方案: AdaLORA改进了LORA可微调参数的分配方式,根据每个参数的重要程度自动得为其分配可微调参数的预算。具体的,AdaLORA采用奇异值分解(SVD)的形式参数化增量更新。这种参数化方式在规避大量SVD运算的同时,允许我们高效裁剪不重要更新中的奇异值,降低增量过程中的资源消耗。
6.1 方法概述
我们如何根据模块的重要性自适应地分配参数预算,以提高参数高效微调的性能?AdaLORA通过下列实验结果表明,不同类型、不同深度的权重对模型结果影响是不一样的。这里可以看出 W f 1 、 W f 2 W_{f1}、W_{f2} Wf1、Wf2对结果影响较大,越靠近输出的结果对输出影响越大。
AdaLORA方法包含两个重要组成部分:(一)基于奇异值分解的自适应机制,该方法将增量矩阵以奇异值分解的形式进行构建;(二)重要性感知的秩分配策略,该策略基于我们新设计的重要性度量指标对冗余奇异值进行剪枝。
6.2 有益效果
在小规模模型下,LoRA与AdaLoRA的差异并不明显。
AdaLORA的数据极力表明LoRA在大部分常见下,只能勉强解决FT的效果。但AdaLORA在不同的环境下都可以超过LoRA甚至FT。
同时,在不同的模型测试下,可以发现有部分场景,LoRA与AdaLoRA均无法达到FT的效果。
6.3 算法参数
实际中的参数列表:https://huggingface.co/docs/peft/package_reference/adalora
在使用AdaLoRA对DeBERTaV3-base模型在MNLI数据集上进行微调时,每个增量矩阵最终获得的秩。其中横轴表示层索引,纵轴代表不同类型的适配权重矩阵。可以看到越到深层,R越大,最后一层变小。
AdaLoRA与LoRA对比,可以发现在相同的参数更新预算下,AdaLoRA消耗略多100M的显存,耗时略多10%。
7、LoRA-drop
论文地址:https://arxiv.org/pdf/2402.07721
发表时间:2024年6月18日
提出背景:
LoRA在训练过程中仍然面临资源消耗的挑战。大多数先前的研究通过使用剪枝技术来解决这一问题,即移除被认为不重要的LoRA参数。
优化方案:
提出了LoRA-drop方法,根据LoRA的输出来评估其重要性,然后在重要层保留LoRA参数,而在其他层共享相同的LoRA参数。
7.1 方法概述
该方法基于LoRA输出进行剪枝。我们设计了一套流程,用于根据LoRA的输出量化其在不同层级的重要性【对训练集进行采样,然后通过lora微调,评估出不同层的权重贡献度进行lora权重的选择 】。随后,我们保留重要性较高的LoRA模块,而将重要性较低的模块替换为共享的LoRA参数,从而在保持与标准LoRA相当性能的同时,显著减少了LoRA训练所需的参数量。
lora模型在深层的输出值较大,在浅层的输出大部分值接近0
LoRA的A和B矩阵采用Kaiming初始化和零值初始化,其初始输出全为零。只有经过若干次参数更新后,LoRA的输出才会产生有效特征。因此我们首先对下游任务数据集进行分层采样,获得训练子集Ds(采样比例设为α,其中0<α<1)。随后使用该子集对LoRA参数进行多步更新。接着计算每层LoRA输出的平方范数之和g
参数g的数值大小反映了LoRA(低秩自适应)的重要性。为了更准确地体现LoRA在每一层中的相对重要性,我们对g进行了归一化处理,从而得到了每一层LoRA的重要性指标I。
LoRA每一层的重要性被限制在0到1之间,且总和为1。我们发现,从训练数据中采样一个小子集,能够获得与完整数据集相似的LoRA重要性分布。
然后,根据LoRA重要性分布,为下游任务设定适配的LoRA-drop微调策略。根据各层LoRA的重要性指标Ii对网络层进行排序,我们按照重要性从高到低的顺序筛选网络层,直至所选层的总重要性达到预设阈值T。本文默认将T设为0.9。
被筛选出的重要层将在训练过程中保留其原有LoRA参数,而其余层的LoRA参数则会被共享参数替代。超参数T控制着被保留层数量的多寡。最终,我们在新的LoRA配置下使用训练数据集对模型进行微调。
7.2 有益效果
LoRA-drop数据反映的是,个别模型在基础任务上表现了与LoRA接近的效果。但没有向同类论文一样,分享不同规模、不同模型的效果
7.3 算法参数
通过消融实验验证以下两个问题:
• 问题Q1:在任务适配阶段,用共享参数替代重要性较低的LoRA层,是否优于直接移除这些层?
• 问题Q2:在任务适配阶段保留重要性较高的LoRA层是否合理?
为回答这两个问题,我们在RoBERTa-base模型上将LoRA-drop与以下变体进行对比,其中k表示LoRA-drop保留的LoRA层数量:
LoRA-drop(无共享):在任务适配阶段直接移除重要性较低的LoRA层,不使用额外共享参数;
LoRA-drop(ΔW x inv):用共享LoRA替换重要性较高的LoRA层,同时保留其他LoRA层;
LoRA-drop(随机):随机选择k个保留LoRA参数的层;
LoRA-drop(顶层k):基于Houlsby等人(2019)的研究发现(即底层通常对性能影响较小),选择12层模型中的顶层k层。
我们在GLUE基准测试的验证集上对这四种设置进行了实验验证。实验结果如表5所示。
关于问题Q1,直接移除重要性较低的LoRA参数(即“LoRA-drop(无共享)”设置)在所有任务上的表现均逊于LoRA-drop方法,平均得分下降了0.7分。这表明,与直接移除低重要性层的LoRA参数相比,将这些层的LoRA参数进行共享对于实现更好的微调效果是必要的。
关于问题Q2,“∆W x inv”设置在平均性能上表现最差,略逊于“随机”设置。这说明具有较小I值的LoRA对模型性能提升的贡献较小。“top k”设置通过经验性地保留前k层,表现尚可,但与LoRA-drop相比,平均性能差距为0.5分。
LoRA-drop方法在所有四种变体中表现最佳。这验证了保留重要性较高层的LoRA参数的合理性,同时也进一步证明了本文提出的用于评估LoRA重要性的方法的有效性。
8、DoRA
论文地址:https://arxiv.org/abs/2402.09353
发表时间:2024年2月14日
提出背景:
参数高效微调(PEFT)方法,特别是LoRA及其变种,因为它们避免了额外的推理成本而受到了广泛关注。然而,这些方法与完全微调(FT)之间仍然经常存在准确性差距。
优化方案:
将预训练的权重分解为两个组成部分,即大小和方向,用于微调,并特别采用LoRA进行方向更新以有效地最小化可训练参数的数量。通过使用DoRA,我们增强了LoRA的学习能力和训练稳定性,同时避免了任何额外的推理开销。
8.1 方法概述
的DoRA方法概述如下:该方法将预训练权重分解为幅度和方向两个组成部分,用于微调。由于方向部分在参数数量上较大,我们进一步使用LoRA技术对其进行分解,以实现更高效的微调。我们的想法有两个方面:首先,我们认为将LoRA限制在仅专注于方向调整的同时,允许幅度部分可调,这比原始方法简化了任务。
需要注意的是,||·||c表示矩阵在各列向量上的向量范数。
我们使用预训练的权重W0初始化DoRA,如等式(2)所述,其中m = ||W0||c,初始化后V = W0。然后,我们保持V不变,而m作为可训练的向量进行更新。方向组件则通过LoRA进行更新。DoRA可以类似地表述为:
其中,∆V是通过将两个低秩矩阵B和A相乘而学习到的增量方向更新,下划线参数表示可训练参数。矩阵B∈R d×r和A∈R r×k的初始化遵循LoRA的策略,确保在微调前W′等于W0。此外,DoRA可以在推理前与预训练权重合并,从而避免引入额外的延迟。
(a) FT、(b) LoRA及© DoRA在不同层和中间步骤中查询矩阵的幅度与方向更新。不同的标记代表不同训练阶段的矩阵,而不同颜色则表示各层的矩阵
我们认为,FT倾向于负斜率是因为预训练的权重已经具备了适用于多种下游任务的大量知识。因此,当提供足够的学习能力时,仅需较大的幅度或方向变化就足以适应下游任务。此外,我们还计算了FT、LoRA和DoRA的∆D与∆M之间的相关性,结果显示FT和DoRA分别显示出-0.62和-0.31的负相关值。相比之下,LoRA则表现出正相关,相关系数为0.83。综上所述,DoRA能够仅进行显著的方向调整,而幅度或相反的变化相对较小,同时展现出学习模式。
8.2 有益效果
LLM
DoRA在LLaMA上取得了显著超越LoRA的效果
Image/Video-Text Understanding
在多模态任务上,DoRA取得了最接近FT的效果
在与LoRA变体相比,DoRA也占据显著优势。
8.3 算法参数
DoRA借助LoRA计算实现,有一个参数r。可以发现DoRA对r的鲁棒性要高于LoRA
9、LoRA+
论文地址:https://arxiv.org/pdf/2402.12354
发表时间:2024年7月
项目地址:https://github.com/NVlabs/DoRA.
提出背景:
LoRA 中的适配器矩阵 A 和 B 使用相同的学习率进行更新。通过对大宽度网络进行缩放分析,我们证明对 A 和 B 使用相同的学习率无法实现高效的特征学习。
优化方案:
只需为 LoRA 的适配器矩阵 A 和 B 设置不同的学习率,并采用精心选择的固定比例,即可纠正 LoRA 的这一不足。我们将这一改进算法称为 LoRA+。在大量实验中,LoRA+ 在与 LoRA 相同的计算成本下,提升了模型性能(提升幅度达 1% 至 2%)并加快了微调速度(最高可达约 2 倍加速)。
9.1 方法概述
标准LoRA与LoRA+之间的关键区别在于学习率的设置方式(矩阵GA和GB是来自AdamW的"有效"梯度)。在标准LoRA中,A和B采用相同的学习率——当嵌入维度较大时,这已被证明会导致降低学习效果。而在LoRA+中,我们将B的学习率设置为A的λ倍(其中λ≫1为固定值)。
9.2 有益效果
这里主要是与原始LoRA方法进行对比,可以发现按照LoRA+的理论,设置B的学习率大于A,模型的收敛速度更快。
以Roberta、GPT2、Llama模型为例,可以发现在B的学习率大于A时,模型在大部分指标上的效果有所提升。
9.3 算法参数
按照LoRA+的论文分析,只有当ηB/ηA=Θ(n)时才能实现效率最优。在实际应用中,这意味着需要设置ηB≫ηA,但在调整学习率时("Θ"中的常数通常难以精确确定),该结果并不能提供一个固定的ηB/ηA精确比值——除非我们同时调整ηB和ηA,但这会从计算角度带来低效性,因为它变成了一个二维调参问题。因此,自然的方法是设定一个固定的ηB/ηA比值,仅调整ηA(或ηB),这将有效将调参过程简化为一维网格搜索,从而实现与标准LoRA相同的计算成本(在标准LoRA中A和B的学习率相同)。我们将这种方法称为LoRA+。
因此,LoRA+与LoRa相比,多了一个A、B矩阵的学习率差异参数,下面是差异为16的差异,可以发现训练效率有2x的差异。
通过学习率对比,可以通过最佳精度的位置,可以发现最佳学习率的比值是不固定的。但,绝大部分都是在y=x的上方,即B的学习率要比A大一个数量级,为A的十倍以上。
10、EDoRA
发表时间:2025年1月21日
项目地址:https://github.com/Hamid-Nasiri/EDoRA.
DoRA的改进方法
提出背景:
参数效率优化方法,如LoRA,减少了可训练参数的数量。然而,这些方法通常面临扩展性问题,并且其学习模式与完全微调存在差异。
优化方案:
将预训练权重分解为幅度和方向成分。通过冻结低秩矩阵,使用奇异值分解初始化这些矩阵,并在它们之间引入一个小的可训练矩阵,EDoRA在保持学习能力的同时,显著减少了可训练参数。EDoRA的表现与最先进的方法(如LoRA和DoRA)相比,具有竞争力或更优,可训练参数最多减少了30倍。这使得EDoRA成为在内存受限环境下适应各种任务的高效解决方案。
10.1 方法概述
EDoRA的核心理念是将预训练的权重分解为幅度和方向两个部分。EDoRA保持幅度向量可训练,由于方向分量在参数上的显著规模,固定了低秩矩阵A∈R r×n和B∈R m×r,并在这两者之间引入了一个小的可训练矩阵 r×r。
EDoRA定义如下,相比于DoRA引入R,同时冻结BA,只更新R。R是高斯分布
10.2 有益效果
可训练参数比例
可以发现EDoRA将可训练参数降低到LoRA的20~30分之一
同时EDoRA保存了超过LoRA的效果,同时能在r的增加上保存效果提升。
10.3 算法参数
EDoRA与LoRA类似,除了参数r外,还有一个矩阵R。可以发现基于SVD对原始权重分解得到的A、B精度会高一些。