Thinking Machines Lab 分析 LoRA 在哪些条件下可媲美全量微调
LoRA Without Regret
Thinking Machines Lab 发布研究博客,通过在 Llama 3 和 Qwen3 模型上用 Tulu3、OpenThoughts3 数据集做的监督微调与强化学习实验,刻画 LoRA 与全量微调(FullFT)表现相当的“低后悔区间”。
原文用系统实验刻画了 LoRA 追平全量微调的条件,包括作用所有层和避免容量受限,并给出学习率倍数等可直接复用的调参结论。
译文尚不完整,完整内容请切换到原文。
当今领先的语言模型包含多达数万亿个参数,并在数十万亿个 token 上预训练。基础模型的性能随着规模扩大而持续提升,因为这数万亿参数对于学习和表示书面人类知识中的所有模式是必要的。
相比之下,后训练涉及的数据集更小,通常聚焦于更窄的知识领域和行为范围。用一太比特的权重来表示来自一吉比特或一兆比特训练数据的更新,似乎是一种浪费。这一直觉推动了参数高效微调(PEFT)的出现,它通过更新一组小得多的参数来调整大型网络。
主流的 PEFT 方法是低秩适应,即 LoRA。LoRA 将原始模型中的每个权重矩阵 W 替换为修改后的版本 W′=W+γBAW′=W+γBA,其中 B 和 A 是矩阵,二者合计的参数远少于 W,而 γγ 是一个常数缩放因子。实际上,LoRA 为微调所带来的更新创建了一种低维表示。
LoRA 可能在后训练的成本和速度方面具有优势,此外还有一些运营上的理由使其优于完全微调(下称 FullFT):
-
多租户服务。由于 LoRA 在训练适配器(即 A 和 B 矩阵)的同时保持原始权重不变,单个推理服务器可以在内存中保留许多适配器(不同的模型版本),并以批处理方式同时从它们中采样。Punica: Multi-Tenant LoRA Serving(Chen, Ye, et al, 2023) vLLM 和 SGLang 等现代推理引擎实现了这一特性。
-
训练的布局规模。在微调整个模型时,优化器状态需要与原始权重一起存储,且通常采用更高的精度。因此,FullFT 通常需要比从同一模型采样多一个数量级的加速器,因而需要不同的布局。对于训练,除了存储权重外,我们通常还需要为所有存储梯度与优化器动量;此外,这些变量通常以比推理时存储权重所用精度(bfloat16 或更低)更高的精度(float32)存储。由于 LoRA 训练的权重少得多、使用的内存也少得多,它可以在仅比采样所用布局稍大的布局上进行训练。这使得训练更易获得,而且往往更高效。
-
加载与迁移的便利性。由于需要存储的权重更少,LoRA 适配器的设置或机器间迁移既快速又简单。
这些理由足以解释自 2021 年原始 LoRA 论文发表以来 LoRA 日益流行的原因。LoRA: Low-Rank Adaptation of Large Language Models(Hu et al, 2021) 然而,关于 LoRA 相对于 FullFT 的表现如何,文献中尚无明确结论。
人们普遍认为,LoRA 在类似预训练的场景中表现不佳,LoRA Learns Less and Forgets Less(Biderman 等,2024)即那些数据集非常大、超出 LoRA 参数存储上限的场景。但对于后训练中典型的数据集规模,LoRA 有足够的容量来存储关键信息。然而,这一事实并不能保证样本效率和计算效率。问题在于:LoRA 能否达到全量微调的性能?如果能,在什么条件下?
在我们的实验中,我们发现,确实,当我们把几个关键细节做对时,LoRA 的样本效率与 FullFT 相同,并达到相同的最终性能。
LoRA 的关键所在
本文涵盖了我们为确定 LoRA 在何种条件下能达到 FullFT 效率而进行的一系列监督微调和强化学习实验。为此,我们在几个方面与以往的 LoRA 实验有所不同:
-
我们研究的是训练集大小与 LoRA 参数数量之间的一般关系,而不是聚焦于特定数据集和任务。
-
在监督学习中,我们测量对数损失,而不是采用基于采样的评估,同样是出于通用性的考虑。对数损失测量能给出干净的结果,以及在训练步数和训练参数范围内的缩放规律。
我们发现:
-
对于小到中等规模的指令微调和推理数据集上的监督微调,LoRA 的表现与全量微调相同。
-
对于超出 LoRA 容量的数据集,LoRA 的表现不如 FullFT。损失并不会达到一个无法再降低的明显下限,而是 LoRA 导致训练效率变差,其程度取决于模型容量与数据集大小之间的关系。
-
在某些场景下,LoRA 对大 batch size 的容忍度不如全量微调——当 batch size 超过某个点后,它在损失上付出的代价更大。这一代价不会因提高 LoRA rank 而缓解;这是矩阵乘积参数化的固有特性,其训练动态与优化原始权重矩阵不同。
-
即使在小数据场景下,LoRA 应用于所有权重矩阵时表现更好,尤其是 MLP 和 MoE 层。仅作用于注意力层的 LoRA 表现较差,即使我们通过为仅注意力 LoRA 使用更高 rank 来匹配可训练参数数量也是如此。
-
在强化学习中,即使 rank 很小,LoRA 的表现也与 FullFT 相当。我们发现 RL 所需的容量非常低,这一结果是我们基于信息论论证所预期的。
我们还研究了用于 LoRA 的超参数对其相对于全量微调的学习率的影响。我们考察了初始化尺度和乘数等超参数的一些不变性,并解释了为什么 1/r 前置因子使最优学习率(LR)近似与 rank 无关。我们还通过实验展示了 LoRA 的最优 LR 与 FullFT 的最优 LR 之间的关系。
我们实验的结果是刻画出一个“低遗憾区间”,在该区间内 LoRA 在数据集大小和 LoRA 参数方面表现与 FullFT 相似。我们发现该区间涵盖了大多数后训练场景,为在许多应用中使用高效微调打开了大门。
方法与结果
我们设计实验,以详细衡量 LoRA 相比 FullFT 在一系列条件下的相对性能。以下是我们实验设置的一些细节:
-
我们将 LoRA 的秩在三个数量级范围内变化,秩介于 1 到 512 之间,并将这些与全量微调进行比较。
-
为消除使用次优学习率可能带来的混杂因素,我们对每个实验条件都进行了学习率扫描。我们使用恒定学习率调度(无预热或冷却)。
-
我们的实验使用了 Llama 3 系列模型The Llama 3 Herd of Models(Dubey 等,2024)和 Qwen3 模型Qwen3 Technical Report(Qwen Team,2025),其中包括一个混合专家(MoE)模型。
-
主要的监督学习实验分别使用了 Tulu3Tulu 3: Pushing Frontiers in Open Language Model Post-Training(Ivison 等,2024)和 OpenThoughts3OpenThoughts: Data Recipes for Reasoning Models(Guha 等,2025)数据集,分别侧重于指令遵循和推理。这两个数据集在范围、结构和应用上差异显著,支持了我们结果的普适性。
-
我们的强化学习实验使用了数学推理任务,并以答案正确性作为奖励。
LoRA 秩
我们在 Tulu3 数据集和 OpenThoughts3 数据集的一个子集上训练了单个 epoch。对于每个数据集和模型规模,我们扫描了 LoRA 秩和学习率。在下面的图中,我们为每个秩绘制一条彩色线,该线通过在每个训练步对所有学习率取逐点最小值得到:
我们看到,FullFT 和高秩 LoRA 具有相似的学习曲线,损失随步数的对数线性下降。中秩和低秩 LoRA 在某个与秩相关的步数阈值处偏离最小损失学习曲线。直观地说,当适配器容量耗尽时,学习会减慢,而这又由秩决定。
接下来,我们绘制损失随学习率的变化,以检查我们的扫描覆盖了每个秩的最佳学习率。
我们发现 FullFT 的最佳学习率比高秩 LoRA 低 10 倍。参见 Biderman 等(2024)图 S1,其中一项使用采样评估的实验发现了类似的 10 倍比例。我们将在后面关于 LoRA 超参数的讨论中回到这一点。
所有不同秩的 LoRA 运行的最佳学习率似乎相似;我们在下面给出了这一发现的理论解释。然而,似乎确实存在一些秩依赖性,rank=1 的最佳学习率低于更高秩的 LoRA。在 rank=4 和 rank=512 之间,最佳学习率的变化倍数小于 2。
批量大小效应
我们发现,在某些设置下,LoRA 对大批次大小的容忍度低于 FullFT。性能差距随批次大小增大而扩大,且与秩无关。在接下来的实验中,我们使用了 OpenThoughts3 的一个 10,000 条样本的小型子集。
图 3 的左图显示,在大批次大小下,LoRA(虚线)与 FullFT(实线)的学习曲线之间存在持续差距。对于较小的批次大小 32,差距更小,并随时间推移而缩小。
右图绘制了最终损失随批次大小变化的函数。我们看到,随着批次大小增大,LoRA 的损失与 FullFT 的差距越来越大。
大批次下的学习差距似乎并不依赖于秩,而更像是 LoRA 的一种固有特性。可能的原因是,矩阵乘积参数化(BA)在该数据集上的优化动态不如完整矩阵(W)有利。然而,LoRA 和 FullFT 都在较小的批次大小下达到最佳损失,因此这一差距在实践中可能并不那么重要。
LoRA 应用的层
我们研究了将 LoRA 应用于网络中不同层的影响。Hu 等人的原始论文建议仅将 LoRA 应用于注意力矩阵,许多后续论文也纷纷效仿,不过近期的趋势是将其应用于所有层。与我们的结果类似,QLoRA 论文也发现 LoRA 的表现不如 MLP 或 MLP+注意力,不过他们发现 MLP+注意力 > MLP > 注意力,而我们发现前两者大致相当。 事实上,当我们将 LoRA 应用于所有层,特别是 MLP(包括 MoE)层时,取得了好得多的结果。实际上,将 LoRA 应用于注意力矩阵,相比仅应用于 MLP,并未显示出额外收益。Biderman 等人(2024)得到了类似的结果,仅注意力 LoRA 在仅 MLP 的基础上没有提供额外收益。
仅注意力 LoRA 的表现不佳并不能用参数更少来解释。在这个特定案例中,秩为 256 的仅注意力 LoRA 表现低于秩为 128 的仅 MLP LoRA,尽管它们的参数数量大致相同。(比较下表中的粗体数字。)
| LoRA 配置 | 参数 |
|---|---|
| mlp, rank=256 | 0.49B |
| attn, rank=256 | 0.25B |
| all, rank=256 | 0.70B |
| mlp, rank=128 | 0.24B |
Llama-3.1-8B 上 LoRA 的参数数量
对于 MoE 实验,我们在每个专家上训练单独的 LoRA,每个专家的秩等于总秩除以活跃专家数量(对于 Qwen3 MoE 等于 8)。这种缩放使得 MoE 层的 LoRA 参数与 FullFT 参数之比与其他层保持一致。
我们在另外两种设置下做了类似实验,比较不同的 LoRA 层:(1) 在 OpenThoughts3 数据集的一小部分子集上进行监督学习,rank=256;(2) 在 MATH 数据集上进行强化学习。我们在下一节描述实验设置。在这些设置下,仅注意力 LoRA 的表现同样不如仅 MLP LoRA(后者与 MLP+注意力表现相近)。
强化学习
我们实验的一个关键发现是:在运行强化学习的策略梯度算法时,LoRA 的学习表现与 FullFT 完全相当,即使 rank 低至 1。
在这些实验中,我们使用了一种带有重要性采样校正的基础策略梯度算法;objective=∑tplearnerpsamplerAdvtobjective=∑tpsamplerplearnerAdvt。参见 Your Efficient RL Framework Secretly Brings You Off-Policy RL Training 我们使用了类似 GRPO 的中心化方案DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models(Shao 等,2024),即对每个问题采样多个补全,并减去每组的平均奖励。
图 6(下方)展示了在 MATHMeasuring Mathematical Problem Solving With the MATH Dataset(Hendrycks 等,2021) 和 GSMGSM8K: Training Verifiers to Solve Math Word Problems(Cobbe 等,2021) 数据集上的学习率扫描,各自使用典型超参数。我们使用 Llama-3.1-8B 基础模型,因为据 Qwen 技术报告Qwen2.5 Technical Report(Qwen Team,2024)所述,Qwen2.5 和 Qwen3 已知在能提升其数学表现的数据上进行了预训练,这使得衡量仅在 RL 期间学到什么变得更加困难。
LoRA 表现出更宽的有效学习率范围,并达到与 FullFT(黑线)相同的峰值性能,至少在 RL 噪声所允许的精度范围内如此。
这一结果可由信息论论证预期。监督学习可以说每个 episode 提供 O(token 数量) 比特的信息。相比之下,在策略梯度方法中,学习由优势函数驱动,每个 episode 仅提供 O(1) 比特的信息。当每个 episode 包含数千个 token 时,RL 在训练中每个 token 吸收的信息量比监督学习少约 1000 倍。
我们可以根据实验给出更精确的数字。在 MATH 示例中,我们在约 10,000 道题上训练,每题采样 32 次。假设每次补全产生一比特信息,整个训练过程只需吸收 320,000 比特。Llama-3.1-8B 的 rank-1 LoRA 已有 3M 参数我们通过对模型中所有权重矩阵累加 rank·dindin(对应矩阵 A)和 rank·doutdout(对应 B)计算得出。,几乎是该数字的 10 倍。即使在 rank-1 下,LoRA 的容量也足以吸收训练期间提供的全部信息。
作为另一个对比点,DeepSeek-R1-Zero 在 5.3M 个 episode 上训练训练进行了 10,400 步,每步包含 32 个不同问题,每个问题采样 16 次。,对应 5.3M 比特的信息。这少于低秩 LoRA 的参数数量,我们预测其结果可以用 LoRA 复现。
为了进一步验证我们对 LoRA 在推理 RL 中有效性的发现,我们在 DeepMath 数据集DeepMath-103K: A Large-Scale, Challenging, Decontaminated, and Verifiable Mathematical Dataset for Advancing Reasoning(He et al, 2025)上使用 Qwen3-8b-base 进行了更大规模的实验,因为该数据集比 MATH 数据集大得多,且通常包含更难的问题。为加速实验,我们将训练和评估的样本长度限制为 8192 个 token。该样本长度允许回溯和推理,但相对于更长的思维链会限制性能。
我们观察到,当为每种设置选择最优学习率时,不同规模的 LoRA 与全量微调的训练进程几乎完全相同。此外,我们在 AIME 2024 和 AIME 2025 的留出问题上评估模型时也看到了类似的发现。进一步地,我们从 LoRA 和全量微调运行中观察到相似的定性行为:两者都发展出高级推理行为,如回溯、自我验证和上下文内探索,这从模型 CoT 的变长中可见。
设置 LoRA 超参数
采用 LoRA 的一个障碍是必须选择最优超参数,而这些超参数不同于为 FullFT 优化的超参数。在本节中,我们表明这个问题并不像乍看之下那样令人生畏,并讨论我们关于超参数选择的发现。
最优学习率与秩
遵循 Hu 等人的工作,我们考虑 LoRA 的以下参数化:
W′=W+αrBAW′=W+rαBA
其中 rr 是 LoRA 秩,αα 是 LoRA 缩放因子,AA、BB 是 LoRA 权重矩阵(秩为 rr)。遵循其他实现的标准做法,本文实验使用 α=32α=32。
1/r1/r 缩放因子使最优学习率近似与秩无关。事实上,一个更强的条件成立——无论秩如何,训练开始时的学习曲线完全相同。这一效应令人惊讶,在我们的实验中,不同秩的学习曲线如此接近,以至于我们担心是 bug 导致秩参数被忽略。由此可知,在短训练机制下,最优学习率也与秩无关。然而,正如我们在上文学习率与损失的图(图 2)中所展示的,在较长训练机制下,最优学习率对秩有一定依赖性。
我们可以通过观察首次训练更新后 LoRA 矩阵的预期变化来部分解释这一结果。我们可以将 LoRA 乘积 BABA 视为 rr 个秩-1 外积之和:BA=∑i=1rbiaiT=∑i=1rΔiBA=∑i=1rbiaiT=∑i=1rΔi,其中我们定义 Δi=biaiTΔi=biaiT。这里,∂Loss/∂Δi∂Loss/∂Δi 对所有 ii 都相同;然而梯度 ∂Loss/∂bi∂Loss/∂bi 和 ∂Loss/∂ai∂Loss/∂ai 将取决于初始化(例如,∂Loss/∂bi∂Loss/∂bi 取决于 aiai)。由于 aiai 和 bibi 的初始化不依赖于秩,因此可以推出 E[Δi]E[Δi] 对所有 ii 都相同,且不依赖于秩。在训练的第一步,这些项中每一项的预期更新都相等,且与秩无关。由此可得,(1/r)∑i=1rΔi(1/r)∑i=1rΔi 只是 rr 个具有相同期望的项的样本均值,因此该均值的期望,即对适配器 (1/r)BA(1/r)BA 的变更,不依赖于秩。
参数化不变性
有四个超参数可能适用于 LoRA:
-
出现在 α/rα/r 中的缩放因子 αα。
-
下投影矩阵 AA 的学习率,LRALRA
-
上投影矩阵 BB 的学习率,LRBLRB。
-
矩阵 AA 的初始化尺度,initAinitA。对于随机初始化,这是 AA 初始元素的标准差。矩阵 BB 初始化为零,因此无需定义 initBinitB。
需要调优四个不同的参数可能看起来令人不知所措。然而,训练动态中的不变性意味着其中两个是冗余的,学习行为由两个决定。我们通过指出当使用 Adam 和 ε=0ε=0 进行训练时,我们可以将此结果扩展到 ε>0ε>0;我们需要将其按 1/q1/q 缩放,因为梯度被该因子缩放。优化过程对以下双参数变换具有不变性,来展示这种不变性。
对于 p,q>0p,q>0:
-
α→1pq⋅αα→pq1⋅α
-
initA→p⋅initAinitA→p⋅initA
-
LRA→p⋅LRALRA→p⋅LRA
-
LRB→q⋅LRBLRB→q⋅LRB
由于四个自由度中有两个不影响学习过程,我们只剩下一个二维参数空间。我们可以为这个二维空间选择不同的基,例如下面这个便于直观解释的基:
-
α⋅initA⋅LRBα⋅initA⋅LRB。这决定了初始更新的规模,或者等价地,决定了学习曲线的初始斜率。由于 BB 被初始化为零,LRALRA 以及对 AA 的初始更新都无关紧要。
-
initA/LRAinitA/LRA。由于 Adam 在每一步将 AA 的元素更新约 LRALRA,这个时间尺度参数决定了将 AA 显著地从其初始状态转变所需的步数。
我们可以用这个基来重新解释先前 LoRA 工作中的一些提议。
LoRA+LoRA+:大型模型的高效低秩适配(Hayou 等,2024)提出对 AA 和 BB 使用不同的学习率,其中 BB 使用更高的学习率。用我们上述的基来表示,增大 LRBLRB 等价于增大 initA/LRAinitA/LRA,从而使 AA 在更长的时间尺度上变化。
Unsloth 的 LoRA 超参数指南建议对高秩 LoRA 使用更高的 αα 值,例如避免 1/r1/r 缩放。这也等价于增大 initA/LRAinitA/LRA。当我们增大 αα 时,为了得到相同的更新幅度,需要相应地降低 LRALRA 和 LRBLRB。这反过来只是使 LRALRA 相对于 initAinitA 变小。
在我们的实验中,我们使用了 Hu 等人提出的、Huggingface peft 库PEFT:最先进的参数高效微调方法(Mangrulkar 等,2022)中所采用的标准参数化方式:AA 采用均匀分布,缩放系数为 1/din1/din,BB 采用零初始化,两者使用相同的学习率,且 α=32α=32。在我们的实验中,我们未能对这些超参数做出改进。
LoRA 与 FullFT 的最优学习率
我们的实验表明,在同一应用中,无论是监督学习还是强化学习,LoRA 的最优学习率始终是 FullFT 所用学习率的 10 倍。这一点在每一张以学习率为横轴、以性能(损失或奖励)为纵轴的 U 形图中都有体现。这一观察结果应当能让从 FullFT 到 LoRA 的学习超参数迁移变得更加直接。
我们目前还没有对这一观察结果给出充分的理论解释。我们可以尝试从以下事实推导出这一结果:LoRA 的最优学习率与秩无关,且满秩 LoRA 可直接与 FullFT 相比。这一分析暗示学习率比值为模型隐藏层大小除以 2⋅α2⋅α,但这与最优比值固定为 10、且与基础模型无关的经验结果并不相符。
在我们的实证分析中,我们在 Tulu3 数据集上对 14 个不同的 Llama 和 Qwen 模型分别针对 LoRA 和 FullFT 进行了学习率扫描。基于这些扫描结果,我们拟合了一个函数,根据模型的隐藏层大小以及模型是 Llama 还是 Qwen 的指示变量来预测最优学习率。所使用的函数形式为:
LR=MLoRA⋅(2000hidden size)model pow+LoRA powLR=MLoRA⋅(hidden size2000)model pow+LoRA pow
其中:
-
MLoRAMLoRA 是使用 LoRA 时应用的乘数(若为 FullFT 则为 1)
-
model powmodel pow 是指数调整,针对每个模型来源(Llama 和 Qwen)分别计算
-
LoRA powLoRA pow 是针对 LoRA 的额外指数调整
-
hidden sizehidden size 是模型残差流的维度。
我们通过线性插值预测损失,基于扫描数据为预测的学习率打分,并将 14 个问题的预测损失求和来评估参数。我们的优化发现 LoRA 相对于 FullFT 的乘数为 9.8,且 Qwen3 和 Llama 模型对 hidden_size 的依赖不同,但 LoRA 学习率对 hidden_size 的依赖与 FullFT 学习率相同,即优化发现 LoRA pow=0LoRA pow=0。
短程与长程训练中的学习率
LoRA 的典型初始化会隐式形成有效学习率变化的调度。这导致短程与长程训练之间存在差异,并且与 FullFT 相比,学习曲线形状也存在一些差异。
在训练开始时,BB 被初始化为零。当 BB 非常小时,AA 的变化对添加到原始网络权重上的适配器 BABA 影响可以忽略不计。随着 BB 增大,对 AA 的更新开始对网络输出产生更大影响,有效学习率在训练过程中随之提高,因为 BB 的规模逐渐接近 AA。我们发现,在 Tulu3 和 OpenThoughts 数据集上完成完整训练后,BB 矩阵的谱范数最终大于 AA 矩阵。
这意味着对于较短的训练运行,最优学习率应设置得更高。初步证据表明,对于短时间运行,最优倍率约为 FullFT 的 15 倍根据经验证据,较高的倍率在约 100 步以内有效。,而对于较长的运行,则收敛到前述的 10 倍倍率。
讨论
我们希望超越实证结果,讨论一些与 LoRA 性能和适用性相关的更广泛考量,这些考量对研究者和构建者都有意义。
首先,让我们更深入地审视我们的主要结果,即 LoRA 表现与全量微调相似的两种条件:
-
LoRA 应用于网络的所有层,尤其是包含大部分参数的 MLP/MoE 层。
-
当不受容量限制时,LoRA 表现良好,即可训练参数的数量超过需要学习的信息量,这可以根据数据集大小来估计。
当满足条件 (1) 时,我们在训练最开始就获得与 FullFT 相似的学习动态。然后,根据条件 (2),LoRA 会继续表现得像 FullFT,直到我们开始触及容量限制。
为什么可能需要在所有层上使用 LoRA
正如我们之前所展示的,如果只在注意力层上使用 LoRA,即使在小数据场景下,学习速度也会变慢。
一种可能的解释是,按照 Malladi 等人A Kernel-Based View of Language Model Fine-Tuning(Malladi et al, 2022)的思路,把经验神经正切核(eNTK)看作是对少量微调时所发生情况的一种近似。eNTK 基于梯度的点积,具体来说是梯度 gi=∂/∂θlogp(tokeni∣prefixi)gi=∂/∂θlogp(tokeni∣prefixi),以及 K(i,j)=gi⋅gjK(i,j)=gi⋅gj。因此,参数最多的层通常对核的影响最大。该论文还指出,当你训练所有层时,LoRA 的 eNTK 与全量微调的 eNTK 大致相同。所以 LoRA 训练 ≈≈ eNTK(LoRA) ≈≈ eNTK(FullFT) ≈≈ FullFT。近似关系 eNTK(LoRA) ≈≈ eNTK(FullFT) 仅当我们把 LoRA 应用于那些包含构成点积的大部分参数的层时才成立。
监督学习和强化学习需要多少容量?
过往工作Physics of Language Models: Part 3.3, Knowledge Capacity Scaling Laws(Allen-Zhu and Li, 2024)已经表明,神经网络每个参数可以存储 2 比特。这些结果针对的是在长训练极限下所吸收的最大信息量,而不是计算效率或学习速率。
每参数 2 比特的结果依赖于经过巧妙构造、包含精确信息量的合成数据集。要估计一个给定的真实学习问题所需的信息量并不那么简单。一个经典的观察是,在最小化对数损失时,训练第一个 epoch 期间测得的总对数损失提供了数据集描述长度的度量。也就是说,它是记忆该数据集所需比特数的上界。LLM 数据集通常每个 token 的损失约为 1 比特(0.69 纳特),具体取决于数据集和模型规模。
这一估计衡量的是完美记忆数据集所需的容量,它高估了“可泛化”学习(即降低测试数据上的对数损失)实际所需的容量。衡量监督学习的容量需求以及这些需求如何与可训练参数数量相互作用,是未来工作的一个开放问题。
对于强化学习,我们曾声称策略梯度算法每个 episode 大约学习 1 比特信息,因为 episode 结束时只有一个奖励值。这并不是强化学习的基本性质,因为其他算法理论上可以从每个 episode 中学到更多。例如,基于模型的强化学习算法训练学习智能体预测观测并构建世界模型,可能从每个 episode 中提取更多信息。每 episode 1 比特的说法可能仅狭隘地适用于策略梯度算法。
我们可以用信息论的术语来更精确地阐述比特计数的论证。考虑一个 episode,由轨迹 ττ 和最终奖励组成,将其视为一条消息(即一个噪声信道),它提供了关于未知奖励函数 RR 的某些信息。我们将以当前策略和训练历史为条件,考察策略梯度估计量与 RR 之间的互信息。REINFORCE 更新为 G=S⋅AdvG=S⋅Adv,其中 S=∇logpθ(τ)S=∇logpθ(τ)。给定历史,SS 与 RR 独立,因此唯一依赖于 RR 的分量是标量优势。
根据数据处理不等式:
I(G;R∣history)≤I((S,Adv);R∣history)=I(Adv;R∣S,history)≤H(Adv).I(G;R∣history)≤I((S,Adv);R∣history)=I(Adv;R∣S,history)≤H(Adv).
如果我们把优势量化为 BB 个区间,那么 H(Adv)≲log(B)H(Adv)≲log(B)。也就是说,每个回合获取的有用信息比特数为 O(1)O(1),与模型规模无关。这些比特告诉我们,我们处于离散奖励函数集合(或等价地,最优策略类别集合)中的哪一个成员。这种互信息分析与某些优化算法理论分析中所使用的方法一致。Information Complexity of Black-Box Convex Optimization: A New Look via Feedback Information Theory(Raginsky and Rakhlin, 2009) 请注意,这一估计是训练所吸收信息的上界;实际学到的量将取决于策略初始化和其他细节。例如,如果我们用一个得不到任何奖励的策略进行初始化,那么优势的熵为零(而不是 log(B)),它就不会学到任何东西。
LoRA 的计算效率优势
我们上面的实验衡量的是相对于训练步数的学习进展,但我们可能也会对不同方法的计算效率感兴趣。我们计算得出,LoRA 每次前向传播所需的 FLOPs 略多于全量微调的 ⅔。因此,它在整体计算效率上通常会优于 FullFT。
We derive this ⅔ ratio by analyzing the FLOPs used in the forward–backward pass on a given weight matrix. These operations account for the vast majority of FLOPs in neural network models. We use the following notation:
- W∈RN×NW∈RN×N is a weight matrix
- x∈RNx∈RN is an input vector
- y=Wx∈RNy=Wx∈RN is an output vector
- xˉ,yˉ∈RNxˉ,yˉ∈RN are the gradients of the loss with respect to xx and yy, computed in the backward pass
- Wˉ∈RN×NWˉ∈RN×N is the gradient of the loss with respect to WW
Full fine-tuning performs the following operations:
Forward
- y=Wxy=Wx (N2N2 multiply–adds)
Backward
- xˉ=WTyˉxˉ=WTyˉ (N2N2 multiply–adds)
- Wˉ+=xyˉTWˉ+=xyˉT (N2N2 multiply–adds)
The forward pass requires N2N2 multiply-adds, and the backward pass requires another 2⋅N22⋅N2 for 3N23N2 total. Training, which requires both, thus uses 3 times the FLOPs of forward-only inference.
With LoRA, we replace WW by W+BAW+BA, where B∈RN×RB∈RN×R and A∈RR×NA∈RR×N, with R≪NR≪N. Since we only update AˉAˉ and BˉBˉ, we replace the third step of updating WˉWˉ with a much cheaper operation. AA and BB are N⋅RN⋅R matrices, so the full forward-backward computation on each requires 3NR3NR multiply-adds instead of 3N23N2 for WW. The total for both is 6NR6NR. We also perform the forward-backward pass on WxWx and xˉxˉ, equivalent to the first two steps of FullFT. The total number of multiply-adds is 2N2+6NR2N2+6NR. With R≪NR≪N, this is slightly more than 2332 of 3N23N2.
If we plotted LoRA performance over FLOPsThis analysis omits FLOPs used for attention, which could be significant in long-context settings. instead of training steps, it would show a clear advantage over FullFT.
Open questions
There are several questions related to our results that we would love to see investigated in the future:
-
Sharpening our predictions of LoRA performance and the precise conditions under which it matches full fine-tuning. We have roughly characterized the regime of equal performance and can estimate the required capacity in terms of tokens or episodes, but we can’t yet make accurate forecasts.
-
Our theoretical understanding of LoRA learning rates and training dynamics is limited. A fuller theory that explains the ratio between LoRA and FullFT learning rates would be valuable.
-
How do LoRA variants such as PiSSAPiSSA: Principal Singular Values and Singular Vectors Adaptation of Large Language Models (Meng, Wang & Zhang, 2024) perform when measured according to the methodology in this article?
-
There are various options for applying LoRA to MoE layers. LoRA users would benefit from an investigation into how well they perform, and how compatible each approach is with methods like tensor parallelism and expert parallelism that are important for large MoE models.
Closing thoughts
At Thinking Machines, we believe in the power of fine-tuning to advance AI usefulness in many domains of expertise. Our interest in LoRA is driven by a goal of making this power widely accessible and easily customizable to specific needs.
Aside from its practical uses, research on LoRA has also led us to deeper investigations of model capacity, dataset complexity, and sample efficiency. Looking at how learning speed and performance depend on capacity provides a lens for studying fundamental questions in machine learning. We look forward to advancing this study in the future.
Acknowledgements
We thank Dan Alexander Biderman, Weizhu Chen, Daniel Han, and Sadhika Malladi for their insightful feedback on an earlier draft of this post.
Citation
Please cite this work as:
Schulman, John and Thinking Machines Lab, "LoRA Without Regret",
Thinking Machines Lab: Connectionism, Sep 2025.Or use the BibTeX citation:
@article{schulman2025lora,
author = {John Schulman and Thinking Machines Lab},
title = {LoRA Without Regret},
journal = {Thinking Machines Lab: Connectionism},
year = {2025},
note = {https://thinkingmachines.ai/blog/lora/},
doi = {10.64434/tml.20250929},
}来源:Thinking Machines Lab:官方博客 · thinkingmachines.ai