从 0 到 1:这个项目在做什么
1. 动机:自主迭代的 AI 研究员会不会“越走越偏”?
DiscoveryRSI 这类 AI 科研系统把研究表示成一个循环:提出若干竞争假设,挑一个去做实验,根据真实结果修正,再提下一批。循环跑得越久,早期的误判越可能累积:反复选择表述漂亮但证据薄弱的方向、偏爱熟悉的方法、或者一味追逐看得见的验证分数。
一个自然的想法是在关键节点让人插手。专家也许只需一句话(“这两列可能来自同一测量,先排除泄漏”)就能把搜索拉回正轨;但人也可能锚定在自己熟悉的方向上,压制 AI 本来有效的探索。所以我们要回答的问题是:
在题目、模型、可见信息和每轮实验预算都固定的前提下,人在检查点上的轻量介入(点选一个候选,或写一段批评),能否让“假设驱动”的迭代更有效?如果有效,是因为选对了分支,还是因为带来了新知识、纠正了错误?
研究边界:原题目标、允许的数据、数据划分和官方评分器全部固定;三种方式只改变“提出什么假设、选哪一个去做”。模型权重全程不更新,人的意见只作为上下文进入后续推理。
2. 三臂设计:只有“谁来选”不同
A · AI 自主
AI 每轮生成 3 个候选假设,自己选 1 个,写代码、跑实验、读结果,进入下一轮。没有任何中途意见。
B · 人类点选 (本次由 Claude 代人类)
流程同 A,但每轮由“人”在 3 个候选里点一个。接口只接受候选编号,不接受任何文字建议。
C · 人类批评 → AI 选择 (本次由 Claude 代人类)
“人”不能点选,只能写一段批评/建议;AI 必须逐条回应后自己选,批评同时进入下一轮的候选生成。所以 C 是“影响选择 + 影响生成”的组合干预。
三臂保持一致的东西:同一任务、同一份冻结的起始代码(基线)、同一个基座模型和提示词、第 1 轮共享同一批 3 个候选(每臂展示顺序随机打乱)、每轮恰好一次对照 + 一次干预执行、都跑 20 轮。
3. 一轮里发生了什么
- 起点当前最好代码(incumbent)+ 本臂此前所有轮的实验证据
- ① 生成AI 提出 3 个互相竞争、可检验的假设:每个都写明预测、只改一处的对照实验、成功判据、证伪条件和其他解释
- ② 批评修订AI 换成“审稿人”角色,按原题目标、已测证据和资源限制修订这 3 个候选(不打主观分)
- ③ 选择:三臂唯一不同之处 A:AI 自己选 B:Claude 代人类点选一个 C:Claude 写批评 → AI 回应后选
- ④ 实现AI 只在当前最好代码上实施被选中的那一处改动,输出完整 Python 程序
- ⑤ 对照实验隔离沙箱里分别运行“对照”(当前最好代码原样)和“干预”(改动后),8 CPU / 16 GiB / 600 秒,无网络,单种子
- ⑥ 打分官方评分器在冻结验证集上给两边打分(Nature 任务为在线 mean_g),算出 Δ = 干预 − 对照
- ⑦ 反思AI 读真实回执和两份源码,先查实现是否忠于假设,再给出证据判定和下一步建议
- ↻ 下一轮验证分更好的代码成为新的 incumbent;失败的尝试作为证据保留,但不会成为起点
证据判定共四种:初步支持 不支持 不确定 实现与假设不符。“初步”是因为每轮只有一次单种子对照,不能当作因果证明。20 轮结束后:MLE 任务从全部已执行的代码里挑验证分最好的一份,用官方私有测试集只评一次分,再对照该比赛 Kaggle 排行榜的奖牌线;Nature 任务没有独立测试集,最终分就是 20 轮中见过的最好在线分数。
4. 具体实现
研究引擎
一个固定版本的基座语言模型,用 5 种提示词角色串起一轮:生成、批评修订、选择(A、C 臂)、实现、反思。所有角色都只能看到公开的任务说明、当前最好代码和本臂的执行历史。这是 DiscoveryRSI 研究流程的精简实现,还不是完整的多智能体运行时(没有文献检索和文件工具)。
沙箱执行器
代码交给独立的控制器在无网络的容器中运行,每次 8 CPU、16 GiB 内存,MLE 每次限时 600 秒(Nature 300 秒),只能用 numpy、scipy、pandas、scikit-learn、LightGBM、XGBoost 等库,没有 GPU。模型拿不到服务器 shell;控制器检查代码大小和输出文件格式,并给源码与回执记哈希。
验证集与测试集分离
MLE 任务:把官方公开训练集按固定随机种子一次性切出冻结验证集(呼吸、分子、句子这类成组数据整组切分,防止相邻样本泄漏)。每轮反馈只有验证分;官方私有测试答案只在控制器内部,运行期间 AI 和 Claude 都看不到,20 轮后只对验证集选出的那份代码读一次。
当前最好代码(incumbent)
控制器在本臂全部已完成的执行(对照与干预)中,取验证分最好的那份源码作为下一轮的对照。被选中的假设即使失败,也会作为证据留在上下文里,但不会成为下一轮的起点。
重试与归档
模型输出不合规(JSON 解析失败、候选格式错误、代码无法解析)时,同一阶段最多重新请求 3 次,每次尝试单独存档。对照执行失败视为基础设施问题,本轮停止,不算作假设被否定;这类轮次先把失败记录隔离归档,再从同一检查点重跑。干预代码自己崩溃或超时,则如实记为“实现与假设不符”。
Claude 如何代人类决策
通过运营者的待办收件箱:每个待决检查点显示该臂此前每轮的选择、对照/干预分数、AI 反思,以及本轮 3 个候选的标题、主张、实验和证伪条件。B 臂只提交一个候选编号;C 臂只提交一段批评文字。每条决策带时间戳记入日志。Claude 的原则是只用同一重复内的信息、力求提升原题分数、做可证伪的选择;但它同时为同一任务的 B、C 两臂做决定,也用了自己对这些 Kaggle 题的先验知识。
本页只公开摘要级信息:候选假设的标题、主张与实验概要,选择理由与批评,对照/干预分数,证据判定,截断后的反思。完整提示词、模型原始输出、源代码和运行配置不公开。
5. 主要局限(完整版见披露)
- B、C 的“人”是 Claude,不是真人;Claude 能看到同一任务各臂进展,三臂并不独立。
- 每个 MLE 任务只有 1 个重复,Nature 任务 3 个重复;每轮对照/干预都是单种子,很多 Δ 落在噪声范围内。个别基线本身不是逐位可复现的(同一代码重复运行分数不同),详见对应任务页。
- CHAMPS 的测试分无效:所用 MLE-bench 版本没有给测试分子提供坐标,比较测试分时已排除该任务。
- “验证集最优”是约 40 次带噪评估中的最大值,天然偏乐观;这正是需要独立测试集的原因。
- CPU 沙箱、600 秒限时,不是 MLE-bench 官方的 24 小时 GPU 智能体协议;奖牌线仅作参照,不是官方成绩。Nature 任务没有运行官方有效性审查。
结果总览
每一行是一个任务(Nature 任务按重复分行)。横轴是差距关闭比例:把“冻结基线”到“满分”之间的距离记为 100%,看各臂 20 轮里在验证集上走完了多少。对 AUC、准确率、QWK 这类满分为 1 的指标,它等于(最优 − 基线)/(1 − 基线);对 log loss、RMSE、MAE 这类越低越好、满分为 0 的指标,它就是误差降低的百分比;CHAMPS 的 log MAE 可为负数,换算成几何平均 MAE 的降低比例;Nature 的 mean_g 用论文参照 ARI 推出“全部聚对”时的满分。基线取同一份基线代码所有运行的平均。这样不同指标的任务可以放在一把尺子上,但它仍是验证集上的最好值,偏乐观;测试集结果见下表。点击任一行查看该任务的逐轮轨迹。
全部任务 × 三臂
测试集分数只对每臂“验证集最优”的那份代码评一次;奖牌按该比赛 Kaggle 排行榜阈值判定(CPU 沙箱、非官方协议,仅作参照)。模型调用与 token 为本臂实际记录;第 1 轮共享候选的生成成本只记在一个臂上。标 * 的 CHAMPS 测试分无效(测试分子缺坐标),不计入比较。点击任一行打开该任务。
任务与轨迹
先选一个任务。每个任务给出白话说明、冻结基线、最终结果,以及三臂 20 轮的验证分轨迹;点轨迹上的点或下方表格里的任一格,可以看那一轮的 3 个候选假设、谁选了哪个、Claude 的批评、对照与干预分数和 AI 的解读。
宏观总结与建议
加载中…
披露与局限
加载中…
系统导出自带的局限声明(英文原文)
数据导出时间:—。