前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >港大&港中文提出PRoLoRA | 克服同类参数共享方法缺点,拥有更高模型容量/可行性/广泛适用性,微调更好的大模型

港大&港中文提出PRoLoRA | 克服同类参数共享方法缺点,拥有更高模型容量/可行性/广泛适用性,微调更好的大模型

作者头像
集智书童公众号
发布2024-03-11 11:52:12
1660
发布2024-03-11 11:52:12
举报
文章被收录于专栏:集智书童集智书童

随着大型语言模型(LLM)的迅速扩展,同时服务大量的LoRAs变得越来越不切实际,导致了高昂的成本,这需要更多参数效率高的微调方法。 在这项工作中,作者引入了部分旋转增强低秩适应(PRoLoRA),这是一个包含四个基本组件的层内共享机制:广播缩减、旋转增强、部分共享精化以及矫正初始化策略。作为LoRA的超集,PRoLoRA保持了其优势,并有效地克服了同类参数共享方法的缺点,具有更高的模型容量、实际可行性和广泛适用性。实证实验表明,在特定参数预算和性能目标场景下,PRoLoRA的参数效率显著更高,并且可扩展到更大的LLM。 值得注意的是,即使在训练参数减少一次的情况下,PRoLoRA在多个指令调整数据集上的表现仍优于LoRA。随后,进行了一项消融研究,以验证各个组件的必要性,并突出PRoLoRA相对于三种潜在变体的优越性。希望明显更高的参数效率能够将PRoLoRA确立为LoRA的一种资源友好型替代方案。

1 Introduction

凭借令人印象深刻的能力,对大型语言模型(如LLaMA 2,GPT-3.5 Turbo和Gemini)进行特定领域和功能的微调(例如模型对齐和指令调优)变得越来越受欢迎。为了减轻完全微调的高成本,参数高效微调(PEFT),特别是LoRA,通过调整少数参数并冻结其余参数,已成为一种轻量级解决方案。然而,随着模型规模的迅速扩大,对进一步提高参数效率的需求变得越来越迫切,特别是在多LoRA场景中。

如表1所示,Dettmers等人(2023)的配置(即将秩为64的LoRA应用于所有线性层)会导致大量的可训练参数。对于单个LLaMA2-7B模型,LoRA将有大约1.6亿个参数需要调整,占用了610MB的磁盘存储空间和GPU内存在推理时。对于LLaMA2-70B模型,这些数字迅速飙升至大约3.6亿和1.4GB。在多LoRA场景中,例如个性化,多任务处理和专家混合(MoE),这个问题将大大加剧。特别是,随着个性化定制的增加,资源消耗将线性增加,当与多任务处理结合时,将进一步经历二次增长。因此,在多LoRA场景中的不可承受的成本确实激发了对进一步提高参数效率的需求。

针对上述目标,参数共享可以作为一种有效的途径。通常,LoRA的秩在性能上起着关键作用,如表格2所示,模型在秩较高时的表现更好。此外,在给定特定的可训练参数预算时,更好的性能意味着更高的参数效率。因此,提高参数效率可以转化为在保持相同参数数量的情况下适当地增加LoRA的秩。尽管VeRA可以看作是这方面的一种尝试,但其激进的冻结操作导致模型能力有限,秩过高,这在LoRA模块没有被合并到预训练权重中的多LoRA场景中,会导致显著的推理延迟。随后,Tied LoRA 通过允许层间共享矩阵可训练来缓解这些问题。然而,其绑定机制限制了其适用于不同形状的权重,这些权重在自注意力和MLP模块中广泛存在。

为了克服上述所有缺点,作者提出了一种新的方法,称为部分旋转增强低秩适配(PRoLoA)。该方法的特点是低秩分解矩阵内部的参数共享机制,并由四个基本组成部分构成:广播缩减、旋转增强、部分共享精化以及校正初始化策略。

