论文
自博弈训练
R-Zero: Self-Evolving Reasoning LLM from Zero Data
R-Zero:零数据自进化的推理模型
Chengsong Huang, Wenhao Yu, Xiaoyang Wang, et al. (Tencent AI Lab / WashU) · Tencent AI Lab / WashU · arXiv · 2025-08 · 被引 179
一句话 同一个 base model 分化出 Challenger 和 Solver 两个角色互相对抗、共同进化,全程不用任何外部题目和标签;Qwen3-4B-Base 数学平均 +6.49、通用推理 +7.54,但作者自己的实验显示伪标签准确率从 79% 一路掉到 47%,3-5 轮后性能开始回落。
这是什么 R-Zero(腾讯 AI Lab 与 WashU,2025-08,arXiv 2508.05004,已被 ICLR 2026 接收)想回答的问题是:能不能不给任何人类题目和标签,让模型完全靠自己生成课程来提升推理能力。此前的 self-play / self-improvement 工作(如 SPIN、Self-Rewarding)大多仍依赖现成的 prompt 集或人类偏好数据,R-Zero 把这一步也去掉了——起点只有一个 base model。
做法是把同一个底模复制成两份:Challenger 负责出题,奖励是让 Solver 的答案最大程度不确定(正确率接近 50%);Solver 负责解题,伪标签由它自己对每道题采样多次做 majority voting 得到。两者交替用 GRPO 训练,形成自动课程。实验在 Qwen3-0.6B/1.7B/4B/8B-Base 和 OctoThinker-3B/8B 上做,只在数学域出题,但泛化到 MMLU-Pro、SuperGPQA、BBEH 等通用推理基准也有提升。
这篇的特别之处在于诚实:论文正文就报告了迭代 scaling 的失败模式——伪标签质量随题目变难而崩掉,所有规模的模型最终都会性能回落,模型越大回落越晚。这对研究'自提升到底能走多远'比那些只报涨点的工作更有参考价值。
框架总览:上半部分训 Challenger(Solver 冻结)——Challenger 生成题目,Solver 对每题采样 m 个答案做 majority voting,答案分歧度转成 uncertainty reward 经 GRPO 更新 Challenger;下半部分训 Solver(Challenger 冻结)——在难度过滤后的题目上,以自投票伪标签为监督用 GRPO 更新 Solver。两阶段交替构成一个 iteration。 机制与做法 Challenger:把题出在 Solver 能力边界上
Challenger 用 GRPO 训练,核心是 uncertainty reward:对每道生成的题,让当前(冻结的)Solver 采样 m 个答案,众数当伪标签,算出经验正确率 p̂,奖励为 1 − 2|p̂ − 1/2|——Solver 正确率越接近 50% 奖励越高,即专出'半会不会'的题。附录给了理论动机:50% 正确率的题在 GRPO 下 advantage 方差最大,学习信号最强。
另外两个信号:repetition penalty 用 BLEU 相似度对 batch 内的题聚类,簇越大罚得越重,防止 Challenger 刷同一类题;format check 不通过直接 reward=0。最终奖励是 max(0, uncertainty − repetition)。
迭代 scaling 曲线(数学平均分):三个规模的 Qwen3 base 都是先涨后落,星标为峰值——0.6B 在 Step 15(第 1 轮)即见顶,1.7B 在 Step 30,4B 撑到 Step 45 后骤降到 46.52。规模只能推迟崩溃,不能避免;根因是伪标签准确率随题目变难从 79% 掉到 47%。 Solver:自己投票给自己当老师
Challenger 更新后冻结,采样一大批候选题;每题让当前 Solver 答 m 次,majority vote 作为伪标签,只保留经验正确率落在 1/2 ± δ 区间的题——太简单没信息量,太难则伪标签基本不可信(投票一致性低往往意味着题本身有歧义或病态)。这个 filter 同时起到难度课程和隐式质检双重作用,ablation 里去掉它通用域平均掉 6 分以上(31.15 → 26.69)。
Solver 在过滤后的 (题, 伪标签) 上用 GRPO 训练,二值奖励(匹配伪标签得 1)。一轮 Challenger + 一轮 Solver 为一个 iteration,主实验跑 3 轮。
上限在哪:伪标签的自我污染
论文用 GPT-4o 当 oracle 核查了每轮生成数据的真实标签准确率:第 1/2/3 轮分别是 79%、69%、63%,扩展实验到第 5 轮掉到 47%——接近随机。题越出越难(固定的 Solver 在第 3 轮题集上正确率从 59% 掉到 47%),但 majority vote 在难题上越来越不可靠,Solver 开始从噪声里学习,数学成绩在第 3-4 轮之后回落。
Iteration scaling 实验显示这是普遍规律:0.6B 第 1 轮就见顶,4B 撑到第 3 轮后骤降,规模只能推迟崩溃而不能避免。作者后续的 R-Few(2512.02472)就是用少量人类数据来续命这个循环。另一个实用发现:R-Zero 当 mid-training 用,之后再上人类标注数据做 RL,比直接用人类数据多 +2.35 分,先 R-Zero 后 SFT 优于混着训。
关键结果 Qwen3-4B-Base:overall 平均 27.10 → 34.92(iter 2),数学平均 42.58 → 49.07(iter 3,+6.49);Qwen3-8B-Base overall 34.49 → 38.73。 只在数学域出题训练,通用推理基准也涨:Qwen3-4B 的 MMLU-Pro 37.38 → 53.75,SuperGPQA 20.88 → 27.92。 值得注意的 baseline 拆解:未经 RL 训练的'Base Challenger'出题就能把 4B 从 27.10 提到 30.83——总增益里约一半来自'用自己出的题做 RL'本身,Challenger 的对抗训练贡献剩下一半。 伪标签真实准确率(GPT-4o 核查):iter 1/2/3/4/5 = 79% / 69% / 63% / 54% / 47%,数学成绩第 3 轮见顶后回落;模型越大崩溃越晚(0.6B 第 1 轮即见顶)。 Ablation(Qwen3-4B):去掉 repetition penalty 数学 49.07 → 45.76;去掉难度过滤通用平均 31.15 → 26.69。 与人类数据协同:R-Zero 之后再用 math12k 做 RL,比只用人类数据高 +2.35 分;先自进化后 SFT 优于混合训练。 实证核查
有水分 机制真实、代码全开源、方向性结论(先涨后崩)被第三方确认,且论文对失败模式非常坦诚;但官方评测脚本被发现有 bug,作者承认'当时评测确有问题',具体数字难以精确复现。
论文报告 Qwen3-4B-Base 数学平均 +6.49、通用 +7.54 等具体涨幅,README 给出完整分数表。
GitHub issue #31 指出 evaluation/results_recheck.py 第 26/54 行把模型回答和 ground truth 传反了,导致 GPT recheck 产生 false positive;多名用户报告 base model 分数都对不上论文。作者回复承认'It does seem like there were some issues with the evaluation back then',称'整体趋势不变'。issue 评论者也确认趋势一致但精确数字无法复现。
'fully autonomous, from zero data':不需要任何外部任务和标签。
训练循环本身确实无外部数据(代码 scripts/main.sh 只需 base model 名),但并非完全无外部依赖:评测和分析用 OpenAI GPT API(README 要求在 results_recheck.py 里填 GPT key,伪标签准确率核查靠 GPT-4o 当 oracle);'与监督数据协同'实验还用了 hiyouga/math12k。'zero data'只对训练信号成立。
自进化循环带来持续提升。
论文自己的 Table(analysis 5.2/5.4 节)显示第 3-5 轮后数学性能回落、伪标签准确率掉到 47%,README 更新中作者也承认 iteration scaling 是问题并另发 R-Few(arXiv 2512.02472)引入人类数据来解决。收录理由里看重的正是这份诚实——但也意味着'self-evolving'目前只能走 2-3 轮。
代码可复现全部实验(bash scripts/main.sh 一键跑)。
仓库(842 stars)基于 EasyR1,活跃维护到 2026-02;但 issue #15 发现训练脚本超参与论文附录不一致(global_batch_size 16 vs 论文写 128、max_steps 也不同),issue #10/#5 报告训练卡死(math_verify 死循环,README FAQ 也承认)。能跑通,但不是无坑。
与我们方向的关系 对 RSI(recursive self-improvement)方向,R-Zero 是'纯自博弈能走多远'的一个干净数据点:它把外部数据依赖压到零,换来的是伪标签质量随难度上升而必然衰减的自我污染问题——majority vote 作为 verifier 的可靠性上限,直接决定了自提升的迭代上限。这和 self-training 里经典的 confirmation bias 是同一个问题在 RL 语境下的重现。
可借鉴的具体设计:uncertainty reward(把题出在 50% 正确率处使 GRPO advantage 方差最大)、难度带过滤兼做隐式质检、以及'自进化当 mid-training + 人类数据收尾'的组合策略。如果课题组做自提升实验,建议把'伪标签真实准确率随轮次的变化'作为必报指标——这篇证明了只看 benchmark 分数会漏掉正在发生的崩溃。
阅读笔记 复现注意:官方 recheck 脚本的 bug(issue #31)在对比论文数字时必须考虑,建议用自己的评测管线;math_verify 库可能死循环卡住训练(README FAQ)。数学域选择是有意的——majority vote 只在答案客观可比对的域可行,开放域需要另找 verifier。后续工作:VisPlay(扩展到 VLM)、R-Few(少量人类数据稳定迭代)。
材料清单 TeX 源码 已存档:Raw/r-zero/source/
同类条目