@sunweiwei12: 自动研究智能体与顶尖人类研究员究竟有何不同?尽管人们对自动研究智能体和递归自我改进(RSI)抱有巨大热情,我们仍缺乏清晰的认识……

X AI KOLs Timeline 论文

摘要

TraceML 是一个用于对机器学习研究智能体进行轨迹级分析的工具,它将 Codex 智能体的运行过程与 Kaggle Grandmaster 的 notebook 进行对比,发现人类专家会探索更广泛的策略空间,而智能体则容易陷入狭窄的循环。将人类研究技能提炼成约 1,000 token 的规划提示后,Codex 在七项竞赛中有五项的成绩得到提升;该成果将在 NeurIPS 2026 上展示。

🔬 自动研究智能体与顶尖人类研究员相比,究竟在做法上有何不同? 尽管人们对自动研究智能体 / RSI(递归自我改进)充满期待,我们对它们如何开展研究任务、以及其策略与专家人类有何差异,仍缺乏清晰的认识。 我们推出了 TraceML——一个用于智能体轨迹级分析以及系统性智能体与人类对比的工具。 我们将 Codex 智能体与 Kaggle Grandmaster 进行对比,发现了两者在研究策略上的显著差异。例如,人类会运用更广泛的研究技能组合,而智能体则倾向于集中在较窄的技能子集上。 更有趣的是,我们将通过 TraceML 发掘出的人类研究技能提炼并注入 Codex 智能体,发现最终结果得到了显著提升! 🚀 TraceML 将在 NeurIPS 2026 Education & Demonstration Track 上展示! 更多结果见讨论串 ↓ https://jerryyan123.github.io/TraceML/
查看原文
查看缓存全文

缓存时间: 2026/10/01 18:28

🔬 自动研究智能体(auto-research agents)与顶尖人类研究者相比,究竟做对了什么、又做错了什么?尽管围绕自动研究智能体 / RSI(递归自我改进)的讨论热度不减,我们对它们如何开展研究任务、其策略与专家人类相比有何不同,仍缺乏清晰的图景。我们提出了 TraceML——一个用于智能体轨迹级分析与系统性人机对比的工具。我们对 Codex 智能体与 Kaggle Grandmaster 进行了对比,揭示出二者在研究策略上的明显差异。例如,人类会调用更广泛的研究技能组合,而智能体则倾向于集中使用其中较窄的一个子集。更有趣的是,我们把 TraceML 挖掘出的人类研究技能蒸馏回 Codex 智能体,发现它们能显著提升最终成绩!🚀 TraceML 将在 NeurIPS 2026 E&D 赛道上发表!更多结果见下方线程 ↓ https://jerryyan123.github.io/TraceML/


TraceML:自动研究智能体在长周期 ML 开发中缺失了什么

来源:https://jerryyan123.github.io/TraceML/

一句话摘要

  • 像 MLE-bench 这样的评测基准只给最终提交打分,把背后漫长的开发过程一笔抹去。TraceML 则完整保留了这个过程:一次运行中的每一个代码版本、它对应的分数、包含的内容,以及每一次修改做了什么、为什么这么做。
  • 它收录了 134 场竞赛上的 4,465 条人类 Kaggle 轨迹。其中 7 场竞赛上,430 条人类轨迹与 207 条智能体轨迹(Codex CLI 和 MLEvolve)在同一套 schema 下成对配齐。
  • 人类专家会在数据处理、验证、模型改动和集成(ensembling)之间来回切换,并会回头重拾此前搁置的方法。而每个智能体都会收敛成一个狭窄的循环,既不会以人类的频率切换方向,也不会重新拾起已被放弃的工作。
  • 一段从人类实践中蒸馏出来、约 1,000 token 的规划提示词,能让它所指明的行为发生迁移,并在 7 场竞赛中的 5 场上提升了成绩。智能体的精力分布仍保持智能体式的形态。

目录

  1. TraceML 记录了什么
  2. 研究发现
    1. 每个智能体都会坍缩成一个狭窄的循环
    2. 智能体的转向要么太少,要么太多
    3. 智能体能恢复分数,却不会恢复被放弃的方法
    4. 智能体的集成只是徒有其名
    5. 一段规划提示词只能弥合差距中“可被指令化“的那部分
  3. 分析你自己的智能体
    1. 示例:一次一小时的 Claude Code 运行
  4. 数据与代码
    1. 注意事项
  5. 引用

