趋近智
LoRA假说提出,针对新任务调整预训练 (pre-training)权重 (weight)矩阵 所需的改变,可以通过低秩结构有效表示。LoRA不是直接训练可能很大的更新矩阵 ,而是将这个更新分解为两个较小的矩阵 和 。
考虑我们大型语言模型(LLM)中某层的原始权重矩阵 (例如,自注意力 (self-attention)或前馈网络中的线性层)。全量微调 (fine-tuning)方法会更新 中的所有 个参数 (parameter)。LoRA通过保持 不变并引入两个新矩阵来避免这种情况:
这里, 是分解的秩,它是选择的超参数 (hyperparameter),使得 。原始权重更新 随后通过这两个矩阵的乘积进行近似:
注意尺寸:矩阵 ()与矩阵 ()相乘得到一个原始尺寸 的矩阵,适合作为 的更新。
在微调 (fine-tuning)过程中,层的正向传播被修改。对于输入 ,原始计算是 。使用LoRA后,输出 变为:
值得注意的是,预训练 (pre-training)权重 (weight) 在训练期间不会更新。只有尺寸小得多的矩阵 和 的参数 (parameter)得到优化。这大大减少了可训练参数的数量。
The LoRA技术引入了一个缩放因子 。包含此缩放的修改后前向传播通常写为:
这里, 是另一个超参数 (hyperparameter),它缩放LoRA更新的贡献。除以秩 有助于规范更新的量级,使 的影响对 的选择依赖性降低。本质上, 控制了调整后的模型与原始模型的偏离程度。
效率提升源于可训练参数的大幅减少。我们不再训练 的 个参数,而只训练 和 中的参数。
LoRA中的总可训练参数 = 参数(A) + 参数(B) = 。
考虑一个典型的,其中 的大型线性层。
在这个例子中,相较于该单一层的全量微调 (fine-tuning),LoRA仅需训练约 的参数(即 )。这种减少非常显著,尤其当应用于大型模型中的多个层时,带来内存(用于优化器状态、梯度)的大幅节省和潜在更快的训练迭代。
LoRA矩阵的恰当初始化对于训练稳定性很重要。一种常见做法是:
这保证了在训练开始时(),乘积 为零。因此,初始的LoRA适应模型行为与原始预训练 (pre-training)模型()完全相同,为适应过程提供了一个稳定的起点。
我们可以可视化LoRA调整层中的数据流,它如何修改线性层的标准前向传播。
LoRA调整层中的数据流。输入 x 经过原始冻结权重 (weight)矩阵 W。同时,x 也由低秩矩阵 A 和 B 处理,随后进行缩放。这两条路径的输出随后相加,生成最终输出 h。
这种分解使得LoRA能够高效地调整大型模型,通过将学习过程集中在一组小的、精心构造的参数 (parameter)上,这些参数近似于对原始权重所需的改变。后续部分将介绍实用方面,例如选择秩 和缩放因子 。
这部分内容有帮助吗?
© 2026 ApX Machine LearningAI伦理与透明度•