具体来说,作者沿着隐藏维度用多个块重新参数化低秩矩阵,并将第一个块广播到其他块,从而节省可训练参数,或者等价地说,可以多次提高秩。然后沿着秩维度执行近乎零成本的旋转操作,以区分相同的块以获得更高的表达性。此外,为进一步精化能力,保留了一个最小的秩子集而不共享。为了确保共享参数与未共享参数具有相同的初始化边界,作者还对共享参数修正了传统的Kaiming均匀分布。作为LoRA的超集,PRoLoA不仅保持了LoRA的优点,如轻量级任务切换和可选的合并以消除额外延迟,而且相比于其他参数共享方法,还带来了更好的能力、实用性和更广泛的应用性。在多个指令调优数据集上的实证实验验证了PRoLoA比 Baseline 具有更高的参数效率,通过两种替代视角(即特定的可训练参数预算和性能目标)。

令人印象深刻的是,在使用一半的可调参数的情况下,PRoLoA在4/6的胜利中取得了比LoRA更好的平均性能。当扩展到LLaMA2-13B时,PRoLoA在相同的可训练参数数量下一致优于LoRA。此外,全面的消融研究展示了每个组件的必要性以及PRoLoA相对于三种潜在的层内共享变体优势。总体而言,PRoLoA显著提高了参数效率,从而在多LoRA场景下显著减轻了存储和GPU内存负担,使PRoLoA成为LoRA的一种资源友好型替代方案。

总之,作者的主要贡献如下:

  1. 作者引入了一种参数效率更高的方法,名为PRoLoA,其特点在于层内共享机制,包括广播缩减、旋转增强、部分共享细化以及矫正初始化策略。
  2. 作者将在多个指令调优数据集上比较PRoLoA与LoRA及现有同行方法,并展示其显著更高的参数效率,希望将PRoLoA确立为一种资源友好的LoRA替代方案。
  3. 作者进行消融研究,以证明各个组件的必要性以及PRoLoA相较于其他潜在变体的优越性。

2 Related work

LoRA 系列。受到过度参数化模型中低内在维度启发,提出了一种 LoRA 方法,通过两个可训练的低秩矩阵重新参数化权重更新,同时冻结预训练权重。借助这种轻量级的分解,LoRA 通过在多个任务间共享预训练模型,减少了存储和任务切换的开销。从理论上讲,LoRA 的线性设计使得可训练矩阵与冻结权重无缝融合,从而避免了额外的推理延迟,尽管在多个 LoRA 服务场景中通常不执行此操作。

随后,为了进一步提升LoRA的有效性和效率,已经做出了众多努力。基于奇异值分解,AdaLoRA通过在微调过程中自适应地剪除较不重要的参数,实现了自动秩分配,但各层之间不同的秩分配给部署多个LoRAs带来了挑战。受到随机投影的启发,VeRA 在所有层之间共享两个冻结的随机矩阵,并为每一层更新解耦的组合向量。尽管这种方法减少了参数数量,但它导致了性能下降,以及与非常高秩相关的额外计算量。

相比之下,Tied LoRA 通过在所有层之间共享可训练的LoRA矩阵来提高参数效率,并且 Query 、Key和Value模块之间的下投影矩阵进一步绑定。此外,它还融合了缩放向量以区分每个模块。然而,除了与VeRA相似的较高秩之外,这种方法还需要共享矩阵具有相同的形状,这也进一步限制了其扩展到其他线性层。相比之下,作者的方法采用层内共享机制以提高参数效率,从而规避上述缺点,同时显示出与它们集成的潜力。

参数共享。先前的研究已经采用参数共享来减少模型的大小。Universal Transformer提出在 Transformer 模型内共享所有层。系统性地,Takase和Kiyono(2023年)用三种跨 Transformer 层的参数共享策略改进了这一机制,提高了计算和参数效率。

类似地,Reid等人(2021年)比较了几种参数减少方法,并引入了具有共享中层和嵌入因式分解的Subformer模型,显著节省了参数而没有性能下降。随后,DictFormer用共享字典、非共享系数和索引重新参数化原始权重,从而得到更紧凑的 Transformer 模型和更快的计算。针对设备端部署,EdgeFormer共享了注意力和FFN模块,并融合了基于PEFT的层自适应以最小化参数数量。最近,Pires等人(2023年)去除了解码器层的FFN,并在编码器之间共享一个更大的FFN,在准确性和延迟上都取得了实质性的提升。与这些研究不同,作者的研究专注于多LoRA场景,旨在提高LoRA模型的参数效率,而不是 Transformer 模型。

3 Method

