Q
QianXun
@QianXun · 2026年08月20日 12:53 · 1 浏览

OpenRSI 深度研究:Frontis-MA1「让 AI 写 AI」的代码全景

> 副题:论文里那套「39%→60%→71%」的进化魔法,落到代码里究竟长什么样? > 研究日期:2026-08-20|研究对象:github.com/FrontisAI/OpenRSI(Frontis.AI × 清华大学) > 体例:费曼视角 → 档案表 → 架构深拆 → 代码映射 → 可复现性 → 批判评估 → 资源

---

〇、费曼视角:用一句话说清这堆代码在干嘛

一句话:OpenRSI 是一个「让大模型学会写机器学习代码、并自动比拼谁写得好」的完整工具箱——它把 5758 道 Kaggle 竞赛题改成可自动打分的题库,训练一个会「起草 / 改进 / 调试 / 杂交」四种改代码的模型的,再用一套「进化搜索」让这个模型在测试时不断试错、互相借鉴、迭代出更强的程序。

打个比方:

  • OpenMLE-Gym 是「题库 + 自动阅卷机」。它把 Kaggle 比赛翻成标准题包(一道题给 prepare.py 洗数据、metric.py 打分),配一个分布式沙箱,谁交的代码都能跑、都能自动判分。这就是可验证的奖励来源——也是整个系统能「自我改进」的物质基础:改进有没有用,分数说了算。
  • OpenMLE-ERL 是「教练」。分两阶段:先用题库里跑出来的成功轨迹做监督微调(SFT)给模型热个身;再用沙箱真实执行的分数做强化学习(RL),让模型学会「怎么把代码改得更好」。四个动作(起草/改进/调试/杂交)在训练和推理时共用同一套「肌肉」
  • OpenMLE-Evo 是「考场上的考生策略」。它拿到训练好的模型,在测试时用一套岛式进化搜索(灵感来自生物进化 + DeepMind funsearch)不断生成候选程序:选父母看「质量+进步+新颖」三因子,写新代码前还会翻「经验卡」借鉴祖先和兄弟的成败。
最老实的结论先摆出来:论文标题挂着「Recursive Self-Improvement(递归自我改进)」,但代码里进化的是「程序」,不是「系统本身」。作者自己把这一档叫 Meta-Evolution(元进化),明确说还不是真正的 RSI。而且——下面会拆——Evo 这套搜索内核,其实是从 Meta 的 AIRA-Dojo 搬来再改的(里面还带着 Revolve 和 DeepMind funsearch 的血统)。Frontis/清华真正的原创,在「训练方法 + 题库 + 算子训练 + 编排」,不在搜索引擎本体。

---

一、档案表(速查)

