论文精读

精读:把「做不出来」的题变成训练信号

用教师的部分推理轨迹给不可解题装上难度旋钮,128 道题配单调前沿课程在九基准平均上追平乃至超过 2000 道题的全量 GRPO。

论文: Unlocking the Unsolvable: Teacher-Guided Curriculum for Data-Efficient RLVR
作者: Yukang Zhu, Zhen Han
arXiv: 2609.13997
RLVR 课程学习 数据效率 教师引导 推理边界 GRPO 数据工程 后训练

1 论文概览

一句话总结:把 GRPO 里”八条 rollout 全错、优势恒为零”的不可解题单独挑出来,用教师模型的结构化解法切成分步提示,按”成功就降一档、失败不动”的单调棘轮逐步抽掉提示,128 道题训出来的模型在九基准平均上追平乃至超过 2000 道题的全量 GRPO。

核心问题:RLVR 的分组相对优势在整组奖励一致时恒为零。一个竞赛数学语料里约 7% 的题,Qwen3-1.7B 采样 64 次全错,这些题恰好标着模型的能力边界,却在标准 GRPO 下从头到尾不产生梯度。论文问的是:这批题能不能被”解锁”,并且只靠这批题能不能把模型训好。

主要贡献:

  • 浪费假设的量化验证。追踪 147 道不可解题在 1200 步 GRPO 训练中的 pass@8\mathrm{pass}@8,曲线在 300–400 步升到约 24% 后封顶,1200 步时超过 75% 的题仍然零成功。论文据此确认这些题是被结构性排除在学习之外的。
  • 用部分轨迹造出难度梯度。教师(DeepSeek-V3.2)为每道题生成带 <step> 标签的结构化解法,引导档位 ρ∈[0,1]\rho\in[0,1] 控制暴露前 g=round(ρ⋅nsteps(s))g=\mathrm{round}(\rho\cdot n_{\mathrm{steps}}(s)) 步。解锁曲线(Table 1)显示 pass@8\mathrm{pass}@8 从 ρ=0\rho=0 的 2.2% 升到 ρ=1\rho=1 的 85.4%。
  • Monotone Frontier Curriculum(MFC)。指出所有反向链式课程都背着一笔分布偏移成本——任何 g>0g>0 的训练访问都在与测试分布不同的输入上做。MFC 用”成功即提交、失败即遗忘”的非对称棘轮,把每题的引导上界单调往下压。
  • 数据效率与边界扩张。128 道题配课程,在 Qwen3-1.7B 与 Qwen3-0.6B 两个基座上都达到或超过 2000 道题 GRPO 的九基准平均,pass@k\mathrm{pass}@k 在 kk 直到 256 的全程都高于 GRPO。

2 方法详解

整体流程。从 OpenR1-Math-220k 的训练 split(93.7k)出发,先做四道质量过滤(丢掉参考解被 Math-Verify 判错的、多选题、题干或参考解过长的、答案含逗号的多解题),按 seed 42 随机抽 2200 题切成 OR1-2k 训练集与 OR1-200 留出集。接着用 Qwen3-1.7B 在 8192 token 上限下跑 pass@64\mathrm{pass}@64,留下 147 道 pass@64=0\mathrm{pass}@64=0 的题;让 DeepSeek-V3.2 生成结构化轨迹,丢掉教师自己也没做对的 11 道,剩 136;再按”题干 + 轨迹”的字符长度排序取最短的 128 道,得 Uns-128。留出侧同法抽出 Uns-22。

引导的注入方式。提示被塞进 user message 当作”参考”而非待续写的前缀,学生仍要从头写出完整解法:

Below are some initial reasoning steps that may help you: {guidance_steps} … You should use the provided steps as a reference, but do NOT just copy them. Instead, reconstruct the complete reasoning process in your own words, starting from the beginning.

(附录 G.2 提示模板)

这一点是与 R3R^3 的分野:R3R^3 把生成起点沿着正确示范往后挪,而这里轨迹只是辅助上下文,答案还是学生自己从头推出来的。