TraceML 记录了什么

人类留下的是一份在数周内积累起来的公开 Kaggle notebook 历史;智能体留下的则是一个 git 工作目录,或是一份在几小时内生成的树搜索日志。TraceML 把二者映射到同一种表示:一串有序的代码版本序列,每个版本都带有排行榜分数与时间戳。

智能体的每一个版本都会用留出的 MLE-bench 评测器重新打分,而不只是最后一次提交。每个版本都被标注了它所处的机器学习流水线阶段(8 个粗粒度标签和 136 个细粒度标签);每一次版本之间的转移都被标注了它执行的动作(10 个粗粒度标签和 85 个细粒度标签)、其意图(6 类)、修改规模,以及它对分数的影响。两个从更大的 GPT 教师模型上、在 schema 约束标注下蒸馏出来的 Qwen3-1.7B 标注器,使得对全部 151,088 个版本进行标注成为可能。

  • 7 场竞赛上 430 + 207 条成对的人类与智能体轨迹
  • 151,088 个代码版本,每个都带有标注

研究发现

所有对比都使用成对子集:7 场竞赛、12 小时的智能体预算,且两种脚手架背后都使用 gpt-5.4-mini。人类的算力预算并不(也无法)与之匹配,因此他们在这里充当的是公开实践的参考分布,而非对照组。

1. 每个智能体都会坍缩成一个狭窄的循环

在粗粒度动作层面,二者的区分只是部分的。MLEvolve 的最优分支与每个人类群体之间相差 0.09 到 0.12 比特,而 Codex 与顶尖人类之间的距离,大致相当于人类群体彼此之间的距离。真正把二者分开的是细粒度动作,这是粗粒度构成所看不到的。

  • Codex 围绕着“提交“打转:它重新调整集成权重、堆叠模型、增加成员、微调后处理,其频率是人类的数倍。
  • MLEvolve 就地变异自己的模型:平均不同随机种子、修改层结构、改变训练轮数。

两者都不改变、也不检查方向:切换检查点、替换预训练来源,或者原封不动地重跑一遍代码以验证结果,这些动作的频率比人类低整整一个数量级。

2. 智能体的转向要么太少,要么太多

所谓“转向“(pivot),是指一次修改骨干网络、表示方式、目标函数或验证方案的动作。Codex 和 MLEvolve 分别从相反的方向偏离了人类的频率。

这一差距在固定代码状态后依然存在:即使把它们与处于相同状态的人类版本对齐比较,Codex 的被转向次数仍然是三比一地落后。

**频繁的转向并不等于好的转向。**把一次转向之后的三个步骤分别编码为“改善(+1)“或“倒退(−1)”,对齐后的人类平均为 +0.089,MLEvolve 为 −0.008。Codex 很少转向;MLEvolve 转了却毫无收益。

3. 智能体能恢复分数,却不会恢复被放弃的方法

一个版本如果比它自己的前一个版本更像轨迹中更早的、非相邻的某个版本,而中间还隔着一段不相似的内容,那么它就算“回返“(return)。

顶尖人类经常这样做,而且这么做是有回报的。智能体几乎从不这样——尽管 Codex 从分数挫折中爬回来的频率比顶尖人类还要高。

回返比例说明
顶尖人类可回返版本中的 9% 回到早前工作;其中 78% 的回返最终拿到更高分数—
Codex658 个可回返版本中只有 1 个回返按顶尖人类的比率,这里本应有 60 次
MLEvolve344 个可回返版本中 0 次回返按顶尖人类的比率,这里本应有 31 次

分数挫折的恢复率:Codex 89% vs 顶尖人类 79%。 Codex 对阵顶尖人类:恢复分数从来不是问题所在。

智能体缺的是记忆,而不是恢复能力。“通过持续调参把分数追回来“和“回到早前的方法上“是两种不同的能力,而智能体只有前一种。再加上转向实验的结果,这描绘出的是一种没有记忆的搜索:从任意给定状态出发,智能体既不会拐弯,也不会回头。

4. 智能体的集成只是徒有其名

