Skip to content

DeepSeek Math

传送门:DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models

笔者认为,本文最重要的贡献是提出了 GRPO 的强化学习算法. 通过舍弃 critic 模型,GRPO 显著减少了训练资源的使用. 当然本文还涉及数据集构建,预训练,监督微调等内容.

Structure

传统 PPO 架构. 这是一种经典的 actor-critic RL 算法.

JPPO(θ)=EqP(Q),oπθold(O|q)1|o|t=1|o|min[πθ(ot|q,o<t)πθold(ot|q,o<t)At,clip(πθ(ot|q,o<t)πθold(ot|q,o<t),1ϵ,1+ϵ)At].

其中 πθ,πθold 是当前和旧的 policy model. q,o 是从问题数据集和旧策略 πθold 中抽样的问题和输出. ϵ 是一个与裁剪有关的超参数,用于稳定训练,At 是优势,通过 GAE 计算,需要用到奖励 {rt} 和 value function Vψ. 为了防止 reward model 的过度优化,标准的方法是从参考模型上添加 KL penalty.

rt=rϕ(q,ot)βlogπθ(ot|q,o<t)πref(ot|q,o<t).

下面的 GRPO 算法省略了 value function. A^i,t 是基于每组内部输出的相对奖励计算的优势.

JGRPO(θ)=EqP(Q),{oi}i=1Gπθold(O|q)1Gi=1G1|oi|t=1|oi|{min[πθ(oi,t|q,oi,<t)πθold(oi,t|q,oi,<t)A^i,t,clip(πθ(oi,t|q,oi,<t)πθold(oi,t|q,oi,<t),1ϵ,1+ϵ)A^i,t]βDKL[πθ||πref]}.

与在线 RFT 相比,GRPO 通过根据奖励模型提供的奖励值独特地调整其梯度系数,从而可以根据响应的不同大小进行差异化强化与惩罚. 同时,通过直接将训练 policy 和参考 policy 的 KL penalty 添加到 loss 中,避免了之前 KL penalty 计算的复杂性. KL 散度通过下面的无偏估计量来估计.

DKL[πθ||πref]=πref(oi,t|q,oi,<t)πθ(oi,t|q,oi,<t)logπref(oi,t|q,oi,<t)πθ(oi,t|q,oi,<t)1>0.

Outcome Supervision RL. 对于每个问题 q,从旧的策略模型 πθold 中抽取一组输出 {o1,,oG}. 然后,使用奖励模型对输出进行打分,相应地产生 G 个奖励 r={r1,,rG}. 接着定义 A^i,t 为减去组均值后的归一化奖励

A^i,t=r~i=rimean(r)std(r).

Process Supervision RL. 设 index(j) 为第 j 步,则奖励 R={{r1index(1),,r1index(K1)},,{rGindex(1),,rGindex(KG)}}. 取

A^i,t=index(j)tr~iindex(j)=index(j)triindex(j)mean(R)std(R).

Iterative RL. 下面的算法展示了 GRPO 与迭代式 RL 的合成.

Iterative Group Relative Policy OptimizationInpinitial policy model πθinit; reward models rϕ; task prompts D; hyperparameters ϵ,β,μ1policy model πθπθinit2for iteration=1,,I do3reference model πrefπθ4for step=1,,M do5Sample a batch Db from D6Update the old policy model πθoldπθ7Sample G outputs {oi}i=1Gπθold(q) for each question qDb8Compute rewards {ri}i=1G for each sampled output oi by running rϕ9Compute A^i,t for the t-th token of oi through group relative advantage estimation  10for GRPO iteration=1,,μ do11Update the policy model πθ by maximizing the GRPO objective12end for13end for14Update rϕ through continuous training using a replay mechanism15end forOptπθ

Discussions

本文指出,代码训练从某种程度上加强了模型的数学推理能力. 本文还提出了下面的统一强化学习范式,并给出了一些实验结果.

θJA(θ)=E[(q,o)DData Source](1|o|t=1|o|GCA(q,o,t,πrf)Gradient Coefficientθlogπθ(ot|q,o<t)).

本文还提出了一些有关强化学习的有趣见解. 例如,RL 提升了 Maj@K 但对 Pass@K 没有影响,暗示 RL 通过使输出分布更加稳健来提高模型的整体性能. 同时,从三个方面来看:

  • Data Source. 在强化学习中,我们从 policy model 中抽样得到无标签问题和它们的答案. 改进的方向包括基于树搜索的采样策略,高效推理技术等,从而提高策略模型的探索效率.

  • Algorithms. 标注数据有时不可信,如何开发对噪声奖励信号具有鲁棒性的 RL 算法,如何使用 WEAK-STRONG 的对齐方式.

  • Reward Function. 如何增强奖励模型的泛化能力从而解决 out-of-distribution 的问题,如何反映奖励模型的不确定性,如何高效地构建高质量的 PRM 从而提供细粒度的训练信号.

