ProRL
Paper · arXiv 2505.24864v1 · 2025

ProRL:把 RL 训练拉到 2k 步,推理边界在部分任务上真正外扩

过去用 pass@k 得出的「RL 只是把 base 已有的高奖励解采样得更高效」这一结论,可能受限于两个实验条件:训练通常只有几百步,且集中在数学这类已经被反复训练过的领域。 这篇论文把数据扩到 5 个领域、把训练拉到 2k+ 步,并用 KL 正则和周期性参考策略重置让长训练不崩。 结果是:在某些任务上,base 采样 256 次都得不到的解,RL 后能稳定采到;但在数学上,pass@1 涨了,pass@k 反而略降。

Mingjie Liu, Shizhe Diao, Ximing Lu, Jian Hu, Xin Dong, Yejin Choi, Jan Kautz, Yi Dong · NVIDIA arXiv 2505.24864v1 ↗ 模型权重 ↗ 博客笔记 ↗
TL;DR · 30 秒抓住核心

争议的核心不是「RL 有没有用」,而是它教会了 base 不会的解,还是只把 base 分布里已有的正确解采样得更高效。 若只看短训练、单领域的 pass@k,后者很容易成立。

论文的判断是:此前的负面结论来自方法约束,不是 RL 的上限。ProRL 用 136K 五领域数据、DAPO 的解耦裁剪与动态采样、KL 正则,以及周期性的 reference policy reset,把训练撑到 2k+ 步、约 16k GPU 小时。

最硬的证据来自高 k 采样:在 OOD 任务 boxnet 上,base 的 pass@k 在 256 次采样内全为 0;final 在 Figure 5 的 pass@1 是 0.077、pass@256 是 1.000,Table 3 的连续奖励是 7.91;dice 也从全 0 到 100%。 论文据此认为,这些解不在 base 的高概率区域。

但边界不是普遍外扩。math 上 final 的 pass@1 从 0.844 升到 0.918,pass@256 却从 0.990 降到 0.988;Figure 3 还给出 base 初始能力与增益的负相关(R²=0.879)。论文的结论应读成「在部分任务、部分采样预算下能外扩」,不是「RL 一定扩边界」。

15.7 pt
数学平均 pass@1 点差
44.45 → 60.14(绝对值差 15.69)
7.91%
boxnet 连续奖励均值
Table 3:base 0.00;Figure 5 的 pass@1 为 0.077
16k GPU h
约 16k GPU 小时
4 个 8×H100-80GB 节点
01

短训练 + 单领域,可能把 RL 误判成只会放大

先分清两种主张:RL 是「放大器」还是「探索器」;再看到底用什么证据区分它们。

「放大器」的意思是:base 模型的输出分布里已经包含正确解,RL 只是提高它们的概率,让 pass@1 变高;把采样次数 k 拉大,RL 模型不会超过 base。「探索器」的意思是:训练能生成 base 几乎采不到的新解,因此高 k 下也能超过 base。

这两种主张在 pass@k 上给出不同的可检验预测。问题在于,高 k 采样很贵:论文为每个 prompt 采 256 次,并且因为算力限制,只从 Reasoning Gym 的 96 个任务里随机选了 18 个重跑(§4)。如果只采到 16 或 32 次,就很容易把「还没采到」误判成「不存在」。

变量一

训练时长

论文引用的负面结果大多在几百步内停止(§1 称 [13] 通常不超过数百步)。短训练下,策略还没离开 base 的高概率区域,pass@k 自然看不出新解。

变量二

任务多样性

只练数学,等于在 base 已经被预训练/后训练反复覆盖的领域里打转。论文认为这会限制探索,让「RL 只放大」的结论更容易出现。

论文由此提出一个更长的因果链:训练不够久 → 策略没离开 base 邻域 → pass@k 看起来没外扩。要验证它,必须同时改两件事:把训练拉长,把任务铺开;而这两件事都会把训练推向熵坍塌和不稳定。方法部分就是围绕「怎么撑住」展开的。

02

前人的证据停在短程,ProRL 从工程约束上拆题

已有工作提供了两套可直接复用的组件,但都没有同时解决「长」和「多样」。