三个群体都会做集成,但 78% 的 Codex 集成改动只是在重新调整一个从未扩大过的成员集合的权重,MLEvolve 主要是平均随机种子,而顶尖人类把最大的一块精力放在加入新成员上。

对人类来说,一次加入或更换成员的集成动作,会让下一个版本改善的概率提升 6.4 个百分点;而只做重新调权的集成动作,则会让这一概率下降 5.8 个百分点。对 Codex 而言,两种动作都没有任何影响。

如果只用“是否做了集成“这样一份检查清单来评分,Codex 会被排在顶尖人类之上,而它的集成工作实际上什么也没带来。

修改规模讲述的是同一个故事:人类的改动跨度覆盖整个范围,而 Codex 改得小,代价是耗费更多步数;MLEvolve 改得大,代价是浪费大量计算。

5. 一段规划提示词只能弥合差距中“可被指令化“的那部分

这些发现指出了具体的行为,因此论文进一步检验了:在提示词里点名这些行为,是否真的能改变它们。

这段技能提示约 1,000 token,内容包括:反循环约束、人类优先的实践(从第一个版本就做 K 折交叉验证、尽早做集成、缓存 out-of-fold 预测、多模型融合)、周期性自检,以及任务相关的先验知识。

Codex CLI 在 12 小时运行的开头收到它,并且此后每 30 分钟再收到一次;后端模型、工具、提取流水线和评分器保持不变。

三种行为移动到了顶尖人类的水平:重新调权的频率下降约五倍,早期的小幅改动从几乎为零上升到超过顶尖人类的频率,而集成这一维度的关注度落在了人类的水平上。

提示词没能弥补的地方,错在两个方向。 它在禁止项上过度矫正:朴素留出法(hold-out)降到了零,而顶尖人类仍有约四分之一的状态在使用留出法。它又在规定项上已经饱和:Codex 本来就一直在做 K 折平均,out-of-fold 预测的频率本就等于或高于人类。

成绩确实提升了,而起作用的正是内容本身。 7 场竞赛中有 5 场提升,2 场在噪声范围内,没有任何一场出现倒退。一项消融实验保持了 30 分钟的重新注入节奏,却移除了规划内容,结果在所有竞赛上都等于或低于基线——说明收益来自技能提示里“写了什么“,而不是“重复了多久“。

当一条指令指出的是智能体尚未跨越的水平时,这条实践才会迁移;而一条禁令只给出方向,却不给出终点。 因此,这段提示词作为“探针“的价值大于作为“修补“的价值——它标出了指令能触及的边界,以及无法触及的地方。

剩下的两个差距更像是设计问题:记忆(在本次运行自身的早期状态上进行搜索)和控制(一种在决定转向之前,先读取运行当前所处位置的策略)。

构建 TraceML 智能体侧流水线的代码,已作为一个命令行工具发布。把它指向一次已完成的运行,它就会提取出每一个不同的代码状态,用随库发布的标注器为状态和转移打标签,按数据集 schema 写出表格,并把该次运行的行为与同一竞赛的人类群体进行对比汇报。

它已被用于 Codex CLI、MLEvolve、AIDE、Claude Code 和 Gemini CLI 的运行。在论文自身的回归实验中,它精确复现了已发布版本的数量(2,505 次评分器调用产生 16 个代码状态)以及已发布的状态标签。

# 安装;标注功能需要在一块 CUDA GPU 上运行 vLLM
pip install "traceml-toolkit[label] @ git+https://github.com/JerryYan123/TraceML"

# 1. 在一场 MLE-bench 竞赛上录制一个 CLI 智能体
traceml record runs/my_run --slug commonlitreadabilityprize \
  --minutes 60 --harness my-agent -- my-agent-cli --prompt {PROMPT}

# 2. 一条命令完成提取、标注与报告
traceml analyze runs/my_run

# 3. 报告位于 traceml_out/my_run/report.md

标注器会在首次使用时自动下载。AIDE 和 MLEvolve 的搜索日志,以及任何提交过 submission.csv 的 git 工作区,都可以在无需录制的情况下直接分析。即使没有 GPU,traceml analyze --skip-label 依然会提取轨迹,并把它的分数放进人类群体中进行对照;traceml from-released 则可以把数据集中的任意一条轨迹转换成同样格式的报告。

