注明:
本文方法和LoRA+一样,都是解决模型无穷宽度(∞-width)时LoRA训练结果次优的问题。LoRA+通过对
矩阵设置不同的学习率,并只提供了调参的经验参考。本文提供了一个更优雅且实用的解决方案,提高优化的收敛性,可靠性和鲁棒性。
ICML 2024 || LoRA+: 提升模型微调效率的秘诀
1. 基本信息和摘要
论文题目
Riemannian Preconditioned LoRA for Fine-Tuning Foundation Models
-
Arxiv: https://arxiv.org/pdf/2402.02347
-
Code: https://github.com/pilancilab/Riemannian_Preconditioned_LoRA
作者
Fangzhao Zhang, Mert Pilanci
作者研究单位
Department of Electrical Engineering,
Stanford University
解决问题
神经网络宽度(表征维度大小)无穷大的时候(∞-width),LoRA结果次优。LoRA+通过为
和
矩阵设置不同学习率来改善这个问题,并通过实验建议学习率比例为
。这个方法
不能立即提供实际指导
。
本文为稳定特征学习提供了一个更优雅且实用的解决方案, 且不增加太多时间消耗。
摘要
在这项工作中,作者研究了通过引入
黎曼预处理器
(Riemannian precondition)
来增强低秩适应(LoRA)微调过程的方法。具体来说,作者在每一步梯度更新中引入了一个
的预处理器,其中
是LoRA的秩。
这个预处理器只需要对现有的优化器代码进行微小的改动,并且几乎不增加存储和运行时间开销。实验结果表明,使用这种预处理器可以显著提高SGD和AdamW的
收敛性
和
可靠性
,并且使训练过程对超参数选择(如学习率)更加
鲁棒
。理论上,作者展示了使用这种预处理器对两层层叠ReLU网络在凸参数化下的微调具有与数据矩阵的条件数无关的收敛速率。这是首次将黎曼预处理器引入深度学习任务。
3. 方法
理论洞察
因此,在梯度优化前乘上
和
,这样可以看到
这里的参数更新是通过将完整矩阵梯度
投影
到
的行空间和
的列空间上来完成的,这种方法与普通的梯度下降步骤相比,能够更精确地模拟全参数微调的效果。因此,作者引入黎曼预处理器有效地起到了梯度投影的作用。
同时,优化LoRA参数等价于在低秩矩阵构成的商流形上进行优化,这激发了作者利用黎曼优化工具来加速LoRA训练的想法。这个方法同样可以基于一种
新的黎曼度量
来推导出来。
具体方法描述
作者引入了一种新型的黎曼预处理器,用于LoRA的梯度步骤中。在每次迭代中(scaled GD, scaled AdamW),预处理器按照以下规则更新: