harness_evolve/notes/ref22_thetaevolve.md

ThetaEvolve: Test-time Learning on Open Problems

一句话总结:把 [[ref20_alphaevolve]] 那套"用 LLM 当变异算子的进化式程序搜索"大幅简化(单 LLM + 万级程序库 + 批采样),再首次接上 RL 训练管线——将 AlphaEvolve 的动态程序库当成一个"自适应可验证环境(adaptive verifiable environment)",用 GRPO 在测试时同时 scale 上下文学习与强化学习,让模型真正内化演化策略;由此让一个 8B 开源小模型(DeepSeek-R1-0528-Qwen3-8B)在 circle packing 和第一自相关不等式上打破 AlphaEvolve/ShinkaEvolve 的最好界


TL;DR 速览

tags: #进化式代码搜索 #test-time-RL #test-time-learning #动态可验证环境 #harness演化 #GRPO #LLM-as-mutation #开源小模型 #AlphaEvolve谱系

related: [[ref20_alphaevolve]](直接对标与简化的母范式)· [[ref21_shinkaevolve]](最近亲,同为开源 evolve,但走"样本高效"路线而非"可训练"路线)· [[ref23_darwin-godel-machine]](同为"让系统自身可进化/自改进",DGM 改代码本体,ThetaEvolve 改模型参数)· [[ref09_meta-harness]](都在"用外环 + 历史/程序库驱动搜索",一个 agentic 一个进化+RL)· [[ref17_self-harness]](自改进 harness 的对照)


摘要

LLM 的最新进展已让数学发现取得突破,典型代表是 AlphaEvolve——一个演化程序以改进开放问题界的闭源系统。但它依赖前沿 LLM 集成才能拿到新界,且是纯推理系统,模型无法内化演化策略。我们提出 ThetaEvolve:一个开源框架,简化并扩展 AlphaEvolve,以在测试时高效地 scale 上下文学习强化学习(RL),让模型能从"改进开放优化问题"的经验中持续学习。ThetaEvolve 的特性包括:单 LLM、增大的程序库以增强探索、批采样以提高吞吐、lazy penalty 以抑制停滞输出、以及可选的 reward shaping 以稳定训练信号等。

ThetaEvolve 是首个让 DeepSeek-R1-0528-Qwen3-8B 这样的小开源模型在 AlphaEvolve 提到的开放问题(circle packing、第一自相关不等式)上拿到新最好界的演化框架。此外,跨 2 个模型、4 个开放任务,我们发现带 RL 的 ThetaEvolve 一致优于纯推理基线,且模型确实学到了演化能力——RL 训练的 checkpoint 在已训目标任务和其他未见任务上都表现出更快进展与更好的最终性能。代码已开源。

[!NOTE] 注意摘要的措辞把两个动作分得很清楚:"scale in-context learning"(沿用 AlphaEvolve 的动态库,让上下文里带着历史最优)与 "scale RL at test time"(新增的,让 θ 也更新)。ThetaEvolve 的全部新意几乎都压在后半句——把一个原本只做前向推理的演化环境,改造成一个能反向传播梯度的训练环境


1 介绍:从"不可训练的 AlphaEvolve"到"可训练的 ThetaEvolve"

LLM 的推理能力进步已让它们参与新科学发现(数学发现是典型)。AlphaEvolve(Novikov et al. 2025; Georgiev et al. 2025)用预设评估器 + 前沿 LLM,迭代修改并改进候选程序以优化任务目标;通过这个演化过程,AlphaEvolve 发现了若干开放数学优化问题上"匹配或超越已知最好"的解。它尤其适合"构造特定数学对象、改进其某个定量属性"的问题——如把固定数目的圆排进单位正方形以最大化半径之和(circle packing)。

AlphaEvolve 的机制骨架:维护一个程序库存高分或促多样的程序;每次迭代从库里采样若干先前程序拼成 prompt,喂给 LLM 集成生成改进的子程序;子程序被评估后加回库。随着测试时算力上升,AlphaEvolve 能不断从"自己在开放问题上的前沿尝试"里学习,同时避免上下文无界增长。

但 AlphaEvolve 及其后续也有明显局限:

  1. 闭源,使"开放问题上的程序演化"难以被系统研究。虽有 OpenEvolve、ShinkaEvolve 等开源变体,但管线仍复杂、超参未充分消融,不清楚哪些组件真正必要
  2. 现有实证实现几乎总是配前沿大规模闭源 LLM 集成——这隐含一种"更适合开放研究与本地部署的小开源模型推不动这些难题"的心态。
  3. 最要命:AlphaEvolve 是纯推理管线,完全不更新底层模型。它的表现全靠推理流程的设计,意味着有效的探索策略或"在能力边缘搜索(search-on-the-edge)"的行为无法被模型自己学到