证据侧

pass@k 的负面结论

论文把 [13]–[15] 的结论概括为:RL 训练后的模型没有获得 base 之外的新推理能力;有些任务上 pass@k 不升反降。论文不否认这些观察,而是指出它们的实验条件:数学占比过高、训练步数通常只有几百步(§1)。

工程侧

GRPO / DAPO 的稳定性组件

GRPO 去掉 value model,用组内分数做 baseline;DAPO 再加解耦裁剪和动态采样。这些组件能延缓熵坍塌,但论文认为它们本身不足以支撑 2k 步——还需要显式的 KL 正则和参考策略重置(§2.3)。

ProRL 直接复用了 DAPO 的两项设置。第一是解耦裁剪:下界和上界分开,上界放得更宽,让低概率 token 也有机会被抬起来:

clip(rθ(τ), 1 − εlow, 1 + εhigh)   →   εlow = 0.2, εhigh = 0.4
Eq. 3 · clip-higher:上界放宽,减少过早 mode collapse(§2.3)

第二是动态采样:把组内准确率为 1 或 0 的 prompt 过滤掉,因为这两类样本给不出组内相对优势。留下来的都是「有对有错」的中间难度题,训练信号更密(§2.3)。

缺口

稳定 ≠ 能跑长

DAPO 的组件让短程训练更稳;但论文观察到,随着训练推进,KL 项会在损失里越来越大,策略更新幅度被压小,验证分数停滞。要跨过这个平台,必须让参考策略「跟着走」——这就是 reference policy reset 的动机(§2.3.1)。

03

四件事让 2k 步不崩:裁剪、动态采样、KL、参考策略重置

ProRL 不是新算法,而是在 GRPO 上叠了一套能撑住长训练的约束;核心是最后一件事。

基础算法仍是 GRPO。对每个 prompt 采一组回答 τ,用组内奖励的均值和标准差算优势,再做带裁剪的策略梯度:

LGRPO(θ) = Eτ∼πθ[ min( rθ(τ)A(τ), clip(rθ(τ), 1−ε, 1+ε)A(τ) ) ]
Eq. 1 · GRPO 目标;rθ(τ)=πθ(τ)/πold(τ)
A(τ) = ( Rτ − mean({Ri}i∈G(τ)) ) / std({Ri}i∈G(τ))
Eq. 2 · 组内标准化优势;不需要 critic model

在这之上,ProRL 加了三层稳定器:

① DAPO 裁剪

别把低概率 token 一刀切掉

εlow=0.2、εhigh=0.4。上界放宽后,原本概率很低的 token 也有机会被抬高,探索不会在早期被封死。

② 动态采样

只留中间难度

准确率 1 或 0 的 prompt 对组内优势没有贡献,直接过滤。训练信号始终落在「有对有错」的区域。

③ KL 正则

给策略一根缰绳

在当前策略和参考策略之间加 KL 惩罚,既保熵,也防止策略为了短期奖励漂得太远。

LKL-RL(θ) = LGRPO(θ) − β DKL(πθ ‖ πref)
Eq. 4 · KL 正则;β 为惩罚系数,论文 v1 未在正文给出具体取值

关键在于:KL 项会随训练变大。论文的原话是「KL term may increasingly dominate the loss, leading to diminishing policy updates」。这时候继续训练,策略几乎动不了,验证分数停在平台上。ProRL 的处理不是去掉 KL,而是周期性 hard reset:

核心机制

Reference policy reset

把参考策略 πref 直接重置为当前在线策略 πθ 的一个较新快照,同时重新初始化 optimizer states。这样 KL 项从「旧锚点」切换到「新锚点」,策略又能继续更新,而 KL 正则仍然保留(§2.3.1)。

论文把重置触发条件写成「验证指标明显退化或提升停滞」;重置不仅是恢复稳定性,也提供了一个调整超参、加数据、改 reward shaping 的窗口(Appendix E)。

为什么不能只靠温度?论文说提高 rollout 温度只能推迟熵坍塌,不能阻止熵继续下降;他们确实用了 1.2 的高温,但它只是延缓项之一(§2.2.1)。真正的长程支撑来自裁剪 + 动态采样 + KL + reset 的组合。

