从2万篇文档自出题,SPICE让4B模型推理涨9.1点

SPICE: Self-Play In Corpus Environments Improves Reasoning

Bo Liu, Chuanyang Jin, Seungone Kim, Weizhe Yuan, Wenting Zhao, Ilia Kulikov, Xian Li, Sainbayar Sukhbaatar, Jack Lanchantin, Jason Weston

cs.CL

2025-10-29

Meta FAIR的SPICE让同一模型一边从文档出题一边答题,Qwen3-4B-Base综合推理平均从35.8%升到44.9%,数学平均加8.9点,超过无语料自博弈R-Zero。

这篇在解决什么

自博弈想让模型自己出题、自己做、自己变强。关掉外部世界之后,这条路很容易走死。出题方和答题方共享同一份内部知识,题目会越出越窄;幻觉还会在问答两边同时放大。R-Zero 这类无外部锚点的方法,迭代三四轮后伪标签准确率会从约 79% 掉到 63%。Absolute Zero 用代码执行当验证器,领域又被锁在能跑通的程序上。

SPICE 把网页文档当成外部环境。出题必须从文档里抠出可核对的答案,答题方看不到文档。信息差来自语料,不来自模型自己编。

方法

一个共享权重的模型切两个角色。

Challenger 看到文档,生成一道题和从文档抽出的金标答案。题型两种:四选一,或自由作答(整数、表达式、字符串)。文档大约 2 万篇:数学走 Nemotron-CC-Math,综合推理走 NaturalReasoning(DCLM 子集),每篇截到最多 5992 token。无效题罚 -0.1。

Reasoner 只看到题,逐步推理,答案放进 boxed。对错用 Math-Verify 做规则核对。

Challenger 的奖励不是「越难越好」。对同一题采 8 个 Reasoner 回答,看对错的方差。方差等于 0.25(大约一半做对)时奖励打满 1.0,太易或太难都指数衰减。这是在能力边界上出题,不是在为难模型。

两边用 DrGRPO 更新,优势按角色分别减均值、不做标准差归一化。训练 640 步,batch 128,温度 1.0。实现基于 Oat 的 actor-learner,推理用 vLLM。

结果

四套基座上都超过对照:

模型BaseR-ZeroAbsolute ZeroStrong ChallengerSPICE
Qwen3-4B-Base35.839.540.743.044.9
Qwen3-8B-Base43.046.346.545.648.7
OctoThinker-3B14.720.321.721.025.2
OctoThinker-8B20.529.929.428.232.4

数学平均大约 +8.9,综合推理大约 +9.8。Strong Challenger 用固定的 Qwen3-32B-Instruct 出题、只训 Reasoner,仍然低于双边一起训。Qwen3-4B 上 AIME25 从 6.7 到 19.1,MATH-500 从 68.2 到 78.0,GSM8K 从 72.6 到 92.7。

把后期 Challenger 对上 step-200 的 Reasoner,通过率从 55% 降到 35%;反过来,后期 Reasoner 对上早期 Challenger,通过率从 55% 升到 85%。两边在互相加码。

消融都在 Qwen3-4B-Base 上:只喂 NaturalReasoning 总分 41.7,只喂数学语料 43.2,两份合在一起 44.9。只出选择题 42.0,只出自由作答 43.7,混着出 44.9。Challenger 奖励换成 Absolute Zero 式「失败越多越好」掉到 40.7,方差奖励仍是 44.9。去掉文档 grounding 大约 40.7,有文档大约 43.9。

为什么重要

这是把「环境」从游戏规则换成网页文档。不需要人类写题,也不需要 Python 解释器当唯一裁判。对已经在做 RLVR 的团队,可复用点很具体:出题奖励对准 50% 通过率,答案必须能从外部文本核出来,出题和答题的优势分开算。

它还是渐进改进。语料质量决定天花板,2 万篇谈不上近乎无穷。

局限与存疑

论文没有单独开 Limitations 节。能看出来的缺口:文档只有两个来源,Challenger 仍可能把文档里的错写成金标;自由作答的字符串匹配会漏掉语义等价。评测用 GPT-4o 做等价判断,AIME 用 32 次采样,和 greedy 的其他集不完全可比。OctoThinker 涨幅最大,也可能是基座更吃这种中期训练信号,不保证换家族还能加十个点。和 SPIRAL 是同一拨人的前后作,这篇把环境从零和游戏换成了语料,但没做两套方法的直接对打。

术语

原文与代码

社区讨论

相关论文

全部论文解读