另一边,RL 已展现出改进推理模型的强大潜力。AlphaProof(Hubert et al. 2025)进一步表明:当目标任务配了自包含、规则化的验证器(如 LEAN)时,scale 测试时 RL 能把性能推到超越标准推理时 scaling。而 AlphaEvolve 这类程序演化管线共享同一结构——程序一旦产出,固定评估器就能确定性地检查有效性并算出目标值。基于这个观察,本文把开放优化问题上的演化与 RL 训练管线融合,得到 ThetaEvolve。三条贡献:

Figure 1: ThetaEvolve 从 AlphaEvolve 管线和常规 RL 管线两边取经。Top=AlphaEvolve/OpenEvolve 动态环境(仅推理);Middle=RL 静态环境;Bottom=ThetaEvolve 动态环境(可选 RL 训练)

Figure 1 逐面板解读(全文招牌图,三行对照,读懂它就读懂了 ThetaEvolve 的定位): - Top(AlphaEvolve/OpenEvolve 动态环境,仅推理)Program Database →(采样 Prior Programs+resultsParent Program+result 到)→ Prompt Builder(拼 Meta Information + Instruction) → LLM Ensemble(多个 LLM) → Response(含 <think> + SEARCH/REPLACE diff) → Verifier(Parser+Evaluator) → Child Program+result 回库。关键词是 (async) sequential sampling(异步顺序采样)和 LLM Ensemble(集成)。整条链没有任何指向 LLM 的训练箭头——θ 不变。 - Middle(RL 静态环境):一个常规 RL 管线——从固定的 Static DatasetPrompt 1...Prompt BPrompt BuilderSingle LLMResponse (1,1)...(B,n)Verifier → 回到 RL training。特点是静态数据集(每次都从同一批初始 prompt 出发)+ batch sampling + 有 RL training 箭头。这是"能训练但环境不进化"的基线。 - Bottom(ThetaEvolve 动态环境,可选 RL 训练)把 Top 的"动态程序库"和 Middle 的"批采样 + RL 训练"缝在一起——(Large) Program Database →采 Prompt 1~B(只含 Meta Information + Parent Program+result + Instruction,省掉了 Top 里的 Prior Programs) → Prompt BuilderSingle LLM(红色火苗图标=可训练) → Response (1,1)~(B,n)VerifierChild Programs+results (1,1)~(B,n) 回库,同时这些响应+指标喂给 (Optional) RL training 更新 Single LLM。注意 Single LLM 上的火苗和那条 (Optional) RL training 的回环箭头——这就是 ThetaEvolve 相对 AlphaEvolve 的唯一但决定性的新增:梯度回流


2 相关工作

作者把 ThetaEvolve 定位在三条线的交叉:AlphaEvolve 式演化程序搜索prompt 优化 / agentic 上下文管理测试时 RL(尤其 AlphaProof)

[!TIP] ① 母范式与最近亲 - AlphaEvolve(Novikov et al. 2025 / Georgiev et al. 2025,"v1/v2")[[ref20_alphaevolve]]:Google DeepMind 的闭源系统,用程序库 + 前沿 LLM 集成演化程序改进开放问题界。ThetaEvolve 的整个动态环境骨架直接继承它,但做了单 LLM/大库/批采样的简化,并加上 RL。AlphaEvolve-v2(Georgiev et al. 2025)特别强调"prompt 里的 verbal insight 能显著影响最终性能",ThetaEvolve 沿用了这一点(见 meta-information 设计)。 - OpenEvolve(Sharma 2025):AlphaEvolve 的开源复现,ThetaEvolve 的代码基座就是它(改自 OpenEvolve)。它实现了 MAP-Elites + 岛屿模型的库管理(见下方 §3 与 Appendix C.4)。默认 population size 只有 70。 - ShinkaEvolve(Lange et al. 2025)[[ref21_shinkaevolve]]:Sakana AI 的开源 evolve,主打样本高效(circle packing 仅 150 次评估达 SOTA)与三招(探索/利用平衡的 parent 采样、代码 novelty 拒绝采样、bandit 选 LLM)。它是 ThetaEvolve 在 circle packing 上直接对标并超越的对象(2.63598283 vs 2.63598308),且被反复用作"用了 6 个前沿闭源模型集成、程序还慢(75s)"的反衬。 - FunSearch(Romera-Paredes et al. 2024, Nature):在固定骨架内进化"指定函数"做数学发现,是这条线的奠基里程碑;岛屿模型即源于此。

[!IMPORTANT] 与 AlphaEvolve / ShinkaEvolve 的逐项对比(本项目最该关注的一张表,讲清 ThetaEvolve 的独特贡献)

