ICLR 2025 Spotlight:参数冗余微调新范式——NoRM算法

上海交大&上海AI Lab提出NoRM算法,解决LoRA微调中幻觉噪声问题,通过去除冗余参数提升模型性能。实验表明,NoRM在多项任务上均优于现有方法。

原文标题:ICLR 2025 Spotlight | 参数高效微调新范式!上海交大联合上海AI Lab推出参数冗余微调算法

原文作者:机器之心

冷月清谈:

上海交大联合上海AI Lab提出参数冗余微调算法NoRM,旨在解决LoRA微调中因幻觉噪声限制性能的问题。NoRM通过SVD分解LoRA参数,利用Sim-Search方法动态确定主成分数量,去除冗余成分。实验结果表明,NoRM在指令微调、数学推理和代码生成任务上均优于LoRA和其他参数冗余微调方法。该研究揭示了微调参数中的冗余现象,并提出了一种智能识别和保留有价值参数的方法,为强化学习微调提供了借鉴。

怜星夜思:

1、NoRM算法中提到的“幻觉噪声”具体指什么?它在微调过程中是如何产生的?
2、NoRM算法通过去除冗余参数来提升性能,那么在实际应用中,如何平衡参数效率和模型性能?是否存在一个“最佳冗余度”?
3、文章提到可以将NoRM的设计哲学迁移到强化学习中,具体可以如何操作?这样做有哪些潜在的优势和挑战?

原文内容


本文作者来自复旦大学、上海交通大学和上海人工智能实验室。一作江书洋为复旦大学和实验室联培的博二学生,目前是实验室见习研究员,师从上海交通大学人工智能学院王钰教授。本文通讯作者为王钰教授与张娅教授。


低秩适配器(LoRA)能够在有监督微调中以约 5% 的可训练参数实现全参数微调 90% 性能。然而,在 LoRA 训练中,可学习参数不仅注入了知识,也学习到了数据集中的幻觉噪声。因为这种特性的存在,大多数的 LoRA 参数都将可学习秩设置为一个较小的值(8 或者 16),通过减小知识学习程度来避免幻觉,而这也限制了 LoRA 的性能上限


图 1 普通的 LoRA 微调随着秩的增大性能无法同步增加,而参数冗余微调能够以冗余参数提升性能。


为了解决这个问题,上海交通大学人工智能学院、复旦大学和上海人工智能实验室的团队提出了参数冗余微调范式以及一种创新性的微调算法:NoRM(Noisy Reduction with Reserved Majority)。参数冗余微调范式下,可以以普通的 LoRA 训练方式进行训练,并使用特定的方法在将 LoRA 参数合并回基模型参数前将冗余部分去除。NoRM 通过 SVD 将 LoRA 参数分解为主成分和冗余成分,并提出了 Sim-Search 方法,以子空间相似度动态决定主成分的数量。评估结果显示,NoRM 在指令微调、数学推理和代码生成的任务上一致性强于 LoRA 和其他参数冗余微调方法,实现无痛涨点。



  • 论文链接:https://openreview.net/pdf?id=ZV7CLf0RHK

  • 开源代码:https://github.com/pixas/NoRM

  • 论文标题:FINE-TUNING WITH RESERVED MAJORITY FOR NOISE REDUCTION


研究动机


研究者首先在 Llama3-8B-Instruct 上进行预备实验,使用 MetaMathQA-395K 数据集对模型进行微调,并在 SVAMP 上进行测试。研究者通过三个方面探究微调过程中的冗余现象:(1)随机删除 10%~90% 的 LoRA 参数通道;(2)使用(1)中的方法,对 Transformer 中的不同层的 LoRA 参数进行随机删除;(3)使用(1)的方法,对 Transformer 中的不同模块的 LoRA 参数进行随机删除。实验结果发现,不仅随机删除 LoRA 参数能够提升下游模型的性能,不同层之间和模块之间删除 LoRA 参数对性能的影响呈现一定的规律。


图 2 随机删除比例(a)的性能变化曲线和模型层索引(b)以及模块(c)上的性能分布。对达成最好性能的保留比例用深蓝色重点展示。


