RSI Paper
All PapersRESEARCH NOTE / 2310.02304

Self-Taught Optimizer (STOP): Recursively Self-Improving Code Generation

STOP:用 improver,改进 improver

Eric Zelikman 等

Submitted Verified Version · v3Note Updated
THE QUESTION WORTH READING

从一个调用 language model 的程序 improver 出发,让它优化自身,在代码生成流程中探索 recursive optimization。

Classification & RSI Relation 1 Variant · Editorial Assessment

主题标签用于检索;以下按实际 Experiment / Variant 判断更新对象与证据。Not Demonstrated 表示这项研究未提供相应证据。

Main Method

Update Target
Architecture Evolution
Loop Role
Proposer · Selector · Integrator
Persistence
Across Improvement Rounds
Recursive Reuse
Demonstrated
Evidence
Task Gain · Recursive Reuse
System Boundary
Optimizer Code;以该论文实际可更新组件为边界,固定部分见下方判定。
Feedback
人工给定 utility function 评估候选程序;improver 通过下游任务效用获得自身修改的 feedback。
Evidence Scope
论文明确说明 base language model 没有改变,因此这不构成完整的 Recursive Self-Improvement。 已核验固定版本的相关方法与主要结果;未独立复现。

更新的 Improver 源码再次用于修改 Improver,属于程序层 Recursive Reuse;LLM 与外部任务分布保持固定。作者对更广 RSI 使用较窄表述,本条只判断明确的程序边界。

检查原文设置 ↗
Paper Claim

原论文明确提出或报告的内容

Prior Work

相关文献中已有的知识与结论

Inference

基于证据的解释、重建或教学推演

Hypothesis

待验证的猜测、实验计划或新研究提案

Idea Reconstruction 是从已知背景出发的推演,不代表作者真实心理过程。Follow-up 是研究提案;相关工作比较不等于已证实 Novelty。教学示例与原文案例在正文中区分。

Contents · 12 Questions
01

Research Problem & Background

问题为什么重要,解决它有什么价值?

Paper Claim

不仅优化目标程序,还让负责优化的程序本身变得更好,是否可行?

Inference

重复调用一个固定 LLM 可以提升程序质量,但怎么分配调用、保存候选和利用失败仍是一段人为编写的 Scaffold。STOP 将这段 Scaffold 也变成待优化程序。潜在价值在于一次昂贵的 Meta-Optimization,可以被之后许多不同编程任务复用。

02

Prior Work & Research Gap

前人做到哪一步,缺口在哪里?

Prior Work

ReAct 展示了语言推理与工具调用结合的有效性;OPRO 将 LLM 用作候选解的优化器。它们为语言模型参与搜索提供背景。STOP 把待优化对象换成 Improver 自己,并通过它在一组下游任务上产生的程序质量评价它,形成多一层的优化目标。

03

Idea Reconstruction

从已有知识与失败模式出发,如何走到这个想法?

Inference

先从 Best-of-N 出发:同一 Prompt 采样多个程序,选最高分通常比只取第一个更稳。但固定采样会浪费已经得到的反馈。让 LLM 修改采样与搜索逻辑,就可能得到更好的 Improver。如果这段逻辑同样是一份程序,而评价函数已经能测它帮助下游任务的效果,就可以把相同的改进接口再应用到它自身。

04

Core Intuition

用一个清楚的视角抓住方法本质。

Inference

STOP 将程序 improver 本身作为待优化程序,recursive objective 因而从一次解题转向如何更好地 search 解法。改进是否有效由下游效用判断,保存的是新的优化代码;这里通过 recursion 改变的是组织 language model 调用的算法,而非 language model 的参数。

05

Method & Worked Example

沿着输入、处理、输出走完 Pipeline。

Paper Claim

初始 improver 多次调用 language model 并按 utility function 选择候选,然后将它自身作为下一轮的优化输入。

Inference

沿用原文程序优化任务的接口,作一个简化演示:输入是初始求解程序 s、评分器 u 和固定 LLM。Seed Improver 采样多个改写版本,执行评分后返回最好者。Meta 阶段把 s 换成 Improver 源码,把 u 换成“它改进一组程序后的平均得分”。输出可能是带 Beam Search 或候选重用的新 Improver;随后用这个新版继续优化自身。原文确实分析了多种此类搜索策略,具体简化输入并非原文样本。

06

Mathematical Foundations

从符号、直觉与简单例子理解理论。

Inference

先区分两层函数。u(s) 给一个解打分;I(u,s,L) 接收评分器、原解和 LLM,返回新解。把 I 放到多道任务上,平均最终得分得到 Meta-Utility。于是 I 也可以被自身当作字符串程序修改。递归写法定义了一个过程,不能单凭公式推出每步必然增益;有限样本 Meta-Utility 与真实任务分布之间还存在泛化误差。