三类反向链式课程。

  • Mixture(R3R^3 风格):不做调度,把每题复制成 M=5M=5 个离散档位(ρ∈{0,0.25,0.5,0.75,1}\rho\in\{0,0.25,0.5,0.75,1\}),128 题扩成 640 行数据集,一次训练均匀采样。
  • AdaBack:每题维护一个整数区间 [gmin⁡,gmax⁡][g_{\min},g_{\max}],成功后把上界收到 gusedg_{\mathrm{used}} 并把下界归零,失败后抬下界——双向更新。另有一个”在靶阀门” pzero=0.1p_{\mathrm{zero}}=0.1,以固定概率强行覆盖成 ρ=0\rho=0。
  • MFC:只保留成功侧棘轮。每次访问先均匀抽 gused∼Uniform{0,1,…,gcurr(s)}g_{\mathrm{used}}\sim\mathrm{Uniform}\{0,1,\ldots,g_{\mathrm{curr}}(s)\},若该组平均奖励 rˉ≥τ=0.5\bar r\geq\tau=0.5 就把 gcurrg_{\mathrm{curr}} 压到 gusedg_{\mathrm{used}};失败则状态完全不动。gcurrg_{\mathrm{curr}} 单调不增,状态从区间塌缩成单个整数。

It restructures AdaBack’s update around an asymmetric principle: success commits, failure is forgotten.

(§3.3)

分布偏移成本的形式化。设在课程 C(t)\mathcal{C}^{(t)} 下采样 (s,ρ)(s,\rho) 的训练目标为 JC(t)J_{\mathcal{C}}^{(t)},而真正要优化的是无引导的 J0J_0。一阶泰勒展开后:

ΔJ0=η M0(t)⟨∇J0,∇Jzero⟩+η (1−M0(t))⟨∇J0,∇Jaug⟩+O(η2)\Delta J_0=\eta\,M_0^{(t)}\langle\nabla J_0,\nabla J_{\mathrm{zero}}\rangle+\eta\,(1-M_0^{(t)})\langle\nabla J_0,\nabla J_{\mathrm{aug}}\rangle+O(\eta^2)

第一项的期望等于 M0(t)∥∇J0∥2M_0^{(t)}\|\nabla J_0\|^2,符号确定;第二项只能靠 Cauchy–Schwarz 界住模长,符号自由。M0(t):=Pr⁡[g(s,ρ)=0]M_0^{(t)}:=\Pr[g(s,\rho)=0] 就是论文选的代理指标——批内零引导访问的比例。

Improving JC(t)J_{\mathcal{C}}^{(t)} does not automatically improve J0J_0: augmented visits transfer to the unguided regime through parameter sharing, but the transfer is sign-indeterminate in general.

(§3.2)

与基线的区别。GRPO 把零方差组原样留在批里(论文只借用了 DAPO 的 clip-higher 与超长惩罚,没开 dynamic sampling,所以全零组不被剔除);Mixture 用均匀铺开的档位换取免调度;AdaBack 用双向区间搜索每道题的”可学带”;MFC 砍掉失败侧更新,只留单向棘轮,换来 M0(t)M_0^{(t)} 的单调上升。四个算法共用同一套 GRPO 内核:n=8n=8、批 128 个 prompt、1200 步、lr 10−610^{-6} 常数、KL 系数 10−310^{-3}、clip 0.2/0.28、响应上限 8192。

3 实验结果

主指标(Table 2,pass@1\mathrm{pass}@1,8 次采样温度 1 取平均)。

基座方法OR1-200Uns-22MATH-500AMC23AIME24AIME25AIME26SciBenchGPQA-D平均
Qwen3-1.7BBase47.50.683.562.823.222.622.134.134.936.8
GRPO68.623.989.573.826.726.321.334.533.844.3
Mixture66.925.688.272.229.825.827.136.335.045.2
AdaBack67.229.589.172.530.029.226.334.134.145.8
MFC68.231.889.175.032.528.827.237.136.147.3
Qwen3-0.6BBase28.80.067.138.14.211.38.818.429.322.9
GRPO51.116.578.850.011.715.48.821.228.331.3
Mixture45.419.374.450.09.614.69.621.530.630.6
AdaBack49.022.775.551.310.818.812.523.031.732.8
MFC50.423.376.852.213.319.614.222.833.134.0

跨基准平均上 MFC > AdaBack > GRPO 在两个基座上同序;AIME24/25/26 三榜平均上 MFC 超 GRPO +4.7 / +3.7 个百分点;Uns-22 上 +7.9 / +6.8 个百分点。Mixture 在 1.7B 上赢 GRPO,在 0.6B 上以 30.6 输给 31.3,均匀铺档在小模型上不够。

能力边界(pass@k\mathrm{pass}@k,AIME24/25/26 共 90 题)。pass@256\mathrm{pass}@256 上 MFC 达 70.0%(1.7B)与 53.9%(0.6B),对 GRPO 都是 +10.0 个百分点;对照 Base 的 57.8% 与 GRPO 的 60.0%。大 kk 处的领先比小 kk 处更宽,MFC 在两个基座上每个 kk 都是最高。