04

136K 题、32 张 H100、约 16k GPU 小时,分 8 个 run 拼出来

这一节回答「怎么训、代价多大」:数据怎么配、每步怎么算、8 个 run 各自改了什么。

训练集共 136K 条,覆盖五个领域,每条都有可验证的奖励信号(二值或连续):

Table 4 转录:训练数据构成;总量 136K = 40k + 24k + 25k + 37k + 10k
领域奖励数量来源
MathBinary40kDeepScaleR Dataset
CodeContinuous24kEurus-2-RL Dataset
STEMBinary25kSCP-116K
Logical PuzzlesContinuous37kReasoning Gym
Instruction FollowingContinuous10kLlama-Nemotron
合计136k

训练设置(§3.2):用 verl 做 RL 训练;每个 prompt 采 n=16 条回答,上下文上限 8096,采样温度 1.2;batch 256、mini-batch 64,也就是每次 rollout 做 4 次梯度更新;AdamW,恒定学习率 2×10−6;4 个 8×H100-80GB 节点(共 32 张),全程约 16k GPU 小时。

训练不是一条固定超参跑到底,而是 8 个 run 的顺序拼接。按 Appendix E,可以归纳成 6 个阶段。点下面的阶段看每一步改了什么:

Run 1 · 4 个任务 · 8k · n=16
先用 math/code/STEM/logic 四类数据启动,暂不含 instruction following。响应长度先降后升,验证分数上升;阶段末出现不稳定与退化。

代价也要说清楚:约 16k GPU 小时、多次 hard reset、以及每阶段重新调参,意味着这不是一个「设好超参就跑」的配方。Appendix A 把「计算资源」和「训练过程复杂性」都列为明确限制。

奖励侧还有两个工程细节:代码按通过的测试用例比例给连续奖励,编译失败、语法错误或超过 5 秒总超时直接记 0(Appendix D.2);数学和 STEM 是二值奖励,逻辑谜题和指令遵循用规则 verifier 的连续分数(Appendix D)。这些条件决定了后面所有数字的口径。

05

一条 RL 流水线,重置点决定它能跑多远

把数据、rollout、奖励、策略更新和重置画在一起,才能看出「长训练」到底长在哪。

ProRL 训练与参考策略重置流程 五领域数据进入 prompt batch,rollout 后用 verifier 给奖励,GRPO 加 DAPO 裁剪和 KL 正则更新策略;验证指标停滞或退化时,将 reference policy 重置为当前策略快照并重新初始化 optimizer。 训练数据 136K Math 40k Code 24k STEM 25k Logic 37k IF 10k 五领域 · 二值/连续奖励 Prompt batch 256 Rollout n=16/32 · T=1.2 8k → 16k Verifier binary / continuous GRPO + DAPO clip + β · KL(πθ ‖ πref) εlow=0.2 · εhigh=0.4 Policy πθ 下一批 rollout Reference πref Validation blend AIME24 · Codeforces · GPQA-D IFEval · graph_color Reset trigger 验证退化 / 停滞 → πref ← πθ optimizer 重新初始化 hard reset
图:ProRL 的训练与重置流程(按 §2.3、§3.3、Appendix E 重绘,不是原文插图)。数据量与超参数取自 Table 4、§3.2;验证集构成取自 Appendix E。

流程里有两条回路。第一条是常规的 rollout → reward → update → 再 rollout;第二条是验证监控回路:AIME2024、Codeforces、GPQA-diamond、IFEval、graph_color 组成 blended validation set,一旦指标明显退化或平台化,就触发 hard reset。重置后不仅参考策略更新,optimizer 状态也重新初始化;这同时给了一个调整数据配比、reward shaping 和超参的窗口(Appendix E)。

所以「2k 步」不是一次连续优化,而是多次「训练—监控—重置—再训练」的拼接。理解这一点,才能理解为什么同一个 final checkpoint 在不同任务上会同时出现「边界外扩」和「边界收窄」。

06

pass@1 全线涨;pass@k 有的外扩、有的收窄

