在大型语言模型(LLMs)的研究与应用中,如何高效地进行微调(fine-tuning)一直是研究者们关注的焦点。随着模型参数的不断增加,传统的全参数微调方法在计算成本上变得难以承受。为了解决这一问题,北京大学的研究团队提出了一种新的参数高效微调方法——PiSSA(Principal Singular values and Singular vectors Adaptation),该方法在大幅减少参数空间的同时,实现了与全参数微调相当甚至更优的性能。
PiSSA的核心思想是利用矩阵的奇异值分解(SVD)来提取模型权重矩阵的主要组成部分,并将其用于初始化微调过程中的适配器。这种方法的灵感来源于Intrinsic SAID理论,该理论认为预训练的、过度参数化的模型实际上存在于一个低维的内在空间。因此,PiSSA通过将权重矩阵分解为一个低秩矩阵和一个残差矩阵,只对低秩矩阵进行训练,而保持残差矩阵不变。这种策略使得PiSSA在微调开始时就能更好地逼近全参数微调的结果,同时冻结了“噪声”部分,从而加快了收敛速度并提高了最终性能。
与现有的LoRA(Low-Rank Adaptation)方法相比,PiSSA在初始化时使用了权重矩阵的主要奇异值和奇异向量,而不是像LoRA那样使用高斯噪声和零进行初始化。这种差异使得PiSSA在微调过程中能够更快地收敛,并且在最终性能上也超越了LoRA。实验结果表明,在五个常见的基准测试中,PiSSA在所有测试中都超越了LoRA,并且在GS8K数据集上,使用PiSSA微调的Mistral-7B模型达到了72.86%的准确率,比LoRA的67.7%高出5.16%。
PiSSA方法不仅在性能上表现出色,而且继承了LoRA的许多优点,如参数效率和与量化技术的兼容性。利用快速SVD方法,PiSSA的初始化过程只需要几秒钟,从LoRA切换到PiSSA的成本可以忽略不计。此外,PiSSA的线性结构使得在部署时能够轻松地将可训练矩阵与预训练权重结合起来,保持了完全微调模型的原始推理速度。对于存储效率,可以选择不存储密集的参数矩阵∆W,而是存储低秩矩阵{A, B}。在实际应用中,这意味着可以通过快速的SVD技术在预训练模型上进行PiSSA的初始化,然后将其分配给适配器,从而实现对不同下游应用的快速适应。
尽管PiSSA在多个方面展现了其优势,但仍有一些潜在的问题和挑战需要在未来的研究中加以探讨。例如,PiSSA在更广泛的任务和更大的模型上能否取得显著的改进?当LoRA的迭代步骤足够长(充分拟合数据)时,它是否能够匹配PiSSA的性能?将LoRA的后续方法与PiSSA结合是否能够进一步提升性能?如何从理论上解释PiSSA相对于LoRA的优势?这些问题都是未来研究的重要方向。