维度 AlphaEvolve [[ref20_alphaevolve]] ShinkaEvolve [[ref21_shinkaevolve]] ThetaEvolve(本文)
机构 / 开源 Google DeepMind,闭源 Sakana AI,Apache 2.0 开源 UW × Microsoft,开源
是否训练模型 θ ❌ 纯推理,θ 不变 ❌ 纯推理,θ 不变 ✅✅ 首次加 RL 训练 θ(题眼)
用什么模型 前沿闭源集成(Gemini-2.0-Flash/Pro) 前沿闭源集成(6 个:Claude-Sonnet-4/o4-mini/GPT-4.1...) 单个 8B 开源小模型(Distill-Qwen3-8B / ProRL-1.5B)
核心卖点 大规模发现,算力充裕 样本高效(150 次 vs 数千次) 可训练 + 小模型也能破界 + 能力可迁移
prompt 里放什么 Meta info + 多个先前程序 + parent parent + 若干 inspiration Meta info + 仅 parent(可选,省 token)
采样方式 异步顺序采样,单响应 队列式(试过全异步) 批采样 \(B\times n\),喂饱 vLLM/SGLang
程序库大小 未指定 archive 40、islands 2(小而精) population 10000(大库促多样)
抗"懒惰"机制 无专门机制 novelty 拒绝采样(嵌入+LLM judge) lazy penalty:惩罚与库中任意程序等价的输出
选哪个 LLM 变异 人工指定模型池 bandit(UCB1) 动态选 无需选(单 LLM)
RL 环境类型 —(不训练) —(不训练) 动态可验证环境(库=课程) vs 静态环境
circle packing 最好界 2.63586276 2.63598283 2.63598308(最优)
circle packing 求解耗时 ~75 秒 3 秒(最快)

一句话:如果说 ShinkaEvolve = "AlphaEvolve 骨架 + 三个让搜索更聪明地花每次评估的模块 + 开源",那么 ThetaEvolve = "AlphaEvolve 骨架 - 集成 - 复杂度(简化成单 LLM/大库/批采样) + 一条 RL 训练回路(把库变成动态环境)"。前两者在"如何更好地推理"上竞争,ThetaEvolve 换了个维度——"让模型把推理时学到的东西沉淀进参数"。这是它唯一但根本的差异化。

[!TIP] ② prompt 优化 / agentic 上下文管理(另一条被 ThetaEvolve 归并的线) - OPRO / EvoPrompt / PromptBreeder / GEPA / DSPy / Self-Refine:把 LLM 放进评估回路做 prompt 优化——模型基于反馈迭代更新 prompt 里的上下文以提升下游表现。 - Reflexion(Shinn et al. 2023)/ Agentic Context Engineering(Zhang et al. 2025):把轨迹信息/反馈存进显式上下文管理器,在后续 prompt 里"翻出"这些经验。 - 本文的区分:作者指出这些 prompt 优化与演化程序搜索系统仍以推理时管线为主,底层 LLM 不内化发现的能力——这正是 ThetaEvolve 要补的洞。ThetaEvolve 把"程序库"看作一种 context manager,但额外让它驱动 RL

[!TIP] ③ 测试时 RL 与可验证环境(ThetaEvolve 的方法论来源) - AlphaProof(Hubert et al. 2025, Nature):把预训练 LLM 与 AlphaZero 式 RL 循环耦合进 LEAN 证明助手(自包含自动验证器)。除大规模离线 RL 外,它还用 Test-Time RL(TTRL)——推理时围绕难目标生成一堆形式化变体,在 LEAN 环境里继续 RL,实现强的问题特定适应。ThetaEvolve 明说自己受此启发:把 AlphaEvolve 式程序演化管线当成一个"自适应可验证环境(adaptive verifiable environment)"(Zeng et al. 2025, RLVE),对连续奖励目标做 RL。 - RLVE / Adaptive Verifiable Environments(Zeng et al. 2025):ThetaEvolve 直接借用这个概念——环境能随模型能力自适应地给出"难度合适"的任务。

[!TIP] 什么是"可验证环境(Verifiable Environment)"与"动态 vs 静态"? RLVR(RL with Verifiable Rewards)的核心是:奖励不来自学出来的 reward model,而来自一个规则化、确定性的验证器(如"这个数学证明在 LEAN 里过不过""这个 circle packing 有没有重叠、半径和多少")。这样奖励无法被 reward hacking,信号干净。ThetaEvolve 的每个任务都配了这样一个不可攻击(unhackable)的评估器。"静态"环境指每回合都从同一个初始程序 \(P_0\) 出发(即传统 RLVR);"动态"环境指环境状态(程序库)会随搜索不断更新,下一回合可以从库里已发现的中间程序 \(P_{i-1}\) 出发。Appendix D 严格论证了:对极难开放问题,静态环境几乎永远采不到那个"高级但低概率"的最终程序 \(P\)(奖励极稀疏),而动态环境把它分解成一串中间步,每步都有可观的成功概率——这是 ThetaEvolve 能训得动 8B 小模型的数学根因(见 §4.3.2 的公式讲解)。


3 方法(核心)

ThetaEvolve 的关键特性分四块:直接简化批采样早检查 + lazy penalty(可选) reward shaping。前两块服务"更高效的推理",后两块服务"能做的 RL 训练"。

3.1 Direct Adjustment(相对 AlphaEvolve/OpenEvolve 的直接简化)

