NGU:把强化学习算力留给难题,为什么还要锚定正样本?

一道题连续答错四次,我们应该换题,还是继续尝试?另一道题已经连续答对四次,又是否值得再生成二十八个答案,只为找出一次偶然失误?

Never Give Up(NGU)关注的正是这两种采样选择如何分配训练算力。 它用少量样本快速筛过简单题,对尚未解决的题追加尝试;找到正确答案后,还会保留此前失败次数的信息,让这次难得的成功得到适当的训练权重。

本文解读 Michael Noukhovitch、Hamish Ivison、Nathan Lambert 和 Aaron Courville 的论文 Learning to Solve Hard Problems in RL for LLMs by Never Giving Up,依据 2026-09-11 发布的 v1。下文概率计算与玩具示例是教学推演,实验数字则注明原文出处。

1. 总分上涨,为什么难题可能仍然不会?

论文将 RL 后训练中“初始越擅长的问题,往往进步越明显”的现象称为 Matthew Effect(马太效应)。平均分上升,可能主要来自简单题变得更稳定,而不是困难题真正被突破。论文 §2

理解这件事,先看文中使用的组相对优势。在同一道题上采样 \(K\) 个答案,答对记 1,答错记 0:

\[ \bar r=\frac1K\sum_{j=1}^{K}r_j, \qquad A_i=r_i-\bar r. \]

这里沿用论文不除以组内标准差的写法,不能直接把优势数值套到所有 GRPO 实现中。

一组答案 平均奖励 优势 奖励提供的组内区分信号
错、错、错、错 0 全为 0 没有
对、对、对、对 1 全为 0 没有
错、错、错、对 1/4 三个 −1/4,一个 3/4 有

“没有信号”指这里的任务奖励优势为零,不意味着带其他正则项的整个训练系统一定没有梯度。论文会过滤全对、全错的组,再补充其他题目来构成有效训练批次。论文 §3

于是很容易想到:难题全错,是不是把 \(K\) 增大就行了?

2. 大 K 同时捞出两种稀有事件

假设模型暂时固定,每次独立采样,某题的单次正确率为 \(q\)。那么:

\[ P(\text{至少一次正确})=1-(1-q)^K, \]

\[ P(\text{至少一次错误})=1-q^K. \]

下面是教学用概率计算,不是论文实验数据:

题目与事件 K = 4 K = 32
难题,q = 5%,至少采到一个正确答案 18.5% 80.6%
简单题,q = 95%,至少采到一个错误答案 18.5% 80.6%

严格说,进入有效训练组需要“有对有错”,其概率为:

\[ P(\text{混合组})=1-q^K-(1-q)^K. \]

在表中的参数下,它与相应事件概率几乎相同。

大 \(K\) 提高了发现难题正确答案的机会,也让已经基本掌握的简单题更难被过滤。纠正这些偶发错误当然有价值,但在固定预算下,它会与困难题的探索竞争资源。作者据此强调 signal efficiency(训练信号效率):除了是否找到非零优势,还要看算力花在了哪些问题上。作者博客:What causes the Matthew Effect?

需要避免一个推论:上面的概率本身并不能证明“大 K 一定更差”。改变 \(K\) 还会改变单位预算能覆盖的题目数量、批次组成和等待时间,必须比较完整训练过程。

3. NGU 怎样决定何时继续?

对第一次访问一道题的情况,可以把规则理解为:

首轮少量采样的结果 处理
全对 本轮过滤,尽快处理其他题
有对有错 形成训练组
全错 以概率 p 重新入队,再采一小组;否则结束本轮尝试

重试时,NGU 累积这道题此前的结果,而不是把每一小组都看成独立问题。旧失败记录和新成功答案共同决定训练信号。这个过程发生在训练期,验证器用于检查训练答案,并不是部署时无限生成直到“知道自己答对”。作者博客:Never Give Up on hard problems

用 \(K=4\) 举例:

1
2
3
4
5
6
7
简单题:对 对 对 对
→ 本轮结束;以后仍可再次抽到这道题

困难题:错 错 错 错
→ 抽中继续采样
→ 错 错 错 对
→ 累积得到 1 对、7 错,准备训练

如果第二轮四个答案全对,累计组里仍有第一轮的四个错误,不能把它误当成“全对组”直接丢弃。实现时必须区分当前小组和累计组,并考虑哪些历史样本仍可训练。

这也解释了为什么 NGU 需要异步调度:某道难题可以重新排队,其他已完成的题继续补入训练。节省下来的生成能力才能真正用于更多尝试。