在本节中,作者介绍了部分旋转增强低秩适配(Partially Rotation-enhanced Low-Rank Adaptation,简称PRLoRA)方法,这是一种参数效率更高的方法,具有层内共享机制。简而言之,在3.1节中,作者将介绍PRLoRA的四个基本组成部分,即广播缩减、旋转增强、部分共享精化以及矫正初始化策略,随后在3.2节中分析其相较于现有同级方法的优势。

Mathematical Formulation

基于低秩分解,LoRA用两个可训练的矩阵

\mathbf{A}\in\mathbb{R}^{r\times h}

\mathbf{B}\in\mathbb{R}^{o\times r}

更新冻结的预训练权重

\mathbf{W}_{0}\in\mathbb{R}^{o\times h}

,其中

r

表示秩,并且满足

r\ll\min(h,o)

。这一近似过程可以表述如下:

\mathbf{W}=\mathbf{W}_{0}+\Delta\mathbf{W}=\mathbf{W}_{0}+\mathbf{B}\mathbf{A}, \tag{1}

在这里,

\mathbf{W}

\Delta\mathbf{W}

分别指的是更新后的权重和权重差异,它们的维度为

o\times h

。因此,更高的参数效率可以转化为如何用更少的参数获得与

\Delta\mathbf{W}

相似的表达性,这启发了引入PRLoRA。

广播减少。一种直观的方法来优化参数的使用效率是多次重用它们。如图1(a)和1(b)所示,在PRLoRA的第一步中,作者建议沿着隐藏维度

h

o

分别将原始矩阵

\mathbf{A}

\mathbf{B}

划分成块,并将第一个块的参数广播到其余块,从而使扩展后的矩阵保持与原始矩阵相同的形状。

重要的是,考虑到

\mathbf{A}

\mathbf{B}

维度可能的变化,作者为每个矩阵分配单独的块,这样PRLoRA就不会受到不同权重形状的限制,这是Tied LoRA所面临的问题。形式上,这种块状共享过程,简称为CLoRA,可以表述如下:

其中

\mathbf{A}_{0}

\mathbf{B}_{0}

分别指在

\mathbf{A}

\mathbf{B}

中共享了

m

n

次的可训练块,而符号

\oplus_{h}

\oplus_{v}

分别表示两个矩阵的水平拼接和垂直拼接。通过这种方式,一个模块中的可训练参数可以从整个矩阵

\mathbf{A}

\mathbf{B}

减少到两个更小的块

\mathbf{A}_{0}

\mathbf{B}_{0}

,数量从

hr+ro

降低到

hr/m+ro/n

。当

m

等于

n

时,这种广播减少会导致可训练参数减少

m

倍,或者等效于在相同可训练参数预算下的秩提高

m

倍,这有可能实现更好的性能和参数效率。

Rotation Enhancement.

尽管可调参数数量大幅减少,但分块广播缩减在权重更新的受限表达性方面也存在一定的权衡。如图1(b)所示,当矩阵

\mathbf{A}

\mathbf{B}

被划分为相同的块时,它们的矩阵乘积

\mathbf{B}\mathbf{A}

(即

\Delta\mathbf{W}

)也会沿着行和列维度分成多个相同的块。这种显著的模式意味着对权重差异潜在表示空间的进一步压缩,直观上这可能对性能产生不利影响。

为了缓解这个问题,作者将CLoRA进一步演化为RoLoRA,这是向PRoLoRA迈进的另一种中间过渡方法。如图1(c)所示,RoLoRA通过使用不同次数的基础步长旋转广播块来区分它们。因此,

\Delta\mathbf{W}

的计算可以转化为以下形式:

\begin{split}\Delta\mathbf{W}=&(\mathbf{B}_{0} \oplus_{v}\mathbf{B}_{1}\oplus_{v}\ldots\oplus_{v}\mathbf{B}_{n-1})\\ &(\mathbf{A}_{0}\oplus_{h}\mathbf{A}_{1}\oplus_{h}\ldots\oplus_{h }\mathbf{A}_{m-1}),\end{split} \tag{3}

其中

\mathbf{A}_{i}

\mathbf{B}_{i}

分别通过对

\mathbf{A}_{0}

\mathbf{B}_{0}

沿秩维度应用滚动操作

\mathrm{Roll}()

生成,基础步长为

s_{A}

s_{B}

,并分别乘以

i