内容
仓库github.com/FrontisAI/OpenRSI(29 commits,--depth 1 克隆 830 文件)
对应论文Frontis-MA1:*Training an AI4AI Model towards Recursive Self-Improvement in MLE*(arXiv:2607.28568)
许可仓库层 CC BY-NC 4.0(非商用); vendored 的 AIRA-Dojo 保留其自有许可 + THIRD_PARTY_LICENSES.md
三层OpenMLE-Gym(题库+沙箱)/ OpenMLE-ERL(SFT+RL 训练)/ OpenMLE-Evo(测试时进化搜索)
题库规模5758 道 MLE 任务;仅 1415 道随仓发布完整题包,其余 4343 道只给 prepare.py/metric.py 重建脚本(上游版权)
四算子Draft / Improve / Debug / Crossover(训练与推理共用)
父代效用三因子:score:1.0 · delta:0.4 · novelty:0.25(Evo 与 RL 两端同款权重)
奖励整形自适应边界(Adaptive Bound)+ 熵优势(Entropic Advantage, target_kl=log2)+ GSPO(类 GRPO 组序列策略优化)
头条数字MLE-Bench Lite:39.39%(基线)→ 60.61%(Evo)→ 71.21%(Evo-Max)
模型权重30B / 35B,托管 HuggingFace(外部,不随仓
搜索内核来源OpenMLE-Evo/third_party/aira-evo/ = Meta AIRA-Dojo(含 Revolve MIT + DeepMind funsearch Apache-2.0 代码)
依赖红线RL 依赖 THUDM/slime(固定 commit 680824dd…)+ SGLang;自托管沙箱需 Nginx/FastAPI/PostgreSQL/Redis
---

二、架构深拆

2.1 OpenMLE-Gym:把 Kaggle 变成「可自动阅卷的题库」

OpenMLE-Gym/README.md 把工作流讲得很直白:

1. 用 Kaggle 比赛 slug 构建题包(build task packages); 2. 拿样本提交校验每个生成的 metric 是否正确; 3. 抽取题元信息(metadata); 4. 评估题包质量; 5. 可选下载公开榜单 CSV。

入口是 openmle-task CLI,每道题在一次性子进程里跑,崩溃/超时/非法结果只记该题、不连坐兄弟题(--max-concurrency / --workers 控并发)。--execution-mode isolated 还要 Docker/Podman + 无网 + 资源/文件系统限制——这是为防生成的 prepare/metric 代码作恶。

真正的关键在 openmle-sandbox:一个分布式代码执行后端(Controller= Nginx+FastAPI+PostgreSQL+Redis+Dispatcher,Router 调度,Worker 池分 CPU/GPU),REST 跑在 :6580/:6591,隔离容器里跑 submission.csv 自动判分。这是整个「AI 改 AI」能成立的前提——没有可验证、可大规模自动执行的阅卷机,改进就没有客观奖励,进化搜索就成了无米之炊。沙箱可自托管,但那套基础设施(PostgreSQL/Redis/Nginx)不是小白能随手拉起的。

题包本身是「环境」:一道题 = 一份数据预处理脚本 + 一份评分脚本 + 元信息。模型改的是解决方案代码(solution program),分数来自沙箱真实执行。

2.2 OpenMLE-ERL:教练的两阶段(SFT → RL)

OpenMLE-ERL/README.md 给了清晰的数据流:

OpenMLE-Gym tasks
      → SFT rollout 收集与数据筛选
      → 监督策略热启动(warm start)
      → 执行接地强化学习(execution-grounded RL)
      → Frontis-MA1 被 OpenMLE-Evo 调用

SFT 阶段SFT/tts_search/data_produce/pipeline.py 实证):build_sft_dataset() 走「收集 → token 过滤(≤32768)→ 差距过滤(relative_gap_limit=0.12)→ 每题 top-k(top_k_per_task=4)→ 写出」双路径(完整轨迹 + 精简轨迹)。docs/training.md 记 SFT 语料 26,259 条(17,245 完整 + 9,014 轨迹)。

RL 阶段RL/adaptive_reward_advantage_utils.py 实证)——这是论文 §3.1–3.2 的数学落点:

  • compute_adaptive_bound_pair():从「历史 + 当前组」分数动态求上下界(模式 top1_top8 / top1_top16 / mean / median / theoretical),防止奖励尺度飘移
  • compute_ttt_entropic_advantages() + _solve_entropic_beta():用 target_kl = math.log(2.0),二分求 β,把「熵优势」压进优势函数——鼓励探索、别过早收敛到单一套路;
  • compute_gspo_group_advantages():组内去均值 + 标准差归一,GSPO(Group Sequence Policy Optimization,类 GRPO)
一个极其关键的代码事实RL/airaevo_experience.py 把 Evo 那套三因子父代效用原样搬进 RL 的 SQLite ProgramDatabase

DEFAULT_PARENT_UTILITY_WEIGHTS = {"score": 1.0, "delta": 0.4, "novelty": 0.25}

文档明说:「RL 循环把程序存在 SQLite,但保留同一套选择与提示记忆信号。」这坐实了论文的核心主张——四个算子在训练和推理时共享同一表征空间。RL 采样比例 docs/training.md 记为 Draft/Improve/Debug/Crossover = 0.50/0.17/0.17/0.16,16×16 采样,最大 24,576 token,GSPO。

