Thinking Machines Lab 发布 LoRA Without Regret 研究
LoRA Without Regret
Thinking Machines Lab 发表研究,系统刻画 LoRA 与全量微调(FullFT)表现相当的“低后悔区间”,覆盖多数后训练场景。核心结论是 LoRA 应用于全部权重层尤其是 MLP/MoE 层且容量不受限时,监督微调与 LoRA 样本效率和最终性能与 FullFT 相当;RL 场景即使 rank=1 也能完全匹配。
文章通过系统实验给出了 LoRA 与全量微调表现相当的两个条件,读者可据此判断自己的微调场景能否改用 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 对大 batch size 的容忍度不如全量微调——当 batch size 超过某个点后,LoRA 的损失惩罚更大。这种惩罚不会因为提高 LoRA 秩而缓解;它源于矩阵乘积参数化方式,其训练动态与直接优化原始权重矩阵不同。
-
即使在小数据场景下,LoRA 应用到所有权重矩阵时表现更好,尤其是 MLP 和 MoE 层。仅作用于注意力层的 LoRA 表现较差,即便我们为仅注意力 LoRA 使用更高的秩、使可训练参数数量相同,结果依然如此。
-
在强化学习中,即使秩很小,LoRA 的表现也与 FullFT 相当。我们发现 RL 所需的容量非常低,这一结果符合我们基于信息论论证的预期。
我们还研究了 LoRA 所用超参数对其学习率相对于全量微调的影响。我们考察了初始化缩放、乘数等超参数的一些不变性,并解释了为什么 1/r 前置因子使最优学习率(LR)大致与秩无关。我们还通过实验展示了 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 团队,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 的一个 1 万条样本的小型子集。
图 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 团队,2024),Qwen2.5 和 Qwen3 的预训练数据已知能提升其数学表现,这使得很难衡量仅在强化学习期间学到了什么。
LoRA 的有效学习率范围更宽,并且能达到与 FullFT(黑线)相同的峰值性能,至少在不超出强化学习噪声所允许的精度范围内是如此。
这个结果可以用信息论的论证来预期。有监督学习大致上每个 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 数据集上用 Qwen3-8b-base 做了更大规模的实验DeepMath-103K: A Large-Scale, Challenging, Decontaminated, and Verifiable Mathematical Dataset for Advancing Reasoning(He 等,2025),该数据集比 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 缩放因子使最优学习率大致与秩无关。事实上还有一个更强的性质:无论秩取多少,训练初期的学习曲线都完全相同。这一现象相当惊人,在我们的实验中,不同秩的学习曲线如此接近,以至于我们一度担心是程序缺陷导致秩参数被忽略。由此可知,在短时训练下,最优学习率同样与秩无关。不过,正如上文学习率与损失的关系图(图 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 的学习率与 FullFT 的学习率对 hidden_size 的依赖相同,也就是说,优化得到 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 等人的思路:把经验神经正切核(eNTK)看作少量微调时实际发生情况的一种近似,参见A Kernel-Based View of Language Model Fine-Tuning(Malladi 等,2022)。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 和 Li,2024)已经表明,神经网络每个参数可以存储 2 比特。这些结果针对的是长时间训练极限下所能吸收的最大信息量,而不是计算效率或学习速率。
每参数 2 比特这一结果,依赖的是经过巧妙构造、恰好包含精确信息量的合成数据集。而对于一个真实的机器学习问题,要估算它需要多少信息量就没那么直接了。一个经典的观察是:在最小化对数损失时,训练第一个 epoch 期间测得的总对数损失,可以衡量数据集的描述长度,也就是记住整个数据集所需比特数的上界。LLM 数据集通常每个 token 的损失约为 1 比特(0.69 纳特),具体取决于数据集和模型规模。
这个估算衡量的是完美记住数据集所需的能力,因此会高估“可泛化”学习(即降低测试数据上的对数损失)实际所需的能力。如何衡量监督学习的能力需求,以及这些需求与可训练参数数量之间如何相互作用,仍是未来工作中的一个开放问题。
对于强化学习,我们曾提出:策略梯度算法每个回合大约学习 1 比特信息,因为回合结束时只有一个奖励值。这并不是强化学习的根本属性,其他算法完全可能从每个回合中学到多得多的信息。例如,基于模型的强化学习算法会训练学习智能体预测观测并构建世界模型,从而可能从每个回合中提取更多信息。“每回合 1 比特”这一说法可能只 narrowly 适用于策略梯度算法。
我们可以用信息论的术语把比特计数的论证说得更严谨。把一个回合——由一条轨迹 ττ 和最终奖励组成——看作一条消息(即一个含噪信道),它提供了关于未知奖励函数 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