PiSSA:一种新的基于奇异值分解的模型微调方法

介绍了一种新方法PiSSA,利用奇异值分解提升模型微调效率。

原文标题:PiSSA :将模型原始权重进行奇异值分解的一种新的微调方法

原文作者:数据派THU

冷月清谈:

本文介绍了来自北京大学的研究人员提出的PiSSA(主奇异值和奇异向量适配)方法,该方法通过奇异值分解(SVD)实现对模型原始权重的有效微调。PiSSA和LoRA相似,基于对模型参数变化形成低秩矩阵的假设。它利用两个可训练矩阵的乘积及错误校正的残差矩阵来优化参数空间,同时在微调过程中保持残差静态。研究表明,在多个模型(如LLaMA 2-7B等)的对比实验中,PiSSA在性能和收敛速度上优于LoRA,能够有效提高微调的效率及准确性。此外,论文还提供了相关代码,方便研究人员进行测试和应用。

怜星夜思:

1、是否认为奇异值分解在模型微调中的应用还有哪些潜力?
2、对比PiSSA和LoRA,哪一种更适合实际应用?
3、有什么其他已知的方法与PiSSA相似?

原文内容

来源:DeepHub IMBA
本文约600字,建议阅读5分钟
我们开始看4月的新论文了,这是来自北京大学人工智能研究所、北京大学智能科学与技术学院的研究人员发布的Principal Singular Values and Singular Vectors Adaptation(PiSSA)方法。


PiSSA和LoRA一样,都是基于这样的前提:对模型参数的改变会形成一个低秩矩阵。

这种方法通过将模型中的矩阵表示为两个可训练矩阵的乘积,辅以一个用于错误校正的残差矩阵,优化了紧凑的参数空间。利用奇异值分解(SVD),PiSSA初始化主奇异值和奇异向量以训练这两个矩阵,同时在微调过程中保持残差矩阵静态。

PiSSA与LoRA的架构相一致,继承了诸如可训练参数减少、轻松部署等好处。但是与LoRA不同,使用PiSSA进行微调的过程与完整模型过程相似,会避免无效的梯度步骤和次优结果。

在LLaMA 2-7B、Mistral-7B-v0.1和Gemma-7B模型的多个任务的比较实验中,PiSSA凭借卓越的表现脱颖而出。以主奇异值和向量初始化的微调适配器产生了更好的结果。

PiSSA展示了加速的收敛速度、与训练数据的稳健对齐,并在类似的可训练参数配置下胜过LoRA。

利用快速SVD技术有助于PiSSA在初始化速度和性能之间取得平衡。

论文中将奇异值分解应用于预训练模型的权重矩阵,以提取主要成分。然后使用这些成分来初始化一个名为PiSSA的适配器。微调PiSSA在开始阶段可以密切复制完整模型微调的效果,同时保持良好的参数效率。通过大量实验,展示了PiSSA的微调性能显著超过了LoRA。

论文地址:https://arxiv.org/abs/2404.02948

论文还提供了代码可以直接拿来测试:https://github.com/GraphPKU/PiSSA

编辑:文婧

像TuckER这样的低秩张量分解方法也与SVD相关,未来也许能结合PiSSA的思路进一步提高模型微调效果。

其实类似的还有Quantization技术,在降低参数量的同时也能提升模型的部署能力,可以说是各有千秋。

LoRA在实际应用中容易上手,适合一般的场景,而PiSSA在处理复杂问题时可能表现更好,尤其是需要很高计算效率和精度的任务。

这得看用户的需求,PiSSA的参数利用效率高,但实现上可能复杂一些。而LoRA较为简便,适合初学者。

奇异值分解还有其他应用,比如在数据压缩和信号处理上。未来也许可以结合这些技术,提升模型微调在资源有限环境下的表现。

根据文中观点,PiSSA在多个实验中超越了LoRA,所以如果我们要追求性能,PiSSA可能更优。但具体选择还要看实际问题场景,这也依赖于我们的任务。

我觉得SVD的进一步研究价值很大,尤其在相似模型迁移学习中,可以优化模型迁移的效率和效果。