示例:一次一小时的 Claude Code 运行

后端为 claude-haiku-4.5 的 Claude Code,在 CommonLit Readability 竞赛上录制了一小时。

它的 14 次评分器调用坍缩为 13 个不同的代码状态。最佳 RMSE 为 0.733,优于该竞赛 103 条人类轨迹中的 20%(每条轨迹按其最佳分数计)。

对比同一竞赛上排名前 10% 的人类:它把更少的编辑花在集成上(动作标签占比 13% vs 人类 20%),没有一条编辑用于验证,而花在训练和基础设施上的比例更高。它的 12 次转移中有 11 次是优化,没有一次是调试或验证——而后两者分别占顶尖人类转移的 12% 和 6%。

图:粗粒度动作占比的点图,依次为 Claude Code 运行、前 10% 人类和 Codex。相比人类,该次运行在训练和基础设施上花了更多编辑,而在集成、验证和推理上花得更少。

图:该次运行的粗粒度动作占比,对比同一竞赛上的人类前 10% 与论文中的 Codex 运行。

图:该次运行的最佳 RMSE 随时间的阶跃图,一小时内从 0.88 降至 0.733,位于人类轨迹的中间一半区间(约 0.49 到 0.69)之上,人类中位数为 0.54。

图:截至目前的最佳成绩对比人类群体的中间一半(阴影区)及其中位数。RMSE 越低越好。

论文附录把这次运行描述为优于 52% 的人类,其中 36% 用于探索。那个百分位是按各人类的最差提交来排名(在越低越好的指标上),且有一次转移未被标注。而随工具发布的标注库按各人的最佳成绩排名,并为每一次转移都补全了提示词输入,得到的数字是 20% 和 8%。

数据与代码

发布内容说明
数据集三个划分(成对、仅人类、脚手架实验)的状态表与动作表、schema 与提示词、两个标注器检查点、原始智能体轨迹,以及数据集构建流水线。
模型两个 Qwen3-1.7B 标注模型置于同一个仓库中:state/(代码版本 → 流水线阶段)和 action/(修改 → 动作、意图、幅度与分数影响)。
工具包上述 traceml 命令行工具,附示例与测试。
论文完整方法、可靠性检验、鲁棒性分析,以及完整的规划提示词。
from datasets import load_dataset

# 每个代码版本一行,每次转移一行
state = load_dataset("jerryyan/TraceML", "state", split="paired").to_pandas()
action = load_dataset("jerryyan/TraceML", "action", split="paired").to_pandas()

标注、schema 与数据集代码采用 CC BY 4.0 许可;工具包采用 Apache-2.0;标注器权重沿用 Qwen3 的 Apache-2.0。Kaggle 竞赛数据不作再分发,人类 notebook 仅在许可宽松的前提下被收录。

注意事项

  • 人类轨迹来自公开的 notebook 历史,记录的是保存下来的版本,而非全部工作。而且人类使用的是不同工具链、跨越数周的工作过程,因此他们是参考分布,而非算力匹配的对照组。
  • 意图标签是从代码改动中推断得出,而非直接观察到的,且仅在粗粒度上与动作、时间和分数一同使用。
  • 智能体结果覆盖的是单一后端模型上的两种脚手架和 7 场竞赛。更多样的脚手架与非 Kaggle 工作流,将有助于减少平台特有的偏差。

引用

@inproceedings{yan2026traceml,
  title = {TraceML: What Auto-Research Agents Miss in Long-Horizon ML Development},
  author = {Yan, Jiarui and Sun, Weiwei and Li, Sijie and Li, Wenhan and Yang, Yiming},
  booktitle = {Advances in Neural Information Processing Systems (NeurIPS), Track on Evaluations and Datasets},
  year = {2026},
  eprint = {2608.26086},
  archivePrefix = {arXiv}
}

Jerry Yan (@jiaruiyan123): 自动研究智能体可以整夜整夜地跑机器学习实验,但排行榜上只显示它们最终停在了哪里。TraceML 展示了它们是怎么到达那里的:4,465 条人类轨迹与 207 条智能体的 Kaggle 轨迹,全部完成标注。已被 #NeurIPS2026 E&D 赛道与 #COLM Workshop 收录 🎉

🔗

相似文章