← 返回资料站  /  Recursive Self-Improvement
论文 自博弈训练 ★ 必读

Absolute Zero: Reinforced Self-play Reasoning with Zero Data

Absolute Zero:零外部数据的自博弈推理训练
一句话清华 LeapLab 提出 Absolute Zero 范式:一个 LLM 同时扮演出题者和解题者,用 Python 执行器验证任务与答案,完全不用外部题库地做 RLVR 自提升;AZR-Coder-7B 在 3 个代码 + 6 个数学 OOD 基准上总平均 50.4,超过用 2k-484k 条人工数据训练的全部 zero-setting 7B 基线(NeurIPS 2025,引用 304)。

这是什么

R1 之后的 'zero setting' RLVR(不做 SFT、直接在 base model 上做 RL)仍然依赖人工整理的 QA 题库(SimpleRL 8.5k 条、ORZ 57k 条、PRIME-Zero 484k 条)。这篇论文把 'zero' 再推进一步:训练全程不提供任何外部任务或答案,模型自己给自己出题、自己解,唯一的外部实体是一个 Python 代码执行器,既用来验证出的题是否合法,也用来判解答对错。这是'自我提升不依赖人类监督'路线(课题组 RSI 方向)在 2025 年最受关注的代表作之一。

具体系统叫 Absolute Zero Reasoner (AZR):同一个模型交替扮演 proposer(提出代码推理任务)和 solver(解这些任务),两个角色用 RL 联合更新。整个自举过程从一个 identity 函数三元组(program=返回输入本身, input='Hello World')出发,不给任何现成数据集。在 Qwen2.5-7B/-Coder 上训练后,数学平均分别 +10.9/+15.2 分,代码 +3.2/+5.0 分——尽管训练中从未见过任何数学题。

需要注意'零数据'的准确含义:是指 RL 阶段零外部任务数据,base model 本身仍是在海量人类数据上预训练的,提升本质上是在挖掘和重组预训练先验,而不是无中生有(论文自己也承认这一点,社区讨论对这个措辞争议很大,见 reality)。

三种训练范式对比:监督学习(人给任务和答案)→ RLVR(人给任务,环境验证答案)→ Absolute Zero(任务和答案都由模型自产,只靠环境验证),人类监督逐级退出。这张图就是论文的核心主张。
三种训练范式对比:监督学习(人给任务和答案)→ RLVR(人给任务,环境验证答案)→ Absolute Zero(任务和答案都由模型自产,只靠环境验证),人类监督逐级退出。这张图就是论文的核心主张。

机制与做法

一个模型、两个角色:learnability 奖励驱动的自动课程

每轮迭代,模型先以 proposer 身份、以 buffer 中 K 个历史三元组为 in-context 参考,生成'与已有例子不同'的新任务;再以 solver 身份解这批任务。solver 的奖励是简单的二值对错(Python 值相等判定);proposer 的奖励是 learnability:对每个提案跑 G 次 solver 的 Monte Carlo rollout,取平均通过率 r̄,奖励为 1-r̄(r̄=0 即完全解不出时奖励为 0)。太简单(全对)和不可解的任务都拿不到奖励,'偶尔能解出来'的中等难度任务奖励最高——难度课程因此自动跟随当前能力演进。

最外层再套一个 format 惩罚(答错但格式对 -0.5,格式错 -1),prompt 模板直接沿用 DeepSeek R1 的 <think>/<answer> 格式。

AZR 训练一轮的全流程:模型先 PROPOSE(基于 buffer 里的历史三元组生成 abduction/deduction/induction 任务,Python 执行器负责构造与验证,产生 learnability reward),再 SOLVE(解题,执行器验证对错给 accuracy reward),最后用 TRR++ 对两个角色联合更新。
AZR 训练一轮的全流程:模型先 PROPOSE(基于 buffer 里的历史三元组生成 abduction/deduction/induction 任务,Python 执行器负责构造与验证,产生 learnability reward),再 SOLVE(解题,执行器验证对错给 accuracy reward),最后用 TRR++ 对两个角色联合更新。

三种推理模式:围绕 (program, input, output) 三元组做文章

所有任务都是一个三元组 (p, i, o),满足 o = p(i)。遮住哪个部分就构成哪种推理:Deduction(给 p,i 预测 o,对应逐步执行推理)、Abduction(给 p,o 反推一个可行的 i,对应试错搜索;验证时用 p(i_π)=o 的输出等价而非输入相等,因为程序不一定是双射)、Induction(给一半 input-output 例子和一句自然语言描述 m,合成程序 p,用另一半 held-out 例子验证防止 if-else 硬编码)。消融显示三种模式缺一不可:只留 deduction 总平均从 46.8 掉到 43.3,去掉 induction 掉到 43.8。