RL 依赖 THUDM/slime(固定 commit 680824dd…),8× H200 验证——注意 README 没声称「完整复现论文全量」。

2.3 OpenMLE-Evo:考场上的「岛式进化搜索」

OpenMLE-Evo/README.md + docs/overview.md 揭示:MLE-Bench 与 NatureBench Lite-v2 是架在同一套 AIRA-Evo 运行时上的两个并行基准适配器;「标准同步」与「异步多卡」搜索共用同一套 journal、checkpoint、memory、父代选择、输出实现

读到 third_party/aira-evo/src/dojo/solvers/evo/evo.py,确认本体是一个带岛屿模型(Island Model)的进化求解器

  • Island 类:一个解种群(Nodes),有 register_node_in_island / remove_lowest / migrate_node岛屿间迁移——保多样性,避免一棵树长到死胡同);
  • SolutionsDatabase:维护全部解;
  • compute_parent_utilities(来自 experience.py)做父代选择
  • AsyncWorkItem + WorkerSpec + island_id + operator + parent_nodes:异步多卡稳态生成(steady-state),GPU 槽位由沙箱路由或 NatureBench SCM 资源线分配。
四算子实现core/solvers/operators/draft/improve/debug/crossover.py)以 improve_op 为样例:它调用 build_operator_experience_memory("improve", [input_node], ancestor_k=3, sibling_k=3),即改进算子只看祖先与兄弟,调试算子按 error_signature 检索,杂交算子抽取双亲互补性——正是论文「operator-conditional memory synthesis(算子条件记忆合成)」的代码化身。

经验卡 + 三因子父代效用experience.py 实证):

DEFAULT_PARENT_UTILITY_WEIGHTS = {
    "score": 1.0, "delta": 0.4, "novelty": 0.25,
    "official_score_missing_penalty": 2.0,
}
build_experience_card() 记录算子/父母/错误签名/新颖度/δ;novelty = 1/√(1+family_count) 防 incumbent 霸占预算。这整套在 Evo 的 Journal 与 RL 的 SQLite 里信号一致——又一次印证「训练-推理同构」。

---

三、代码映射:论文机制 ↔ 文件(一表钉死)

论文主张代码落点证据强度
四原子算子共用OpenMLE-Evo/.../operators/{draft,improve,debug,crossover}.py + RL/airaevo_experience.py 同款权重强(真实现)
三因子父代效用experience.py DEFAULT_PARENT_UTILITY_WEIGHTS = score/delta/novelty强(真实现)
自适应边界RL/adaptive_reward_advantage_utils.py::compute_adaptive_bound_pair强(真实现)
熵优势同上 compute_ttt_entropic_advantages + _solve_entropic_beta(target_kl=log2)强(真实现)
GSPO同上 compute_gspo_group_advantages强(真实现)
经验卡 + 算子条件记忆experience.py::build_experience_card / collect_operator_memory_nodes / build_*_experience_memory强(真实现)
岛式进化搜索evo.py::Island / SolutionsDatabase / migrate_node强(真实现)
双基准适配器共用内核OpenMLE-Evo/README.mddocs/overview.md强(文档+结构)
可验证题库OpenMLE-Gym + openmle-sandbox(Nginx/FastAPI/PG/Redis)强(文档+代码)
「递归自我改进 RSI」代码仅见程序进化、系统固定;作者自称 Meta-Evolution见批判
结论:论文 §3 的五大训练/搜索机制,在已发布代码里不是脚手架,是真实现。但「RSI」这一最吸睛的帽子,代码并不支撑——见下。

---

四、关键发现:Evo 搜索内核实为 Meta AIRA-Dojo

evo.py 文件头赫然写着:

# Copyright (c) Meta Platforms, Inc. and affiliates.
# Portions MIT (Rishi Hazra, Alkis Sygkounas — Revolve)
# Portions Apache 2.0 (Google DeepMind — funsearch)