“Never Give Up”仍然会放弃

若一道题一直没有成功,每轮失败后以概率 \(p<1\) 继续,则轮数服从几何分布,期望采样量为:

\[ \mathbb E[C\mid\text{始终失败}]=\frac{K}{1-p}. \]

例如 \(K=4,p=0.95\) 时为 80 个答案。它不是所有题目的实际平均开销,也不是硬性上限;成功会提前结束,而少数题的尝试次数仍可能远高于期望。

进一步,在固定正确率 \(q\)、独立采样的简化模型中,只有“一小组全错且决定继续”才进入下一轮,因此:

\[ \mathbb E[C]=\frac{K}{1-p(1-q)^K}. \]

这条教学推导直观展示了动态分配:\(q\) 越大,越接近只用 \(K\) 个答案;\(q\) 越小,越接近 \(K/(1-p)\)。真实异步训练中策略会变化,不能直接用它预测实际开销。

4. 保留失败历史,为什么会放大稀有成功的优势?

回到两轮采样得到的 1 对、7 错。

只看最后一轮,会认为正确率是 \(1/4\),正样本优势为:

\[ A_+^{\text{last}}=1-\frac14=\frac34. \]

把此前失败一起计入,正确率为 \(1/8\),正样本优势为:

\[ A_+^{\text{history}}=1-\frac18=\frac78. \]

第二个数值表达了更多信息:这是八次尝试中才出现一次的成功。保留失败历史,使这次成功的优势不会因为只看最后一小组而被低估。

但历史轨迹来自更旧的策略。在异步训练中,等待越久,越可能变成过旧的 off-policy 样本。NGU 因此区分两件事:轨迹是否继续进入训练损失,以及它的奖励和次数是否继续参与基线统计。 原文的过旧样本消融和正样本锚定见 §4、图 6。

5. 锚定正样本:删除旧负样本后,怎样恢复零和?

继续使用同一个教学例子。完整的八个样本优势为:

\[ \left[\frac78,-\frac18,-\frac18,-\frac18,-\frac18,-\frac18,-\frac18,-\frac18\right]. \]

现在删掉四个过旧负样本,但基线仍使用全部八次尝试的统计。剩余优势之和变成:

\[ \frac78+3\left(-\frac18\right)=\frac12. \]

如果重新用剩余四个样本计算基线,就会回到 \(3/4\) 的正优势,遗忘部分失败历史。Anchoring the positives(锚定正样本)固定正优势,再重缩放剩余负优势。

设 \(n_+\) 是参与更新的正样本数,\(n_->0\) 是保留下来的负样本数,\(\bar r\) 来自累计采样统计。令:

\[ A_+=1-\bar r, \qquad A_-=-\frac{n_+}{n_-}(1-\bar r). \]

则:

\[ \sum_i A_i =n_+(1-\bar r) -n_-\frac{n_+}{n_-}(1-\bar r) =0. \]

在本例中,每个负样本变为 \(-7/24\):

\[ \frac78+3\left(-\frac7{24}\right)=0. \]

处理方式 正优势 每个剩余负优势 优势总和
保留历史基线,不重缩放 7/8 −1/8 1/2
只用剩余样本重新计算基线 3/4 −1/4 0
保留历史基线,锚定正样本 7/8 −7/24 0

注意,论文 v1 的 HTML 正文在该处给出的负优势表达式没有显示前导负号。上面写的是带符号的优势;若写成正数,只能解释为其绝对值,否则不满足原文声称的零和性质。该公式还要求至少保留一个负样本,不能在 \(n_-=0\) 时直接使用。

6. 零和为什么有用,又为什么不是通用定律?

这里的零和恢复了奖励相对组内基线的中心化,避免单纯删除负样本就让平均优势变正。但策略梯度并不要求每个有限采样批次的优势和都为零。

在固定状态、精确同策略期望、未裁剪的策略梯度下,与动作无关的基线满足:

\[ \mathbb E_{a\sim\pi_\theta} [b(s)\nabla_\theta\log\pi_\theta(a\mid s)]=0. \]

因此,非零平均优势并不自动意味着期望梯度错误。实际训练包含有限采样、筛选、旧策略数据和裁剪,基线及重缩放会影响估计与优化动态;NGU 的选择需要结合其消融实验理解。

另外:

\[ \sum_i A_i=0 \quad\not\Rightarrow\quad \sum_i A_i\nabla_\theta\log\pi_\theta(y_i\mid x)=0. \]