[!NOTE] 为什么敢反其道简化成单 LLM? 因为 ThetaEvolve 的目标不同:AlphaEvolve/Shinka 要在固定的、不可训练的模型上榨出最好结果,所以只能靠"多个强模型互补 + 精巧采样"。ThetaEvolve 一旦允许训练,就可以让单个模型通过 RL 逐渐变强,集成的收益被"训练"这条路替代了。这也让系统大大变简单、更可复现、更适合小模型本地跑。

3.2 Batch Sampling and Generation(批采样)

AlphaEvolve 每次迭代只建一个 prompt、拿一个响应,虽用异步管线,但仍吃不满 vLLM/SGLang 这类优化过的批推理引擎。ThetaEvolve 改为:每步独立从库里采 \(B\) 个 parent → 产生 \(B\) 个 prompt → 每个 prompt 生成 \(n\) 个响应 → 共 \(B\times n\) 个子程序。这些响应及其指标同时可用于 RL 训练。插库时逐个顺序插入并每次重排库,相比其他系统操作开销可忽略。(实验设 \(B=32, n=16\),即每步 512 个新程序。)

[!TIP] 批采样为什么既提效率又是 RL 的前提? 两个作用叠加: 1. 推理吞吐\(B\times n=512\) 个请求一起发,GPU 利用率远高于"发一个等一个"。Tab.6 实测:同样跑 400 步(20.48 万新程序),OpenEvolve 顺序采样要 63.6 小时,ThetaEvolve 批采样只要 5.4 小时——快约 12 倍(4×A6000)。 2. RL 的 group:GRPO 需要"同一 prompt 下一组响应"来算组内相对优势(advantage)。批采样天然产出 \(n\) 个同 parent 的响应,正好构成 GRPO 的一个 group。所以批采样不只是提速,它是让这个演化环境能接上 GRPO 的结构性前提

3.3 Early Check and Lazy Penalty(早检查 + 懒惰惩罚)

LLM 响应常有各种毛病(缺 diff 块、子程序编译错等)。ThetaEvolve 做一系列早检查避免无谓评估,并给这些情况赋负分。给定 parent 程序 \(pp\)、响应 \(r\)、parser 产出的子程序 \(cp=cp(pp,r)\)、评估器 \(E\)

\[ s(pp, r) = \begin{cases} -0.4, & \text{若 } r \text{ 中无 diff 块}, \\ -0.3, & \text{否则若无有效改动 } (cp \equiv pp), \\ -0.2, & \text{否则若无解}, \\ -0.1, & \text{否则若解非法}, \\ E(cp), & \text{否则(正常评估)}. \end{cases} \tag{1} \]

其中"无解"含编译错/执行错/超时等;"非法解"指程序成功产出解但过不了有效性检查(如 circle packing 里圆重叠)。

符号 含义
\(pp\) parent program,被改进的父程序
\(r\) LLM 的响应(含 CoT + SEARCH/REPLACE diff)
\(cp=cp(pp,r)\) parser 把 \(r\) 的 diff 应用到 \(pp\) 得到的子程序
\(E(\cdot)\) 任务特定的评估器,返回目标分数
\(cp\equiv pp\) 子程序与父程序等价(去注释后)——即"没做实质改动"
\(-0.4 \sim -0.1\) 四档递增的惩罚分,越靠前的错误越严重(格式层面)、扣得越狠

[!TIP] 把 lazy penalty 讲透 + 为什么它对 RL 是"crucial"? 动机:改进开放数学问题极难——当性能已接近已知最好界时,绝大多数修改都不会带来更好的分数。这时 RL 会诱导一种投机行为:模型发现"直接复读当前库里最好的那个程序"就能拿到高分(因为那个程序确实分高),于是懒得真的去改进,只会 copy-paste。 对策:Eq.1 里的 \(-0.3\) 档(cp≡pp)只惩罚"和 parent 一样";但作者在 Appendix B.1 说明,实际实现里把等价性检查扩展到库中所有历史程序——只要子程序(去注释后)等价于库里任何已有程序,就判懒惰、给负分。因为 RL 可能让模型记住并复读库里任意一个曾经的强程序,不只是当前 parent。 数值举例:假设当前库里最好程序分 2.635。模型偷懒直接输出那个程序 → 被判 cp≡库中程序 → 得 \(-0.3\)(而非 2.635)。而一个真的尝试改进、但让分数略降到 2.634 的诚实改动 → 得 \(E(cp)=2.634\)于是"诚实但暂时变差" (2.634) 的奖励远高于"偷懒复读" (−0.3)——梯度会推模型去继续探索改进而非固守。这是把"探索"这件事直接编码进奖励结构的巧妙一手,也是纯推理 AlphaEvolve 不需要、但一旦上 RL 就必须有的机制。

3.4 (Optional) RL Reward Shaping(可选的奖励塑形)

