BiliBili | IBM RethinkFun | 三分钟学会大模型PEFT的LORA算法 lora_rank lora_alpha
LORA算法原理与参数高效微调技巧
标签
媒体详情
- 上传日期
- 2025-06-01 22:18
- 来源
- https://www.bilibili.com/video/BV1wq421w7H8/
- 处理状态
- 已完成
- 转录状态
- 已完成
- Latest LLM Model
- gemini-2.5-pro-exp-03-25
转录
speaker 1: 今天我们来学习一下laa的原理。 我们知道在深度神经网络里最主要的计算就是矩阵运算,而大模型里矩阵运算维度都是成千上万的,模型里我们要训练调整的权重也是用矩阵表示的,Lara就是通过化简权重矩阵来达到参数高效微调的,比如这里这个3乘3的权重矩阵,正常情况下前向传播时输入乘以权重得到输出,后向传播时调整权重矩阵更新网络。 而la拉的思想是在这个权重矩阵的旁边另辟蹊径,重新构造两个权重矩阵,laa a和laa b在这个例子里,这两个权重的维度分别为3乘1和1乘3。 值得注意的是,这两个拉A权重矩阵的乘积的维度和原始权重矩阵的维度是一样的,都是3乘3正向传播时输入,通过原始权重得到一个输出,同时输入通过下面这两个laa权重得到另一个输出,最后将这两组输出相加,得到这个矩阵计算更新后的输出。 你可以认为Lara这个分支在对模型进行微调,改进模型的输出,而后向传播时,我们锁定原始权重矩阵,只对laa权重进行更新,原始的权重个数是3乘3,一共九个,而laa权重的参数是3乘1加上1乘3 1共6个。 可以看到Lara可以减少更新权重的个数。 网络训练完成后,原始的矩阵权重没有变化,我们得到一个laa a和laa b的权重。 这时我们把laa a和laa b相乘,得到一个laa权重矩阵,这是这个laa权重矩阵的形状和原始权重矩阵的形状是一样的。 我们只需要把laa权重加到原始权重上,就完成了对原始网络的更新。 我们举的这个例子里,原始权重的shape是3乘3,看起来laa减少参数训练量也不并不明显。 假如原始权重维度是4096乘4096的,而取四的情况,原始矩阵的参数量是4096乘4096,一共16777216个。 而Lora a的参数个数为4096乘以4,Lora b的参数个数为4乘4096。 Lara训练的参数个数总共为32768个,训练参数是原始参数的512分之1,减少的参数量还是非常可观的。 我们看一下laa训练里有两个重要的参数R也就是rank。 假设原始权重的维度为M乘以n laa a的权重为M乘以R,laa b的权重为R乘以N R是用来连接laa a和laa b两个laa权重矩阵中的中间维度,一般它远远小于原始权重矩阵中的M和N一般R我们设置为二、4、8、十六等阿尔法,input和原始权重相乘后的输出为x input和laa权重相乘后的输出为ta x上边我们的例子里是直接将X和ta x相加。 但在实际实现中前向传播时,我们要对戴尔塔的权重进行一个调节,这个调节因子就是阿尔法除以R同样在更新原始权重时,也记得要对laa权重加上这个调节因子。 因为data塔X是对原始模型输出X进行的调节,调节因子决定了X影响的大小,一般我们设置阿尔法为R的I到8倍。 Laa训练有很多优点,一、它大大节省了微调大模型的参数量。 2、它的训练效果和全量微调差不多。 3、微调完的laa模型权重可以末置回原来的权重,不会改变原有的模型结构,推理时也不增加额外的计算量。 四你可以通过改变rank R二的参数,使得最高的情况下Lara的训练实际上等同于全量微调。 好了,今天我们就讲到这里,我想你一定学会了劳拉,我们下期见。
最新摘要 (详细摘要)
概览/核心摘要 (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 作为一种参数高效微调技术,通过引入并仅训练低秩适配矩阵,能够在大幅减少训练参数的同时,达到与全量微调相近的性能。其权重可合并的特性使其在推理时不会引入额外计算负担,因此得到了广泛应用。