。从数学上讲,这可以表示为

\mathbf{A}_{i}=\mathrm{Roll}(\mathbf{A}_{0},i\cdot s_{A})

,以及

\mathbf{B}_{i}=\mathrm{Roll}(\mathbf{B}_{0},i\cdot s_{B})

,其中

i

的范围是从

0

m-1

n-1

为了简便和对称性,作者将

s_{A}

s_{B}

设置为

\mathrm{Max}(\lfloor\frac{r}{m}\rfloor,1)

\mathrm{Max}(\lfloor\frac{r}{n}\rfloor,1)

。由于旋转操作没有引入任何额外的参数,RoLoRA 在不增加成本的情况下增强了CLoRA的表达性,同时保留了对可训练参数的相同分析。

Partially-Sharing Refinement.

尽管RoLoRA成功避免了简单的复制,但它仍然容易受到更微妙的模式影响。具体来说,如果两个向量同时以特定的步长朝同一方向旋转,它们的内积保持不变。

\Delta\mathbf{W}

的元素是从矩阵

\mathbf{A}

\mathbf{B}

中相应列向量和行向量的内积计算得出的。

因此,如果两个块是使用具有相同相对位移的块对计算得出的,它们仍然可能相同。例如,如图1(c)所示,右下角的块是通过将

\mathbf{A}_{0}

\mathbf{B}_{0}

都以步长2旋转得到的,其矩阵乘积与左上角的块相同。从另一个角度来看,尽管每一行/列内的块是唯一的,但不同行/列中的块可以通过旋转前一行/列来导出。特别是,如果行和列的基础步长保持一致(即,

s_{A}=s_{B}

),那么得到的

\Delta\mathbf{W}

将展示块状的反对角线对称性。尽管这种模式比CLoRA的模式更不明显,但它仍可能阻碍RoLoRA的性能。

为了提高

\Delta\mathbf{W}

的表达能力,作者在RoLoRA的基础上进一步引入了部分共享,从而形成了PRoLoRA。具体来说,在将初始矩阵

\mathbf{A}

\mathbf{B}

分割成块时,保留特定数量的秩,记作

u

,不共享。通过保持独立的隐藏维度,这些秩向量不受上述隐含模式的限制,从而可以在权重差矩阵

\Delta\mathbf{W}

中进行细化,并增强PRoLoRA的表示能力。总之,整个方案可以建模如下:

\begin{split}\Delta\mathbf{W}=&(\mathbf{B}_{u} \oplus_{h}(\mathbf{B}_{0}\oplus_{v}\ldots\oplus_{v}\mathbf{B}_{n-1}))\\ &(\mathbf{A}_{u}\oplus_{v}(\mathbf{A}_{0}\oplus_{h}\ldots\oplus_{h }\mathbf{A}_{m-1})),\end{split} \tag{4}

其中,

\mathbf{A}_{u}\in\mathbb{R}^{u\times h}

\mathbf{B}_{u}\in\mathbb{R}^{o\times u}

分别是

\mathbf{A}

\mathbf{B}

的不共享部分。与方程3中的

\mathbf{A}_{i}

\mathbf{B}_{i}

不同,这里的

\mathbf{A}_{i}

\mathbf{B}_{i}

的秩维是

r-u

。部分共享机制的引入改变了可训练参数,现在包括不共享和共享的部分。模块中的可训练参数总数由

u(h+o)+h(r-u)/m+o(r-u)/n

给出。由于共享机制,在给定的可训练参数数量下,PRoLoRA 仍然可以享受比 LoRA 更高的秩、更好的性能,从而具有更高的参数效率。

校正初始化策略。遵循Huggingface PEFT v0.6.2库中LoRA的默认配置,作者将标准的Kaiming均匀初始化应用于非共享部分

\mathbf{A}_{u}

。然而,由于

\mathbf{A}_{u}

\mathbf{A}_{0}

具有不同的输入维度(fan-in dimensions),即使它们共同构成了完整的矩阵

\mathbf{A}

,Kaiming初始化本质上也会给它们分配不同的采样边界。

因此,作者针对共享块

\mathbf{A}_{0}

使用了校正的Kaiming均匀初始化,如方程式5所制定,以确保统一的边界。相比之下,整个矩阵

\mathbf{B}

初始化为零,使得在训练开始时