选代码而非自然语言做载体的理由:图灵完备、可执行验证、且已有证据表明代码训练迁移到推理。代价是任务空间被限制在'确定性、无副作用的 Python 程序'内(见下)。

主结果概览:左图各 zero-setting 基线用了 2k~484k 条人工数据而 AZR 用 0 条;右三图是训练过程中数学/代码/总平均的上升曲线,最终点(星)超过此前 SOTA(红虚线)。注意总平均曲线在 ~200 步后已基本走平。
主结果概览:左图各 zero-setting 基线用了 2k~484k 条人工数据而 AZR 用 0 条;右三图是训练过程中数学/代码/总平均的上升曲线,最终点(星)超过此前 SOTA(红虚线)。注意总平均曲线在 ~200 步后已基本走平。

任务合法性过滤:执行器当守门员

proposer 的输出要过三道检查才进 buffer:(1) 程序完整性——真的跑 p(i) 能无报错返回值;(2) 安全性——黑名单禁掉 os.sys、sys、shutil 等敏感包;(3) 确定性——同一程序独立跑 j=2 次输出必须一致,把随机程序滤掉(否则二值验证器没法判对错)。通过的三元组不管有没有拿到任务奖励都进对应 buffer;某个 batch 有效提案不足时从历史 buffer 均匀采样补齐。

作者明确警告 repo 里的 Python executor 'very raw、仅供研究',后来补了 SandboxFusion 支持。自己复用这套代码时执行沙箱要自己加固。

一个自产任务的实例(abduction):左边是模型自己出的程序+输入+输出;右边是它解题时的试错过程——先猜简单输入、逐步执行发现不匹配、换更复杂的输入直到输出对上。最终答案与'标准'输入不同但输出等价,同样判对(验证用输出等价而非输入相等)。
一个自产任务的实例(abduction):左边是模型自己出的程序+输入+输出;右边是它解题时的试错过程——先猜简单输入、逐步执行发现不匹配、换更复杂的输入直到输出对上。最终答案与'标准'输入不同但输出等价,同样判对(验证用输出等价而非输入相等)。

TRR++ 与训练规模

3 种任务 × 2 种角色构成 6 个子任务的多任务 RL,作者把 REINFORCE++ 的全局 baseline 改成按 (task, role) 分组算 6 个独立 baseline 做归一化,称为 Task-Relative REINFORCE++ (TRR++),介于 GRPO 的 per-question baseline 和全局 baseline 之间。

训练配置:batch 64×6,lr 1e-6 恒定,AdamW,基于 veRL + vLLM。硬件要求不低:3B 需 2×80GB,7/8B 需 4×80GB,14B 需 8×80GB。主实验 Qwen2.5-7B/-Coder,扩展到 Coder-3B/14B、Qwen2.5-14B 和 Llama3.1-8B。

关键结果

实证核查