ThetaEvolve 提供一个自适应可验证环境给 RL。最朴素的奖励就是原始目标分数(对 CirclePacking 够用)。但有些任务目标值范围很窄(如 SecondAutoCorrIneq 只在 0.90~0.96),无法有效区分不同解的奖励。于是对这类任务做归一化。对给定目标分数 \(s\)(可能来自早检查),定义奖励函数 \(R\)

\[ R(s) = \begin{cases} s, & \text{若 } s<0 \text{ 或未启用 reward shaping}, \\ k \cdot F(s), & \text{否则}. \end{cases} \tag{2} \]

其中 \(F:[0,\infty)\to[0,1]\) 是塑形函数,\(k\in\mathbb{R}^+\) 是缩放因子(论文取 \(k=3\))。对每个任务人工指定目标值上下界 \(U,L\) 与因子 \(\alpha\ge1\),定义:

\[ F(s) = \{\text{clip}(H(s),\ 0,\ 1)\}^\alpha, \tag{3} \]

\(\alpha\) 越大,分数越接近已知最好值时奖励涨得越猛;\(H(s)\) 是把 \([L,U]\) 线性映射到 \([0,1]\)

\[ H(s) = \begin{cases} (s-L)/(U-L), & \text{若为最大化任务}, \\ (U-s)/(U-L), & \text{若为最小化任务}. \end{cases} \tag{4} \]
符号 含义
\(s\) 原始目标分数(或早检查的负分)
\(U, L\) 人工设的目标值上/下界(锚定该任务分数的"合理区间")
\(H(s)\) 线性归一化,把 \([L,U]\) 映到 \([0,1]\);最大化/最小化方向不同
\(\text{clip}(\cdot,0,1)\) 截断到 \([0,1]\),超出区间的分数不再额外奖惩
\(\alpha\ge1\) 幂次,放大"接近最优"区域的奖励梯度;越大越激进
\(k\) 整体缩放(取 3),把 \([0,1]\) 拉到 \([0,3]\) 与负分档拉开差距

[!TIP] 把 reward shaping 讲透 + 数值举例 + 与 Shinka 的对照 动机:GRPO 靠组内相对优势学习,若一组响应的分数都挤在 0.90~0.96 这个窄带里,减去均值后的优势几乎为 0,梯度信号被"淹没"在噪声里,学不动。Reward shaping 把这个窄带拉伸\([0,k]\),放大差异。 数值举例(SecondAutoCorrIneq,最大化,取 \(U=0.96, L=0.91, \alpha=1, k=3\)): - 解 A:\(s=0.94\)\(H=(0.94-0.91)/(0.96-0.91)=0.6\)\(F=0.6^1=0.6\)\(R=3\times0.6=1.8\)。 - 解 B:\(s=0.92\)\(H=(0.92-0.91)/0.05=0.2\)\(F=0.2\)\(R=0.6\)。 - 原始分只差 0.02(0.94 vs 0.92),塑形后奖励差 1.2(1.8 vs 0.6) ——GRPO 现在能清晰地把 A 排在 B 前面。 - 若换 \(\alpha=3\):解 A 的 \(F=0.6^3=0.216 \to R=0.65\),解 B 的 \(F=0.2^3=0.008\to R=0.024\)——\(\alpha\) 越大,越是把奖励几乎全给最靠近 \(U\) 的少数解,对"能快速逼近下界"的强模型(如 8B)合适,对爬得慢的弱模型(1.5B)则过于激进(§4.4.3 的消融正说明这点:8B 用 \(\alpha=3\) 好,1.5B 要 \(\alpha=1\) + 更窄的 \([L,U]\))。 对照 [[ref21_shinkaevolve]] 的 bandit 奖励 \(\exp(\max(r-r_b,0))-1\):两者都在"放大有意义的分数差异",但对象不同——Shinka 塑形的是给 bandit 选 LLM 用的奖励(哪个模型更会提大改进),ThetaEvolve 塑形的是给 GRPO 更新 θ 用的奖励(让训练信号在窄带里可分)。一个选模型,一个训模型,正好对应两篇论文的路线分野。


4 实验

4.1 Setup(实验设置)

4.2 Main Result:用 ThetaEvolve scale(破界)

主实验见 Tab.2。对 Distill-Qwen3-8B,ThetaEvolve 在 CirclePacking 上RL 和无 RL 都超过 AlphaEvolve。附录还显示:本文的解是非对称的,而 AlphaEvolve 的是对称的;本文解视觉上接近 ShinkaEvolve,但后者用了 6 个前沿模型集成、程序要 ~75s,本文只要 ~3s。

跨所有任务,RL + ThetaEvolve 一致优于纯推理,即便用更少训练步(每步 512 个新程序);两者都显著优于初始程序。作者提醒:界越接近已知最好,进一步的提升越难,小改进也非平凡;且分数相近的解在结构上可能差别很大——如 ThirdAutoCorrIneq 上 1.5B 达 ~1.6、8B 达 ~1.5,看似差不多(相比初始 3.1586),但 8B 构造的函数复杂得多

