随着大模型的参数量日益增长,微调整个模型的开销逐渐变得难以接受。为此,北京大学人工智能研究院张牧涵团队论文PiSSA: Principal Singular Values and Singular Vectors Adaptation of Large Language Models,提出了一种名为PiSSA的参数高效微调方法,在主流数据集上都超过了目前广泛使用的LoRA、QLoRA的微调效果

北京大学人工智能研究院博士生孟繁续为论文第一作者,人工智能研究院助理教授张牧涵为通讯作者。

打开网易新闻 查看精彩图片

论文标题: PiSSA: Principal Singular Values and Singular Vectors Adaptation of Large Language Models 论文链接: https://arxiv.org/pdf/2404.02948.pdf 代码链接: https://github.com/GraphPKU/PiSSA

一、PiSSA:一种参数高效微调方法

如图1所示,PiSSA(图1c)在模型架构上和LoRA[1]完全一致(图1b),只是初始化Adapter的方式不同。LoRA使用高斯噪声初始化,使用初始化。而PiSSA使用主奇异值和奇异向量(Principal Singular values and Singular vectors)来初始化Adapter来初始化A和B。

打开网易新闻 查看精彩图片

图1)从左到右依次为全参数微调、LoRA、以及PiSSA。蓝色代表冻结的参数,橘黄色代表可训练参数及它们的初始化方式。相比全参数微调,LoRA和PiSSA都大幅节省了可训练参数量。对于相同输入,这三种方法的初始输出完全相等。然而,PiSSA冻结模型的次要成分,直接微调主成分(前r个奇异值和奇异向量);而LoRA可看作冻结模型的主要部分,而去微调noise部分。

二、PiSSA微调效果对比

2.1 在不同的任务上对比PiSSA、LoRA的微调效果对比

研究团队使用llama 2-7B、Mistral-7B以及Gemma-7B作为基础模型,通过微调提升它们的数学、代码和对话能力。其中包括:在MetaMathQA上训练,在GSM8K和MATH数据集上验证模型的数学能力;在CodeFeedBack上训练,在HumanEval和MBPP数据集上验证模型的代码能力;在WizardLM-Evol-Instruct上训练,在MT-Bench上验证模型的对话能力。从下表的实验结果可以看出,使用相同规模的可训练参数,PiSSA的微调效果显著超越了LoRA,甚至超越了全参数微调

打开网易新闻 查看精彩图片

2.2 在不同的可训练参数量下PiSSA、LoRA的微调效果对比

研究团队在数学任务上对模型的可训练参数量和效果之间的关系进行消融实验。从图2.1发现在训练初期,PiSSA的训练loss下降特别快,而LoRA存在不下降,甚至略有上升的阶段。此外,PiSSA的训练loss全程低于LoRA,说明对训练集拟合得更好;从图2.2、2.3、2.4可以看出在每种setting下,PiSSA的loss始终比LoRA低,准确率始终比LoRA高,PiSSA能够使用更少的可训练参数追赶上全参数微调的效果。

打开网易新闻 查看精彩图片

图2.1) 当秩为1时PiSSA、LoRA在训练过程中的loss。每幅图的右上角是前100步迭代放大的曲线。其中PiSSA用橙色线表示,LoRA用蓝色线表示,全参数微调用绿线展示了最终的loss作为参考。秩为[2,4,8,16,32,64,128]时的现象与此一致,详见文章附录

打开网易新闻 查看精彩图片

图2.2)使用秩为[1,2,4,8,16,32,64,128]的PiSSA和LoRA的最终training loss

打开网易新闻 查看精彩图片

图2.3)使用秩为[1,2,4,8,16,32,64,128]的PiSSA和LoRA微调的模型在GSM8K上的准确率

打开网易新闻 查看精彩图片

图2.4)使用秩为[1,2,4,8,16,32,64,128]的PiSSA和LoRA微调的模型在MATH上的准确率2.3 在4-bit量化下PiSSA、QLoRA和LoftQ的微调效果对比

研究团队指出,在全精度下使用PiSSA分解预训练模型,并对残差模型进行4bit量化时,量化误差显著小于广泛使用的QLoRA,甚至好于专门减小量化误差的LoftQ方法(如下图左上角所示)。更小的量化误差,使PiSSA在训练初期更少的损失性能,加上训练主奇异值、奇异向量对收敛速度和拟合效果的提升,最终在MetaMathQA上获得更低的训练loss,在GSM8K和MATH上获得更高的测试准确率。

打开网易新闻 查看精彩图片

图2.5)对比QLoRA、LoftQ和PiSSA在不同秩下的量化误差、训练损失、在GSM8K和MATH上的准确率

三、PiSSA方法详解

受到Intrinsic SAID [2]“预训练大模型参数具有低秩性”的启发,PiSSA对预训练模型的参数矩阵

进行奇异值分解,其中前r个奇异值和奇异向量用来初始化适配器(adapter)的两个矩阵。

剩余的奇异值和奇异向量用来构造残差矩阵 ,使得 (如图1c所示)。因此,适配器中的参数包含了模型的核心参数,而残差矩阵中的参数是修正参数。通过微调参数量较小的核心适配器A、B,冻结参数量较大的残差矩阵 就达成了用很少的参数近似全参数微调的效果。

尽管同样受到Intrinsic SAID[1]启发,PiSSA和LoRA背后的原理却截然不同。LoRA认为大模型微调前后矩阵的变化ΔW具有很低的本征秩r,因此通过

相乘得到的低秩矩阵来模拟模型的变化ΔW。初始阶段,LoRA使用高斯噪声初始化A,使用0初始化B,因此ΔW=AB=0,以此保证模型初始能力没有变化,并微调A和B实现对 进行更新。与此相比,PiSSA不关心 ,而是认为W具有很低的本征秩 。因此直接对W进行奇异值分解,分解成主成分A,B,以及残差项 ,使得 。假设的W奇异值分解为 ,使用SVD分解后奇异值最大的r个奇异值、奇异向量进行初始化:

打开网易新闻 查看精彩图片

残差矩阵使用其余的奇异值、奇异向量进行初始化:

PiSSA直接对W的低秩主成分A,B进行微调,冻结次要的修正项。相比LoRA用高斯噪声以及0初始化适配器参数、冻结核心模型参数,PiSSA收敛更快、效果更好。

PiSSA的发音类似“披萨”(pizza)---如果把整个大模型类比为一个完整的披萨,PiSSA切掉其中一角,而且是馅料最丰富的一角(主奇异值、奇异向量),重新烘焙(在下游任务上微调)成喜欢的口味。

由于PiSSA采用了和LoRA完全相同的架构,其可以作为LoRA的一种可选初始化方式,在peft包中很方便的进行修改和调用(如以下代码所示)。相同的架构也使得PiSSA继承了大多数LoRA的优点,如:对残差模型使用4bit量化[3],减小训练开销;微调完成后适配器能合并进残差模型,不改变推理过程的模型架构;无需分享完整模型参数,只需要分享参数量很少的PiSSA模块,使用者直接加载PiSSA模块就能自动进行奇异值分解以及赋值;一个模型可以同时使用多个PiSSA模块等等。一些对LoRA方法的改进,也能与PiSSA进行结合:比如不固定每层的秩r,通过学习找到最佳的秩[4];用PiSSA指导Wres的更新[5],从而突破秩的限制等等。

打开网易新闻 查看精彩图片

四、对比高中低奇异值微调效果实验

为了验证使用不同大小奇异值、奇异向量初始化适配器对模型的影响,研究人员分别使用高、中、低奇异值初始化LLaMA 2-7B、Mistral-7B-v0.1、Gemma-7B的适配器,然后在MetaMathQA数据集上进行微调,实验结果展示在图3中。从图中可以看出,使用主要奇异值初始化的方法训练损失最小,在GSM8K和MATH验证集上的准确率更高。这一现象验证了微调主要奇异值、奇异向量的有效性。

