Nudging the Boundaries of LLM Reasoning¶
会议: ICLR 2026
arXiv: 2509.25666
代码: GitHub
领域: LLM推理
关键词: 强化学习推理, GRPO改进, 自生成Hint, 能力上界突破, 近侧发展区
一句话总结¶
指出GRPO无法从模型完全无法解决的难题(pass rate=0%)中学习的根本局限,提出NuRL方法在训练时对难题注入自生成的抽象hint(不泄露答案)使其变为可学习样本,跨3个模型6个benchmark一致超越GRPO并真正提升pass@k能力上界。
研究背景与动机¶
- 核心限制: 在线RL(GRPO)对完全无法解出的难题(所有rollout都错)产生零梯度,模型无法从中学习
- 分布锐化假说: 越来越多证据表明RL后训练主要做"分布锐化"——提高已知解法概率,而非发现新推理能力
- pass@k不变: 大k下的pass@k在RL训练后往往不变,说明能力上界未被突破
- Zone of Proximal Development: 类比Vygotsky的近侧发展区——难题在"学习区"但无指导就无法进入
- 难题的价值: 这些"不可解"问题蕴含丰富学习信号——暴露模型的弱点
- 自给自足需求: 需要无需外部强模型即可突破能力边界的方法
方法详解¶
整体框架¶
NuRL 在 GRPO 之上加一层"难题救援"机制:先离线为每道题用模型自己生成一条抽象 hint,训练时只要某道题的所有 rollout 全部失败(pass rate=0%)就把 hint 拼到题面上重新采样,让原本零梯度的难题重新产生可学习的对错差异。整条流程串成两阶段——Stage 1 用标准 GRPO 把简单题吃干净,Stage 2 才切到 NuRL 在能力边界处注入 hint。推理阶段完全不用 hint,它只在训练时充当临时脚手架。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
Q["训练题 q + 标准答案 a"] --> H["离线Hint收集<br/>解释链 y → 抽象hint h<br/>(不泄答案·不列步骤)"]
H --> S1["Stage 1:标准GRPO训到收敛<br/>再过滤掉全对的简单题"]
S1 --> S2["Stage 2:NuRL<br/>每题先采 G 个无hint rollout"]
S2 --> P{"pass rate = 0%?"}
P -->|"否·部分答对"| U["GRPO 策略更新"]
P -->|"是·全部失败"| AUG["全失败触发增强:注入h<br/>G-1个带hint + 1个无hint<br/>难题重获组内advantage"]
AUG --> U
U --> OUT["输出策略<br/>推理阶段不用hint"]
关键设计¶
1. 离线 Hint 收集:把"为什么对"蒸馏成不泄题的线索
难题之所以零梯度,是因为模型对它一无所获;但每道题其实带着标准答案 \(a\),问题只是模型不知道怎么用。NuRL 分两步榨取这份信息:先让旧策略在已知答案条件下生成一段"为什么这个答案正确"的解释链 \(y = \pi_{old}(q, a; p_y)\),再让模型把这段解释提炼成一条高层 hint \(h = \pi_\theta(q, a, y; p_h)\)。关键约束是 hint 必须停留在抽象的知识线索层面(该用哪个定理、往哪个方向想),既不能包含最终答案也不能列出具体解题步骤——这样 hint 提供的是方向而非答案,模型仍需自己走完推理,从而保留真正的学习信号。整个过程只调用模型自身,无需任何外部强模型。
2. 全失败触发的在线 Rollout 增强:只在真正卡死时注入脚手架
GRPO 对每道题先采样 \(\mathcal{G}\) 个无 hint 的 rollout,NuRL 只对其中 pass rate=0%(全部答错)的题动手——这个二值触发器保证 hint 只用在模型确实无法独立解出的难题上,不污染已会做的题。触发后把 hint 拼到题面末尾重新采样,但刻意只让 \(\mathcal{G}-1\) 个 rollout 看到 hint、留 1 个仍是无 hint 的原始题。这一个"裸题"rollout 是为了避免 hint 太强导致全部答对、组内 advantage 又退化成零方差(\(r_i\) 全为 1 时 \(\hat{A}_{i,t}=0\),梯度照样消失);混入一条大概率失败的轨迹,就能让带 hint 的成功样本获得正的相对优势,难题重新变得可学。
3. Hint 抽象度的反直觉规律:给得越少,学得越好
设计 1 之所以死守"只给方向、不泄答案",是因为 NuRL 实测了四档 hint 信息量——抽象线索、部分步骤、完整解释、直接给答案——结论是抽象线索最佳、直接答案最差。原因是给答案或步骤会让模型走捷径照抄(reward hacking),它学到的是"复述 hint"而非"自己推理";只给抽象方向则强迫模型补全中间推理,内化的才是可迁移的解题模式。这条规律与人类学习中"提示而非代劳"的直觉一致,也是 hint 必须刻意约束抽象度的根本原因。
训练策略¶
两阶段串联:Stage 1 先跑标准 GRPO,训练到训练奖励和验证准确率连续 10 步不再提升即视为收敛,把模型本就会做的简单题吃干净;进入 Stage 2 前先用 Stage 1 的 checkpoint 采 8 个 rollout、过滤掉全部答对的简单题,再切到 NuRL 继续训练。这样 hint 注入只发生在真正的能力边界处,算力集中在剩下的难题上,避免在简单题上做无用功。
实验关键数据¶
主实验¶
| 模型 | 方法 | MATH500 | MATH Hard | AIME | GPQA | Date | 平均 |
|---|---|---|---|---|---|---|---|
| Llama-3B | GRPO | 56.92 | 30.11 | 8.33 | 27.98 | 57.10 | 35.87 |
| Llama-3B | NuRL(Self) | 58.04 | 31.62 | 9.17 | 28.28 | 61.65 | 37.49 |
| OctoThinker-3B | GRPO | 68.81 | 41.29 | 8.33 | 23.26 | 69.85 | 42.63 |
| OctoThinker-3B | NuRL(Self) | 70.13 | 42.07 | 9.66 | 27.15 | 71.75 | 44.38 |
消融实验¶
| 配置 | MATH500 | GPQA | 说明 |
|---|---|---|---|
| Hint从头训练 + 无触发器 | 53.41 | 24.84 | 最差 |
| Hint从头训练 + 仅全失败触发 | 56.06 | 27.63 | 触发器有帮助 |
| 两阶段 + 无触发器 | 53.09 | 26.62 | 两阶段也有帮助 |
| 两阶段 + 仅全失败触发(NuRL) | 58.04 | 28.28 | 最佳 |
关键发现¶
- NuRL提升pass@1024: GPQA从63.6%→69.7%,Date从86.4%→94.0%,而GRPO保持不变——能力上界被突破
- 教师hint(GPT-o4-mini)进一步提升至+3.44%,自生成hint即可有效
- NuRL+Self-Consistency提升9.4% vs GRPO+SC仅7.8%——互补性更强
- 可学习问题比例随训练从66%上升至70%,而标准GRPO维持在66%
亮点与洞察¶
- 清晰且深刻地揭示GRPO无法学习不可解问题的根本限制
- Vygotsky近侧发展区类比准确贴切,动机极具启发性
- "越抽象的hint越好"反直觉但有力——直接给答案反而最差(reward hacking)
- 自生成hint无需外部模型,避免分布偏移,自给自足
- 两阶段策略(先GRPO收敛再NuRL)简洁实用
局限与展望¶
- 改进幅度相对温和(+1-2%平均),在强模型(Qwen3-4B)上提升有限(+0.79%)
- 自生成hint质量受限于模型本身能力——极难问题可能生成不了有用hint
- 二值判断(全失败/部分成功)决定是否注入hint,缺乏更细粒度策略
- 离线hint收集需要gold answer,限制无答案场景适用性
- 未探索hint的质量评估和动态更新机制
相关工作与启发¶
- vs GRPO/DAPO/Dr.GRPO: 它们改进advantage估计/KL/采样,NuRL正交地解决"不可解样本"问题
- vs STaR: STaR用answer-conditioned reasoning,NuRL进一步抽象为不泄露答案的hint
- vs TBA: TBA用多搜索节点生成多样轨迹,NuRL用hint降低问题难度
评分¶
- 新颖性: ⭐⭐⭐⭐ GRPO上界限制的insight + 自生成hint方案
- 实验充分度: ⭐⭐⭐⭐ 3模型6benchmark + 多hint类型 + pass@k分析
- 写作质量: ⭐⭐⭐⭐⭐ ZPD类比优美,动机→方法→实验逻辑流畅
- 价值: ⭐⭐⭐⭐ 解决RL推理训练的实际瓶颈,方法简洁可落地