\Delta\mathbf{W}=\mathbf{B}\mathbf{A}

为零,遵循LoRA的典型实践。

\mathbf{A}_{0}\sim\mathcal{U}(-g\times\sqrt{\frac{3}{h}},g\times\sqrt{\frac{3} {h}}), \tag{5}

其中

\mathcal{U}()

表示均匀分布,

g

表示由非线性确定的增益。重要的是,使用矩阵

\mathbf{A}

的隐藏维度

h

而不是块

\mathbf{A}_{0}

的隐藏维度,以确保与

\mathbf{A}_{u}

初始化时相同的边界。

Advantage Analysis

作为一种层内共享机制,如果取消了共享机制(即

u=r

),PRoLoRA将退化为LoRA。换句话说,可以将具有相同等级的PRoLoRA视为LoRA的超集。因此,PRoLoRA保留了LoRA的各种优势。例如,PRoLoRA通过仅交换可调整权重而不是所有参数,允许在任务间低成本切换,这对于高效地同时服务多个定制模型至关重要。

值得注意的是,PRoLoRA保持了线性属性,因此也可以选择性地在推理时合并到预训练权重中,以消除额外的推理延迟。此外,与LoRA和其他同类方法相比,PRoLoRA还提供了以下额外的好处。

高参数效率。如第4.2节和4.3节所述,在特定的参数预算下,PRoLoRA比LoRA及其他方法获得更好的性能,表明PRoLoRA具有明显更高的参数效率。换句话说,为了达到期望的性能,PRoLoRA在存储时需要较少的磁盘空间,在训练时需要较少的激活占用,在推理时需要较低的GPU内存,这显著减轻了服务多个模型的负担。

高表示能力。随着

r

的持续增加,PRoLoRA的性能可以近似地收敛到与LoRA全量微调相当的水平。这保证了模型具有很大的容量,这对于具有挑战性的任务至关重要。相比之下,具有256阶的绑定LoRA和VeRA的性能较差,表明它们的容量极为有限,同时也伴随着更高的推理延迟。

广泛适用性。与跨层共享矩阵的Tied LoRA和VeRA不同,PRoLoRA是一种层内共享机制,从而确保了与预训练权重的形状独立。具体来说,在考虑到自注意力模块和MLP模块中权重形状不同的情况下,VeRA需要为它们初始化不同的共享矩阵对,而Tied LoRA的绑定机制不再适用。相比之下,PRoLoRA能够在所有模块间实现解耦的权重共享,且不受不同形状的影响,保持了与LoRA相同的适用性水平。它甚至允许各层具有不同的未共享等级和共享比例。

General Setup

总体而言,作者关注的是遵循指令的任务,并遵循Wang等人(2023年)的设置。特别是,作者同样采用了一个多方面的评估,涵盖事实知识、推理、多语言性和编程,但根据Wang等人(2023年)表7中仔细选择了能产生积极效果的设置。作者还把所有数据集转换成统一的聊天机器人风格,要求模型既要学习特定任务也要学习这种互动格式。核心设置如下所示,更多详细信息可以在附录A中找到。

数据集。为了评估实际知识能力和多语言能力,作者在Super-NaturalInstructions(SuperNI)数据集上微调模型,并在Massive Multi-task Language Understanding(MMLU)和TyDi QA数据集上进行评估。对于通用和数学推理,作者在Flan V2及其CoT划分上重新训练基础模型,并在Big-Bench-Hard(BBH)和Grade School Math(GSM)语料的测试划分上报告性能。此外,作者采用HumanEval 数据集来评估模型的编程能力,目标是针对在CodeAlpaca 数据集上微调的模型。

Baseline 。作者将PRoLoRA与LoRA以及其他现有的参数共享 Baseline 进行了比较。

LoRA 如同第3.1节所提及,在预训练权重旁边添加了可训练的低秩矩阵对。作者将LoRA应用于转换块中的所有线性层,即 Query 、Key、Value、输出、上采样、门控和下投影权重。比例因子

\alpha

和丢弃率分别设置为16和0.1。

VeRA共享并冻结了两个随机初始化的低秩矩阵,但更新了解耦的缩放向量。作者也将其应用于所有线性层,跨层共享同一类型冻结的VeRA权重,但不同类型的权重分别初始化。