Tab.1 / Tab.2 关键数字摘录

任务 Human AlphaEvolve ShinkaEvolve ThetaEvolve (8B)
CirclePacking (↑) 2.634 2.63586276 2.63598283 2.63598308
FirstAutoCorrIneq (↓) 1.5098 1.503164 1.503133

这张表就是全文的"存在性证明":一个 8B 开源模型,在两个 AlphaEvolve 招牌问题上都拿到了新的最好界

4.3 Analysis of RL training(RL 到底学到了什么)

4.3.1 模型真的学会"演化"了吗?(能力可迁移)

作者在 CirclePacking-T 上可视化 ProRL-1.5B-v2 的训练曲线(Fig.3 左),除 w/ RL 和 w/o RL 外,加了第三条设定 "Load CP@150"——加载最好 w/ RL 运行的 step-150 checkpoint(best score 2.5225),然后在其上做纯推理

观察:(1) w/ RL 比纯推理改进更快(按训练步或生成程序数)且最终更好;(2) 用 RL 训好的 checkpoint 做推理("Load CP@150")爬得比 w/ RL 还快,best score 也超过用原模型推理的——说明 RL 确实在参数层面更新了模型,使其更擅长程序演化(虽仍略逊完整 RL 运行)。

更进一步,把这个 CirclePacking 训好的 checkpoint 拿去未见任务(Fig.3 中/右):相比基座模型,它显著提升平均性能,常常匹配甚至超过那些任务上的 w/ RL 运行,best 也略升。这说明 RL + ThetaEvolve 动态环境可能让模型获得一种能跨任务迁移的演化能力,为"单任务 RL 训练范式能否扩成通用后训练配方"提供了正面信号。

Figure 3: RL 训好的模型在纯推理下超越基座模型——不仅在已训目标任务,也在未见任务上。"Load CP@150" 加载最好 w/ RL 运行的 step-150 checkpoint(best 2.5225),阴影为跨种子标准差

Figure 3 逐面板解读(ProRL-1.5B-v2,上排=跨种子均值,下排=最好种子;每列一个任务): - 左列(CirclePacking,已训任务):三条线 w/ RL(橙) > Load CP@150(绿) > w/o RL(蓝) 早期,但 Load CP@150(绿)起步就冲得极快——因为它带着 RL 学到的参数进来,均值 2.3852 甚至超过 w/ RL 的 2.3498;最好种子里 w/ RL 最终登顶 2.5225。要点:绿线证明"参数里真的沉淀了演化技巧",一上来就快。 - 中列(HadamardMatrix,未见任务):CP 训好的 checkpoint(绿 Load CP@150)在这个没训过的任务上,均值 0.5231 > w/ RL 0.4808 > w/o RL 0.4920——迁移过来的能力甚至超过在本任务上直接 RL。这是"跨任务泛化"最有力的一格。 - 右列(ThirdAutoCorrIneq,未见任务,↓越低越好):绿(1.6424) ≈ 橙 w/ RL(1.6412) < 蓝 w/o RL(1.6766)——迁移的 checkpoint 与本任务 RL 打平,都明显好过纯推理。 - 总览:三列一致——RL 学到的不是某任务的具体解,而是"如何在能力边缘做程序改进"的通用策略,所以能零样本迁移。

4.3.2 与常规 RL(静态环境)的对比

作者强调"必须用能存储并更新经验的动态环境"。对照基线:在静态环境里做 RL(永远从初始程序开始,即 AlphaEvolve 消融用的设定)。结果(Fig.4)显示巨大差距静态环境 RL 远差于 ThetaEvolve 动态环境 RL,甚至不如 ThetaEvolve 的纯推理基线

Figure 4: RL + ThetaEvolve 动态环境 显著优于 RL + 静态环境。静态环境即永远从初始程序开始,类似 AlphaEvolve 的消融基线

Figure 4 逐面板解读(上排均值/下排最好种子;左两列 CirclePacking(1.5B 与 8B),右列 ThirdAutoCorrIneq(8B)): - 每格都是两条线:w/ RL(橙,动态环境) 一路碾压 w/ RL, static env(红,静态环境)。 - 左(1.5B, CP):橙 2.3498 vs 红 1.5985——红线早早 plateau 在 ~1.6,橙线持续爬到 ~2.35。差距巨大。 - 中(8B, CP):橙 2.6359840 vs 红 2.6123434——即便强模型,静态环境也卡在 2.61 上不去。 - 右(8B, ThirdAutoCorrIneq, ↓):橙 1.5210 vs 红 1.6173——橙持续下探,红停在 1.62。 - 要点:这组图是全文方法论主张的实证核心——不是"加了 RL 就好",而是"RL 必须配动态环境(库当课程)才好"。静态环境下奖励太稀疏(见下方 Appendix D 的公式),RL 学不到东西。

