论文标题
Compositional Subspace Representation Fine-tuning for Adaptive Large Language Models
论文地址
https://arxiv.org/pdf/2503.10617
前言
Lora在权重层面上与模型原有参数隔离,并通过结构限制快速拟合微调所需要的低秩变换矩阵,实现了对模型输出既高效又准确的调整。然而在实际应用中,我们根据业务需要调整大模型的表现时,可能会有多方面的任务需要训练,不同的任务可能会存在参数冲突。
本文提出了一种对lora模块进行正交投影的方法,让不同任务在互不影响的子空间上进行参数更新,从而避免参数冲突带来的负优化现象
相关工作:O-Lora
本文与2023年10月复旦提出的O-Lora非常类似:
O-Lora主要用于解决连续微调时的灾难性遗忘问题,它在每个微调任务上都训一个lora分支,并保证不同lora模块的参数矩阵A相互正交
这样在融合主干网络和不同的Lora适配器时,每一组参数互不干扰,不会发生相互抵消的情况
本文方法
本文提出的方案叫做Compositional Subspace Representation Fine-tuning (组合子空间表示微调,CS-ReFT),主要解决在同一个lora模块上进行多任务学习时的知识冲突问题。
如上图所示,CS-ReFT会定义n个投影矩阵,其中n为任务数量。待分解的模块不仅需要降维+升维,还要投影到这n个子空间中:
解释:
-
每个任务对应一组W和b,它们都是可学习的参数,用于存储新知识
-
R是正交矩阵,即:R^T * R = I
-
残差连接是为了保证深度学习模型的快速收敛
-
减R_k是为了抵消掉部分残差连接的信息,上图等价于:
Φ ( h ) = h + ∑ k n R k T ( W k h + b k − R k h ) = h + ∑ k n R k T ( W k h + b k ) − ∑ k n R k T R k h = h + ∑ k n R k T ( W k h + b k ) − ∑ k n h Φ(h) = h +\sum_k^n R_k^T(W_k h + b_k - R_k h)\\ =h +\sum_k^n R_k^T(W_k h + b_k) - \sum_k^nR_k^TR_k h\\ =h +\sum_k^n R_k^T(W_k h + b_k) - \sum_k^nh Φ(h)=h+k∑nRkT(Wkh+bk−Rkh)=h+k∑nRkT(Wkh+bk)−k∑nRkTRkh=h+k∑nRkT(Wkh+bk)−k∑nh
其中sigma表示了选中子空间加权求和的过程,那么Φ的效果可理解为:
i. 在原始隐藏状态h中,清空指定子空间的内容
ii. 把h中指定子空间的内容,做一个类似于Lora的降维升维变换
iii. 把上述变换后的结果,填充到之前清空了的子空间中
可见上述操作确保了学习到的新知识仅在指定子空间中更新参数。
此外在训练目标中,还要求router尽可能少地选择投影子空间,以提高每个子空间的专用性
实验结果
与其他高效微调方法相比,限制子空间投影的方案效果明显更好,相比于LoRA效果提升15%
总结
启发
- 通过参数子空间正交,可以实现在不进行模块分离的情况下,让训练任务互不干扰,比O-Lora等多适配器方案使用的参数更少
不足
-
本文各个环节缺少消融实验,原文也缺少数学推导过程
-
只用了小尺寸模型做测试
-
本文中的对照实验都是单适配器,没有与多适配器设置进行对比,效果不一定比O-Lora好