方法概述


在 LoRA 微调中,并不是直接更新参数 ,而是更新一个低秩表达: 。这个表达假设了参数的更新过程中,只在秩以内进行变化。在参数冗余微调中,为了高效减小参数冗余度,并能够根据不同模块和层之间的冗余不同去设计算法,研究者们首先考虑直接使用奇异值分解(SVD)对参数更新部分进行分解:

其中 为左右奇异矩阵, 是包含了 奇异值的对角矩阵。一种朴素的思想是保留最大的 个奇异值和响应的奇异向量:

然而,通过这种方法只能得到整体的更新参数 ,无法得到两个 LoRA 参数分别去除冗余后的分量。为了能够获得一个在预处理和参数存储上都更加高效的算法,研究者转向使用随机 SVD 来分别近似  。特别地,随机 SVD 以高斯分布初始化一个随机矩阵


图 3 NoRM 的算法总览。其使用随机奇异值分解来提取 delta 参数的主成分,并使用(b)Sim-Search 基于裁剪后的 delta 权重和预训练权重间的子空间相似度决定拥有最小幻觉成分的 c 个通道。


接着,计算 的主要列子空间: 来近似特征空间。在此之后,通过对 QR分解 得到 的正交基的近似 。基于此正交基,可以在 的低维空间上得到delta权重的投影

那么在这个小矩阵 上执行标准SVD就可以得到:

其中 ,然后将 转化回去来近似奇异向量: 。基于上述计算量,可以重构近似处理后的低秩参数:

确定好整个计算流程后,研究者们通过一种Sim-Search的方法来确定要保留的分量。这种方法通过预先设置好的两个搜索超参数,搜索步数 和搜索步长 ,得到一组不同 下的低秩分量,以及所对应的delta权重 。研究者对每一个delta权重使用SVD计算主要的 个奇异矩阵:

并使用同样的公式对基模型的权重进行同样的分解得到 。通过提取 的左奇异向量来计算子空间相似度:

其中

。基于计算好的Grassmann距离 ,可以选择这一组中拥有最大Grassmann距离的值及对应的delta权重



实验结论


NoRM 通过在三种不同的基模型以及三个不同的微调任务上进行实验,展现出强大的性能。


实验 1:指令微调实验


该任务主要测试,对 Instruct 模型进行微调后,如何保证多任务间的泛化性。通过和不同的 PEFT 基线进行比较,NoRM 在所有基模型上相比于最好的 PEFT 方法有着约 5 个点的提升。和之前最强的冗余微调方法 TAIA 相比,也有着 1~3 个点的提升,展现了 NoRM 强大的冗余去除能力。



实验 2:专域微调实验


该任务主要测试通过 NoRM 去除了冗余成分后,是否会对下游知识的学习造成影响。该实验选择 Llama3-8B 作为基模型,在数学推理和代码生成上进行测试。实验结果表明,由于 NoRM 可以使用更大的秩进行微调,在下游知识的吸收上,也优于之前的 PEFT 方法约 4 个点,领先 TAIA 约 3 个点。



实验 3:可学习参数对 NoRM 的影响


NoRM 通过对可微调参数中的冗余部分进行自适应去除降低微调幻觉。本实验中,通过改变秩的大小,NoRM 的性能随着可微调参数的增加而增加,而 LoRA 的性能并没有这样的趋势,这也映证了微调参数中存在大量冗余,这也是 LoRA 无法使用大秩提升性能的原因之一。


图 4 NoRM 可以从大秩中受益,但基础的 LoRA 在秩增大后反而降低性能。


实验 4:NoRM 的学忘比


通过对 LoRA 和 NoRM 在记住预训练知识的能力上进行比较,可以证实 NoRM 的设计哲学在于尽可能保留下游语料中和预训练参数中重叠最大的部分。通过测试在 WikiText-103 测试集上的损失函数值,可以看到 NoRM 的损失降低,而 LoRA 相比于基模型都有着一定程度上的升高。



结论和展望


