编辑:KingHZ
DeepSeek-R1引爆了LLM推理革命。
至今,过去一百多天了,引发了持续复制DeepSeek-R1的热潮。
DeepSeek-R1的秘籍在于强化学习微调算法:群体相对策略优化(Group Relative Policy Optimization,GRPO)。
未来,LLM的训练将不再是单纯的数据训练,而是将推理能力作为标准流程。
那为什么强化学习能提高LLM的推理能力?
DeepSeek-R1的GRPO,有哪些身前身后事?
在后DeepSeek-R1时代,GRPO又引发了哪些奇思妙想?
首先要面对的核心问题是:什么是推理?
简单来说,推理是一种通过推导和训练手段,使大语言模型(LLMs)更擅长处理复杂任务的能力。
技术一点的说法是:
推理是指LLM在给出最终答案之前,能先生成一系列中间步骤的能力。
这个过程通常被称为「思维链」(Chain-of-Thought,简称CoT)推理。
在CoT推理中,模型会显式地生成一系列结构化的陈述或计算步骤,来说明它是如何得出结论的。
下图展示了这一定义及其示意。
大语言模型(LLM)处理多步骤推理任务示意图
在多步骤推理任务,与直接回忆某个事实不同,推理模型需要结合多个中间推理步骤,才能得出正确的结论。
这些中间推理步骤是否展示给用户,取决于具体的实现方式。
LLM强化学习黑话小抄
用于构建和优化推理模型的强化学习(RL)训练方法,基本上都与人类反馈强化学习(RLHF)有关——
这也是目前用来开发和对齐传统大语言模型(LLMs)的主流手段。
因此,在深入讨论基于强化学习的推理优化方法之前,我们先简要回顾一RLHF是如何工作的。
传统LLM的三阶段训练流程:
RLHF训练流程会从预训练模型开始,然后通过监督学习进行微调。
这一步还不属于强化学习,而是为后续的RL打下基础的前置步骤。
接下来,RLHF会使用强化学习算法,进一步对LLM进行对齐。
这是本文的重点。
整个RLHF流程分为三大步骤:
RLHF第一步(前置步骤):监督微调预训练模型
这一步的目标是通过人工标注的数据对模型进行有监督学习,构建一个适合后续RLHF微调的基础模型
RLHF第二步:构建奖励模型(Reward Model)
收集多个回答并让人类标注哪一个更好,以此训练一个模型,能够根据输出内容给出高或低的「奖励分数」。
RLHF第三步:强化学习微调
使用奖励模型的评分结果作为奖励信号,利用PPO等算法更新语言模型的策略,使其输出更符合人类偏好。
RLHF第一步要创建或从已有数据集中采样一批提示语(prompts),然后由人类标注者为这些提示语编写高质量的参考回答。
接着,我们使用这些人工标注的数据对预训练语言模型进行监督微调(SFT)。
正如前面提到的,这一步并不属于强化学习,而是作为后续RLHF微调的前置准备。
RLHF第二步将第一步微调后的模型用于构建一个奖励模型(Reward Model)。如下图所示:
我们让人类对多个模型生成的回答进行排序,然后用这些排序数据来训练奖励模型,让它能根据回答的质量输出相应的评分。
这个奖励模型将在接下来的强化学习微调中,作为模型行为的评估依据。
RLHF第三步(也是最后一步)使用在第二步中训练好的奖励模型,为模型生成的回答打分,然后基于这些评分,使用近端策略优化(PPO)等算法对SFT模型进行强化学习微调。
这是强化学习发挥作用的地方。
通过强化学习,模型会逐步调整其输出策略,使其更倾向于生成高奖励(即更符合人类偏好)的回答,从而实现真正的人类反馈对齐训练。
一开始,RLHF采用的是近端策略优化PPO。
PPO在架构中使用了四个不同的语言模型:
一个策略模型(正在训练的模型)、
一个参考模型(原始模型的冻结副本)、
一个奖励模型(基于人类偏好进行训练)
和一个值模型(估计长期奖励)。
这些模型都包含需要反向传播来优化的可训练参数,这消耗大量的GPU内存和计算周期,使得训练过程变得笨重且昂贵。
监督学习能够快速定义损失函数,且通常无需大量超参数调整。整个过程直观、稳定、可控。
但在强化学习中,成功的路径就不那么明确了:
强化学习算法往往包含许多相互依赖的模块,调试困难。
而且要想获得良好结果,通常需要投入大量的精力进行调参和结构调整。
这也是PPO被广泛采用的原因之一——
它在实现简便性、样本效率和调参难度之间取得了较好的平衡。
PPO的核心思想是:
在每一步中计算一次策略更新,既能最小化代价函数,又能确保新策略与旧策略之间的偏差不会过大。
OpenAI提出了全新目标函数,增强了PPO算法的稳定性和实用性。
其主要公式如下:
其中:
图1:在RL训练过程中,应用Clip-Higher策略前后,AIME测试集上的准确率和演员模型生成概率的熵对比
图1展示了在使用与不使用裁剪参数的情况下,模型在AIME数据集上的表现和生成的熵值对比;可以明显看到,加入裁剪参数后,模型性能和熵值都有显著提升。
DeepSeek的GRPO
他们推出了PPO算法的改进「平替版本」GRPO:
在提升数学推理能力的同时,显著优化了PPO的内存使用效率。
DeepSeek-R1训练流程
创新的核心动机在于提升计算效率。
该效率提升主要通过以下方式实现:
剔除「评论家」(价值模型):即传统用于计算价值函数(预期未来收益)的大语言模型组件
采用相对质量评估:通过对策略模型本身生成的多组答案进行质量对比,直接计算优势函数,取代传统依赖额外模型估算奖励的方法
这一创新显著降低了训练推理模型的计算需求,即使是「GPU资源匮乏」的团队,也能开发出复杂的推理能力。
其公式如下:
GRPO的主要变化包括:
其中,y是标准答案,y^是预测答案。
GRPO的开源升级版:DAPO 然而,当前顶尖推理型大模型的关键技术细节(如OpenAI的o1技术博客和DeepSeek-R1技术报告中的内容)仍处于黑箱状态,导致学术界难以复现他们强化学习训练成果。
DAPO为每个与答案a配对的问题q采样一组输,并通过以下目标函数优化策略:
DAPO包含以下几个关键技术点:
高限裁剪
从前面的公式可以看出,对于裁剪参数,DAPO同时引入了「低裁剪」ε_{low}和「高裁剪」ε_{high}两个界限。
这是因为:
低概率token的更新空间远小于高概率token。
此外,DAPO的实验中发现,被裁剪的token的最大输出概率通常小于0.2。
这也证明了高裁剪限制了低概率token概率的提升,进而抑制了模型的多样性。如图2所示:
图2:最大裁剪概率
高低双裁剪的策略如下:
在DAPO中,有ε_{low}<ε_{high},因此:
动态采样
在当前强化学习算法中,同一个prompt需要采样多次形成一个group。
如果该组内所有采样结果的正确率都是1(即奖励全为正)或全为0(即奖励全为负),那么该组的优势值\hat{A}为0,导致无法产生有效的梯度更新,降低了样本效率。
如下图3所示,随着训练进行,有效样本在batch中的占比逐渐下降:
图3:准确率为1的样本比例
为了解决这个问题,DAPO引入了动态采样机制:
Token级策略梯度损失
在原始的GRPO中,损失是基于样本整体计算的。这种做法可能导致长文本中的token学习效果较差。
例如:
计算总损失L_{long}+L_{short}时,虽然平均了,但因为N₁>N₂,导致长样本的学习权重被稀释。
此外,实验也发现长内容容易生成无意义token,应该给予更多关注。
因此DAPO将损失改为每个token直接参与计算,总损失形式如下:
上述例子中的损失形式也相应变为:
过长奖励重塑
在大语言模型(LLMs)训练中,通常会设置max_token限制生成长度,超过这个长度的样本会被截断。
如果对这些截断样本的奖励设计不合理,可能会引入奖励噪声,干扰训练。
过去的方法通常会对这些样本进行惩罚,但这可能导致本应合理的长答案被错误惩罚。
为此,DAPO引入了惩罚过渡区间,其奖励设计如下:
当∣y∣+Lcache≤Lmax时,文本长度小于最大允许长度max_token,因此不施加惩罚。
当∣y∣+Lcache>Lmax且∣y∣<Lmax|时,惩罚按线性方式施加。
当∣y∣≥Lmax时,施加最大惩罚。
图4展示了在基准设置下,使用动态采样前后的训练进度变化。
图4:在基准设置下,应用动态采样前后的训练进度对比
自我反思与回溯能力的出现
在DAPO的训练过程中,研究人员还观察到了模型具有「反思」和「回溯」的能力,而这类能力在原始数据集中并未出现。
这与DeepSeekR1报告中的发现一致。
虽然目前还不清楚这一能力产生的根本原因,但它为未来的优化提供了新的方向。
图5展示了强化学习中「反思行为」的涌现现象。
图5:强化学习中反思行为的出现
参考资料:
https://pub.towardsai.net/the-evolution-of-grpo-dapo-d96000d0d81f
https://openai.com/index/openai-baselines-ppo/
https://www.k-a.in/grpo.html
https://magazine.sebastianraschka.com/p/the-state-of-llm-reasoning-model-training
https://arxiv.org/pdf/2503.14476