LoRA 的低秩矩阵如何初始化?
未标记
考查重点:零初始增量与梯度传播。常见 LoRA 让 A 随机、B 为0,使 BA 初始为0不扰动基座;两矩阵不能都0,否则初始梯度可能受阻
本题目录
参考答案
核心回答
标准 LoRA 常让降维矩阵 A 随机初始化、升维矩阵 B 初始化为零。这样初始增量 BA=0,新分支加入时不改变基座线性层的输出,同时又能通过梯度更新逐步学出调整量。LoRA 原论文使用高斯随机初始化 A;PEFT 的常见默认实现使用 Kaiming-uniform 初始化 A、把 B 置零,两者不能混成唯一固定实现。
关键不是“A必须服从某个分布”,而是初始输出保持稳定,同时保证分支能够学习。具体初始化还要结合实现与所选变体确认。
为什么不能两个都置零
设输出为 h=W₀x+sBAx,s 是分支缩放,损失对输出的梯度为 g。忽略批次求和,分支梯度可写成:
∂L/∂B = s × g × (Ax)ᵀ
∂L/∂A = s × Bᵀ × g × xᵀ
当 B=0、A 为随机值时,首步 A 的梯度为零,但 B 通常可以获得非零梯度。B 更新后,后续步骤就能同时更新两者。若 A、B 都为零,在这个纯乘积分支中两者梯度也都为零,常规梯度更新无法把分支启动起来。
所以“第一步 A 没梯度”不等于训练失效;应检查 B 是否进入优化器、损失是否有有效信号,以及后续增量是否变化。
怎样验证初始化
固定输入、基座权重和推理模式,在未训练时比较启用与禁用适配器的输出;标准零增量初始化应在数值误差范围内一致。再用一个小批次反向传播,核对可训练参数、梯度和一次更新后的增量。验证时关闭随机丢弃等随机因素,避免将随机差异误判成初始化改变模型。
若验证的是已保存的适配器,先核对基座与适配器的配对和加载配置,避免把加载错误当成初始化问题。
其他初始化方法可能利用奇异向量或量化误差,有的还会重参数化基座;不能继续用“B 必为零”推断它们错误。先说明讨论的是标准 LoRA,再看具体配置。
对应教程
- 《模型训练原理与高效微调》:回看第6节的冻结权重、低秩分支与参数设置;本文补充计算条件和工程取舍。
参考资料
- 国内:wdndev:LoRA技术原理:采用随机A、零B保持初始分支输出为零的说明,展开梯度启动过程。
- 国内:WeThinkIn:后训练:微调与对齐:采用rank、缩放与标准初始化的分工,限定本文讨论的
LoRA形式。 - 国内:adongwanai:SFT实战经验分享:采用先建立基线、再用小样本观察训练信号的流程,组织初始化验证。
- 国内:ModelScope:预训练与微调:参考基座与适配器的加载和验证集推理方式,说明比较输出前要核对加载配置。
- 国外:Microsoft:LoRA: Low-Rank Adaptation of Large Language Models:采用论文对随机A、零B及初始零增量的定义,推导梯度为何能启动。
- 国外:Hugging Face:LoRA (PEFT v0.21.0):核对默认
Kaiming-uniform、gaussian选项与其他初始化方式的区别。
相关面经
3 篇收录题集
多模态训练与微调
公司案例问答汇编
项目:讲一下LoRA微调的原理,
八股:LoRA 初始化怎么做的,
后训练章节追问
SFT与指令微调
LoRA初始化与秩设置
LoRA原理
展开其余 2 条原题
LoRA超参数设置
LoRA与AdaLora 解释一下LoRA、AdaLora,
多模态与计算机视觉
Qwen-VL架构 介绍Qwen Image以及Qwen Image Edit架构,VAE细节。