同时,本文以一种统一的视角分析了 SFT, RFT, Online RFT, DPO, PPO, GRPO 算法. 具体来说:

  • Supervised Fine-tuning. 旨在最大化下面的目标.
JSFT(θ)=Eq,oPsft(Q,O)(1|o|t=1|o|logπθ(ot|q,o<t)).

数据源:用于 SFT 的数据集. 奖励函数:可以被视作人类选择. 梯度系数:恒为 1.

  • Rejection Sampling Fine-tuning. 首先从 SFT 的 LLM 中采样多个输出,然后在具有正确答案的输出上训练 LLM. 旨在最大化下面的目标.
JRFT(θ)=EqPsft(Q),oπsft(O|q)(1|o|t=1|o|I(o)logπθ(ot|q,o<t)).

数据源:SFT 数据集中的问题与 SFT 模型的输出. 奖励函数:rule-based. 梯度系数:

GCRFT(q,o,t)=I(o)={1the answer of o is correct0the answer of o is incorrect.
  • Online Rejection Sampling Fine-tuning. 从实时策略模型 πθ 中采样,而不是 SFT 模型.
θJOnRFT(θ)=EqPsft(Q),oπθ(O|q)(1|o|t=1|o|I(o)θlogπθ(ot|q,o<t)).
  • Direct Preference Optimization (DPO). 旨在最大化下面的目标.
JDPO(θ)=EqPsft(Q),o+,oπsft(O|q)logσ(β1|o+|t=1|o+|logπθ(ot+|q,o<t+)πref(ot+|q,o<t+)β1|o|t=1|o|logπθ(o<t|q,o<t)πref(o<t|q,o<t)).
θJDPO(θ)=EqPsft(Q),o+,oπsft(O|q)(1|o+|t=1|o+|GCDPO(q,o,t)θlogπθ(ot+|q,o<t+)1|o|t=1|o|GCDPO(q,o,t)θlogπθ(ot|q,o<t)).

数据源:SFT 数据集中的问题与 SFT 模型的输出. 奖励函数:一般领域的人类偏好. 梯度系数:

GCDPO(q,o,t)=σ(βlogπθ(ot|q,o<t)πref(ot|q,o<t)βlogπθ(ot+|q,o<t+)πref(ot+|q,o<t+)).
  • Proximal Policy Optimization (PPO). 旨在最大化下面的目标
JPPO(θ)=EqPsft(Q),oπθold(O|q)1|o|t=1|o|min[πθ(ot|q,o<t)πθold(ot|q,o<t)At,clip(πθ(ot|q,o<t)πθold(ot|q,o<t),1ϵ,1+ϵ)At].

假如在每个探索阶段后只有一次更新,那么 πθold=πθ. 于是

JPPO(θ)=EqPsft(Q),oπθold(O|q)1|o|t=1|o|πθ(ot|q,o<t)πθold(ot|q,o<t)At.
θJPPO(θ)=E[qPsft(Q),oπθold(O|q)]1|o|t=1|o|Atθlogπθ(ot|q,o<t).

数据源:SFT 数据集中的问题与 policy model 的输出. 奖励函数:reward model. 梯度系数:GCPPO(q,o,t,πθrm)=At.

其中 At 是优势,基于广义优势估计 GAE 得出,基于奖励 {rt} 和 value function Vψ 得出.

  • Group Relative Policy Optimization (GRPO). 假设 πθold=πθ.
JGRPO(θ)=EqPsft(Q),{oi}i=1Gπθold(O|q)1Gi=1G1|oi|{t=1|oi|[πθ(oi,t|q,oi,<t)πθold(oi,t|q,oi,<t)A^i,tβ(πref(oi,t|q,oi,<t)πθ(oi,t|q,oi,<t)logπref(oi,t|q,oi,<t)πθ(oi,t|q,oi,<t)1)]}.
θJGRPO(θ)=EqPsft(Q),{oi}i=1Gπθold(O|q)1Gi=1G1|oi|{t=1|oi|[A^i,t+β(πref(oi,t|oi,<t)πθ(oi,t|oi,<t)1)]θlogπθ(oi,t|q,oi,<t)}.

数据源:SFT 数据集中的问题与 policy model 的输出. 奖励函数:reward model. 梯度系数:

GCGRPO(q,o,t,πθrm)=A^i,t+β(πref(oi,t|oi,<t)πθ(oi,t|oi,<t)1).

其中 A^i,t 是基于分组的奖励分数计算的.