打开网易新闻 查看精彩图片

图3)从左到右依次为训练loss、在GSM8K上的准确率、在MATH上的准确率。其中蓝色表示最大奇异值、橙色表示中等奇异值、绿色表示最小奇异值。

五、快速奇异值分解

PiSSA继承了LoRA的优点,使用起来方便,效果超越LoRA。代价是在初始化阶段,需要对模型进行奇异值分解。虽然仅需要在初始化时分解一次,但是仍然可能需要几分钟甚至几十分钟的开销。因此,研究人员使用一种快速奇异值分解[6]方法替代标准的SVD分解,通过下表的实验可以看出,仅需几秒钟的时间,就能逼近标准SVD分解的训练集拟合效果。其中Niter表示迭代次数,Niter越大,时间越久但是误差越小。 表示标准SVD。表格中的平均误差表示快速奇异值分解与标准SVD得到的之间的平均距离。

打开网易新闻 查看精彩图片

六、总结与展望

本工作对预训练模型的权重进行奇异值分解,通过将其中最重要的参数用于初始化一个名为PiSSA的适配器,微调这个适配器来近似微调完整模型的效果。实验表明,PiSSA比LoRA收敛更快,最终效果更好,唯一的代价仅是需要几秒的SVD初始化过程。

那么,您愿意为了更好的训练效果,多花几秒钟时间,一键更改LoRA的初始化为PiSSA吗?

References

[1] LoRA: Low-Rank Adaptation of Large Language Models

[2] Intrinsic Dimensionality Explains the Effectiveness of Language Model Fine-Tuning

[3] QLoRA: Efficient Finetuning of Quantized LLMs

[4] AdaLoRA: Adaptive Budget Allocation for Parameter-Efficient Fine-Tuning

[5] Delta-LoRA: Fine-Tuning High-Rank Parameters with the Delta of Low-Rank Matrices

[6] Finding structure with randomness: Probabilistic algorithms for constructing approximate matrix decompositions

来源:公众号【北京大学人工智能研究院】

llustration From IconScout By Delesign Graphics

-The End-

扫码观看!

本周上新!

“AI技术流”原创投稿计划

TechBeat是由将门创投建立的AI学习社区(

www.techbeat.net
) 。 社区上线500+期talk视频,3000+篇技术干货文章,方向覆盖CV/NLP/ML/Robotis等;每月定期举办顶会及其他线上交流活动,不定期举办技术人线下聚会交流活动。我们正在努力成为AI人才喜爱的高质量、知识型交流平台,希望为AI人才打造更专业的服务和体验,加速并陪伴其成长。

投稿内容

// 最新技术解读/系统性知识分享 //

// 前沿资讯解说/心得经历讲述 //

投稿须知

稿件需要为原创文章,并标明作者信息。

我们会选择部分在深度技术解析及科研心得方向,对用户启发更大的文章,做原创性内容奖励

投稿方式

发送邮件到

chenhongyuan@thejiangmen.com

或添加工作人员微信(chemn493)投稿,沟通投稿详情;还可以关注“将门创投”公众号,后台回复“投稿”二字,获得投稿说明。

关于我“门”

将门是一家以专注于数智核心科技领域新型创投机构,也是北京市标杆型孵化器。 公司致力于通过连接技术与商业,发掘和培育具有全球影响力的科技创新企业,推动企业创新发展与产业升级。

将门成立于2015年底,创始团队由微软创投在中国的创始团队原班人马构建而成,曾为微软优选和深度孵化了126家创新的技术型创业公司。

如果您是技术领域的初创企业,不仅想获得投资,还希望获得一系列持续性、有价值的投后服务,欢迎发送或者推荐项目给我“门”:

bp@thejiangmen.com

打开网易新闻 查看精彩图片

点击右上角,把文章分享到朋友圈