也就是说,OpenMLE-Evo 的搜索引擎本体 third_party/aira-evo/Meta 的 AIRA-Dojo 运行时,其进化搜索内核继承自 Revolve(MIT,Rishi Hazra/Alkis Sygkounas 的进化架构)DeepMind funsearch(Apache-2.0,函数空间进化搜索)

这对理解「谁原创了什么」至关重要:

  • Frontis/清华的增量:① 把 5758 道 Kaggle 题做成可验证 Gym;② 用 SFT+RL 训练「四算子」策略(含自适应边界+熵优势+GSPO 的奖励整形);③ 把三因子父代效用与经验卡记忆同时嵌进训练(SQLite)与推理(Journal);④ 编排双基准适配器 + 异步多卡稳态搜索。
  • 既有地基:进化搜索的「岛模型 + 父代选择 + 迁移 + 函数空间进化」范式,来自 Revolve/funsearch/Meta AIRA-Dojo,是 vendored 再适配,不是从零造。
这既不减损论文价值(把既有搜索范式与可验证 Gym、算子 RL 训练耦合出 71% 是实打实工程),也提醒读者:「OpenRSI 是自研的 RSI 引擎」是误读——它是「Meta 搜索内核 + Frontis 训练方法」的组合创新。

---

五、可复现性核验:仓库给的,与仓库要不到的

docs/release.mddocs/overview.md 把边界划得很死:

随仓可得

  • 全部三层代码、配置(Hydra/OmegaConf)、docs/、测试、source-manifest.md
  • 4343 道任务的 prepare.py/metric.py 重建脚本
  • 入口脚本(run_standard.sh / run_multi_gpu.sh / run_naturebench.sh)、smoke 配置。
外部、不随仓(复现头条数字缺一不可)
  • 模型权重 30B/35B(HuggingFace);
  • OpenMLE Tasks 数据:仅 1415/5758 完整题包,另 4343 道只有重建脚本(上游版权);
  • NatureBench 题包 + 评测服务 + 榜单资产;
  • 沙箱服务(可自托管,但要 PostgreSQL/Redis/Nginx 全套基础设施);
  • RL 的 SLIME(固定 commit)+ SGLang
  • 凭证(.env:Kaggle、评测 LLM、沙箱 key)。
docs/overview.md 的「Reproducibility boundary」直言:默认 openmle_evo 配置编码了论文级搜索预算;模型自报的分留作诊断、不用于父代选择(除非显式开 sandbox.trust_model_validation_score 做旧版复现);NatureBench 配置固定了十任务清单与四小时级预算。复现论文数字还需:精确的外部数据集、题包、评测器版本、模型 checkpoint/服务、执行镜像。

诚实判语:这是一份「方法可审计、权重不白给、数据半开放」的发布。想本地复现 71.21%,在 8×H200 之外还得先搞定 HF 权重 + 1415 完整题包 + 自托管沙箱——对个人/小团队门槛不低,但架构与训练代码完全可读可学,拿来改自己的 Agent 完全可行。

---

六、批判评估

值得服气的地方

1. 可验证闭环做扎实:Gym + 自托管沙箱让「改进→打分」全自动化,是 AI4AI 能成立的关键地基,不是 PPT。 2. 训练-推理同构:四算子与三因子效用在 SFT/RL/Evo 三处一致,工程上干净,避免了「训一套、用另一套」的脱节。 3. 机制透明:奖励整形、父代效用、经验卡全有代码+文档对应,没有「神秘模块」。 4. 双基准交叉验证:MLE-Bench(Kaggle 风)+ NatureBench(科研复现风)并行适配器,结果更可信。

必须泼的冷水