绑定的LoRA R将可训练的低秩矩阵共享给所有的 Query 、Key和Value投影层,进一步绑定了它们的下投影矩阵,并为差异化更新了单独的缩放向量。

Main Results

在比较多种方法的参数效率时,必须依次回答两个问题。第一个问题是,某一种方法是否在参数效率上超过其他方法。随后,需要衡量效率提升的大小。这两个问题可以分别从下面所解释的参数效率的两个替代视角进行分析。

特定参数预算。第一种观点涉及在固定的可训练参数数量下比较不同方法的表现,其中更好的性能意味着更高的参数效率。为了强调各种方法之间的差异,并避免由参数冗余引起的偏见,作者选择了一个受限容量场景,其中允许大约5.00M的有限参数预算。如表2所示,秩为2的LoRA表现出平均性能为34.98,优于原始模型,但始终低于具有更多可训练参数的性能,这表明了一个没有明显冗余的紧凑型模型容量。

在这些 Baseline 中,Tied LoRA实现了略好的平均性能35.12,证实了Renduchintala等人(2023年)所述的更高参数效率,而VeRA则没有。然而,由于比LoRA高出128倍的秩,它们导致了更多的计算和延迟,这降低了它们在延迟敏感应用中的可行性。

相比之下,在完全相同的预算下,当秩、非共享秩和共享率分别设置为8、1和7时,PRoLoRA在个别和平均性能上都显著更好。此外,如果作者针对每个任务优化这些超参数(即,选择性地将秩提高到4或8),其平均性能可以进一步增强到36.03,比LoRA高出超过一个百分点。这突显了PRoLoRA比LoRA实现了更高的参数效率,同时在实用性上优于其他 Baseline 。

指定的性能目标。另一个角度是以更少的可调整参数达到期望的性能,从而量化参数节省。作者将LoRA的秩提高八倍至16,在所有基准测试中建立了良好的性能目标,同时没有过度的参数冗余。在参数数量为19.99M(与秩为8的LoRA相当)的情况下,作者将PRoLoRA的秩可选地提升到16或32。

表2的结果显示,PRoLoRA在个体目标上取得了4/6的胜利,并将平均性能从36.97提升到了37.53。这表明PRoLoRA以一半的可训练参数完成了性能目标,显示出其参数效率高出一倍。为了明确说明这一优势,假设在推理中有20GB的GPU内存可用于自定义参数,LoRA大约可以服务于512个目标(例如,用户),而PRoLoRA将这一数字翻倍至1024,且不会降低性能。这对于在多LoRA场景下的服务提供商来说是一个显著的好处。

Scalability Analysis

作者进一步验证了PRoLoRA在LLaMA2-13B模型上的可扩展性。在这里,作者采用了容量受限的设置,可调整的参数预算限制为6.26M,这相当于具有2阶的LoRA的参数量。

正如表3所示,LoRA的平均性能为43.92,而PRoLoRA在相同预算下将阶数提升到4或8后,性能提高了1.,达到平均指标45.04。令人印象深刻的是,PRoLoRA在各个任务上也始终优于LoRA。总之,与LLaMA2-7B类似,在LLaMA2-13B上,PRoLoRA在相同预算下展现出了更好的性能,这验证了它在大规模LLM上更高的参数效率。

Ablation Study

作者进行了一项消融研究,以评估PRoLoRA中每个组成部分的影响,并探索其可能的变体。所有后续实验均采用LLaMA2-7B模型,在BBH基准上具有固定的可训练参数预算19.99M。超参数与前面章节所述保持一致,除非那些正在特别研究中的参数。

非共享Rank。作者首先研究广播缩减和部分共享细化对性能的影响。在图2中,作者报告了非共享Rank

u

和学习率的联合效果。具体来说,当非共享Rank为0时,所有可训练的参数都是按块共享的,从而取消了部分共享机制。随着非共享Rank的增加,共享的参数越来越少,为了保持相同的Rank(即32),共享比率变得更大。一旦非共享Rank达到8,所有参数不再共享,将PRoLoRA退化为普通的LoRA。