先看主表,再用可切换的 pass@k 面板看「外扩」和「收窄」同时存在。

Table 1(数学)、Table 2(代码)、Table 3(STEM/指令/逻辑)合并转录。数学/代码/GPQA 为 pass@1(16 次采样);逻辑与指令遵循为规则 verifier 的连续奖励均值(采样数原文未单列)。7B 行为参考。
模型Math avgCode avgGPQAIFEvalLogic avg
DeepSeek-R1-Distill-Qwen-1.5B44.4523.0815.8644.054.24
Nemotron-Research-Reasoning-Qwen-1.5B60.1437.4941.7866.0259.06
DeepSeek-R1-Distill-Qwen-7B(参考)63.1941.3935.4458.0128.55

按上表逐列做减法,ProRL 相对 base 的点差是:数学 15.7 个百分点(60.14−44.45,pass@1)、代码 14.4(37.49−23.08,pass@1)、GPQA 25.9(41.78−15.86,pass@1)、IFEval 22.0(66.02−44.05,连续奖励)、逻辑 54.8(59.06−4.24,连续奖励)。这里统一用「个百分点」,不是相对百分比;论文 §3 和笔记里的「+15.7% / +14.4%」按表复算就是这些点差。

与 7B 参考模型比,结论要分领域看:GPQA(41.78 vs 35.44)、IFEval(66.02 vs 58.01)、逻辑(59.06 vs 28.55)高于 7B;数学平均(60.14 vs 63.19)和代码平均(37.49 vs 41.39)仍低于 7B。论文的「matches or surpasses」应理解为部分基准,而不是所有列。

OOD 任务:base 采不到,不等于模型「不会」

Table 3 的 OOD 三列转录;数值为连续奖励均值(Reasoning Gym 规则 verifier),不是 pass@1。acre / boxnet / game_of_life_halting 均未在训练中出现。
模型acreboxnetgame
DeepSeek-R1-Distill-Qwen-1.5B5.990.003.49
DeepSeek-R1-Distill-Qwen-7B(参考)20.211.7112.94
Nemotron-Research-Reasoning-Qwen-1.5B58.577.9152.29

boxnet 是最能说明问题的一列:Table 3 的连续奖励从 base 0.00、7B 参考 1.71 到 final 7.91;在 Figure 5 的 256 次采样里,base 的整条 pass@k 曲线都是 0,final 的 pass@1 是 0.077、pass@256 是 1.000。两个口径不要混:Table 3 是 16 次采样的连续奖励均值,Figure 5 是 pass@k。dice 也类似:base 全程 0,final 从 pass@1 0.390 升到 pass@256 1.000(Figure 4)。acre 与 game 的连续奖励点差分别是 52.6(58.57−5.99)和 48.8(52.29−3.49)。

自己看:四个任务的 pass@k 曲线

切换任务、拖动 k,读三个模型在同一采样预算下的成功率。注意:这是直接查表,不是拟合;曲线只连接图里的 9 个离散 k 点。

Base · DeepSeek-R1-1.5B Intermediate Final · ProRL
k = 256
boxnet · k = 256

四个面板对应三种形态:boxnet / dice 是「base 在 256 次内为 0,final 到 100%」;codecontests 是「final、intermediate、base 三层都分开」的持续增益;math 是「pass@1 涨、pass@256 略降」的收窄。论文把 Figure 4 的 9 个面板归为 Diminish / Plateau / Sustained 三类,并明确指出:数学等 base 本来就很强的任务,pass@128 可能下降。

交互的覆盖范围与手算对账点开看哪些面板被覆盖、哪些没有

覆盖:Figure 4 的 math、codecontests、dice 三个面板,以及 Figure 5 的 boxnet,共 4 个任务、每个 9 个 k 点(1/2/4/8/16/32/64/128/256)。

未覆盖:Figure 4 的另外 6 个面板(deepcoder_livecodebench、letter_counting、gpqa_diamond、maze、palindrome、taco),以及 appendix 里的其余 pass@k 图。曲线以直线连接离散点,未做平滑、拟合或误差棒。

