SPADE:自适应合成可执行环境中的自博弈强化学习 SPADE: Self-Play in Adaptive Synthetic Executable Environments
单一模型自博弈:既写可执行训练环境又解题,环境难度随能力共同进化,实现持续自我提升。
前置知识
GRPO(组相对策略优化)
GRPO 是 DeepSeek-R1 等模型使用的强化学习算法。对每个输入提示 $x$,策略采样一组 $G$ 个回答,用组内归一化计算优势 $\hat{A}_i = \frac{r_i - \mathrm{mean}(\{r_j\})}{\mathrm{std}(\{r_j\})}$,再用带裁剪的策略梯度加 KL 正则更新参数。它省去独立的价值网络,用组内相对比较代替基线估计。
SPADE 用 GRPO 同时更新设计者和求解者两个角色,理解优势归一化、裁剪与 KL 项是读懂其训练稳定性技巧(按角色归一化、非对称裁剪 $\epsilon_{low}=0.2$、$\epsilon_{high}=0.28$)的前提。
MDP 与 Gym 风格接口
马尔可夫决策过程用元组 $(S, A, T, R, \rho_0)$ 描述:状态空间、动作空间、转移函数 $T(s'|s,a)$、奖励函数 $R(s,a)$ 与初始状态分布。OpenAI Gym 把它标准化为两个函数:$\mathrm{reset}()$ 返回初始观测,$\mathrm{step}(a)$ 返回 $(s', r, \mathrm{terminated}, \mathrm{truncated}, \mathrm{info})$。任何可计算的 MDP 都能写成一个 Python 类。
SPADE 的“代码即环境”正是让设计者生成实现 reset()/step() 的 Python 类,用同一接口统一单轮推理与多轮工具使用任务,这是全文方法的载体。
自博弈与非对称自博弈
自博弈让同一系统兼任对手与选手,通过左右互搏持续产生恰当难度的训练信号,从 TD-Gammon 到 AlphaZero 都是如此。非对称自博弈进一步拆成提议者(出题/设计环境)与求解者(解题)两个角色。把自博弈搬到 LLM 上更难:目标是跨开放问题的通用能力,且 LLM 规模的自博弈训练常常不稳定。
SPADE 是单 LLM 双角色的非对称自博弈,但输出从“一道题”升级为“完整环境”,了解这条脉络(SPIRAL、SPICE、AZR、R-Zero)才能看清它的位置与差异。
最小最大遗憾与无监督环境设计(UED)
UED 研究如何自动生成恰当难度的训练环境。PAIRED 引入对抗式环境设计,以“最优策略回报减去当前策略回报”(遗憾,$\mathrm{regret}(e) = \bar{r}^*(e) - \bar{r}^{\pi}(e)$,其中 $\bar{r}^*$ 是最优响应回报)为目标,迫使环境处在智能体能力边缘而非过易或无解。
SPADE 的 hint-based regret 用“带特权提示的回放”近似最优响应,从而免掉单独的对抗者,这是设计者奖励函数的理论根基,也是附录 B 均衡分析的出发点。
模式坍缩与“隐形锁链”
只以自身输出为条件的生成器没有外部新信息来源,会收敛到自己偏好的少数模式,生成内容越来越雷同,被 Chae 等人称为“隐形锁链”。常见缓解办法是把生成器接到外部语料上(corpus grounding),每轮注入人类文本带来的新颖性。
SPADE 的消融显示:去掉语料接地后设计器在 290–312 步连续 41 次生成同一个迷宫环境,多样性指标 Vendi/n 从 0.68 掉到 0.04,这是理解语料接地与环境记忆为何是成功关键组件的背景。
研究动机
语言智能体进步的瓶颈正从预训练数据转向“可验证奖励的训练环境”供给。无论手工构建(主要实验室的环境预算据称每年超过 10 亿美元,一批初创公司融资九位数)还是程序化合成,现有环境池都是固定的:手工策划的池子扩展速度受人写环境的速度限制;静态合成(如 RLVE 手工工程了 400 个可验证环境)与冻结验证器方法的生成器本身不学习,目标分布不会随学习者提升而移动。结果是一旦智能体“刷完”现有池子就停止进步。论文还用实验量化了这一点:用同一批 Qwen3 底座在固定环境池上跑 400 步 GRPO(Fixed-env GRPO 基线),在 8 个 held-out 基准上的平均增益只有 +1.0 到 +1.2,且几乎不随模型规模变化。更早的 LLM 自博弈方法生成的是“单道题 + 稀疏终端奖励”,受信息对称性限制,出不了超出自身知识边界的挑战,还容易放大自身错误、在能力封顶时坍缩。
本文的目标是本文的目标是把“环境设计”本身变成强化学习后训练中一个可训练的组件,构建环境供给随智能体能力共同增长的开放式自我改进系统。具体包括四点:让单一 LLM 扮演环境设计者与推理智能体两个角色,设计者输出带 Gym 风格 reset()/step() 接口的完整可执行 Python 环境(内含状态转移、奖励函数与验证代码),并同时写出特权提示;用基于提示的遗憾信号通过 RL 训练设计者,使其生成的环境恰好落在智能体能力前沿且可解;用统一接口同时覆盖单轮推理(游戏设置)与多轮工具使用两类任务;把配方推到 30B 参数规模(Qwen3-30B-A3B)验证,目标是相对最强固定环境基线取得平均 +5.3 的提升并给出完整实用训练配方。
与已有工作不同的是,本文切入角度的独特性有三点。其一,表示层面的跨越:此前自博弈(SPIRAL、SPICE、AZR)生成的是“任务”——一道题加一个终端奖励;SPADE 生成完整的多轮 MDP——因为任何可计算的 MDP 都能写成程序,环境空间无界,不受手工参数化的限制。其二,训练信号:经典 UED(PAIRED)的最小最大遗憾需要独立的对抗者,SPADE 用“带特权提示的智能体回放”作为最优响应的轻量近似,一个信号同时约束可解性(有提示能解)与前沿性(无提示解不出)——纯对抗设计者可以造无解环境刷分,纯合作设计者可以无意义送分刷分,遗憾式奖励两者都防住。其三,此前环境合成系统的生成器一律冻结或离线训练,SPADE 的设计器本身被 RL 在线更新、与求解者共进化;验证器也不是像 SGS 那样用冻结的 Guide,而是内嵌在每个生成的环境里随设计者一起演化。
核心方法
直觉上,SPADE 是“自己出题自己考,题目难度自动跟着水平走”:一个模型 $\pi_\theta$ 通过不同的系统提示切换两个角色——环境设计者 $\pi_D$ 负责写环境和提示,推理智能体 $\pi_A$ 负责解题,两者共享同一份参数 $\theta$。技术路线分四步。第一,设计者每轮基于领域提示、从预训练语料采样的种子文档(游戏设置为 DCLM 的 1 万数学 + MegaScience 的 5 千科学文档,工具设置为 Nemotron 的 1.5 万代码文档)、以及带遗憾评分的历史环境记忆,生成实现 Gym 接口的 Python 环境类和一条特权提示,先生效语法与可执行性校验。第二,智能体对每个有效环境做两组回放:不带提示和带提示。第三,计算奖励:智能体拿任务完成奖励 $r_A \in [-1,1]$;设计者拿提示遗憾 $r_D(e) = \bar{r}_A(e|h) - \bar{r}_A(e)$(训练时下限截到 0),再与一个把智能体胜率压在 $[0.4, 0.6]$ 目标带的 flat-top 难度锚按 0.4/0.6 加权混合。第四,两组奖励分别做角色内归一化后,用 GRPO 的裁剪策略梯度更新同一份参数,配合设计者更新延迟 $k$ 步加截断重要性采样等稳定化技巧,共训练 400 步。
核心创新是提示遗憾奖励:$r_D(e) = \bar{r}_A(e \mid h) - \bar{r}_A(e)$,即智能体在同一环境上带特权提示与不带提示的平均回报之差,其中 $\bar{r}_A(e|h) = \frac{1}{G}\sum_i r_A(y'_i \mid e, h)$。它把 PAIRED 的最小最大遗憾压缩成一次轻量估计——带提示的智能体充当上界策略,省掉独立对抗者。这个信号天然区分三种环境:高遗憾(有提示能解、无提示不行)对应学习前沿;低遗憾高回报对应已掌握;低遗憾低回报(有提示也解不出)对应不可解环境。与纯对抗设计者不同,它不能靠造出无解环境刷分;与纯合作设计者不同,它不能靠送分刷分(无提示也能解就没有落差)。附录 B 证明在理想化假设下每个纯纳什均衡都使智能体在每个有效环境上达到无提示最优。消融显示它显著优于 EMA 学习势信号:八基准平均 +8.1 对 +5.7,且在约 50 步后两者曲线分离、遗憾版收敛更快。
方法步骤详情
完整流程按 Algorithm 1 展开。第 1 步(环境生成):每个训练步采样 $B=24$ 个环境;设计者以 role=D 条件于领域提示 $p_d$、本轮采样的语料文档和记忆 $M$ 中的高遗憾种子,输出环境 $e_b \sim \pi_\theta(\cdot \mid p_d, \text{role=D})$,经语法与可执行性校验(工具设置额外要求确定性 reset 门和“每条成功判据都能被某工具满足”的 LLM 检查),无效环境丢弃。第 2 步(提示生成):设计者再以 $h_b \sim \pi_\theta(\cdot \mid e_b, \text{role=D})$ 写出几句话的特权提示,要求给出关键洞察与答案格式但禁止泄露确切答案。第 3 步(智能体回放):对每个有效环境,无提示跑 $16 \times k$ 次、带提示跑 16 次(游戏 $k=4$,工具 $k=8$),得 $r_A \in [-1,1]$。第 4 步(奖励与联合更新):$r_D(e_b)$ 取同轮带/无提示均值差并截到 $\max(0,\cdot)$,与权重 0.6 的难度锚混合;优势按角色归一化(智能体按环境内标准化、设计者按技能内均值中心化),设计者更新延迟 $k$ 步并用截断重要性采样纠偏;最后对 $\{\hat{A}_b^D\} \cup \{\hat{A}_i^A\}$ 做 GRPO 更新。6 个认知技能类别每轮激活 3 个轮转。
技术新颖性
与最近工作的本质区别有五点。(1) 对 SPIRAL/SPICE/AZR:它们生成任务(单题+终端奖励),SPADE 生成完整可执行 MDP,验证器内嵌在环境的 step() 里并随设计者共同演化,而非像 SGS 那样用冻结的 Guide 给提议者的猜想打分。(2) 对经典 UED(PAIRED/POET):它们在手工参数化的小设计空间里搜索(迷宫尺寸、地形参数),SPADE 的设计空间是“所有可写成 Python 程序的 MDP”,无界且由被 RL 在线训练的设计器生成,把环境设计从固定空间内的选择变成开放式生成。(3) 对环境合成系统(RLVE、AgentScaler、AWM、EnvScaler):它们的生成器冻结或离线,SPADE 的设计器由测得的智能体回报驱动在线更新。(4) 对 OMNI-EPIC(用可执行代码表示环境但用冻结的基础模型当趣味性判官):SPADE 的“判官”信号来自智能体的实际回放并随其共同演化。(5) 工程贡献:在 30B MoE 上跑通双角色自博弈的完整稳定化配方——按角色优势归一化、延迟更新+截断重要性采样、非对称裁剪、遗憾下限、难度锚混合——这是社区此前普遍认为不稳定的事情。
实验结果
游戏设置上,SPADE 在三个底座全面超过固定环境基线:平均增益从 4B 的 +5.2、8B 的 +5.7 到 30B-A3B 的 +8.1(50.2→58.3),30B 上比最强基线 Fixed-env RLVE(53.0)高 5.3 分且优势随规模扩大,而 Fixed-env GRPO 各规模仅约 +1.2。分基准看 30B:GPQA-Diamond 70.4→75.8(+5.4)、LiveCodeBench-v6 43.2→47.3(+4.1)、Reasoning-Gym hard 四类全大涨(RG-Math +18.3、RG-Algo +14.1、RG-Cog +14.7),AIME 基本持平且增益在 400 步后期仍保持。工具使用设置上,同一配方使 30B 的 ACEBench-Agent 62.0→75.9(+13.9)、BFCL v4 multi-turn 49.0→54.7(+5.7,4B 达 +10.3)、τ²-bench +3.6,在 BFCL MT 和 ACEBench 上超过 AgentScaler、Agent-World、EnvScaler 等专门合成系统(BFCL MT 54.7 对 Agent-World-14B 的 53.9、EnvScaler-8B 的 41.9)。消融显示组件缺一不可:去掉设计者训练+记忆掉到 40.5(比未训练低 9.7 分);GPT-5.5 静态池只恢复约 35% 增益(53.0);EMA 学习势奖励仅 +5.7。定性上:可学习环境份额升至约 1/3;语料接地把 Vendi/n 从 0.04 提到 0.68;物理环境开局公式暴露率从 25% 降到 5%、奖励档位从 3.7 加密到 5.8;无语料运行连续 41 次生成同一迷宫;智能体转向证据优先交互(命令中位 8 token);6 技能课程对 2 技能版(58.3 对 53.7)说明宽度贡献大部分增益。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| 八基准套件平均(30B-A3B,游戏设置) | 未加权平均分 | SPADE 58.3(较未训练底座 +8.1) | Fixed-env RLVE 53.0;Fixed-env GRPO 51.4;底座 50.2 | +5.3(对最强基线 RLVE) |
| GPQA-Diamond(30B-A3B,科学推理) | accuracy | 75.8 | 底座 70.4;Fixed-env RLVE 69.8 | +5.4(对底座) |
| LiveCodeBench-v6(30B-A3B,代码生成) | Pass@1 | 47.3 | 底座 43.2;Fixed-env GRPO 43.7 | +4.1(对底座) |
| Reasoning-Gym hard / RG-Math(30B-A3B) | 胜率 | 63.3 | 底座 45.0 | +18.3(八基准中单项最大) |
| BFCL v4 multi-turn(30B-A3B,工具使用) | 平均分(Base/Miss Func/Miss Param/Long Ctx) | 54.7(72.0/50.0/44.0/52.9) | 底座 49.0;Agent-World-14B 53.9;AWM-14B 51.9;EnvScaler-8B 41.9 | +5.7(对底座;4B 上 +10.3) |
| ACEBench-Agent(30B-A3B,多步智能体) | 平均分(Multi Step/Multi Turn) | 75.9(82.0/69.8) | 底座 62.0(70.0/54.0);EnvScaler-8B 72.5 | +13.9(对底座) |
| τ²-bench(30B-A3B,工具使用) | 平均分(Retail/Airline/Telecom) | 52.6(65.5/53.5/38.8) | 底座 49.0(62.0/50.0/35.0) | +3.6(对底座) |
| 八基准套件平均(4B / 8B,游戏设置) | 较各自底座的平均增益 | +5.2(4B)/ +5.7(8B) | Fixed-env GRPO 约 +1.0 / +1.2 | 增益随规模扩大(30B 达 +8.1) |
局限与改进
作者承认三点:(a) 环境复杂度受底座规模限制,“隐形锁链”仍在——设计者写不出超出其上下文表达能力的环境,可达复杂度只能随模型规模和生成预算增长;(b) 两个角色都由人工设计的固定算法 GRPO 更新,学习规则本身不在自我改进范围内;(c) 提示遗憾没有最优性证明(只有理想化假设下的纳什均衡分析),且现有评测全是固定任务基准,衡量不了“开放式推理增长”这一目标本身。我的补充观察:其一,提示由同一模型撰写,其质量与信息量没有独立校验——4B/8B 上遗憾估计长期为负(理论上最优时应非负,Figure 12)正说明有限样本下该信号在小模型上不可靠,此时设计者实际主要被难度锚驱动;其二,每个环境需要带/无提示各 $G$ 组回放,设计者奖励的计算成本约为普通 RLVR 的两倍;其三,工具设置的生成提示明确瞄准评测任务族(schema 定义的工具、后端状态、逐指令检查),虽未见过基准数据,但与评测的结构对齐度较高,+13.9 的增益可能部分来自结构先验匹配而非纯能力迁移;其四,与 AgentScaler/AWM 等的对比是跨论文转抄,训练数据与预算不同,只能作参考性比较。
独立分析的弱点
独立分析五个弱点。第一,提示可被利用:设计者若学会写“近乎直接给答案”的提示即可拿满遗憾分,论文只禁止提示包含确切答案,没有机制衡量提示的信息泄漏量——改进方向是引入提示信息量惩罚,或用独立模型重写提示后再测遗憾。第二,环境质量校验偏浅:游戏设置只查语法和可执行,一个把复杂度伪装成多轮、实际单步即给终端奖励的“假环境”能通过验证——可加入交互深度、状态变量被实际访问比例等结构指标作为准入门槛。第三,遗憾信号在小模型上失效:Figure 12 显示 4B/8B 的遗憾估计长期为负,$G$ 次回放的方差淹没了信号——可为小模型设计方差缩减(配对回放、共享随机种子)或改用成功率带信号。第四,技能课程是人工设定的 6 类轮转,虽然 Figure 13 证明宽度重要,但类目本身如何随能力自动扩展没有答案——可用聚类历史环境自动发现新的技能轴。第五,验证器写进环境代码里,LLM 生成的验证代码本身可能有 bug,奖励就是错的且难以察觉——可加元验证:用已知答案的探针任务定期测试环境的奖励正确性。
未来方向
作者提出的方向:其一,设计者不靠梯度更新而靠上下文内演化(在上下文中累积并改进设计策略),学习权重与上下文演化哪种更好、在什么规模下更好是开放问题;其二,把自适应环境设计与自动化后训练其余环节(数据筛选、学习规则本身)结合,把共自进化扩展到整个训练管线。基于本文成果可延伸:其一,把设计者与求解者拆成不同规模模型(大模型设计、小模型求解),检验更强的设计者能否给出更准的遗憾信号(这直接回应 4B/8B 信号为负的问题);其二,把环境设计扩展到真实 API 与网页而非纯模拟工具,让环境记忆对接真实交互日志;其三,让设计者写出需要多智能体协作或竞争的 MDP,把 autocurricula 与 SPADE 结合;其四,把 Figure 9 观察到的“证据优先”行为转变定量化,研究自博弈环境是否系统性教出更好的探索策略;其五,构建真正衡量开放式增长的评测协议(例如环境复杂度随训练时间的斜率),而非固定任务基准;其六,遗憾信号的理论工作从理想化纳什分析走向有限样本、近似最优响应下的保证。
复现评估
复现条件较好。代码开源(github.com/spade-rl/spade),项目页 spade-rl.github.io;底座全部公开(Qwen3-4B/8B/30B-A3B-Instruct-2507);接地语料公开(DCLM 1 万数学 + MegaScience 5 千科学文档、Nemotron 1.5 万代码文档);评测基准全部公开(AIME、GPQA-Diamond、LiveCodeBench-v6、Reasoning-Gym、BFCL v4、τ²-bench、ACEBench)。训练配方细节充足:GRPO、slime 框架、400 步 × 每 rollout 24 环境、$k=4$(游戏)/$k=8$(工具)、非对称裁剪 $\epsilon_{low}=0.2, \epsilon_{high}=0.28$、难度锚带 $[0.4,0.6]$ 与 0.4/0.6 权重,附录还给出验证细节与完整生成环境源码样例。算力门槛中高:主实验是 30B MoE(激活约 3B 参数)的在线 RL 训练,需多卡集群,每个环境 $2G$ 组回放进一步放大开销。复现难度评估为中高:单角色 GRPO 管线成熟,但双角色自博弈对稳定化技巧敏感(作者也承认 LLM 自博弈训练常不稳定),建议先在 4B 上复现 Table 1 结果块再上规模。
论文图表