改变LoRA的初始化方式,北大新方法PiSSA显著提升微调效果

简介: 【4月更文挑战第23天】北京大学团队提出的新方法PiSSA,基于SVD进行参数高效微调,降低计算成本。PiSSA通过聚焦低秩矩阵训练,实现与全参数微调相当甚至更好的性能,快于LoRA收敛且在五个基准测试中胜出。PiSSA继承LoRA的参数效率,初始化仅需几秒,适合快速适应不同下游任务。尽管有潜力,但其在更大模型和任务上的效果,以及与LoRA结合的可能优化,仍是未来研究课题。[链接](https://arxiv.org/pdf/2404.02948.pdf)

在大型语言模型(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的优势?这些问题都是未来研究的重要方向。

论文链接: https://arxiv.org/pdf/2404.02948.pdf

目录
相关文章
|
存储 缓存 异构计算
大语言模型量化方法对比:GPTQ、GGUF、AWQ
在过去的一年里,大型语言模型(llm)有了飞速的发展,在本文中,我们将探讨几种(量化)的方式,除此以外,还会介绍分片及不同的保存和压缩策略。
5477 0
|
机器学习/深度学习 存储 安全
隐语小课 | 基于秘密分享的混合比特数学运算库-SIRNN介绍
隐语小课 | 基于秘密分享的混合比特数学运算库-SIRNN介绍
578 0
|
自然语言处理 物联网 异构计算
比LoRA还快50%的微调方法来了!一张3090性能超越全参调优,UIUC联合LMFlow团队提出LISA
【4月更文挑战第3天】伊利诺伊大学香槟分校和LMFlow团队推出LISA,一种新型微调技术,用于解决大型语言模型的内存消耗问题。LISA基于层重要性采样,随机冻结中间层,降低内存使用,同时提供比LoRA更快的训练速度和更高性能。实验显示,LISA在相似或更低的GPU内存消耗下,超越LoRA和全参数调优。该方法提高了资源受限环境下的微调效率,有望成为LoRA的有效替代,但仍然面临内存限制和随机性影响的问题。
355 4
比LoRA还快50%的微调方法来了!一张3090性能超越全参调优,UIUC联合LMFlow团队提出LISA
|
测试技术 开发工具 Swift
Liger kernel训练加速,一行代码训练吞吐量提高 20%,显存使用量降低 60%
在LLM的训练/微调过程中,开发者通常会遇到一些瓶颈,包括GPU显存不够,经常遇到OOM,GPU使用率100%而且非常慢等。
Liger kernel训练加速,一行代码训练吞吐量提高 20%,显存使用量降低 60%
|
人工智能 物联网
PiSSA :将模型原始权重进行奇异值分解的一种新的微调方法
我们开始看4月的新论文了,这是来自北京大学人工智能研究所、北京大学智能科学与技术学院的研究人员发布的Principal Singular Values and Singular Vectors Adaptation(PiSSA)方法。
243 3
|
11月前
|
人工智能 自然语言处理 物联网
llama factory 从数据集起步 跑通 qwen系列开源生成式大模型 微调
`dataset_info.json` 文件用于管理 llama factory 中的所有数据集,支持 `alpaca` 和 `sharegpt` 格式。通过配置此文件,可以轻松添加自定义数据集。数据集的相关参数包括数据源地址、数据集格式、样本数量等,支持 Hugging Face 和 ModelScope 两个平台的数据集仓库。针对不同格式的数据集,提供了详细的配置示例,如 `alpaca` 格式的指令监督微调数据集、偏好数据集等,以及 `sharegpt` 格式的多模态数据集等。今天我们通过自定义数据集的方式来进行qwen2.5_14B_instruct模型进行微调
4267 7
分布式事务的两阶段提交和三阶段提交分别有什么优缺点?
【9月更文挑战第9天】两阶段提交(2PC)和三阶段提交(3PC)是解决分布式系统事务一致性的机制。2PC实现简单,保证强一致性,但存在同步阻塞、单点故障和数据不一致风险。3PC通过引入超时机制减少阻塞时间,降低单点故障影响,但复杂性增加,仍可能数据不一致,并有额外性能开销。
470 9
|
关系型数据库 Linux 数据库
阿里云数据库镜像如何登录账号
阿里云数据库镜像是一种方便快捷的方式,使得开发者可以在自己的本地电脑上进行数据库的开发和测试,而无需在云端进行复杂的环境配置。本文将详细讲解如何通过阿里云数据库镜像登录账号。一、准备环境在开始之前,你需要确保已经安装了阿里云数据库镜像,并在本地电脑上成功配置了数据库环境。如果你还没有安装,可以参考阿里云提供的安装。
|
数据采集 Python
Python正则表达式提取车牌号
Python正则表达式提取车牌号
180 0
|
机器学习/深度学习 人工智能 开发者
LangChain的LCEL和Runnable你搞懂了吗
LangChain的LCEL估计行业内的朋友都听过,但是LCEL里的RunnablePassthrough、RunnableParallel、RunnableBranch、RunnableLambda又是什么意思?什么场景下用?
LangChain的LCEL和Runnable你搞懂了吗