手算 1 · boxnet,k=16:k 列表 [1,2,4,8,16,32,64,128,256] 中 16 的索引是 4(从 0 起)。final[4]=0.600,intermediate[4]=0.388,base[4]=0.000。final − intermediate = 0.212,即 21.2 个百分点。

手算 2 · math,k=256:索引 8。final[8]=0.988,intermediate[8]=0.982,base[8]=0.990。final − base = −0.002,即 −0.2 个百分点。

标准差口径:本交互是确定性查表,不做重复采样,因此不涉及 ÷N 或 ÷(N−1)。原图每个点是 256 次采样的 pass@k 估计,图上未画误差棒。

反直觉的发现:增益和 base 的初始能力负相关

Figure 3 左图把每个任务放在「base pass@128」和「pass@128 增益」两轴上,线性回归的 R²=0.879:base 越弱,RL 带来的边界增益越大;base 越强,增益越小,甚至为负。右图进一步用 creativity index 对 DOLMA 做重叠度分析:增益小的任务,base 回答与预训练语料的重叠度更高,论文据此认为它们更像「已经见过」。

这也解释了为什么 Table 1/2/3 的「全线分数上涨」不能直接推成「全线边界外扩」:pass@1(或连续奖励)只说明首答更准,pass@k 才说明解空间有没有变宽。数学是后者的反例。

原文内部数字

§1 与 §3 的增益数字不一致

§1 写的是数学 14.7、代码 13.9、STEM 25.1、指令遵循 18.1;§3 写的是数学 15.7、代码 14.4、STEM 25.9、指令遵循 22.0。按 Table 1–3 复算是 15.69、14.41、25.92、21.97 个百分点。本页采用表内可复算的点差;两处原文数字并列在此,不做取舍。

07

它能证明的比标题窄:1.5B、可验证奖励、256 次采样

把论文自己的限制和数据的边界放在一起,才知道什么时候不该用这套结论。

边界一

只验证了 1.5B

所有实验基于 DeepSeek-R1-Distill-Qwen-1.5B。论文在 Appendix A 明确写:方法能否扩展到更大模型仍不清楚,参数变大后计算需求会更突出。

边界二

成本与复杂度

约 16k GPU 小时、8 个 run、多次 hard reset 和逐阶段调参。Appendix A 把计算资源和训练过程复杂性都列为限制;这不是一个轻量配方。

边界三

任务范围

训练和评测都依赖可验证奖励。开放、模糊、没有明确对错的任务不在覆盖范围内;论文在 Appendix A 也承认训练集只是可能推理任务的一个子集。

边界四

不是所有类别都变好

Table 5 的 Reasoning Gym 连续奖励里,arc 从 1.53 到 2.52、code 从 1.22 到 29.84、cognition 从 6.47 到 40.16、games 从 2.34 到 26.38;论文仍说模型在这些更难的类别上「fails to make meaningful progress」,可能需要额外冷启动数据。

还有一个证据强度问题:pass@256=0 只说明这 256 次采样里没有成功,不能证明该解在 base 分布中的概率严格为 0。论文用「fails to produce any correct solutions regardless of the amount of sampling」来描述这些任务,但实际可核查的测量上限是 256 次;更高 k 或不同温度下是否仍然为 0,论文没有给出。推断(依据:§4 只报告 256 次采样,未给全分布证明)因此,把结果读成「base 绝对不会」比读成「base 在 256 次预算内采不到」更强。

同理,「RL 发现了全新的推理路径」是一个操作性结论:它由 pass@k 超过 base、creativity index 更高、OOD 任务提升共同支撑,而不是对解空间的穷举证明。数学上的 pass@k 收窄也提醒:RL 既可能外扩边界,也可能把分布压窄;方向取决于 base 的初始能力和任务类型。

一句话:ProRL 证明的是「在部分任务、部分采样预算下,长程 RL 能把 base 采样不到的解变成可采样」;它没有证明「RL 一定扩边界」,也没有证明「扩出来的边界能迁移到所有领域」。用这套方法前,先确认你有可验证奖励、能承担长训练成本,并且接受它在强 base 任务上可能收窄。