详细摘要 摘要

生成: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. 输入数据同时通过两条路径:
    • 路径1 (原始路径): 输入乘以原始权重矩阵 W,得到一个输出 X
    • 路径2 (LoRA 路径): 输入乘以 LoRA A 和 LoRA B 的乘积(即 LoRA_A * LoRA_B),得到另一个输出 ΔX
  2. 最终输出是这两条路径输出的结合。在实际实现中,Δ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,减少的参数量还是非常可观的。”

训练完成后的权重合并

  1. 训练完成后,原始权重矩阵 W 保持不变。
  2. 得到训练好的 LoRA A 和 LoRA B 权重。
  3. 计算 LoRA 权重矩阵:ΔW_LoRA = LoRA_A * LoRA_B
  4. 将经过缩放的 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 训练的几个主要优点:

  1. 显著节省参数量: “它大大节省了微调大模型的参数量。”
  2. 效果接近全量微调: “它的训练效果和全量微调差不多。”
  3. 权重可合并,推理无额外开销: “微调完的laa模型权重可以末置回原来的权重,不会改变原有的模型结构,推理时也不增加额外的计算量。”
  4. 灵活性与可扩展性: “你可以通过改变rank R二的参数,使得最高的情况下Lara的训练实际上等同于全量微调。” (此处的“二”可能是口误或转录错误,意指通过调整 r 的大小,极端情况下可以接近全量微调的效果)。

结论

LoRA 作为一种参数高效微调技术,通过引入并仅训练低秩适配矩阵,能够在大幅减少训练参数的同时,达到与全量微调相近的性能。其权重可合并的特性使其在推理时不会引入额外计算负担,因此得到了广泛应用。