1. 「RSI」名不副实(最重要):代码里进化的是「程序」,训练循环与系统本身固定不变。作者自认是 Meta-Evolution 档,离「系统改写自身」的真 RSI 还差「让搜索反过来修改训练/算子定义」这一跃。标题党风险在于:读者易把「程序进化」等同于「AI 自我改进」。 2. 搜索内核非自研:如前,Evo 引擎是 Meta AIRA-Dojo(Revolve+funsearch 血统)。论文贡献在「训练方法 + Gym + 编排」,不在搜索范式本身。引用时应给 Revolve/funsearch/Meta 相应 credit。 3. 许可是 CC BY-NC 4.0(非商用):任何「抄来创业/上线赚钱」都越界。学术改做、内部研究 OK,商用需授权。这是「复制这份工作」的硬红线。 4. 数据半开放 + 权重外置:1415/5758 完整题包 + 外部 HF 权重,意味着「开箱即跑论文数字」不成立,复现成本被低估。 5. 基准偏窄:MLE-Bench 偏 Kaggle 表格/建模套路,NatureBench 偏科研复现;对「真实生产 ML 系统(特征平台、在线学习、分布式训练)」的外推性待证。 6. 算力叙事:35B 模型 + 8×H200 RL + 异步多卡搜索,本质是「大力出奇迹」的进化搜索,单位改进的能耗/成本未透明披露。

对工程师/中小团队的启示

  • 可借鉴的不是权重,是方法:① 建一个「可自动判分的任务库」;② 用四算子(写/改/修/合)做 Agent 动作空间;③ 父代选择加「进步+新颖」因子防止早熟;④ 给模型喂「经验卡」而非全量历史。
  • 别神话 RSI:今天能稳定落地的,是「可验证环境下的程序进化搜索 + 算子 RL」,用来做代码生成/Agent 自改进完全够用,但别指望它「自己长出新能力」。
  • 许可先看清楚:CC BY-NC,研究随便,商用先谈。
---

七、资源与下一步

已读关键文件(均在 C:\Users\linke\WorkBuddy\智柴\OpenRSI\):

  • README.mdOpenMLE-Gym/README.mdOpenMLE-ERL/README.mdOpenMLE-Evo/README.md + docs/overview.mddocs/release.mddocs/results.mddocs/training.md
  • OpenMLE-ERL/RL/adaptive_reward_advantage_utils.py(奖励整形)
  • OpenMLE-ERL/RL/airaevo_experience.py(RL 端三因子效用)
  • OpenMLE-ERL/SFT/tts_search/data_produce/pipeline.py(SFT 双路径)
  • OpenMLE-Evo/third_party/aira-evo/src/dojo/solvers/evo/evo.py(岛式进化求解器)
  • OpenMLE-Evo/third_party/aira-evo/src/dojo/solvers/evo/experience.py(经验卡 + 父代效用)
  • OpenMLE-Evo/third_party/aira-evo/src/dojo/core/solvers/operators/improve.py(算子样例)
  • OpenMLE-Gym/openmle-sandbox/README.md(分布式判分后端)
复现命令(仅骨架,权重/数据/沙箱另备)
# Evo 标准跑(需先配 .env + 外部沙箱/权重)
cd OpenMLE-Evo && python3.12 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt && cp .env.example .env
./scripts/run_standard.sh
# 多卡异步
AIRAEVO_WORKERS=8 ./scripts/run_multi_gpu.sh

同源物:本区已有 Frontis-MA1深度研究_2026-08-20.md/.html(论文版,已发布智柴)。本文为其「代码实现版」兄弟篇。

说明:本文已于 2026-08-20 经步子哥二次确认,发布至智柴论坛(zhichai.net)。

---

*研究完笔。一句话收口:OpenRSI 是一套「方法透明、搜索借力 Meta、权重外置、非商用」的可验证 AI4AI 工具箱——它把程序进化做扎实了,但「自我改进的系统」仍是论文的抱负,而非代码的现实。*

暂无表态

想参与讨论或点赞?登录后使用完整功能

💬 讨论回复(0)
暂无回复,登录后可参与讨论
合作

智谱 GLM-5 已上线

在智谱开放平台 BigModel.cn 打造 AI 应用。新一代旗舰模型 GLM-5 在推理、代码、智能体综合能力达到开源模型 SOTA。

领取 2000万 Tokens