用模型的「近未来自身」做训练数据:NPO 对 RLVR 的一个简洁解法

Near-Future Policy Optimization 提出了一种新的 mixed-policy 训练范式:用同一训练 run 中更晚的 checkpoint 生成 off-policy 轨迹,同时满足「质量更高」和「分布更近」两个条件。

论文速读 RLVR Reinforcement Learning Post-training NPO GRPO

用模型的「近未来自身」做训练数据:NPO 对 RLVR 的一个简洁解法

RLVR(Reinforcement Learning with Verifiable Rewards)已经成了后训练的标配配方,但它有一个长期未被很好解决的问题:用什么做 off-policy 数据?

本周 ArXiv 上出现了一篇叫 Near-Future Policy Optimization(NPO) 的论文,给出了一个我觉得相当优雅的答案。


问题的结构

在 RLVR 里,把 off-policy 轨迹引入 on-policy 训练是提升收敛速度和性能上限的常见手段。但两类现有方案各有缺陷:

  • 外部 teacher 模型(比如用更大的模型生成轨迹):质量高,但分布偏差大,当前模型难以有效吸收
  • 重放历史轨迹(replay buffer):分布接近,但质量被当前训练进度封顶,无法带来新知识

论文把这个矛盾用一个公式表达:有效学习信号 S=Q/V\mathcal{S} = Q/V,其中 QQ 是轨迹质量(越高越好),VV 是分布方差(越低越好)。现有方法要么 QQ 高但 VV 大,要么 VV 小但 QQ 低。


NPO 的方案:用「未来的自己」

NPO 的核心思路非常直觉:从同一训练 run 的稍晚 checkpoint 里采样轨迹。

为什么这个有效?

  • 同一 run 的晚期 checkpoint 天然比当前模型更强(QQ 更高)
  • 同时,它和当前模型的分布差异远小于任何外部 teacher(VV 更低)
  • 因此 S=Q/V\mathcal{S} = Q/V 同时被优化

论文在 Qwen3-VL-8B-Instruct + GRPO 上的结果:

  • Base GRPO:57.88(平均多任务性能)
  • NPO:62.84(+4.96)
  • AutoNPO:63.15(+5.27)

AutoNPO 是 NPO 的自适应版本,不需要手动决定什么时候触发 near-future checkpoint 采样,而是从训练信号里自动检测”当前模型是否陷入平台期”,并选择 S\mathcal{S} 最大化的 guide checkpoint。


两个人工干预实验

论文先用两个手动触发的场景验证思路:

  1. Early-stage bootstrapping:训练初期模型很弱,用几个 epoch 后的 checkpoint 提供更好的初始轨迹,加速起步
  2. Late-stage plateau breakthrough:训练后期性能停滞,引入更晚的 checkpoint 打破平台

两个场景都验证了 near-future checkpoint 作为轨迹来源的有效性,这也是 AutoNPO 的理论基础。


为什么值得关注

RLVR 训练中的”数据从哪来”问题,通常被当作一个工程资源问题(有没有更好的 teacher,有没有足够的 replay buffer)。NPO 把它变成了一个训练 run 内部的自举问题——不需要额外的模型,不需要人工标注,只需要利用训练过程本身的时序结构。

这个思路让我联想到 Self-Play 和 Self-Distillation 的逻辑:模型在时间维度上和自己的未来版本交互,从而获得超越当前边界的训练信号。

当然,实现上有一些实际问题要解:

  • 要维护多个 checkpoint,有额外存储和采样成本
  • “近未来”的定义(多少步之后算 near-future)需要调参
  • AutoNPO 的自动触发机制在更大模型上的稳定性还需要更多验证

不过作为一个”用已有资源做得更好”的方案,NPO 的思路是干净的,工程上的方向也是对的。后训练越来越贵,任何能从现有训练 run 里榨出更多信号的方法都值得认真对待。

论文地址:arXiv:2604.20733 — Near-Future Policy Optimization