有水分开源程度和数字可信度在同类工作里属于最好的一档:代码、checkpoint、W&B 训练日志全公开,官方 checkpoint 的评测数第三方能对上。但'零数据'是修辞(靠的是预训练先验),'SOTA'只对 Coder 变体成立,换出 Qwen 系收益立刻缩水,第三方重训也有落差。
'不依赖任何外部数据'(zero data)自我提升。
准确说法是 'RL 阶段零外部任务数据':base model 是在海量人类数据上预训练的 Qwen/Llama,repo 的 data/ 目录还提供了每个模型 prompt 自产的 seed jsonl(README 的 Seeding 一节),自举起点也有一个人写的 identity 三元组。HN 讨论(news.ycombinator.com/item?id=43922341, 133 分)的主要批评正在于此:用户 iTokio 读完论文和代码的结论是'很接近既有 simple RL 方法,主要贡献是把人工挑的题换成受约束的生成题(Python + 强制常用函数),营销语言偏多'。论文正文对 setting 的定义本身是诚实的,但标题和传播叙事明显放大了。
'达到 overall SOTA,超过用几万条人工数据训练的模型'。
论文自己的主表(Table,README 同步)显示这只对 Coder 变体成立:AZR-Coder-7B 总平均 50.4 第一,但 AZR-Base-7B 46.8 低于用 57k 数据的 ORZ(48.6);数学单项最高的是 PRIME-Zero(45.8 vs AZR 的 39.1)。换到 Llama3.1-8B,AZR +3.2 反而输给用 8.5k 人工数据的 SimpleRL(+4.5,论文 Figure 6/RQ4)。结合 Spurious Rewards(arXiv:2506.10947,Qwen2.5 上连随机奖励都能涨数学分)的发现,'零数据增益'很大程度是 Qwen 系代码先验被激发的结果,跨模型族的普适性未证实。
结果可复现:代码、模型、日志全部开源。
这部分做得确实好:GitHub 1894 星、MIT license,训练/评测代码、HF checkpoint 集合、完整 W&B 日志(wandb.ai/andrewzhao112/AbsoluteZeroReasoner)都公开,并保留了 paper 分支固定 veRL 版本供复现。issue #27(9 条评论)里第三方用官方 HF checkpoint 复现出了报告的数学分数,但用官方脚本自己重训 Coder-3B,在数学基准上始终低于官方 checkpoint,作者两轮调参跟进(换 qwen-boxed 模板、调 batch 参数)后仍有 gap,最后贴出完整训练脚本,未见复现者确认闭环。自训练的方差/敏感性比论文呈现的要大。
训练中涌现出清晰的 state-tracking 等认知行为(论文 Figure 26 等定性例子)。
HN 用户 CGamesPlay 逐句核对 Figure 26:CoT 从第二句起对 if 语句的推理就是错的,却'得出'了正确输出,质疑论文定性展示有 smoke and mirrors 成分;另一位用户 CBiddulph 核实 prompt 确实没泄露答案,但同意该 CoT 'pretty nonsensical',更像 RL 训出的 vestigial reasoning(推理文本与得出答案的真实机制脱钩)。定性例子当宣传看,别当证据。
自我进化可以持续推进推理能力。
作者本人在 issue #1 回复:OOD 提升在约 400 步后饱和,'certain benchmarks' 甚至回落(附了曲线图)。论文附录也记录了一批没做 work 的尝试(error deduction 任务、composite function 课程、额外 intrinsic rewards 等)。当前证据支持的是'一次性把 base 先验榨出 5-13 分',不支持开放式持续提升。

与我们方向的关系

对 RSI/自博弈方向,这篇是'执行器做 ground truth 的 propose-solve 闭环'的标准参考实现,三个设计点直接可搬:(1) learnability 奖励(1-通过率)自动维持任务难度在学习区;(2) 用三元组遮蔽构造 deduction/abduction/induction 三种任务,天然自带可验证性;(3) 多任务 RL 按 (task, role) 分组算 baseline(TRR++)。工程上 veRL + vLLM 的完整训练栈和 W&B 日志是很好的 RLVR 复现起点。

同时它也是评估'自我进化天花板'的重要反面素材:无外部信息注入时,提升来源只能是预训练先验的重组,表现为强依赖 base model 质量(Qwen 涨、Llama 弱)、~400 步饱和。读这篇建议配合 Spurious Rewards(2506.10947)校准对 Qwen 系增益的预期;后续把这条线往前推的有 R-Zero(2508.05004,双模型 Challenger-Solver 且不要执行器)和一批 self-questioning 工作,可作为对照阅读。

阅读笔记

复用代码注意三件事:executor 不安全(作者原话 research purposes only,后来支持了 SandboxFusion);Qwen3 base 的 <think> token embedding 未训练,要先跑 remove_think_qwen3_tokenizer.py 否则输出乱码;复现论文数字必须用 paper 分支(main 已随 veRL 升级、README 标注 under testing)。评测对模板极度敏感(issue #27:base 模型要 qwen-boxed、AZR 要自己的模板,用错分差好几个点),对比任何 RLVR 工作的分数前先查模板。

材料清单

TeX 源码
已存档:Raw/absolute-zero/source/
代码仓库github.com/LeapLabTHU/Absolute-Zero-Reasoner
1894★ · 最近推送 2025-08-24
W&B 训练日志wandb.ai/andrewzhao112/AbsoluteZeroReasoner
全部训练 run 公开,核对训练动态/复现时的第一手对照
HF 模型集合huggingface.co/collections/andrewzh/absolute-zero-reasoner-68139b2bca82afb00bc69e5b
3B/7B/14B、base/coder 各 checkpoint;第三方确认评测数与论文一致
HN 讨论news.ycombinator.com/item?id=43922341
对 'zero data' 措辞和定性例子最集中的批评(133 分/24 评论)
复现讨论 issue #27github.com/LeapLabTHU/Absolute-Zero-Reasoner/issues/27
第三方重训 Coder-3B 与官方 checkpoint 的差距及作者调参跟进全过程
对照阅读:Spurious Rewardsarxiv.org/abs/2506.10947
Qwen2.5 上随机奖励也能涨数学分——校准对 AZR 增益来源的判断
后续工作:R-Zeroarxiv.org/abs/2508.05004
2025-08 的 follow-up:Challenger/Solver 双模型、无执行器的零数据自进化

同类条目