@jiqizhixin:太棒了!关于推理型LLM的强化学习现状 https://aweers.de/blog/2026/rl-for-llms/…
摘要
一篇全面回顾推理型LLM强化学习现状的博文,涵盖从REINFORCE、PPO到GRPO乃至更多方法,并与InstructGPT、DeepSeek-R1等关键模型相联系。
查看缓存全文
缓存时间: 2026/05/08 19:37
推理型LLM中的强化学习现状
来源:https://aweers.de/blog/2026/rl-for-llms/
强化学习已成为LLM后训练栈中最重要的组件之一。它是将GPT-3转变为InstructGPT的关键要素[1],并且此后成为当前推理改进浪潮的核心[2][3]。
第一代面向LLM的强化学习由PPO主导[4],该方法最初是为Atari游戏和机器人等更传统的强化学习场景开发的,但已成功适配至RLHF。
第二代则以提高推理能力为目标,带来了新一轮的算法精炼。短时间内出现了大量变体,绝大多数变体仅在细微但关键之处与其前身有所不同。
本文简要概述了推理型LLM的强化学习(2024-2026年)的主要发展。它从基础(REINFORCE和PPO)开始,然后介绍GRPO以及后续对其进行改进和优化的方法。
强化学习简介¶ (https://aweers.de/blog/2026/rl-for-llms/#brief-rl-introduction)
在标准的强化学习设定中,一个智能体观察一个状态s\_t,根据一个策略\\pi\(a\_t \\mid s\_t\)选择一个动作a\_t,根据环境动力学p\(s\_\{t\+1\} \\mid s\_t, a\_t\)转移到新状态s\_\{t\+1\},并接收一个奖励r\_t。
一个具体例子是机器人在房间内导航:状态是其当前位置和传感器读数,动作是移动指令,转移动力学由物理规律支配(轮子可能会打滑),奖励则反映了朝向目标的进展。
这个循环重复T个时间步。智能体的目标是最大化期望折扣回报
J = \\mathbb\{E\}\\left\[\\sum\_\{t=0\}^\{T\} \\gamma^t r\_t\\right\]
其中折扣因子0 \\leq \\gamma \\leq 1控制未来奖励的折扣程度。
策略通常由\\theta参数化。许多强化学习算法中的一个核心对象是价值函数
V^\\pi\(s\) = \\mathbb\{E\}\_\\pi\\left\[\\sum\_\{l=0\}^\{T\-t\} \\gamma^l r\_\{t\+l\} \\mid s\_t = s\\right\],
它衡量在策略\\pi下处于状态s有多好。由此可以推导出优势,用于估计某个特定动作是否比预期更好或更差。
对于LLM,这个设定通常被大幅简化。我们有一个参数化的模型\\pi\_\\theta,给定一个提示x \\sim \\mathcal\{D\}(来自我们的数据集),它会采样生成回答y \\sim \\pi\_\\theta\(\\cdot\|x\),然后我们用一个标量奖励r\(x, y\)对其进行评分。目标变为:
J\(\\theta\) = \\mathbb\{E\}\_\{x \\sim \\mathcal\{D\},\\, y \\sim \\pi\_\\theta\(\\cdot\|x\)\}\\left\[r\(x, y\)\\right\]
我们仍然可以将这个环境建模为状态是*(提示 + 已生成的token)*,动作是下一个token。然而在实践中,通常无法为单个token分配有意义的奖励,只能为给定提示下的完整回答提供一个奖励。除最后一个token外,其他所有token的奖励都为零,这使得设定变得不必要的复杂。
REINFORCE¶ (https://aweers.de/blog/2026/rl-for-llms/#reinforce)
我们从REINFORCE开始[5],因为它既概念简单,又是所有策略梯度方法的基础。
图像
其最简形式的REINFORCE目标是:
J\(\\theta\) = \\mathbb\{E\}\_\{y \\sim \\pi\_\\theta\(\\cdot \\mid x\)\}\\left\[r\(x, y\)\\right\]
这个目标的梯度有一个简单且可解释的形式:
\\nabla\_\\theta J\(\\theta\) = \\mathbb\{E\}\_\{y \\sim \\pi\_\\theta\(\\cdot \\mid x\)\}\\left\[\\nabla\_\\theta \\log \\pi\_\\theta\(y \\mid x\) \\cdot r\(x, y\)\\right\]
作为对比,监督微调的梯度是
\\nabla\_\\theta L\_\{\\text\{SFT\}\}\(\\theta\) = \-\\nabla\_\\theta \\log \\pi\_\\theta\(y^\* \\mid x\)
(注意,SFT损失是最小化的,而RL目标是最大化的)。
这个对比表明,REINFORCE本质上是一种加权形式的SFT。它不再强化提供的、离策略的答案y^\*,而是根据奖励对采样的、在策略的答案y进行强化或惩罚。
REINFORCE的主要缺点是方差大。即使奖励相对结构化(例如,一个大型测试套件,每个测试贡献部分奖励),梯度估计在不同样本之间也可能变化很大。
为了降低方差,REINFORCE减去一个基线b\(x\),该基线不依赖于采样的动作(回答)。由于
\\mathbb\{E\}\_\{y \\sim \\pi\_\\theta\(\\cdot \\mid x\)\}\\left\[\\nabla\_\\theta \\log \\pi\_\\theta\(y \\mid x\)\\, b\(x\)\\right\] = 0,
期望梯度保持不变,但方差通常大幅降低。梯度变为
\\nabla\_\\theta J\(\\theta\) = \\mathbb\{E\}\_\{y \\sim \\pi\_\\theta\(\\cdot \\mid x\)\}\\left\[\\nabla\_\\theta \\log \\pi\_\\theta\(y \\mid x\)\\, \\bigl\(r\(x,y\)\-b\(x\)\\bigr\)\\right\]\.
量r\(x,y\)\-b\(x\)是最简单的优势估计形式。
PPO¶ (https://aweers.de/blog/2026/rl-for-llms/#ppo)
PPO(近端策略优化)[4]成为主流的通用策略梯度算法,并且在几年内是RLHF的默认选择。
PPO的目标通常以一种看似复杂的形式呈现:
J^\{\\text\{PPO\}\}\(\\theta\) = \\mathbb\{E\}\_t\\left\[\\min\\left\(\\rho\_t\(\\theta\)\\hat\{A\}\_t,\\; \\operatorname\{clip\}\(\\rho\_t\(\\theta\), 1\-\\epsilon, 1\+\\epsilon\)\\hat\{A\}\_t\\right\)\\right\],
其中
\\rho\_t\(\\theta\) = \\frac\{\\pi\_\\theta\(a\_t \\mid s\_t\)\}\{\\pi\_\{\\theta\_\{\\text\{old\}\}\}\(a\_t \\mid s\_t\)\}
是当前策略\\pi\_\\theta与生成轨迹的策略\\pi\_\{\\theta\_\\text\{old\}\}之间的重要性采样(IS)比率。
有人可能会问:“对于在策略的RL,这不应该是1吗?“答案是肯定的,但仅限于首次生成轨迹后的优化器步骤。
这个比率是必要的,因为生成轨迹很昂贵。实践中,通常会将一批生成的数据重复用于多个小批量更新或多个epoch。在第一个优化器步骤之后,训练策略与生成策略不再完全相同,因此PPO变得略微离策略。这个比率纠正了这种不匹配,而裁剪则限制了优化可以远离生成策略的程度。这是PPO对信任区域的近似[6]。
注意,裁剪不仅影响目标函数的值,更重要的是影响其对\\theta的依赖性。由于我们优化\\theta以最大化J,裁剪后的情况会产生零梯度,因为学习到的策略不再参与方程。这些情况的更新被跳过,因为我们已移出信任区域。
裁剪处理了四种情况:
未裁剪已裁剪正优势(好答案,强化)\\rho\_t\(\\theta\)\\hat\{A\}\_t:答案好且未被过度更新\(1\+\\epsilon\)\\hat\{A\}\_t:答案已足够更可能,因此梯度停止负优势(坏答案,抑制)\\rho\_t\(\\theta\)\\hat\{A\}\_t:答案坏且未被过度更新\(1\-\\epsilon\)\\hat\{A\}\_t:答案已足够更不可能,因此梯度停止我们也可以将这个裁剪表示为一个掩码:
M\(\\hat\{A\}\_t, \\rho\_t, \\epsilon\) = \\begin\{cases\} 0 & \\text\{if \} \(\\hat\{A\}\_t \> 0 \\land \\rho\_t \> 1 \+ \\epsilon\) \\lor \(\\hat\{A\}\_t < 0 \\land \\rho\_t < 1 \- \\epsilon\) \\\\ 1 & \\text\{otherwise\} \\end\{cases\}
使用这个公式,目标简化为:
J^\{\\text\{PPO\}\}\(\\theta\) = \\mathbb\{E\}\_t\\left\[M\(\\hat\{A\}\_t,\\rho\_t\(\\theta\),\\epsilon\)\\,\\rho\_t\(\\theta\)\\,\\hat\{A\}\_t\\right\]\.
所以,PPO本质上是一个带有信任区域掩码的重要性加权策略梯度。
对于优势估计,PPO使用广义优势估计(GAE):
\\hat\{A\}\_t = \\sum\_\{l=0\}^\{\\infty\} \(\\gamma \\lambda\)^l \\delta\_\{t\+l\}
计算\\delta需要一个学习到的价值函数。在LLM设定中,这通常需要一个额外的价值模型,其大小通常与策略模型相当。这在内存上代价高昂,并增加了训练复杂性。本文不详细讨论GAE,因为移除这个组件是GRPO的主要实际贡献。参见这篇详细的文章 (https://huggingface.co/blog/NormalUhr/rlhf-pipeline)以深入了解PPO及其所有组件。
最后,PPO目标通常与KL正则化结合:
J^\{\\text\{PPO\-KL\}\}\(\\theta\) = \\mathbb\{E\}\_t\\left\[M\(\\hat\{A\}\_t,\\rho\_t,\\epsilon\)\\rho\_t\(\\theta\)\\hat\{A\}\_t\\right\] \- \\beta\\, D\_\{\\text\{KL\}\}\(\\pi\_\\theta \\,\\\|\\, \\pi\_\{\\text\{ref\}\}\)\.
这里\\pi\_\{\\text\{ref\}\}通常是RL训练之前的模型。在RLHF中,这个项特别重要,因为它保留了通用能力,并有助于控制相对于奖励模型(该模型是在参考策略\\pi\_\{\\text\{ref\}\}上训练的)的分布偏移。在推理RL中,KL惩罚通常设置得更小或完全省略[3][7]。
在其完整形式中,PPO需要将四个大组件同时加载到内存中:可训练的策略、生成轨迹的策略、参考策略和价值模型。
GRPO¶ (https://aweers.de/blog/2026/rl-for-llms/#grpo)
GRPO(组相对策略优化),在DeepSeekMath中引入,后来因DeepSeek-R1而流行起来[8][3],它移除了PPO的价值模型,并用一个组相对基线取而代之。
关键见解是,我们可以通过将每个回答与同一提示下的其他回答进行比较,来获得一个良好的基线。对于每个提示x \\sim \\mathcal\{D\},GRPO采样一组G个回答\\\{y\_1, \\ldots, y\_G\\\},计算奖励r\_i = r\(x, y\_i\),并在组内对奖励进行归一化以获得优势:
\\hat\{A\}\_i = \\frac\{r\_i \- \\mu\_G\}\{\\sigma\_G\}, \\qquad \\mu\_G = \\frac\{1\}\{G\}\\sum\_\{j=1\}^\{G\} r\_j, \\qquad \\sigma\_G = \\sqrt\{\\frac\{1\}\{G\}\\sum\_\{j=1\}^\{G\}\(r\_j\-\\mu\_G\)^2\}\.
直观上,一个轨迹的基线不再是一个学习到的价值函数,而是同一提示下其他轨迹的表现。这在奖励稀疏但每个提示有多个样本可用时尤其有效。
GRPO目标保留了PPO风格的裁剪重要性采样,并在其原始公式中包含一个KL项:
J^\{\\text\{GRPO\}\}\(\\theta\) = \\mathbb\{E\}\_\{x \\sim \\mathcal\{D\}\}\\left\[\\frac\{1\}\{G\}\\sum\_\{i=1\}^\{G\} \\min\\left\(\\rho\_i\(\\theta\) \\hat\{A\}\_i,\\, \\text\{clip\}\(\\rho\_i\(\\theta\), 1\-\\epsilon, 1\+\\epsilon\) \\hat\{A\}\_i\\right\) \- \\beta \\cdot D\_\{\\text\{KL\}\}\(\\pi\_\\theta\(\\cdot\|x\) \\| \\pi\_\{\\text\{ref\}\}\(\\cdot\|x\)\)\\right\]
其中\\rho\_i\(\\theta\)=\\frac\{\\pi\_\\theta\(y\_i \\mid x\)\}\{\\pi\_\{\\theta\_\{\\text\{old\}\}\}\(y\_i \\mid x\)\}。
组归一化有两个有用的效果。减去均值使学习信号与提示相对:一个0.8的奖励应该被不同地解释,如果该提示的所有样本都在[0.8, 1.0]区间内,还是都在[0.2, 0.8]区间内。除以标准差使奖励尺度不那么敏感,这在结合具有不同奖励范围的任务时很有用。
然而,GRPO成功更重要的原因更简单:它移除了评论家。这大幅减少了内存使用,使得大规模推理模型的RL训练更容易进行。
RLOO¶ (https://aweers.de/blog/2026/rl-for-llms/#rloo)
RLOO(REINFORCE留一法)[9]从不同的方向得出了类似的结论:PPO可能比LLM微调设定所需的更复杂[1][1]当应用RL时,LLM已经训练得很好,这与通常从随机初始化开始的传统RL智能体不同。尽管动作空间(词汇表)大得多,但概率质量集中在少数几个合理的token上。↩ (https://aweers.de/blog/2026/rl-for-llms/#fnref-1).
对于每个提示,RLOO采样K个回答\\\{y\_1, \\ldots, y\_K\\\}。回答y\_i的优势是其奖励减去其他K-1个回答的平均奖励:
\\hat\{A\}\_i = r\_i \- \\frac\{1\}\{K\-1\}\\sum\_\{j \\neq i\} r\_j
这个基线是无偏的,并且不需要学习到的价值模型。与GRPO不同,RLOO不除以组的标准差。
更重要的是,RLOO放弃PPO风格的裁剪,回归到纯粹的REINFORCE风格更新。
RLOO目标是:
J^\{\\text\{RLOO\}\}\(\\theta\) = \\mathbb\{E\}\_\{x \\sim \\mathcal\{D\}\}\\left\[\\frac\{1\}\{K\}\\sum\_\{i=1\}^\{K\} \\nabla\_\\theta \\log \\pi\_\\theta\(y\_i\|x\) \\cdot \\hat\{A\}\_i\\right\]
作者认为,在他们的实验中,这种裁剪在不到5%的情况下是激活的,并且在这种设定下可能不是必需的。正如我们将看到的,后续工作得出了不同的结论。
Dr. GRPO¶ (https://aweers.de/blog/2026/rl-for-llms/#dr-grpo)
DeepSeek在其DeepSeek-Math和R1论文中报告,随着RL训练的进行,回答长度显著增加。他们将其归因于推理和反思能力的提高(著名的“啊哈”时刻)。虽然这可能是驱动因素之一,但Dr. GRPO(“正确完成的GRPO”的缩写)的作者[10]确定了另一个更重要的原因:标准的样本级损失归一化引入了偏向短正确回答和长错误回答的偏差。
在常见的GRPO实现中,token损失首先在每个序列内平均,然后在序列间平均。这意味着一个固定的序列级奖励被分配到序列中的所有token上。因此,如果一个长回答是正确的,它每个token受到的强化更弱;如果是错误的,每个token受到的惩罚也更弱。这可能会鼓励过度冗长。
修复方法很直接:不再先除以序列长度再除以批大小,Dr. GRPO除以一个固定常数(最大token数)。这实际上消除了错误回答不必要地过长的动机。
Dr. GRPO还移除了另一种引入不必要偏差的归一化。当每个提示的奖励按其标准差归一化时,如果某个提示的所有答案具有相似的奖励(例如,除了一个外全部正确,且此情况下奖励范围很窄,则归一化可能会放大噪声并损害学习信号。具体做法是将每个提示的奖励除以该提示下所有回答奖励的标准差,但如果所有回答奖励都非常接近,则标准差很小,归一化会放大微小差异,造成不稳定。Dr. GRPO建议使用更鲁棒的基线(如中位数)或避免除以标准差,从而减少这种偏差。
(待续…)
相似文章
学习如何让大语言模型进行推理
OpenAI 发布了一篇文章,通过密码破译示例探索大语言模型的推理技术,展示了语言模型的逐步问题求解和模式识别能力。
重新思考大语言模型推理中的强化学习:关键在于稀疏策略选择,而非能力学习
本文挑战了强化学习(RL)能为大语言模型(LLM)教授新推理能力的假设,论证其作用实则是在高熵决策点进行稀疏策略选择。本文提出了 ReasonMaxxer,这是一种无需强化学习的方法,以显著更低的训练成本实现了与完整强化学习相当的性能。
强化学习能否教会大型语言模型进行长程推理?表达力是关键
本文介绍了 ScaleLogic 框架,该框架证明了强化学习的训练计算资源消耗遵循与大型语言模型推理深度相关的幂律分布。文章强调,逻辑表达力对于提升下游迁移能力和训练效率至关重要。
超越推理:强化学习释放大型语言模型中的参数化知识
本文探讨了强化学习能否在推理任务之外,进一步提升大型语言模型(LLM)对参数化知识的直接回忆能力。研究表明,通过二元奖励进行强化学习,可以通过重新分配概率质量来激活潜在知识,而非习得新事实,从而在事实性问答基准测试中取得显著提升。
@ickma2311:CMU 高级 NLP:强化学习 我一直好奇 RL 如何作用于大模型,而这门 CMU 课程让我豁然开朗……
CMU 高级 NLP 课程讲清了强化学习如何优化整个输出的奖励(正确性、有用性、安全性),而非预训练/微调阶段的下一个 token 预测。