趋近智
低秩适应(LoRA)引入了一种特定的数学结构,其设计理念是基于适应过程中权重更新具有低内在秩的假设,旨在提升参数效率。在标准微调中,通过添加一个增量矩阵ΔW∈Rd×k来更新预训练权重矩阵W0∈Rd×k,从而得到适应后的权重W=W0+ΔW。这种传统训练方法需要学习ΔW中的所有d×k个参数。
LoRA提出了一种不同的方法。我们不直接学习可能很大的ΔW,而是使用低秩分解对其进行近似。具体来说,ΔW由两个较小矩阵B∈Rd×r和A∈Rr×k的乘积表示:
ΔW≈BA这里,r是分解的秩,LoRA的主要思想是r≪min(d,k)。这个约束大大减少了我们需要学习的参数数量。原始权重W0保持冻结(训练期间不更新),而矩阵A和B包含表示任务特定适应的可训练参数。
考虑通过LoRA修改的层的正向传播。对于输入x,原始输出是h=W0x。加入LoRA更新后的修改输出变为:
h=W0x+ΔWx=W0x+BAx在使用LoRA进行微调时,只有矩阵A和B中的参数通过梯度下降进行更新。原始权重W0保持不变。
为了更好地控制适应过程,LoRA引入了一个常数缩放因子α。这个标量调节由BA施加的更新的幅度。通常的做法是将更新按rα进行缩放。这种归一化有助于稳定训练,尤其是在改变秩r时。LoRA修改层的最终正向传播方程是:
h=W0x+rαBAx我们来分析参数效率的提升。完整微调需要为ΔW矩阵学习d×k个参数。使用LoRA,我们只需要学习A和B中的参数。LoRA中可训练参数的总数是A (r×k)和B (d×r)中参数的总和,即r(d+k)。由于r通常远小于d和k,可训练参数的数量显著减少。例如,如果d=4096、k=4096且r=8,完整微调大约需要16.7百万个参数,而LoRA对于该特定层仅需要8×(4096+4096)=65,536个参数。这表示参数减少了99%以上。
该结构可以被视为原始权重矩阵添加了一个并行路径:
经过LoRA修改层的正向传播。输入x通过冻结权重W0,同时并行地通过可训练的低秩矩阵A和B。低秩路径在添加到原始输出之前,会按α/r进行缩放。
关于初始化,一种常见策略是使用随机高斯值初始化A,并用零初始化B。这确保了ΔW=BA在训练开始时为零,这意味着适应后的模型与预训练模型W0的起始状态完全一致。缩放因子α通常设置为与r的初始值匹配,尽管它也可以作为一个超参数来处理。我们将在后续章节(秩选择策略、缩放参数Alpha、LoRA初始化策略)中更详细地分析初始化和超参数选择,例如r和α。
总而言之,LoRA的数学表述提供了一种具体机制,用于通过低秩结构BA来近似权重更新ΔW。通过冻结原始权重W0并仅训练小型矩阵A和B,LoRA实现了显著的参数效率,大幅减少了微调大型模型所需的计算和内存开销,同时力求保持适应能力。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造