lora矩阵的初始化为啥B矩阵为0呢,为啥不是A呢

在 LoRA 论文及其标准实现中,LoRA 矩阵 B 确实被初始化为零矩阵,而矩阵 A 则使用标准的初始化方法(例如 Kaiming 或 Xavier 均匀分布)进行初始化。

LoRA 引入的权重更新 \\Delta W 定义为两个低秩矩阵 A 和 B 的乘积:

\\Delta W = B A

1. 为什么 B 矩阵初始化为零?

将 B 矩阵初始化为零是为了确保在训练开始时,新的 LoRA 模块不会对基座模型(Pre-trained Model)的输出产生任何干扰或改变。

  • 如果 B = 0 且 \\Delta W = B A,那么在训练开始的第一个前向传播中:

    \\Delta W = 0 \\cdot A = 0

  • 这意味着原始的权重矩阵 W 上的更新项 \\Delta W 也是零。模型的输出完全由原始的预训练权重 W 决定,即 W' = W + \\Delta W = W + 0 = W。

  • 好处: 这样可以确保训练从一个稳定且收敛良好的预训练状态开始,避免由于随机初始化带来的剧烈、不稳定的梯度波动,从而保护了预训练模型已经学到的知识。

2. 为什么不是 A 初始化为零?

如果 A 矩阵初始化为零,也会得到 \\Delta W = B \\cdot 0 = 0,效果看起来一样。

然而,将 A 初始化为零会带来一个训练过程中的优化问题:

  • 梯度消失或不均匀: LoRA 结构是串联的:输入 \\rightarrow A \\rightarrow B \\rightarrow 输出。

    • 如果 A 初始为零,则 A 矩阵的输出会是零向量。

    • 当进行反向传播计算 B 的梯度时,由于 A 的输出是零,导致 B 的输入梯度也会是零(或非常小),这使得 B 矩阵的参数在训练初期难以被有效更新。

    • 虽然 A 矩阵会得到非零的梯度,但整体来看,如果 A 是零,会造成数据流和梯度流在 LoRA 路径上产生瓶颈,使得训练效率低下。

总结:

矩阵 初始化方法 目的
A 矩阵 随机初始化 (例如 Kaiming/Xavier) 确保 LoRA 路径开始时有有效的、非零的数据流,以便 B 和 A 都能接收到正常的梯度信号,加速训练。
B 矩阵 零矩阵 确保 \\Delta W = B A = 0,保证训练从预训练模型的原始状态平稳开始,维护模型的稳定性。
相关推荐
码爸12 分钟前
支持向量机介绍与示例
算法·机器学习·支持向量机
Smoothcloud润云1 小时前
PyTorch大模型权重加载与启动耗时优化实战:定位磁盘、内存与显存瓶颈
人工智能·pytorch·python·深度学习·gpu算力
别动我齐刘海2 小时前
Linux 系统调试学习1
linux·运维·服务器·c++·学习·机器学习·机器人
szxinmai主板定制专家4 小时前
储能EMS + 协调控制器实战:RK3568/3576/3588+FPGA+AI 故障录波与诊断
人工智能·深度学习·机器学习·fpga开发·rk3588·rk3576·协调控制器
努力努力再努力wz5 小时前
【机器学习入门系列】从随机事件到正态分布:一文梳理概率论的核心知识
人工智能·机器学习·概率论
高洁016 小时前
AI赋能产业升级与中美未来经济赛道博弈
人工智能·python·深度学习·机器学习·transformer
田里的水稻6 小时前
LLM_Transformer的神经网络
人工智能·深度学习·神经网络·机器学习·transformer
LaughingZhu7 小时前
任务在飞书创建,开发在 Orca 继续:我把飞书项目接到了 Linear
大数据·人工智能·深度学习·神经网络·飞书
一水鉴天7 小时前
UML/MOF 元层级与 Model & Notation:整体设计核心术语的定稿探讨 20261012(豆包“查看聊天内容”继续)
人工智能·机器学习
陈嘿萌7 小时前
TIP 2026|没有分割标签,也能做任务导向图像融合:SSVIF的自监督语义注入
图像处理·人工智能·深度学习·计算机视觉·图像融合·学术研究与理论基础