不同回答对应不同梯度向量,正负系数仍可以推动策略学习。这里说的零和是回答级优势之和,不能直接推广为经过 token 长度加权、重要性比和裁剪之后的“有效梯度平衡”。

7. 实验支持什么?

在 Deepscaler 上,作者训练 Qwen3-4B-base,控制每个设置约 120 H100 小时,并运行三个随机种子。以下摘录原文附录 C.3、表 2;数值为 pass@1 百分数,Average 沿用原表的汇总方式,不能直接当作两列的简单平均。

方法 AIME 2025 BRUMO 2025 Average
GRPO,K = 32 21.4 ± 1.3 29.2 ± 0.7 25.3 ± 0.5
GRPO,K = 16 20.0 ± 1.5 29.6 ± 1.4 24.8 ± 1.0
K = 16 + NGU,p = 0.875 21.8 ± 0.2 31.2 ± 1.3 26.5 ± 0.6

NGU 相比表中较强的 \(K=32\) 基线,汇总指标提高 1.2 个百分点;相比同为 \(K=16\) 的基线提高 1.7 个百分点。这些是具体设置下的均值差,不代表所有任务都会有同样收益。论文附录 C.3,表 2

作者还在 Manufactoria 编程任务中观察到,NGU 帮助模型突破较难测试,并开始完整通过题目的全部测试。这里使用的是部分测试通过奖励,不能机械套用前文二元奖励下的“直到第一次答对”描述。论文 §6

论文图 5 使用“接近帕累托最优”描述 NGU 兼顾不同采样设置的表现。帕累托最优意味着在给定候选集合与目标下,不能不牺牲任何目标就继续改善另一个目标;这里是对实验权衡的描述,并不是证明 NGU 在所有算法中全局最优。

8. 哪些场景可能不适合?

作者在附录 B 指出:NGU 依赖题库中有足够的简单题可被快速过滤。如果绝大多数题都很难,分轮尝试可能比一开始就生成较大批次等待更久,增加数据陈旧程度。作者也不建议把 \(K\) 降到 1,再完全依赖继续概率控制采样。论文附录 B

从方法出发,我还会检查三个问题:

  • 验证器是否可靠。 若高奖励容易被投机获得,追加探索也可能放大这种投机行为。
  • 历史统计是否过时。 旧失败次数能表达成功的稀有性,也可能低估已经进步的当前策略;保留窗口与衰减统计值得对照。
  • 评测是否能区分发现与稳定掌握。 有限次采样从未成功,并不证明真实成功概率严格为零。应同时看 pass@1、多次采样成功率及实际计算开销。

这些是需要验证的边界和实验方向,不是论文已经证明的失败模式。

9. 对 GRPO 与 OPD 融合的一个启发

以下是基于 NGU 的个人分析,不属于原论文结论。

对于 SAF-OPD 一类融合方法:

\[ A_{i,t}^{\mathrm{total}}=g_i+\lambda d_{i,t}, \]

\(g_i\) 是验证器提供的回答级 GRPO 优势,\(d_{i,t}\) 是教师提供的 token 级信号。值得借鉴的是:保护可靠的验证器信号,并把“哪些样本进入更新”与“哪些统计参与校准”分开考虑。

不能直接要求融合信号零和。原始 OPD 在固定上下文、当前学生策略采样下满足:

\[ \mathbb E[d(s,a)] =-D_{\mathrm{KL}}(\pi_\theta(\cdot\mid s)\Vert\pi_T(\cdot\mid s)), \]

它的非零均值有不同来源。若对融合优势逐回答减均值,还会把该回答共享的 \(g_i\) 完全消掉。

一个更有针对性的待验证方向是:当正确回答的正 GRPO 信号被负 OPD 过度抵消时,只衰减冲突部分,同时保留教师对局部 token 的纠正。需要用“整体降低 OPD 系数”作为对照,确认收益不是简单来自蒸馏变弱。

参考资料

本文为中文解读,补充了教学计算、公式符号说明及独立分析,并非原文翻译。原论文由 Michael Noukhovitch 等人以 CC BY-NC-SA 4.0 发布;本文对该论文的改编内容遵循相同许可。


NGU:把强化学习算力留给难题,为什么还要锚定正样本?
https://kissshhot.github.io/2026/09/17/ngu-never-give-up-hard-problems/
作者
丁一帆
发布于
2026年9月17日
许可协议

点赞与评论

喜欢这篇文章?点个赞,或留下你的想法。登录 GitHub 后即可参与。

如果评论无法加载,请检查网络连接后刷新页面。