DyLoRA:使用动态无搜索低秩适应的预训练模型的参数有效微调
又一个针对LoRA的改进方法: DyLoRA: Parameter-Efficient Tuning of Pretrained Models using Dynamic Search-Free Low Rank Adaptation https://arxiv.org/pdf/2210.07558v2.pdf https://github.com/huawei-noah/KD-NLP/tree/main/DyLoRA LoRA存在的问题 提出的方法 主要贡献 在每一个LoRA模块中,有一个向上投影 前向传播计算时是这么计算的: 损失的计算: 另外在训练的时候增加了一个新的模块: 整个流程如下: 需要注意反向传播时是否是更新整个截断块还是第b个行或列。 首先是说明不同rank对结果的影响: 接着是该方法和其他方法的对比:Part1
前言
:
:引入了一种动态低秩适应(Dy-LoRA)技术。通过对适配器模块在训练期间的不同秩所学到的表示进行排序,为一系列的秩而不是单一的秩训练LoRA块。
:
Part2
介绍
和向下投影
的矩阵。设我们想训练LoRA模块在
的范围内操作,其中
和
可以被视为新的超参数。为了使LoRA模块在一系列的秩中工作,而不是单一的秩,我们需要确保增加或减少秩不会明显阻碍模型的性能。实现这种行为的一种方法是在LoRA模块的训练过程中对不同秩的信息内容进行排序。在这方面,在每个训练步骤中,我们对
进行抽样。形成一个预先定义的分类分布其(支持度为Range[rmin, rmax]),并相应地截断
和
矩阵。
和
是W的b截断版本。
frozen
,即只更新截断块中第b个相关的行或者列。Part3
实验结果