显然,随着广播缩减的出现共享比率增加,最优学习率也逐渐增加。这可以归因于在梯度更新过程中,不同位置共享的参数相互抵消,需要更大的学习率进行有效的参数优化。这也意味着共享和非共享参数可能需要不同的学习率,并且分别设置它们可能会进一步增强PRoLoRA的性能,这留作未来工作。然而,尽管学习率统一,当非共享Rank在4到7之间变化时,PRoLoRA的一致性能优于普通LoRA(即

u=8

),这证明了通过层内共享增加Rank的优越性以及PRoLoRA对非共享Rank的参数鲁棒性。此外,没有非共享参数的性能不佳也突显了PRoLoRA中进行部分共享细化的必要性。

旋转增强。然后作者研究了旋转对低秩矩阵表示能力提升的效果。表2中展示的结果表明,在所有基准测试中,PRoLoRA

{}^{-r}

(即没有旋转增强的PRoLoRA)的性能均较差,无论是单个测试还是平均性能。这突显了由于简单复制块而产生的显式矩阵模式对PRoLoRA表现力的不利影响,同时也展示了通过旋转带来的几乎无需额外成本的改进。

初始化策略。作者进一步探讨了校正初始化策略的必要性。如表2末所示,与PRoLoRA相比,用普通Kaiming均匀分布初始化的PRoLoRA

{}^{-i}

,在所有任务中均表现出较差的性能,平均性能下降至37.18。这表明直接初始化块状物,导致更大的采样边界,阻碍了后续参数优化,强调了边界校正的重要性。

其他共享和旋转。最后,作者通过将其与三种替代的层内共享机制进行比较,再次确认了PRoLoRA的优越性。具体来说,PRoLoRA并不是唯一可能结合广播降低和旋转增强的方法。这两种技术分别可以沿着隐藏维度和Rank维度应用。

这产生了四种不同的组合,其中PRoLoRA沿着隐藏维度共享并在Rank方向上旋转。表4展示了这些方法的性能比较。显然,沿着Rank方向的旋转增强比沿着隐藏维度得到的结果要好得多,而沿着隐藏维度的广播降低略微优于沿着Rank方向。PRoLoRA融合了这两种有利的设计,实现了最优性能,从而确立了其相对于其他同类变体的优势。

5 Conclusion

针对多LoRA场景下更轻量级的部署目标,作者提出了PRoLoRA,一种更高效的方法,其特点在于层内共享机制,包括广播缩减、旋转增强、部分共享精化以及校正初始化策略。在实证研究中,作者验证了其相较于其他方法在参数效率、可扩展性以及优越性方面,旨在将其作为对资源友好的LoRA替代方案。

6 Limitation

本工作的局限性主要来自以下两个方面的考虑:

  • 作为一种层内共享机制,PRoLoRA可能潜在的由层间共享机制来补充,这并没有被作者当前的研究所涵盖。正如表2所示,利用层间共享并且与PRoLoRA正交的Tied LoRA可以略微提高参数效率。这表明,整合这两种机制可能会带来进一步的改进。值得注意的是,PRoLoRA可以将自注意力机制的投影维度和MLP模块的中间维度之间的公共因子作为块的隐藏维度进行调整,然后在它们之间共享块。这种灵活性缓解了Tied LoRA施加的权重形状身份的限制。然而,探索这种整合的可行性需要进行更全面的研究,这超出了本文的范围,因此留给未来的工作。
  • 为共享和非共享参数设置不同的学习率可能会进一步改善PRoLoRA的性能。如第4.4节所讨论,随着共享比例的增加,需要更大的学习率以防止不同位置更新之间的相互抵消。然而,在作者的实现中,作者没有应用不同的学习率,尽管这对PRoLoRA可能带来潜在的好处。作为一种补救措施,在优化器中对具有不同学习率的参数进行分组,或受LoRA启发,为非共享参数添加独立的标量,这些方法对于提升PRoLoRA的性能显示出希望,并值得在未来的研究中深入探讨。

参考

[1].PRoLoRA: Partial Rotation Empowers More Parameter-Efficient LoRA.

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-03-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 集智书童 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 Introduction
  • 2 Related work
  • 3 Method
    • Mathematical Formulation
      • Rotation Enhancement.
      • Partially-Sharing Refinement.
    • Advantage Analysis
      • General Setup
        • Main Results
          • Scalability Analysis
            • Ablation Study
            • 5 Conclusion
            • 6 Limitation
            • 参考
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档