LoRA 的 A、B 矩阵训练过程
目录
是的,完全正确。而且可以把这句话说得更精确一些。
一、直接结论(精确定义)
LoRA 中的 A、B 矩阵,都是通过样本数据的反向传播训练出来的参数;
只有在训练完成后,它们才携带“对垂直领域有意义的有效值”。
在训练前:
- A:随机初始化(无语义)
- B:全 0(无影响)
在训练后:
- A、B:共同编码了“在什么输入条件下、沿哪些方向修正输出”
二、训练过程里 A、B 是如何“逐步变得有意义”的?
这是理解 LoRA 的关键。我们按时间顺序来看。
1️⃣ 训练起点(step = 0)
[
\Delta W = BA = 0
]
- 模型行为 = 原始预训练模型
- A 没有被使用
- B 没有被使用
此时:
- A 是随机的,但“尚未参与计算”
- B 是 0,负责“阻断”增量路径
2️⃣ 初期训练(只学 B)
由于:
[
\frac{\partial L}{\partial A} = 0,\quad
\frac{\partial L}{\partial B} \neq 0
]
于是:
-
梯度只更新 B
-
B 学到的是:
“在当前任务中,输出在哪些方向需要被修正”
这一步是从任务损失直接反推输出偏移方向。
3️⃣ 中后期训练(A、B 协同)
当:
- B ≠ 0 后
- 梯度开始流向 A
于是:
-
A 学到:
“哪些输入模式,会激活这些输出修正”
到这一步:
- A、B 才真正“联动”
- ΔW 开始对特定输入产生非零影响
三、为什么说这是“样本数据驱动”的?
因为每一次参数更新都来自:
[
\nabla_{A,B} ; \mathbb{E}{(x,y) \sim \mathcal{D}} [L(f(x), y)]
]
也就是说:
- 数据分布 (\mathcal{D}) 决定梯度方向
- 样本中出现得越多的模式
- 在 A、B 中占的“体积”就越大
A、B 本质上是训练数据在函数空间中的一个低秩摘要。
四、训练完成后,A、B 到底“存的是什么信息”?(不是记忆样本)
这是一个容易误解的点。
- A、B 不是样本表
- 也不是规则 if / else
它们编码的是:
- 输入表示空间中的方向
- 输出空间中的修正方向
- 两者之间的映射关系
这也是为什么:
- LoRA 参数量很小
- 却能对新样本产生泛化效果
五、和业务系统再对一次类比(帮助直觉)
| 业务系统 | LoRA |
|---|---|
| 手写规则 | A、B 的参数 |
| 规则来自经验 | 规则来自样本梯度 |
| 判断条件 | 输入向量投影 |
| 执行逻辑 | 输出方向偏移 |
但注意:
LoRA 学到的是“连续规则”,不是离散规则。
六、一句话总结(非常准确)
LoRA 的 A、B 矩阵,完全由训练样本通过反向传播学习得到;
它们在训练后共同定义了一个低秩的、数据驱动的输出修正函数。

浙公网安备 33010602011771号