详细摘要 摘要
生成:2025-06-01 22:20摘要详情
- 音频文件
- BiliBili | IBM RethinkFun | 三分钟学会大模型PEFT的LORA算法 lora_rank lora_alpha
- 摘要类型
- 详细摘要
- LLM 提供商
- openai
- LLM 模型
- gemini-2.5-pro-exp-03-25
- 已创建
- 2025-06-01 22:20:04
摘要内容
概览/核心摘要 (Executive Summary)
该视频详细介绍了大模型参数高效微调技术 LoRA (Low-Rank Adaptation) 的核心原理、关键参数及优势。LoRA 通过在原始权重矩阵旁引入两个低秩矩阵(LoRA A 和 LoRA B)来间接调整模型参数。在前向传播时,输入分别通过原始权重和 LoRA 权重(LoRA A 与 LoRA B 的乘积,并经过 alpha 因子缩放)产生输出,两者相加得到最终输出。关键在于,训练过程中仅更新 LoRA A 和 LoRA B 的参数,原始模型权重保持冻结,从而大幅减少需要训练的参数量。例如,对于一个 4096x4096 的权重矩阵,当 rank (r) 设置为 4 时,LoRA 训练的参数量仅为原始参数量的 1/512。训练完成后,LoRA 权重可以与原始权重合并,不改变模型结构,也不增加推理时的额外计算量。LoRA 的两个核心参数是 rank (r),决定了低秩矩阵的维度,通常远小于原始维度;以及 alpha (α),一个缩放因子,用于调节 LoRA 分支对原始输出的贡献。LoRA 的主要优点包括显著减少微调参数量、训练效果接近全量微调、权重可合并且不影响推理效率。
LoRA 原理与机制
核心思想
深度神经网络的核心是矩阵运算,大模型中的权重矩阵维度巨大。LoRA (Low-Rank Adaptation) 旨在通过简化权重矩阵的调整来达到参数高效微调的目的。其核心思想是在原始权重矩阵旁边,构建两个新的、更小的权重矩阵(LoRA A 和 LoRA B),通过训练这两个小矩阵来间接更新原始网络。
- 原始权重 (W): 维度为 M x N。
- LoRA A 权重: 维度为 M x r。
- LoRA B 权重: 维度为 r x N。
- 其中
r是一个远小于 M 和 N 的中间维度 (rank)。 - LoRA A 和 LoRA B 的乘积 (
LoRA_A * LoRA_B) 维度与原始权重 W 相同 (M x N)。
- 其中
前向传播
- 输入数据同时通过两条路径:
- 路径1 (原始路径): 输入乘以原始权重矩阵 W,得到一个输出
X。 - 路径2 (LoRA 路径): 输入乘以 LoRA A 和 LoRA B 的乘积(即
LoRA_A * LoRA_B),得到另一个输出ΔX。
- 路径1 (原始路径): 输入乘以原始权重矩阵 W,得到一个输出
- 最终输出是这两条路径输出的结合。在实际实现中,
ΔX会经过一个调节因子 (alpha / r) 缩放后再与X相加。Output = X + (alpha / r) * ΔX
后向传播与训练
- 在训练过程中,原始权重矩阵 W 被锁定(冻结),不进行更新。
- 仅对 LoRA A 和 LoRA B 的权重进行更新。
参数量对比
LoRA 显著减少了需要训练的参数数量。
- 示例1 (3x3 矩阵):
- 原始权重参数:3 * 3 = 9 个。
- 假设
r=1,则 LoRA A (3x1),LoRA B (1x3)。 - LoRA 权重参数:(3 * 1) + (1 * 3) = 6 个。
- 视频中提到“3乘1加上1乘3 1共6个”,此处的额外“1”可能是口误或转录错误。
- 示例2 (4096x4096 矩阵,r=4):
- 原始权重参数:4096 * 4096 = 16,777,216 个。
- LoRA A 参数:4096 * 4 = 16,384 个。
- LoRA B 参数:4 * 4096 = 16,384 个。
- 总 LoRA 训练参数:16,384 + 16,384 = 32,768 个。
- 参数缩减比例:
32768 / 16777216 = 1/512。- “训练参数是原始参数的512分之1,减少的参数量还是非常可观的。”
训练完成后的权重合并
- 训练完成后,原始权重矩阵 W 保持不变。
- 得到训练好的 LoRA A 和 LoRA B 权重。
- 计算 LoRA 权重矩阵:
ΔW_LoRA = LoRA_A * LoRA_B。 - 将经过缩放的 LoRA 权重矩阵加到原始权重矩阵上,完成对原始网络的更新:
W_updated = W + (alpha / r) * ΔW_LoRA- 视频中提到:“我们只需要把laa权重加到原始权重上,就完成了对原始网络的更新。”并补充“也记得要对laa权重加上这个调节因子。”
LoRA 的关键参数
Rank (r)
- 定义:
r是连接 LoRA A 和 LoRA B 两个矩阵的中间维度。- LoRA A 的维度为 M x r。
- LoRA B 的维度为 r x N。
- 特性:“一般它远远小于原始权重矩阵中的M和N”。
- 常见设置:“一般R我们设置为二、4、8、十六等” (即 2, 4, 8, 16 等)。
Alpha (α)
- 定义:一个调节因子,用于缩放 LoRA 分支的输出。
- 作用:在前向传播时,LoRA 分支的输出
ΔX会乘以alpha / r。- “我们要对戴尔塔的权重进行一个调节,这个调节因子就是阿尔法除以R”。
- 影响:“调节因子决定了X影响的大小” (更准确地说是调节
ΔX对原始输出X的影响大小)。 - 常见设置:“一般我们设置阿尔法为R的I到8倍” (应为 “1到8倍”,即
α通常设为r的1倍至8倍之间)。
LoRA 的优点
视频总结了 LoRA 训练的几个主要优点:
- 显著节省参数量: “它大大节省了微调大模型的参数量。”
- 效果接近全量微调: “它的训练效果和全量微调差不多。”
- 权重可合并,推理无额外开销: “微调完的laa模型权重可以末置回原来的权重,不会改变原有的模型结构,推理时也不增加额外的计算量。”
- 灵活性与可扩展性: “你可以通过改变rank R二的参数,使得最高的情况下Lara的训练实际上等同于全量微调。” (此处的“二”可能是口误或转录错误,意指通过调整
r的大小,极端情况下可以接近全量微调的效果)。
结论
LoRA 作为一种参数高效微调技术,通过引入并仅训练低秩适配矩阵,能够在大幅减少训练参数的同时,达到与全量微调相近的性能。其权重可合并的特性使其在推理时不会引入额外计算负担,因此得到了广泛应用。