[!TIP] Appendix D:为什么静态环境 RL 对难题如此低效?(把马尔可夫分解讲透) 设开放问题有基础上下文 \(C\)、初始程序 \(P_0\),存在一个"高级但极低概率"的目标程序 \(P\),需经轨迹 \(\{P_0,P_1,...,P_{N-1},P\}\) 才能到达。记 LLM 一步到位直接采到 \(P\) 的概率 \(P_\theta(P\mid C,P_0):=\epsilon_\theta \ll 1\)。假设近似马尔可夫性 \(P_\theta(P_i\mid C,P_0,...,P_{i-1})\approx P_\theta(P_i\mid C,P_{i-1})=:\epsilon_{\theta,i}\),则由链式法则: $\(\epsilon_\theta \;\ge\; \prod_{i=1}^{N}\epsilon_{\theta,i}\)$ 三个推论: 1. 因 \(\epsilon_\theta\ll1\)静态环境下(每回合都从 \((C,P_0)\) 起)几乎永远采不到 \(P\),奖励极稀疏,RL 学不动。 2. 动态环境下(库里有 \(P_{i-1}\)),每个中间状态只需以 \(\epsilon_{\theta,i}\) 采出 \(P_i\)。这些中间概率的量级约 \(\Theta(\sqrt[N]{\epsilon_\theta})\gg\epsilon_\theta\)——把一个"天文数字般小"的联合概率,拆成 \(N\) 个"还算可观"的条件概率,训练信号立刻稠密起来。 3. 随 RL 推进,各 \(\epsilon_{\theta,i}\) 上升 → 由上式 \(\epsilon_\theta\) 也升 → 模型越来越可能采到最终的 \(P\)这是一个正反馈:库把难题分解成课程,模型沿课程逐步变强,反过来又更能触达终点直觉类比:让一个人一步跳上 10 米高台(静态)几乎不可能;但给他一段每级 0.5 米的台阶(动态),每一步都轻松,累积就上去了。程序库就是那段台阶——它把 RLVR 里最致命的"稀疏奖励"问题,用"演化课程"化解了。这是 ThetaEvolve 最漂亮的理论洞见。

4.3.3 Format Reward(排除"只学格式"的可能)

为排除"模型只是学会了演化的格式(一直输出 SEARCH/REPLACE、不复读 parent)而非真的会演化",对比一个 format reward 基线:只要 Eq.1 的分数不是 \(-0.4\)\(-0.3\)(即格式没错)就给奖励 1.0。在 ThirdAutoCorrIneq/ProRL-1.5B-v2 上(Tab.3),format reward 的 RL 无效,甚至差于纯推理(w/ RL format 1.6744 vs w/o RL 1.6123)。这坐实:用真评估器的 RL 学到的是能实质改进演化的非平凡能力,而不只是格式

4.4 Additional Analysis(消融)

4.4.1 Scaling Database(大库配合大算力)

OpenEvolve 有三个库大小相关参数:population_size(库容上限)、archive_size(精英档案大小,从中高概率采样做利用)、num_islands(独立子群数,越多越多样)。三档配置(Tab.4):Small(70/25/5)、Medium(1000/100/10)、Large(10000/1000/10)。

Figure 5: scale 库大小改进程序演化性能,尤其在增大测试时算力时。ProRL-1.5B-v2,画 3 种子上"最好目标分"的均值与最高值。左=CirclePacking-T,右=HadamardMatrix

Figure 5 逐面板解读(4 格:左二 CirclePacking,右二 HadamardMatrix;每对是均值/最好;横轴=生成程序数,纵轴=Best Score,三色线 Small 绿/Medium 蓝/Large 紫): - 早期(算力小,<~2 万程序)Small(绿)反而领先——因为高分程序被更频繁采到;注意 Large 库要约 1 万程序(~20 步)才填满、开始丢弃低分程序。 - 后期(算力大):Small/Medium 很快 plateau(绿线早早压平在 ~1.7/2.0),而 Large(紫)持续爬升并最终最高(CP 达 ~2.15)——大库提升候选程序多样性,强化演化搜索的有效性。 - 要点:这是个清晰的"大库 × 大算力"协同规律——库太小会过早收敛,库大在算力充足时才显威力。与 [[ref21_shinkaevolve]] 的"小档案(40)+样本高效"形成鲜明对比:Shinka 假设评估预算紧(所以要省),ThetaEvolve 假设可以 scale 算力(所以要大库促多样)。两种设计对应两种资源假设

4.4.2 Batch Sampling(批采样的效率)

在 OpenEvolve(异步顺序采样)上 scale 算力并与 ThetaEvolve 比(Tab.5,ProRL-1.5B-v2/CirclePacking-T):只生成 ~500 个新程序时(OpenEvolve 默认)提升很有限(1.2634);scale 到 30.72 万程序时 OpenEvolve 也能大幅改进(2.1773),但仍不如 RL 训练的运行(ThetaEvolve w/ RL 2.5225)。要点:scale 测试时算力对演化任务至关重要,无论用哪种推理管线;而 ThetaEvolve 靠批采样快得多(Tab.6:63.6h → 5.4h)。