非数学域。128 道纯数学题训下来没有拖累 SciBench 与 GPQA-D,MFC 相对 Base 有 +1.2 到 +4.4 个百分点的正向迁移。

消融与对照。

  • 解锁曲线(Table 1):ρ=0/0.25/0.5/0.75/1\rho=0/0.25/0.5/0.75/1 对应 pass@8\mathrm{pass}@8 为 2.2% / 34.0% / 53.6% / 72.3% / 85.4%(四次独立评测取平均)。ρ=0.25\rho=0.25 露一步就把成功率抬 15.5 倍。
  • 课程动力学(§5.1):1200 步时 MFC 的 M0(t)≈0.60M_0^{(t)}\approx0.60,AdaBack 约 0.40;平均实际引导档 mean_rho_used\mathrm{mean\_rho\_used} 为 0.09 对 0.20。AdaBack 的 M0(t)M_0^{(t)} 在 800 步后基本走平。
  • SFT 对照(§5.2,Table 3/6):同样 128 道题、同样教师轨迹,直接对完整轨迹做下一词预测(50 epoch,lr 10−510^{-5},step-40 检查点,约 15 分钟)只拿到 39.8,比 Base 高 +3.0,远低于 AdaBack 的 +9.0 与 MFC 的 +10.5。课程 RL 的增益不是蒸馏出来的。

4 个人分析

亮点

把”零方差组”从噪声问题重构成数据问题。DAPO 的做法是把全零组剔掉,RL-ZVP 的做法是给零方差组补一个熵引导的 token 级优势,SwS 是围绕失败概念合成新题——三者都在算法侧绕。这篇换个方向:不动 GRPO,动的是这道题在训练时呈现的形态。教师轨迹把一道题变成一族按 ρ\rho 索引的状态,零方差组自己就消失了。这一手对数据工程特别划算——教师只被调用了 147 次,一次性的 API 开销,换回的是 147 道题从”永久静默”变成”全程可学”。

SFT 对照做得干净。39.8 对 47.3 这一刀,把”课程 RL 无非是贵一点儿的蒸馏”这个最自然的质疑直接切掉了。同样的数据、同样的教师信息,换个目标函数就差 7.5 个百分点,说明增益来自”在奖励反馈下把 ρ\rho 逼到 0”这个动力学,而不是轨迹本身的知识含量。

Appendix F 罕见地诚实。作者明写无偏性条件对 Mixture 的 ρ=0\rho=0 行与 AdaBack 的 pzerop_{\mathrm{zero}} 部分成立,对 MFC 不成立。这种把自家指标边界写清楚的写法,比大多数课程学习论文强。

局限性

(一)“16 倍数据效率”的另一面是”每题重复 15.6 遍”。四算法步数与 rollout 数完全相同:1200 步 × 128 prompt × 8 rollout = 1,228,800 条 rollout,153,600 次 prompt 访问。摊到语料上,GRPO 的 2000 题每题被访问 76.8 次,Mixture 的 640 行每行 240 次,AdaBack 与 MFC 的 128 题每题 1200 次。2000/128=15.6252000/128=15.625,与论文宣传的 ∼16×\sim16\times 是同一个数字从两面读。也就是说,“16 倍数据缩减”在等 rollout 预算下等价于”每题多重复 15.6 遍”。

要分离这两个解释,缺的是一条GRPO on 128 随机题(或 128 道易题)的对照臂:同样是 128 题、同样 1200 遍重复、没有教师、没有课程。如果这条臂也追上 GRPO 2k,那么主打指标的归因就要从”不可解性 + 课程”改写成”高重复浓度的锐化”。论文没有这条臂,Table 2 里的 GRPO 行用的是 2000 题,混淆了”题数”与”不可解性”两个变量。

(二)误差棒缺席,且按题量加权后领先大幅缩水。Table 2 的每个格子都是单次训练运行,全篇没有 seed 重复;“8 次 completion 取平均”是解码侧的方差,不是训练侧的方差。

下面两步是本专栏自己的重算,不是论文数据。

第一步,把”九基准等权平均”换成按题量加权(SciBench 题量论文未给,此处只用其余 8 个已知题量的基准,合计 1050 题):

对比等权平均差按题量加权差
1.7B MFC − GRPO+3.04+0.78
1.7B AdaBack − GRPO+1.51−0.01
0.6B MFC − GRPO+2.66+0.37
0.6B AdaBack − GRPO+1.50−0.97

论文摘要里”matches or exceeds GRPO”的那一半——AdaBack——在按题量口径下两模型分别归零与转负。MFC 的领先只剩 26%(1.7B)与 14%(0.6B)。

