楼主: hulksmile
163 1

lora矩阵的初始化为啥B矩阵为0呢,为啥不是A呢 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

学前班

80%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
1.2048
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
30 点
帖子
2
精华
0
在线时间
0 小时
注册时间
2018-11-3
最后登录
2018-11-3

楼主
hulksmile 发表于 2025-11-21 17:12:11 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
在 LoRA 论文及其标准实现中,矩阵 $A$ 通常采用标准的随机初始化方法(如 Kaiming 或 Xavier 均匀分布),而矩阵 $B$ 则被显式地初始化为零矩阵。这种设计并非偶然,而是出于对训练稳定性与优化效率的综合考量。 LoRA 所引入的权重增量 $\Delta W$ 被定义为两个低秩矩阵的乘积: $$\Delta W = B A$$ 该更新项叠加在原始预训练模型的权重 $W$ 上,形成新的有效权重 $W' = W + \Delta W$。接下来将详细解释为何选择这样的初始化策略。 [此处为图片1] **为何将 $B$ 矩阵初始化为零?** 将 $B$ 初始化为零的核心目的在于:确保在训练初始阶段,LoRA 模块对基座模型的行为不造成任何扰动。由于 $\Delta W = B A$,当 $B = 0$ 时,无论 $A$ 取何值,都有: $$\Delta W = 0 \cdot A = 0$$ 因此,在第一次前向传播中,模型的有效权重仍为原始预训练权重 $W$,即 $W' = W + 0 = W$。 这一做法带来了显著优势: - 保证了训练起点的**稳定性**,延续了预训练模型已收敛的良好状态; - 避免因随机参数注入而导致输出剧烈波动; - 减少初期梯度震荡,保护模型已有知识不被破坏。 [此处为图片2] **为什么不将 $A$ 初始化为零?** 从结果上看,若将 $A$ 初始化为零,同样可得 $\Delta W = B \cdot 0 = 0$,也能实现初始无干扰的效果。然而,这种初始化方式会对后续的梯度传播造成不利影响。 考虑 LoRA 的结构路径:输入信号先经过矩阵 $A$,再通过矩阵 $B$ 输出。若 $A$ 初始为零,则其输出恒为零向量,导致传递给 $B$ 的激活值也为零。在反向传播过程中,由于链式法则依赖前层输出作为梯度计算的基础,$B$ 层接收到的梯度将趋近于零——这意味着 $B$ 的参数在训练初期几乎无法更新。 尽管 $A$ 自身可能接收到非零梯度(来自后向传播),但由于其输出始终为零,整个 LoRA 分支的数据流和梯度流均受到严重抑制,形成**信息瓶颈**,从而拖慢甚至阻碍训练进程。 [此处为图片3] **总结对比** | 矩阵 | 初始化方式 | 主要目的 | |------|------------|----------| | $A$ 矩阵 | 随机初始化(如 Kaiming/Xavier) | 保障 LoRA 路径具备有效的非零数据流动,使 $A$ 和 $B$ 均能获得合理的梯度信号,提升训练效率 | | $B$ 矩阵 | 零矩阵 | 确保 $\Delta W = 0$,让训练从原始预训练模型的状态平稳启动,维持初始稳定性 | 综上所述,$A$ 的随机初始化保障了梯度通路畅通,而 $B$ 的零初始化则确保了行为一致性,二者协同作用,在不影响预训练性能的前提下,实现了高效、稳定的微调过程。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:aiming Xavier Delta Ming vier

沙发
军旗飞扬 发表于 2025-11-22 13:20:18

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
jg-xs1
拉您进交流群
GMT+8, 2025-12-5 13:19