MiniCPM RL Team
English version: JustRL II: Scaling Small LLMs to 128K Reasoning with a Critic
<aside> 📌
用长思维链(CoT)强化学习训练小尺寸 LLM 时,我们发现性能提升很难保持:训练中期指标还在上涨,到了后期却开始回落。追查下来,这种不稳定有两个相互交织的原因:1)开源数据里混有噪声 label 或者错误的题目,以及难度与基座模型不匹配的题目,导致奖励信号稀疏甚至带有误导性;2)在极长的推理轨迹上,GRPO 这种组内平均的基线只是一个粗粒度的、response 级别的参照,对 token 级别的 credit assignment 帮助有限,训练后期也就更容易退化。
针对这些问题,我们为小模型的长 CoT RL 设计了一套带 critic 的强化学习配方,命名为 JustRL II。1)数据侧,我们用一条三阶段流水线对开源数据做审计,并按目标 checkpoint 重新校准难度。 2)算法侧,我们保留 GRPO 的 group 结构,同时引入一个 learning 得到的 value function 来做 token 级别的 credit assignment。我们还建立了一套基于 group 结构的诊断框架,在整个训练过程中持续监视 critic 的性能。
本 blog 以数学推理为案例,展开讲解这套训练配方。同一套完整配方也已经用在 MiniCPM5-2B 上,在多个领域取得了明显提升,在小尺寸模型中达到了 SOTA 水平。我们还将开源完整的数据流水线、checkpoint 和参考训练代码。
</aside>

图 1. RL 让 MiniCPM5-2B 超过了一个体量两倍的模型。左:同样数据和算力下 RL 过程中的 AIME 2025 准确率。不带 critic 的 baseline 在第 154 步左右到顶 74%,之后开始下滑;JustRL II(我们的方法)持续上涨,第 334 步达到 81%。右:红色虚线是 SFT 起点,红色实线是经过我们 RL 配方之后。六个评测全部显著提升。RL 后的 2B 模型在 AIME 2025、LiveCodeBench v6 和 IFBench 上超过两倍尺寸的模型 Qwen3.5-4B,其余项目也大致持平。各轴按该顶点所示的最大值归一化;内圈做了压缩。
Opensourced: base model checkpoint
我们从 JustRL [1] 描述的标准 GRPO 配方出发,作为 baseline。模型是 MiniCPM5-2B,从一个长推理 checkpoint 初始化;初始数据集把开源的 DAPO-Math [2]、DeepScaleR [3] 和 DeepMath [4] 合在一起,约 10 万道题。每个 prompt 使用 128k 预算长度采样 8 条 rollout。这次运行给我们提供了参照,用来判断长 CoT 场景下配方的哪些部分会变得脆弱。
先回顾 GRPO 的目标函数。对每个 prompt $q$,GRPO 采样一组 $n$ 条 response,记为 $G(q) = \{y_1, \ldots, y_n\}$,每条 response 得到一个 outcome reward $r_i$。response 级别的 advantage 是 reward 减去组均值,然后原样广播到每个 token:
$$ \hat A_i = r_i - \bar r, \qquad \bar r = \frac{1}{n}\sum_{j=1}^{n} r_j, \qquad \hat A_{i,t} = \hat A_i. $$
策略随后用标准的 clipped surrogate objective 更新。
这个 GRPO baseline 同样使用动态采样:对每个 prompt 采样一组 response,只有当组内 reward 的方差不为零时才保留这一组。我们会过采样候选组,一直采到凑够足够多的非零方差组,再做一次更新。
在这个目标函数和原始数据集上,baseline 在长 CoT 场景下确实取得了明显进展。训练前期和中期,留出集 AIME 2025 的成绩持续上涨,说明标准 GRPO 配方在这套设定下能学到有用的行为。但问题在于,前期的进展没能保持下去。

图 2. 前 150 步 AIME 2025 从约 61% 涨到 74%;之后的 250 步再没有任何提升。
于是我们对训练动态做了细致诊断,重点看 response 长度、截断与重复,以及零方差组的占比:

图 3. 长 CoT 训练中标准 GRPO baseline 的诊断视图。各面板按阅读顺序依次为:留出集 AIME 2025 的 response 长度、重复比例、截断比例,以及被丢弃的采样组占比(零方差丢弃率)。训练后期 response 越来越长,截断和重复也越来越频繁。大量采样组因为零方差被丢弃,浪费了可观的 rollout 算力。
Baseline 运行中有三个现象很突出,我们分开讨论:
评测先涨后平。 AIME 2025 准确率在第 150 步前从约 61 涨到 74,之后一直到第 400 步都停在这个水平附近。
response 长度、截断和重复同步上升。 前 100 步平均 response 长度维持在 3 万 token 左右,随后到第 200 步爬到约 5 万,之后保持在 4.5 万到 5 万之间。response 变长后,截断率从约 1% 升到 6% 至 8%,也就是更多 rollout 撞上了生成上限;重复率也升到 2% 至 3%。
大量 rollout 被丢弃。 整个训练过程中,零方差组占采样组的 55% 到 70%。每个组有 8 条完整 rollout,却在更新前就被丢掉,也就是说超过一半的组级 rollout 预算没有产生任何策略梯度。