4.4.3 RL Reward Shaping(塑形参数的影响)

在 ThirdAutoCorrIneq 上(Tab.7):适合 8B 的参数对 1.5B 不最优。原因:8B 能快速逼近截断下界 \(L\)(step 20 就到 ~1.53-1.57),而 1.5B 只到 1.8-2.0 且从不低于 1.60——所以 \(\alpha=3\) 对 1.5B 太激进,更窄的 \([U,L]\) + 更小 \(\alpha=1\) 对它更好。实操建议:新问题先跑无 RL 当强基线,再据观测分数分布定 \(U,L,\alpha\);若没配额调参,保持 \(\alpha=1\) 且把 \([L,U]\) 收窄是稳健安全的策略

4.4.4 More Comparison with AlphaEvolve(同初始程序对照 FACI)

用 AlphaEvolve-v2 为 FirstAutoCorrIneq 提供的同一初始程序(分 1.5214)与 prompt对照(Fig.6,因图已省略嵌入):(1) 约 50 步后 8B 发现一个自卷积曲线与 AlphaEvolve-v2 高度相似的阶梯函数,分 1.5068 虽逊于 SOTA(1.5032),但已超人类 SOTA(1.5097),且 timeout 只要 350s(人类最好/AlphaEvolve-v2 常需数小时)。(2) 额外用 AlphaEvolve-v2 的 SOTA 解做初始化,8B 仍能小幅改进,但生成程序主要是对阶梯函数做小扰动、不像 AlphaEvolve-v2 那样激进探索——暗示 SOTA 解可能已是难以再突破的局部极小(呼应 [[ref21_shinkaevolve]] 承认的"过拟合强初始解"风险)。


5 结论 / 讨论

相关工作定位(§5):现有 prompt 优化与演化程序搜索系统仍以推理时管线为主,LLM 不内化能力;AlphaProof 把 LLM 与 AlphaZero 式 RL 耦合进 LEAN(自包含验证器)并用 TTRL 做问题特定适应。受此启发,ThetaEvolve 把 AlphaEvolve 式演化管线当成自适应可验证环境,对连续奖励目标做 RL

未来工作(§6): 1. AlphaEvolve/ThetaEvolve 是面向连续奖励优化问题的通用管线,适用范围远超开放数学题; 2. §4.3.1 的任务迁移现象提示可同时训多个目标(同任务不同参数如不同圆数,或完全不同的任务),甚至扩成后训练工作流; 3. 强调"让模型持续学习可能需要把静态环境换成与模型共同演化的动态环境"——这也为 RL 训练里的有效探索策略提供启示。作者把本工作定位为"对一个由 context manager(如程序库)控制的动态可验证环境应用 RL 的早期尝试"。

局限(散见全文):需人工设计不可攻击评估器与 meta-information;仅适用有明确数值目标的问题;reward shaping 的 \(U,L,\alpha\) 需按模型/任务调;对强 SOTA 初始解可能只做小扰动(过拟合初始化风险);ThirdAutoCorrIneq 因修正 typo 而与 AlphaEvolve 不可直接比。


个人思考

与其他论文的关联(放进本项目坐标系)

方法论启示(可迁移的通用思路)

  1. "历史/程序库"可以升级成"RL 课程":ThetaEvolve 最深的洞见(Appendix D)是——一个演化系统积累的中间产物,天然构成一条"由易到难"的课程,把 RLVR 最致命的"稀疏奖励"问题化解成"稠密的中间奖励"。任何"最终目标极难、但可分解成一串中间态"的 RL 问题,都该考虑用一个动态库把它变成课程,而不是硬在静态环境里撞稀疏奖励。
  2. 上 RL 就必须防"投机复读":一旦给演化环境接 RL,模型会立刻发现"复读库里最优程序"这条捷径。lazy penalty(惩罚与库中任意历史程序等价的输出)是个通用的反投机模板——凡是"奖励可由复制已有高分解获得"的 RL 设定,都要显式惩罚复制
  3. 窄目标带要 reward shaping 才能喂 GRPO:当任务分数挤在窄带里,组内相对优势会被噪声淹没。线性归一 + 幂次 \(\alpha\) + 缩放 \(k\) 是把窄带拉伸、恢复训练信号的实用配方;\(\alpha\) 按模型强弱调(强模型可激进、弱模型要保守)。
  4. "简化 + 训练" vs "复杂 + 冻结"是一条真实权衡:ThetaEvolve 证明,与其在冻结模型上堆集成/采样技巧(Shinka 路线),不如把系统简化、把省下的复杂度预算投到"训练模型"上。当你有训练能力时,很多推理时的花招可以被"让模型变强"替代。

在我的工作中能怎么用

开放问题 / 疑问

局限性(作为读者的补充判断)