第二步,把”题”当作独立单元估标准误。Uns-22 只有 22 道题,MFC 31.8% 的 SE 是 9.93 个百分点,GRPO 23.9% 的 SE 是 9.09,两者之差的 SE 是 13.46 ——那 +7.9 个百分点只相当于 z=0.59z=0.59。AIME24 的 +5.8 是 z=0.49z=0.49,AIME26 的 +5.9 是 z=0.53z=0.53。即便退到最乐观的口径(把每题 8 次解码当独立样本,n=176n=176),Uns-22 的 zz 也只有 1.66,仍在 95% 门外。MFC 对 GRPO 的每一条主打指标优势都落在一个标准误以内,而论文的”MFC > AdaBack > GRPO 两基座同序”这个排序结论就建在这些差值上。

Uns-22 与三份 AIME 合计 112 道题,只占评测题量的一小部分,却贡献了 MFC 领先 GRPO 总分的约八成(1.7B 为 80.7%,0.6B 为 75.4%)。

(三)M0(t)M_0^{(t)} 这个代理指标,量的是”已学会的题”而不是”测试分布的题”。附录 F 已经承认无偏性对 MFC 不成立。把它的定义再算一步:M0(t)=E[1/(gcurr(s)+1)]M_0^{(t)}=\mathbb{E}[1/(g_{\mathrm{curr}}(s)+1)]。一个 gcurr=1g_{\mathrm{curr}}=1 的样本,一半访问落在 g=0g=0,对 M0M_0 贡献 0.5,而它的前沿是在带着 1 步提示时成功才降下来的,从未证明过自己能无引导做对。于是 M0=0.60M_0=0.60 完全可以由”20% 的样本到了 gcurr=0g_{\mathrm{curr}}=0、80% 停在 gcurr=1g_{\mathrm{curr}}=1“构成:0.2×1.0+0.8×0.5=0.600.2\times1.0+0.8\times0.5=0.60。

mean_rho_used=0.09\mathrm{mean\_rho\_used}=0.09 正好印证了这读数。若典型样本停在 gcurr=1g_{\mathrm{curr}}=1,则 E[gused]=0.5\mathbb{E}[g_{\mathrm{used}}]=0.5,E[ρ]=0.5/nsteps\mathbb{E}[\rho]=0.5/n_{\mathrm{steps}},反推 nsteps≈5.6n_{\mathrm{steps}}\approx5.6——与”结构化轨迹 5–6 步”的自洽度很高。训练结束时,大部分题仍带着一步提示,MFC 的”单调下降到无引导”在 1200 步处差一步没走完。

(四)棘轮的单调爬升有一部分是机械的。τ=0.5\tau=0.5 配 n=8n=8 的提交判据是个噪声不小的二项检验:真实成功率 0.3 时仍有 19.4% 的概率凑够 4/8 而误提交,而误提交在 MFC 下不可撤销。我用论文 Table 1 的解锁曲线反推单条 rollout 成功率(q=1−(1−pass@8)1/8q=1-(1-\mathrm{pass}@8)^{1/8},ρ=0→1\rho=0\to1 对应 0.0028→0.2138),对冻结策略(qq 只由 gg 决定、不随训练变化)做 gcurrg_{\mathrm{curr}} 的马尔可夫链精确求解,结果如下(本专栏推算,非论文数据):

nstepsn_{\mathrm{steps}}M0M_0 @ step 0@300@600@12001200 步时 gcurr=0g_{\mathrm{curr}}=0 的样本占比
420.0%26.2%29.2%32.7%0.0%
614.3%19.8%22.4%25.4%0.0%
109.1%13.2%15.2%17.6%0.0%

一个完全不学习的策略,也能让 M0M_0 单调爬升 11 个百分点,而 gcurr=0g_{\mathrm{curr}}=0 的样本一个都没有。 这说明 M0M_0 的上升曲线里混着”运气好的组累积成永久提交”的成分,而论文缺一条冻结策略或固定随机种子的对照来把这部分剥掉。

(五)语料构造有两道朝”更容易”偏的筛子。147 道先过”教师自己也做对”(丢 11 道,剩 136),再过”题干+轨迹最短的 128 道”(丢 8 道)。轨迹长度与题目难度正相关,第二道筛子留下的正是 136 道里偏容易的那批。换言之 Uns-128 是”教师能解且偏短”的不可解题,不是不可解题的无偏样本。

(六)最大引导档也不是全覆盖的安全网。ρ=1\rho=1(完整教师解法摆在 prompt 里)仍有 14.6% 的题目八条 rollout 全错。落到组级别,这些访问依旧是零方差、零梯度。课程在最高档仍有约六分之一的题处于静默态。