这篇工作发现了有趣的高效参数冗余现象,并提出了 NoRM 算法来智能识别并保留最有价值的参数,同时去除有着负面作用的冗余参数,给微调参数做了一次 “减重手术”。在目前强化学习微调盛行的当下,可以将 NoRM 的设计哲学迁移到强化学习中,通过去除数据中会带来噪声的成分,提升模型下游任务的适配性和多任务之间的泛化性。



© THE END 

转载请联系本公众号获得授权

投稿或寻求报道:liyazhou@jiqizhixin.com


从算法层面来看,可以将NoRM的参数分解和主成分分析的思想应用到强化学习中的策略网络和价值网络的更新过程中。可以定期对网络参数进行SVD分解,去除冗余成分,保留最重要的特征。这样做的好处是可以提高强化学习算法的样本效率,减少训练时间。但挑战在于如何保证在去除冗余参数的同时,不会损失重要的信息,导致性能下降。

我觉得把NoRM用到强化学习里,就像给智能体做“瘦身”。以前的强化学习,智能体为了完成任务,可能会学到很多花里胡哨的动作,其实有些动作是没用的,甚至会干扰学习。现在用NoRM,就像给智能体“减负”,让它专注于学习最有效的策略。当然,这个“瘦身”的过程要小心,别把有用的东西也给减掉了,那就得不偿失了。

楼上两位老哥讲的都很有道理!我补充一个抖机灵的解释:你可以把“幻觉噪声”理解成模型微调后产生的“人工智障”现象,就是模型有时候会一本正经地胡说八道,但自己还觉得挺有道理的。就好比你给AI喂了一堆“爽文”数据,它微调后可能会自信满满地写出“龙傲天”一样的剧情,但实际上毫无逻辑可言。

从信息论的角度看,幻觉噪声是模型在微调过程中引入的冗余信息,这些信息并非模型泛化能力提升的关键。 它们可能是训练数据中存在的偏差或噪声,也可能是模型在学习过程中产生的自身偏差。LoRA 为了防止学到这些幻觉噪声,通常将秩设置为一个较小的值,通过减小知识学习程度来避免幻觉,而这也限制了 LoRA 的性能上限。

这是一个非常关键的问题。我认为“最佳冗余度”是存在的,但它并非一个固定的值。它取决于具体的任务、数据集和基模型。NoRM算法的优势在于它能够动态地调整冗余度,通过Sim-Search方法来寻找当前场景下的最佳平衡点。未来的研究方向可以探索如何更高效地搜索这个最佳冗余度,例如使用更智能的搜索算法或者引入更多的先验知识。

将NoRM的设计哲学迁移到强化学习中,可以考虑在奖励函数的设计上有所创新。例如,可以设计一个“冗余惩罚项”,鼓励智能体学习更简洁、更高效的策略,避免过度依赖某些特定的状态或者动作。此外,还可以借鉴NoRM的Sim-Search方法,动态地调整策略网络的参数冗余度,使其更好地适应不同的环境和任务。

幻觉噪声可以理解为模型在微调过程中学到的一些不真实或者不相关的模式,这些模式可能来自于数据集本身的偏差或者噪声,导致模型在特定任务上表现出看似“智能”,但实际上是错误的回答。比如,微调数据中存在一些错误的label,模型会学习到这些错误的关联,在测试时给出错误的答案。

我觉得这个问题有点像“中庸之道”。冗余度太低,模型学到的知识不够,性能上不去;冗余度太高,模型容易过拟合,引入幻觉噪声。关键在于找到一个平衡点,既能让模型充分学习知识,又能避免过拟合和噪声干扰。这个平衡点可能因任务而异,需要根据实际情况进行调整。

从工程实践的角度来看,平衡参数效率和模型性能需要进行大量的实验和调优。可以考虑使用一些自动化超参数优化工具,例如Optuna或者Ray Tune,来寻找最佳的参数配置,包括NoRM算法中的搜索步数和搜索步长等超参数。此外,还可以借鉴一些模型剪枝和量化的方法,进一步压缩模型大小,提高推理效率。