s′ = I(u, s, L)
û(I) = (1/|D|) Σ_(u,s)∈D u(I(u,s,L))
I_(t+1) = I_t(û, I_t, L)
Inference

先看内层:u 是给程序打分的函数,s 是待改程序,L 是可调用的语言模型;I 返回修改后的 s′。第二式把一组任务 D 中这些修改结果的分数取平均,从而得到给 Improver 打分的函数 û。最后,将待改程序的位置换成 I_t 自己,并将评分函数换成 û,输入输出类型就闭合了。比如 I_t 原来只提一个候选,修改后会提三个候选并择优,下一轮就能用这个新过程继续修改 Improver。候选数增加也增加成本,因此更高分需要与等预算搜索比较。

07

Experiments & Claims

Research Question → Experiment → Answer

Paper Claim

Question:改进后的 Improver 是否更能帮助下游任务?→ Experiment:比较 Seed 与演化 Improver 在程序优化任务上的效用,并分析产生的搜索策略和迁移。→ Answer:作者报告有限任务上的增益,同时单独检查了生成代码尝试绕过 Sandbox 的行为;性能实验不等于对所有程序的安全或泛化保证。

Paper Claim

作者在一组下游任务中观察到,演化后的 improver 生成的程序优于初始 improver 的产出。

08

Takeaways

这篇论文改变了哪些判断?

Inference

STOP 的关键是把 Improver Quality 定义为它让别人变好的程度。它不要求更新 LLM Weights,但也没有覆盖全系统。读代码时要追踪两层预算:优化 Improver 的成本,以及使用它解决每个新任务的成本。

09

Most Fragile Assumption

哪一个假设失效会动摇方法?

Inference

最脆弱的假设是训练任务上的平均改进效用能代表未来任务。Improver 可能学会利用评分器结构,或把计算量集中在少量容易高分的任务上;这会提高 Meta-Utility,却削弱通用性。

Inference

论文明确说明 base language model 没有改变,因此这不构成完整的 Recursive Self-Improvement。

10

One-Week Reproduction

用一周检验一个最小且明确的命题。

Hypothesis

Day 1–2:写五类简单程序任务及隐藏输入。Day 3–5:用固定 LLM、固定调用上限比较 Seed Best-of-N 与两轮自我修改的 Improver。Day 6–7:在未见函数族上评估,每次记录实际 LLM 调用和执行次数。只检验搜索策略的迁移,不以几次成功推断无界 RSI。

11

Counterexample Design

如何构造有辨识力的反例?

Hypothesis

令训练评分器总是先执行小输入,而隐藏任务包含超大输入及失败超时。一个学会加大无意义搜索或利用固定测试顺序的 Improver 可能在训练上很好。严格控制执行预算后若优势消失,就能将机制收益与预算利用区分。

12

Follow-up Research

从缺陷与需求推导新的研究问题。

Prior Work

后续相关工作 HyperAgents 已研究可编辑 Meta-Agent,并用受控的 Improvement@k 比较产生更好后继的能力。因此,仅增加 Improver 评测不足以支撑新颖性。

Hypothesis

把 Improver 视为带适用条件的程序:自动发现哪些任务结构适合 Beam Search、局部编辑或重启,并输出可检验的选择条件。相对 OPRO 的候选优化,这研究的是改进策略的可迁移选择定律。关键验证是换一类任务后,这些条件仍能预测策略优势;若只能记忆训练任务名称,就没有得到结构性知识。 相对 HyperAgents,待检验的缺口是改进机制在何种条件下可分解、移植与继承;需要同起点、同预算的组件交叉实验,识别机制作用及交互项。这个缺口尚未完成穷尽式检索,不能宣称已确认 Novelty。

Sources & Verification

阅读已固定版本的原文 Background、方法与主要结果,结合下列相关文献撰写。Paper Claim 表示作者报告,未独立复现;Inference 包括数学教学推演与 Idea Reconstruction。One-Week Reproduction、Counterexample 和 Follow-up 均为待执行提案,Novelty 尚需更全面的文献与实验检验。

  1. [1] Self-Taught Optimizer (STOP): Recursively Self-Improving Code Generation · v3 ↗原文 Background、Method / Formalization 与主要实验或理论结论。数字沿用原文设置;未独立运行完整实验。
  2. [2] ReAct: Synergizing Reasoning and Acting in Language Models ↗相关方法与研究背景;用于说明具体差异,不能替代对本篇结论的验证。
  3. [3] Large Language Models as Optimizers ↗相关方法与研究背景;用于说明具体差异,不能替代对本篇结论的验证。
  4. [4] HyperAgents ↗Follow-up 的相关工作核查;晚于原论文的研究仅用于评估提案,不作为作者当时的知识或动机。
arXiv:2310.02304 · v3 / REVIEWED 2026.09.13
返回全部论文