Our work relies on a single fixed teacher model (DeepSeek-V3.2) to generate all reasoning traces, and the quality of the resulting curriculum is inevitably tied to the quality of these traces. We do not study how teacher capability interacts with curriculum design.

(Limitations)作者自陈的教师消融缺口,叠加前述两道朝”更容易”偏的筛子,让”不可解题”这个总体的代表性打了双重折扣。

(七)筛选本身的账没算进去。pass@64\mathrm{pass}@64 过滤要做 2000×64=128,0002000\times64=128{,}000 次 rollout,相当于一个完整训练运行(1,228,800 条)的 10.4%,而且每换一个基座就得重跑一次(本文靠”0.6B 严格弱于 1.7B”复用了一次)。提示前缀把单条 prompt 上限从 800 token 抬到 2500(3.1 倍),按 128 prompt × 1200 步 × 1700 增量 token 计,约 2.6 亿 prefill token,论文没有分方法报 wall-clock——B.3 只给了”单次 1200 步约 90 小时(1.7B)/ 70 小时(0.6B)“。总计约 7000 RTX PRO 6000 GPU 小时。

对大模型领域的影响

这篇把”以数据为中心的 RLVR”这条线的选点从”哪些题最有效”推进到了端点:连一条 rollout 都做不对的题,只要给个难度旋钮,照样是最有效的那批。不可解不再是需要规避的属性,而是一种可以通过提示重构来开采的资源。

它跟本专栏上一期 DataFlex-RL 的结论撞在一起看更有意思:DataFlex-RL 说在 RLVR 里挑数据的收益大多测不出来,这篇说挑到端点上收益很大。两篇的差别不在”挑不挑”,而在挑完之后有没有配一个能改变题目形态的机制——只换采样权重不够,得换题目在训练时呈现的样子。

5 实践启示

可借鉴的技术

  • 难度旋钮的通用形态。任何”给部分解 → 让学生补完”的设定都能套上 ρ\rho。代码题可以按”暴露前 kk 个函数签名或前 kk 个测试点”分级,数据清洗流水线可以按”暴露前 kk 个已完成的算子”分级。成本极低:本文只调了 147 次教师 API。
  • 成功侧单向棘轮。凡是”按样本自适应难度”的场景,MFC 的”成功即提交、失败即遗忘”比双向区间搜索更适合分布快速漂移的训练早期。它只剩 τ\tau 一个超参,工程上比带调度器的 staged curriculum 好落地。
  • 用 SFT 对照把蒸馏嫌疑切掉。任何借了教师信号的方法,都该配一条”同样数据、同样教师信息、改成下一词预测”的臂。本文这条臂只花 15 分钟,却是最有说服力的一张表。
  • M0M_0 这类”在靶训练质量”指标值得抄,但要按 E[1/(gcurr+1)]\mathbb{E}[1/(g_{\mathrm{curr}}+1)] 拆开读。它衡量的是计算分配,不是掌握程度。想量掌握程度,得另立一个”已提交到 gcurr=0g_{\mathrm{curr}}=0 的样本占比”,这两个数在本文里差得很远。

潜在应用场景

  • 小样本冷启动。手上只有几十道硬题、没有全量语料时,把提示分级 + 单调棘轮接上,是一条不依赖大规模数据标注的路线。
  • 存量失败集复活。企业内 RLVR 或 agent 后训练里,通常都堆着一批”从来没人做对过”的失败集,标准做法是直接丢掉。按本文思路,这批恰恰是配了难度旋钮之后最值钱的语料。
  • 能力边界诊断。pass@64=0\mathrm{pass}@64=0 加”教师能否解”这两个比特,可以把失败集切成四类:教师也解不出(真超纲)、教师能解但提示拉满学生仍不会(学生能力缺口)、提示拉满就会(需要课程)、不给提示就会(假失败,筛选噪声)。本文只在第二类上做了文章,另外三类各有各的用法。

给复现者的三条提醒:补一条 GRPO on 128 随机题的对照臂;每张主表至少跑三个种子;把 M0M_0 换成”已到 gcurr=0g_{\mathrm{curr}}=0 的样本占比”再报一次。这三件事做完,这篇论文的结论才算站得住。

参考文献

Zhu, Y., & Han, Z. (2026). Unlocking the Unsolvable: Teacher-Guided Curriculum for Data-Efficient RLVR. arXiv:2609.13997 [cs.CL]. Independent Researcher; Amazon.

相关精读

本专栏连续四十三期追问同一个命题——“训练信号到底该从哪儿来”。本篇的位置是:把选数据这件事推到端点,连一条 rollout 都做不对的题也要榨出梯度。