用模型的「近未来自身」做训练数据:NPO 对 RLVR 的一个简洁解法
Near-Future Policy Optimization 提出了一种新的 mixed-policy 训练范式:用同一训练 run 中更晚的 checkpoint 生成 off-policy 轨迹,同时满足「质量更高」和「分布更近」两个条件。
用模型的「近未来自身」做训练数据:NPO 对 RLVR 的一个简洁解法
RLVR(Reinforcement Learning with Verifiable Rewards)已经成了后训练的标配配方,但它有一个长期未被很好解决的问题:用什么做 off-policy 数据?
本周 ArXiv 上出现了一篇叫 Near-Future Policy Optimization(NPO) 的论文,给出了一个我觉得相当优雅的答案。
问题的结构
在 RLVR 里,把 off-policy 轨迹引入 on-policy 训练是提升收敛速度和性能上限的常见手段。但两类现有方案各有缺陷:
- 外部 teacher 模型(比如用更大的模型生成轨迹):质量高,但分布偏差大,当前模型难以有效吸收
- 重放历史轨迹(replay buffer):分布接近,但质量被当前训练进度封顶,无法带来新知识
论文把这个矛盾用一个公式表达:有效学习信号 ,其中 是轨迹质量(越高越好), 是分布方差(越低越好)。现有方法要么 高但 大,要么 小但 低。
NPO 的方案:用「未来的自己」
NPO 的核心思路非常直觉:从同一训练 run 的稍晚 checkpoint 里采样轨迹。
为什么这个有效?
- 同一 run 的晚期 checkpoint 天然比当前模型更强( 更高)
- 同时,它和当前模型的分布差异远小于任何外部 teacher( 更低)
- 因此 同时被优化
论文在 Qwen3-VL-8B-Instruct + GRPO 上的结果:
- Base GRPO:57.88(平均多任务性能)
- NPO:62.84(+4.96)
- AutoNPO:63.15(+5.27)
AutoNPO 是 NPO 的自适应版本,不需要手动决定什么时候触发 near-future checkpoint 采样,而是从训练信号里自动检测”当前模型是否陷入平台期”,并选择 最大化的 guide checkpoint。
两个人工干预实验
论文先用两个手动触发的场景验证思路:
- Early-stage bootstrapping:训练初期模型很弱,用几个 epoch 后的 checkpoint 提供更好的初始轨迹,加速起步
- 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