MLE-bench: Evaluating Machine Learning Agents on Machine Learning Engineering
一句话总结:OpenAI 把 75 个精挑细选的 Kaggle 竞赛做成一个离线环境,让 AI agent(模型 + scaffold)像人类选手一样从零训模型、出
submission.csv,再用每个竞赛真实的 Private leaderboard + Kaggle 奖牌线给它打分——最强组合 o1-preview + AIDE 在 16.9% 的竞赛拿到奖牌(pass@1),pass@8 翻倍到 34.1%;但这离"打赢过 75 个竞赛的顶尖人类 Kaggler(历史上只有 9 人)"还很远,且 agent 在调试、从错误中恢复、算力/时间预算管理上系统性地弱。
- 来源:Chan Jun Shern*, Neil Chowdhury*, Oliver Jaffe*, James Aung*, Dane Sherburn*, Evan Mays*, Giulio Starace*, Kevin Liu, Leon Maksin, Tejal Patwardhan, Lilian Weng, Aleksander Mądry(OpenAI),ICLR 2025,arXiv:2410.07095v6,2025-02-26
- 代码开源:https://github.com/openai/mle-bench/
- 本地 PDF:ref32_mle-bench.pdf
TL;DR 速览
- 测什么:AI agent 的端到端、自主 ML 工程(machine learning engineering, MLE)能力——不是刷 HumanEval 那种"写一个函数",而是拿到一个真实竞赛的描述+数据,自己完成"准备数据 → 设计并训练模型 → 调试 → 跑测试集 → 产出提交文件"这一整套现代 ML 工程师日常干的活。刻意选了两个设计目标:(i) 任务有挑战性且能代表当代 ML 工程、(ii) 分数能直接对标人类水平(借 Kaggle leaderboard)。
- 怎么测: 1. 任务:从 5673 个已完结 Kaggle 竞赛里,人工筛到 75 个(外加 7 个开发集),覆盖 NLP/CV/信号处理等 15 个问题类别、三档复杂度(Low 29% / Medium 51% / High 20%); 2. 数据准备:Kaggle 常不放出测试集标签,作者手工重建 train/test split(多数取原训练集 10% 当测试集),并验证 sample submission 在新旧测试集上分数相近,保证可对标人类; 3. 评分:本地复现每个竞赛的评分逻辑 → 把 agent 提交打分 → 拿去和该竞赛 Private leaderboard 比 → 按 Kaggle 的 奖牌线(bronze/silver/gold,随队伍数变化)判是否得牌;headline 指标 = 拿到任意奖牌(bronze 及以上)的竞赛百分比; 4. agent scaffold:用三个开源 scaffold(AIDE、MLAB、OpenHands)套不同前沿模型(o1-preview / GPT-4o / Claude 3.5 Sonnet / Llama 3.1 405B),每个竞赛给 24 小时 + 单张 A10 GPU; 5. 防作弊/防污染:禁止手写标签、禁看在线题解、禁调外部 LLM;用 GPT-4o 查日志违规、用 Dolos 查代码抄袭;另做污染实验(familiarity 相关性 + 混淆题面)验证成绩没被记忆虚高。
- 关键成绩与 headroom:
- 最强:o1-preview + AIDE = 16.9% 任意奖牌率(pass@1),接近次好模型 GPT-4o(AIDE) 8.7% 的两倍;o1-preview 平均拿 7 块金牌(Kaggle Grandmaster 门槛是 5 金,但有 caveat)。
- scaffold 差异巨大:同是 GPT-4o,AIDE 8.7% vs OpenHands 4.4% vs MLAB 0.8%——AIDE(专为 Kaggle 造的树搜索 scaffold)碾压通用 scaffold。
- 多次尝试 scaling:pass@k 明显涨——o1-preview 从 pass@1 的 16.9% → pass@8 的 34.1%;GPT-4o(AIDE) pass@6 的 17.0% ≈ o1-preview pass@1,两者 pass@6 都约为 pass@1 两倍。
- 算力/时间 scaling:多给 GPU 几乎没用(8.7%→10.2%,且 agent 根本不用第二张卡);多给时间有用但边际递减——GPT-4o(AIDE) 24h 8.7% → 100h 11.8%。
- 人类对照:历史上只有 9 个人拿过 ≥75 个不同竞赛的奖牌——这条 headline 指标的天花板对标的是"顶尖 Kaggler 数年累积"的成就。
- 成本极高:一次完整跑(75 竞赛 × 24h)= 1800 GPU 小时;o1-preview(AIDE) 单 seed 平均烧 127.5M 输入 + 15.0M 输出 token。
- 一句话评价:MLE-bench 是"AI 能不能自动做 AI"这条安全叙事里最工程化、最有生态效度的一把标尺——它的聪明之处不在任务本身(Kaggle 竞赛现成),而在把"人类可比性"焊进了度量:直接复用真实 leaderboard + 奖牌线,让抽象的 agent 分数瞬间有了"这相当于人类什么水平"的刻度。核心信号:现在的 agent 会用成熟方法解经典问题,但不会调试、不会从踩坑里爬出来、不会盘算算力预算——而"从失败中恢复"恰恰是自主 R&D 最需要的能力。
tags: #benchmark #ML工程能力 #kaggle #human-baseline #agent-scaffold #AIDE #pass@k #compute-scaling #data-contamination #AI-R&D-automation #OpenAI
related: [[ref31_re-bench]](同为 ML R&D agent 基准,且借用了 MLE-bench 验证过的 AIDE scaffold;RE-Bench 明确批评"MLE-bench 分数难翻译成 AI R&D 自动化能力")· [[ref30_paperbench]](同 OpenAI 团队、更长时程的"复现论文"agent 基准)· [[ref33_scienceagentbench]](数据驱动科学 agent 基准)· [[ref09_meta-harness]](scaffold/harness 对 agent 分数的巨大影响,正是本文"AIDE 8.7% vs MLAB 0.8%"的最佳注脚)· [[ref17_self-harness]](自改进 harness 谱系)
摘要
我们提出 MLE-bench,衡量 AI agent 做机器学习工程的能力。为此我们从 Kaggle 精选 75 个 ML 工程相关竞赛,构成一组多样、有挑战的任务,考察训模型、准备数据、跑实验等真实 ML 工程技能。我们用 Kaggle 公开 leaderboard 为每个竞赛建立人类基线。用开源 agent scaffold 评测多个前沿语言模型,发现最好的组合——OpenAI o1-preview + AIDE scaffolding——在 16.9% 的竞赛达到至少 Kaggle 铜牌水平。除主结果外,我们还研究了 agent 的多种资源 scaling(运行时长、硬件、pass@k 尝试次数)以及预训练污染的影响。我们开源了 benchmark 代码以促进对 AI agent ML 工程能力的研究。
四大贡献:① 75 个离线 Kaggle 竞赛的 benchmark(ML 工程师团队手工打造);② 对 SOTA 模型 + agent 框架的大规模评测;③ agent 资源 scaling 实验(运行时/硬件/pass@k);④ 数据集污染与作弊监测工具的实验。
1 动机:为什么要一个"自主端到端 ML 工程"基准
论文的出发点是一个能力覆盖的空白:语言模型在 HumanEval、MBPP、APPS 这类编码 benchmark 上已近饱和,也被塞进各种编程工具(Copilot、Devin),agent scaffolding 让开发者工作流越来越自动化——但几乎没有基准去整体衡量"自主的、端到端的 ML 工程"。
[!TIP] 什么是 ML engineering(ML 工程),它和"写代码"有何不同? ML 工程指的是"把一个 ML 问题从数据到可用模型全流程做出来"的活儿:清洗/准备大规模(常是多模态)数据集、设计模型架构、写并管理长时间运行的训练脚本、诊断"模型效果差"这种没有明确报错的问题、反复实验调优。它和"根据 docstring 写一个函数"(HumanEval 那种)的根本区别在于: - 开放式:没有唯一正确答案,只有"分数更高"; - 长时程 + 试错:解一个竞赛要几十上百步迭代,train-debug-evaluate 循环反复跑; - 反馈慢且模糊:训练几小时才知道效果,而且"效果差"不会告诉你为什么差。 这正是本文选 Kaggle 竞赛的原因——它天然就是"ML 工程师日常工作"的浓缩。
为什么这件事值得单独评估? 作者把它挂在 AI 安全治理的框架上:一个能自主解决这类挑战的 agent 可能"极大加速科学进步",但也需要谨慎理解模型进展以便安全部署。MLE-bench 被明确设计成可用作:OpenAI Preparedness Framework 里的模型自主性(model autonomy)度量、Anthropic RSP 里的自主能力度量、Google DeepMind Frontier Safety Framework 里的 ML R&D 度量。
[!IMPORTANT] 本文的核心安全逻辑:一个能自主"改进自己训练代码"级别的 ML 研究 agent,可能让前沿模型能力增长得比人类研究员快得多。如果创新产出快过我们理解其影响的能力,就有"能力跑赢安全"的风险。作者认为"能解 MLE-bench 很大一部分"的模型很可能具备执行许多开放式 ML 任务的能力——所以要趁早测量、开源透明,让实验室的加速风险可被追踪。
两个关键设计选择贯穿全文:(i) 选有挑战、能代表当代 ML 工程的任务;(ii) 能把结果对标人类水平(这是靠 Kaggle leaderboard 实现的,也是本文相对同类工作最大的差异化)。
2 相关基准:MLE-bench 站在哪
作者把 MLE-bench 放进三条脉络对比。核心结论:用 Kaggle 测 ML 工程不是首创,但 MLE-bench 在任务数量、难度、人工移植质量、以及"从零解决"的要求上都更硬核。
[!TIP] ① 评估软件工程能力(SWE) - HumanEval / APPS / MBPP / LiveCodeBench:给自然语言描述让模型写代码。前沿模型已饱和这些(AgentCoder 在 HumanEval/MBPP 达 96.3%/91.8%),但并没有真的自动化软件工程师的工作。 - SWE-bench(Jimenez et al. 2024):让模型解真实开源仓库的 pull request,难得多但分数在稳步上升。与 MLE-bench 的差异:MLE-bench 的问题更开放、更难(有些是开放研究问题),且不像 SWE-bench 给你一个明确的 issue 去修——你得从零构建整个解法。作者提醒 MLE-bench 可能像 SWE-bench 一样进展飞快,所以要趁早测。见 [[ref31_re-bench]](RE-Bench 也拿 SWE-bench 当"可行性验证不足"的反例)。
[!TIP] ② 评估 ML 工程能力(本文最直接的邻居) - MLAgentBench(Huang et al. 2024b,本文的 MLAB scaffold 来源):取 13 个 Kaggle + 自制 ML 任务,给每个任务一个简单 baseline 解,评测 agent 能否在 baseline 上至少提升 10%。MLE-bench 的差异:任务多得多(75 个)、复杂度更高,且要求 agent 从零解题(不给 baseline),并用真实奖牌线而非"相对 baseline 提升 10%"来判分——后者的绝对水平锚在人类身上。 - ML-Bench(Tang et al. 2024):测 agent 用已有 ML 仓库(生成代码、执行命令去调用流行 repo)。差异:ML-Bench 考"理解并有效应用现成代码库",MLE-bench 考"为开放问题从头开发 ML 解法"。 - Weco AI 的 AIDE 报告(Schmidt et al. 2024,本文 AIDE scaffold 来源):声称在 Kaggle 数据科学竞赛上打赢 >50% 人类选手。作者反驳:同期 SOTA 模型在 MLE-bench 上只有约 10% 的时候能超过 median 分,远不到 50%——以此论证 MLE-bench 的选题比 Weco AI 的更难。 - DSBench(Jing et al. 2024,并发工作):也用 Kaggle 竞赛,但聚焦数据科学任务,且过滤准则会剔除数据集不符合简单模板的竞赛(为了自动化建任务),从而排除了很多非标准格式的有趣竞赛。MLE-bench 每个竞赛都由团队人工移植,任务更多样更难。
[!TIP] ③ 评估 AI Agent(多步、有 scaffold) - SWE-bench / MLAgentBench / MLE-bench 都是多步 agent 基准——LM、检索、外部工具被 "scaffold 起来"(用代码编排),解锁单次推理达不到的自主性(Zaharia et al. 2024 的 "compound AI systems" 观点)。 - AgentBench(编辑 Linux 权限等多轮挑战)、GAIA(466 个"人类简单、AI 难"的真实世界交互问题)、AgentQuest(模块化 agent 评估框架)、Kapoor et al. 的 "AI Agents That Matter"(对 agent 评估现状的批判性分析)。MLE-bench 属于其中软件/ML 域的多步 agent 基准。
对比一览(本文散落的对照汇总成表):
| 基准 | 任务来源 | 任务数 | agent 从零解? | 评分方式 | 人类对照 |
|---|---|---|---|---|---|
| MLAgentBench [Huang 24b] | Kaggle + 自制 | 13 | ✗(给 baseline) | 相对 baseline 提升 ≥10% | ✗ |
| ML-Bench [Tang 24] | 流行 ML repo | — | ✗(用现成 repo) | 代码执行正确性 | ✗ |
| DSBench [Jing 24] | Kaggle(模板过滤) | — | ✓ | 竞赛指标 | ∼ |
| SWE-bench [Jimenez 24] | GitHub PR | 500+ | ✓(修 issue) | 测试通过 | ∼(研究员估时) |
| MLE-bench | Kaggle(人工精选) | 75 | ✓ | 真实 leaderboard + 奖牌线 | ✓(Kaggle 选手,见 §3) |
3 基准设计:把 Kaggle 变成一个可对标人类的离线考场
MLE-bench 由 75 个从 Kaggle 手工移植的 ML 工程任务组成,每个都是一个完整的"离线 Kaggle 竞赛"。

Figure 1 逐元素解读(全文的"招牌图",一眼看懂整个考场):
- 左侧「MLE-Bench」绿色堆叠卡片:每个卡片是一个竞赛,含四件套——Description("训一个模型达到最高准确率…")、Dataset(train.csv / test.csv / sample_submission.csv)、Leaderboard(带金银铜牌图标,即人类成绩快照)。
- 步骤 ①(→ Agent):把竞赛描述+数据交给 Agent(图里"Thinking…"的小脑袋),agent 自主完成 Train model / Test model / Debug / Create submission。
- 步骤 ②(Agent → Grader):agent 产出紫色的 submission.csv 交给 Grader 本地评分。
- 闭环回到左侧:Grader 算出原始分(图里 Score 63.4%)→ 拿去和该竞赛的 leaderboard 比 → 判奖牌(图里得了铜牌)。
- 一句话:"本地评分 + 对标真实人类 leaderboard"就是 MLE-bench 相对同类基准的核心机制——agent 就像"穿越回竞赛当时去参赛"。
3.1 竞赛选取与规模(Dataset Curation)
漏斗式人工筛选(可复现的严格流程):
- 起点:Meta Kaggle 数据集里 5673 个已完结竞赛;先排除 Community Competitions(质量把关不如官方);对剩下的 586 个逐一人工审查其对当代 ML 工程的相关性。
- 9 条筛选准则(Appendix A.1,每个竞赛至少两位在顶级 AI 公司工作的 ML 工程师审):需要真正 ML 工程能力才能拿牌;题面足够明确可解(不必翻 Discussion 才懂);评分指标能本地计算;竞赛已结束(不再变);数据集没被 Kaggle 外大量使用(避开 MNIST 这类);train/test 同分布(可从公开训练集重建 split);最终提交是 CSV;不需从 Kaggle 外下载数据;数据集 license 允许收录。
- 最终 75 个:22 个 Low(30%)、38 个 Medium(50%)、15 个 High(20%),另加 7 个开发集(developing agents 时用,避免过拟合测试集);作者建议算力不够就只用 Low 子集。
- 竞赛总奖金 $1,948,016(平均每个 $25,974),含 OpenVaccine(COVID-19 mRNA 疫苗降解预测)、Vesuvius Challenge(破译古卷轴)等有真实价值的当代挑战。

Figure 6 逐元素解读:横轴是竞赛数量,纵轴是 15 个问题类别(人工标注),每条柱按复杂度三色堆叠(红=High / 黄=Medium / 绿=Low)。 - Image Classification 一骑绝尘(约 26 个,占 1/3 强),且三档复杂度都有;Text Classification(10)、Tabular(9) 次之。 - 长尾类别(Video Classification、Image to Text、Object Detection 等)只有 1–2 个竞赛——这解释了后面 Table 10 里很多类别 agent 得牌率是 0.0(样本太少,一个都没解出就归零)。 - 复杂度定义(关键,决定了"人类要花多久"的锚点):Low = 有经验的 ML 工程师能在 <2 小时内(不含训练时间)给出合理解;Medium = 2–10 小时;High = >10 小时。
3.2 数据准备:手工重建 train/test split
Kaggle 竞赛结束后常不放出测试集标签,所以不能直接用原测试集评分。作者的处理: - 若原数据集公开就直接用;否则从公开的训练数据手工造新 train/test split,默认取原训练集的 10% 当新测试集(个别例外,如 NYC Taxi Fare 若取 10% 会让测试集比原始大 100 倍,就保持原比例)。 - 关键的可比性保证:检查 sample submission 在新旧测试集上分数相近,确保新测试集与原始分布一致——这样 MLE-bench 上的分数才能与 Kaggle 人类 leaderboard 可比(尤其是平均意义上)。 - 完整的 75 个竞赛 split 方案见 Table 8(Appendix A.7),样本量从 144(denoising-dirty-documents)到 5500 万(NYC Taxi)不等。
3.3 评分口径:leaderboard 对齐 + 奖牌线 + headline 指标
这是 benchmark 的度量核心,务必逐项讲透。
(1) 用哪个 leaderboard? Kaggle 有 "Public" 和 "Private" 两个 leaderboard;作者发现提交常对 Public leaderboard 过拟合,所以一律用 Private leaderboard(快照取自 2024 年 5–8 月)来对标人类。
(2) 奖牌线(Medal thresholds,Table 1)——随竞赛参赛队伍数变化,使"同一枚奖牌在不同竞赛代表相近成就":
| 队伍数 | 0–99 | 100–249 | 250–999 | 1000+ |
|---|---|---|---|---|
| Bronze 铜 | Top 40% | Top 40% | Top 100 | Top 10% |
| Silver 银 | Top 20% | Top 20% | Top 50 | Top 5% |
| Gold 金 | Top 10% | Top 10 | Top 10 + 0.2%* | Top 10 + 0.2%* |
(*金牌线每多 500 队增加 1 个名额。MLE-bench 对所有 75 个竞赛都套这套阈值,即便原竞赛不发牌。)
[!TIP] 什么是 Kaggle medal(奖牌)?为什么它是好的人类刻度? Kaggle 按选手在 leaderboard 的相对排名发铜/银/金牌,是社区公认的"数据科学实力硬通货"。奖牌线随队伍数缩放的设计很关键:1000 队的竞赛里 Top 10% 拿铜,100 队的竞赛里 Top 40% 才拿铜——这样一枚铜牌在大小竞赛里代表的"击败了多少同行"是可比的。Kaggle 的进阶体系(Expert/Master/Grandmaster)正是靠累积奖牌数评定,Grandmaster 需要 5 枚金牌。所以"拿到奖牌"这个二元事件,天然携带了"相当于人类什么段位"的信息——这正是 MLE-bench 借它当 headline 指标的原因。
[!TIP] 数值举例:奖牌线怎么判? 假设某竞赛有 800 个队(落在 250–999 档)。agent 提交后本地评分,拿去插进 Private leaderboard 排名: - 若排到第 8 名 → 进 Top 10(250–999 档的金牌线是 "Top 10")→ 金牌; - 若排第 45 名 → 进 Top 50(银牌线)但没进 Top 10 → 银牌; - 若排第 90 名 → 进 Top 100(铜牌线)但没进 Top 50 → 铜牌; - 若排第 200 名 → 连 Top 100 都没进 → 无牌(但可能 "Above Median")。 再换 1200 队(1000+ 档):铜=Top 10%(前 120 名)、银=Top 5%(前 60)、金=Top 10 + 0.2%×(1200−1000)/500…≈Top 10 名。可见队伍越多,拿牌相对越难(要挤进更靠前的百分位)。
(3) Headline 指标 = "任意奖牌率":为给 MLE-bench 一个单一数字,报告 agent 提交拿到任意奖牌(铜及以上)的竞赛百分比。作者刻意让它很难:
[!IMPORTANT] 这条指标的天花板,对标的是"最顶尖人类 Kaggler 数年累积努力"的成就——历史上只有 9 个人拿到过 ≥75 个不同竞赛的奖牌。(titericz、kazanova、abhishek 等)。所以当 o1-preview(AIDE) 在 16.9% 竞赛拿牌、平均 7 块金牌时,这个数字要放在"人类天花板极高"的语境里读——它证明了非平凡的 ML 工程能力,但远未逼近人类顶尖。
(4) 其他报告项:也报 raw score(每个竞赛的原始分,用于追踪单竞赛进展,但因各竞赛指标不同难以跨竞赛聚合);以及 "Made Submission"(是否交了文件)、"Valid Submission"(格式是否合法)、"Above Median"(是否超过 leaderboard 中位)等中间指标。
(5) 提交验证机制:真实 Kaggle 允许每天最多 5 次提交到 Public leaderboard 查有效性+看分。MLE-bench 类比地给 agent 一个本地验证服务器(localhost:5000/validate),只查格式是否合法、不给分,无使用次数限制。
3.4 防作弊与防污染
[!TIP] 什么是 data contamination(数据污染)?为什么 Kaggle 基准尤其危险? 污染指"benchmark 成绩被人为抬高、且不可泛化"(Dekoninck et al. 2024 的定义)。对 MLE-bench 的具体威胁:这 75 个竞赛全是公开的——竞赛描述、顶级选手的题解、甚至数据集本身(含测试集)都可能在模型的预训练语料里。于是模型可能记住了答案或高层策略,让 MLE-bench 高估其真实能力。作者甚至发现 GPT-4 的 base model 在给出前几行后能复现 Titanic 竞赛数据集的若干行——污染是真实存在的。
规则(§2.3.1):① 提交必须由独立于 agent 的模型产生——禁止 agent 用自己的世界知识直接手写标签(防止它从预训练记忆里默写答案,逼它真做 ML 工程);② 禁止在线查题解(Kaggle/GitHub 上常有)。
三重监测工具: - 违规检测(log analysis):用 GPT-4o mini 按 3 条 rubric 查日志——是否手写了提交文件、是否调了外部 LLM API、是否试图非授权获取资源(Table 5/6)。对所有得牌提交都跑,发现的非零违规经人工复核全是假阳性(gpt-4o-mini 过于谨慎,把合法行为误报,如 o1-preview 14.1% 被误报"手写提交")。 - 抄袭检测(Dolos):把 agent 提交的代码和该竞赛 Top 50 公开 notebook 比对,相似度 >60% 就取消资格+人工复核。Dolos 先 tokenize 代码(对变量名不敏感)、再用 k=23 的 token 子序列做指纹。所有得牌提交跑下来无一超过 60%(Figure 7),未发现抄袭。
两个污染实验(§4,直接回答"成绩是不是记忆虚高"): - 实验 A:familiarity 相关性(Figure 5,未嵌入)——用"模型对文档每个 token 的平均概率"定义 familiarity(Carlini et al. 2023:训练见过的文档 token 概率更高),算 GPT-4o base 对每个竞赛主页 + 5 个最热讨论帖的 familiarity,与其在该竞赛的表现求相关。结果:Pearson r = −0.24(p=0.04),无正相关——模型"越眼熟"并没有"表现越好"。 - 实验 B:混淆题面(Table 4)——人工重写全部 75 个竞赛描述,抹掉 Kaggle 出处、竞赛名、非必要文本(保留关键信息),跑 GPT-4o(AIDE) 10 seeds。结果:原始 8.5% vs 混淆 8.4%,无显著差异——说明成绩没有依赖"认出是哪个竞赛"。
[!NOTE] 两个实验的合力结论:GPT-4o 对 Kaggle 竞赛的熟悉度没有系统性抬高其分数,也没有过度依赖原始题面形式。但作者诚实地说,这不能排除更微妙的污染(如学到高层策略),且对未来更强模型不作保证。
4 评测结果:会用成熟方法,不会调试恢复
执行环境:Ubuntu 20.04 Docker 容器(sysbox runtime,装了常用 ML 包 + 数据 + 验证服务器);每个竞赛给 agent 最多 24 小时;机器 = 36 vCPU / 440GB RAM / 4095 GiB SSD / 单张 Nvidia A10 GPU(24GB);所有实验默认 3 seeds(个别更多)取均值 ± 标准误。
4.1 主实验:scaffold 与模型(Table 2)
[!TIP] 什么是 agent scaffold?三个被测的 scaffold 有何不同? Scaffold(脚手架)是把 LLM 包成一个能自主行动的 agent 的那层代码:定义它能调什么工具、怎么循环、如何管理上下文、何时停。同一个模型套不同 scaffold,能力可以差好几倍(这正是本文最重要的发现之一,也是 [[ref09_meta-harness]] 的核心命题)。三个被测 scaffold: - AIDE(Schmidt et al. 2024,Weco AI):专为 Kaggle 竞赛设计——不是通用 agent,而是在解法空间做树搜索(tree search over solutions):生成一个解 → 评分 → 基于反馈改进/调试 → 循环,直到 24h 用尽或生成满 500 个节点。它反复催促模型改进分数。 - MLAB(MLAgentBench 的 ResearchAgent,Huang et al. 2024b):通用 agent,通过调用一组工具(列文件、读文件、改脚本等)行动。 - OpenHands(CodeActAgent,Wang et al. 2024):通用 agent 平台,也是工具调用式。 三者作者都做了小改动增强鲁棒性(Appendix A.6),但保留其核心行为。
变 scaffold(固定 GPT-4o):GPT-4o(AIDE) 8.7% ≫ OpenHands 4.4% ≫ MLAB 0.8%——尽管三者交的有效提交数量相近,专用的 AIDE 碾压两个通用 scaffold 10 倍。
变模型(固定 AIDE):o1-preview 16.9% 明显最强,几乎是次好的两倍。
Table 2|Scaffold × Model 主结果(均值 ± 标准误;o1-preview/GPT-4o AIDE 分别用 16/36 seeds,余用 3):
| Scaffold | Model | Made Sub.(%) | Valid Sub.(%) | Above Median(%) | Bronze(%) | Silver(%) | Gold(%) | Any Medal(%) |
|---|---|---|---|---|---|---|---|---|
| AIDE | o1-preview | 98.4 | 82.8 | 29.4 | 3.4 | 4.1 | 9.4 | 16.9 ± 1.1 |
| AIDE | gpt-4o | 70.7 | 54.9 | 14.4 | 1.6 | 2.2 | 5.0 | 8.7 ± 0.5 |
| AIDE | llama-3.1-405b | 46.3 | 27.3 | 6.7 | 0.0 | 1.3 | 1.7 | 3.0 ± 1.0 |
| AIDE | claude-3.5-sonnet | 68.9 | 51.1 | 12.9 | 0.9 | 2.2 | 4.4 | 7.6 ± 1.8 |
| MLAB | gpt-4o | 65.6 | 44.3 | 1.9 | 0.0 | 0.0 | 0.8 | 0.8 ± 0.5 |
| OpenHands | gpt-4o | 59.1 | 52.0 | 7.1 | 0.4 | 1.3 | 2.7 | 4.4 ± 1.4 |
[!NOTE] 注意 o1-preview 的金牌占比反常地高(Gold 9.4% > Bronze 3.4% + Silver 4.1%):这说明它一旦解得动一个竞赛,往往直接冲到金牌区(用了比当年选手更新的技术);而它解不动的竞赛就一块牌都没有——能力两极分化。作者提醒对标 Grandmaster(5 金)时的 caveat:并非所有选中竞赛都发牌、数据集/评分略有改动、agent 常享有"用更新技术"的优势。
失败模式定性分析(这段最有价值,直指自主 R&D 的短板): - 不用验证服务器:所有 agent 都经常交不出有效提交,尽管有本地验证服务器——分析 transcript 发现它们并不总去用(尽管 prompt 鼓励)。 - 通用 scaffold 过早收工:MLAB 和 OpenHands 常在开跑几分钟内就结束,尽管被要求用满 24 小时优化分数;而 AIDE 会反复催促模型继续改进直到 24h 或 500 节点用尽。 - scaffold 实现的小细节影响巨大:通用 scaffold 工具多、灵活,但失败面也更大——如 MLAB 常去读几千行的大文件,塞爆上下文窗口。作者修了很多明显 bug(Appendix A.6)但预期失败模式仍在。 - 不会盘算算力/时间:三个 agent 都不能有效把算力和时间限制纳入策略——会执行撑爆磁盘/内存的命令导致进程被杀、run 提前结束;也几乎从不verbalize"这段代码要跑多久"的考量。 - 总结性判断:agent 能在"用成熟方法能解"的竞赛上拿分,但难以调试问题、难以从失误中恢复。
按复杂度拆解(Table 9):难度越高越差,符合直觉——o1-preview(AIDE) 在 Low 34.3% / Medium 8.8% / High 10.0%(High 略高于 Medium 是噪声/样本少所致)。
按类别拆解(Table 10):极度不均——o1-preview(AIDE) 在 Image Regression 60.0% / Seq→Seq 45.7% / Signal Processing 42.9% / Training LMs 33.3% 表现好,但在 Image Segmentation / Object Detection / Forecasting / Image-to-Text / Multimodal / Finetuning LLMs 等一堆类别是 0.0%(这些要么样本极少、要么需要 agent 尚不具备的能力)。
4.2 多次尝试 scaling:pass@k(Figure 3)
[!TIP] 什么是 pass@k?MLE-bench 怎么估? pass@k(Chen et al. 2021)= "给 k 次独立尝试,至少一次成功"的概率。这里"成功"= 在该竞赛拿到任意奖牌。因为agent 天然能实现这个策略(重跑 k 次取最好一次),所以它是公平的 scaling 度量。从 n 个 seed 无偏估计(c = 成功的 seed 数): $$ \text{pass@}k := \mathbb{E}_{\text{Competitions}}\left[\, 1 - \frac{\binom{n-c}{k}}{\binom{n}{k}} \,\right] $$ 数值举例:某竞赛跑 n=16 seed,其中 c=2 次拿牌。pass@1 = 2/16 = 12.5%。pass@8 = 1 − C(14,8)/C(16,8) = 1 − 3003/12870 ≈ 76.7%——只要允许 8 次尝试,这个竞赛几乎稳拿牌。对所有竞赛求期望就得整体 pass@k。

Figure 3 逐元素解读:横轴尝试次数 k(1→20),纵轴 pass@k(%)。 - 橙线 o1-preview(AIDE) 从 pass@1 的 16.9% 一路爬到 pass@8 的 34.1%(图中橙线在 k=8 处约 34);蓝线 gpt-4o(AIDE) 从 8.7% 爬到 pass@18 的约 22%。 - 关键读数:GPT-4o(AIDE) 的 pass@6(17.0%)≈ o1-preview(AIDE) 的 pass@1(16.9%)——即"多给弱模型 6 次尝试"约等于"强模型 1 次"。且两个 agent 的 pass@6 都约为各自 pass@1 的两倍。 - 含义:并行多次尝试是一条便宜有效的 scaling 路径——因为 agent 单次尝试便宜,砸 k 次取最好,比换更强模型可能更划算(这也呼应 [[ref31_re-bench]] 的 "用更多 token 换性能" 观察)。
4.3 算力 scaling:多给 GPU 几乎没用(Table 3)
对比 GPT-4o(AIDE) 在三种硬件下的表现,看 agent 是否会因硬件调整策略(如只有 CPU 就训小模型):
| Setup | 说明 | Achieved Medal(%) |
|---|---|---|
| CPU-only | 无 GPU | 9.1 ± 1.0 |
| Standard | 36 vCPU + 440GB + 1×A10 | 8.7 ± 0.5 |
| Extra GPU | 2×A10 | 10.2 ± 2.0 |
[!IMPORTANT] 三种硬件表现惊人地相近(9.1 / 8.7 / 10.2,误差重叠)。人工查 "Extra GPU" 的日志发现 GPT-4o(AIDE) 根本没试图用第二张 GPU。这是 agent"不会管理/利用算力资源"的直接证据——多给硬件它不会用,这对"自主 R&D 需要高效调度大规模算力"是个明确的能力缺口。(注:Kaggle 免费给用户 16GB P100,选手还常自带硬件,所以这里的 A10 设定对 agent 已不算亏待。)
4.4 时间 scaling:多给时间有用但边际递减(Figure 4)
真实 Kaggle 选手常有数周到数月,而主实验只给 24h。作者跑 GPT-4o(AIDE) 100 小时(最大节点数从 500 提到 5000),每小时对 agent 的 best attempt 打分。

Figure 4 逐元素解读:横轴时间(0→100 小时),纵轴 Achieved Medal(%)。 - 前几小时陡升:agent 在开跑头一两小时就拿到相当数量的奖牌(曲线从 ~1% 冲到 ~7%); - 之后缓慢累积:从 24h 的 8.7% 慢慢爬到 100h 的约 11.8%——多给时间有用,但边际收益明显递减; - 偶尔回落:曲线有时下降,是因为 AIDE 挑"best attempt"的方法不完美(选错了它自己更好的那次提交)。 - 含义:agent 的进展主要发生在早期;长时程它不能像人类那样持续深挖(对照 [[ref31_re-bench]]/[[ref30_paperbench]]:"agent 短跑冲刺、人类长跑耐力"是这三篇共同的画像)。
4.5 污染实验的一个附带发现:近期竞赛更难(Figure 9)

Figure 9 逐元素解读:横轴竞赛截止日期(2013→2024),纵轴该竞赛得牌率(橙=o1-preview/AIDE,蓝=gpt-4o/AIDE),每个点是一个竞赛。 - 2013–2022 的竞赛散布着不少高得牌率点(0.4–1.0),但 2022 年后的竞赛几乎全趴在 0.0; - 作者的解读:模型在 2013–2022 的竞赛上能拿牌,但在更近期(往往也更难)的竞赛上吃力。 - 双重含义:① 这符合"更近的竞赛更难/技术更前沿"的直觉;② 也可被读作污染的间接信号(更老的竞赛题解在训练语料里更充分)——但结合 §4.1–4.2 的正式污染实验(无 familiarity 相关、混淆题面无影响),作者倾向于认为主因是难度而非记忆。
4.6 成本(§6 Accessibility)
MLE-bench 是极度 resource-intensive 的基准: - 一次主实验(75 竞赛 × 24h)= 1800 GPU 小时; - token 消耗巨大:o1-preview(AIDE) 单 seed 平均 127.5M 输入 + 15.0M 输出 token(跑完 75 个竞赛); - 这是复现门槛的主要来源——作者坦言用户可能因算力/token 成本难以完全复现。
5 局限与讨论(§6)
[!TIP] ① 污染与抄袭(最大的悬顶之剑) 数据集全是公开 Kaggle 材料,模型可能训过竞赛细节、题解、甚至含测试集的数据集,存在记忆答案/直觉从而高估能力的风险。已有抄袭/手写标签的缓解(Dolos + 日志分析),但"高层策略的复用几乎无法检测"。§4 实验对 GPT-4o 未见系统性污染效应,但对未来模型不作保证。未来可定期用新竞赛更新 MLE-bench 以领先污染。
[!TIP] ② AI R&D 能力覆盖不全(RE-Bench 正是攻击此点) MLE-bench 建来理解"自动化 ML 工程师"的 R&D 加速风险,但选题偏向"问题陈述清晰、数据干净有文档、指标明确"的 Kaggle 竞赛——而真实 AI R&D 常连问题陈述都没有,"搞清楚数据和指标本身就是问题的一部分"。不过 MLE-bench 确实覆盖了 R&D 的许多核心能力:准备大规模多模态数据、管理长训练脚本、调试差模型。([[ref31_re-bench]] 直言"MLE-bench 分数难翻译成 AI R&D 自动化能力",并以"有人类对照 + 更真实研究环境"补此短板。)
[!TIP] ③ 与真实竞赛的差异(可比性的边界) MLE-bench 用了不同的 train/test split 并重写了评分代码,引出"分数与人类 leaderboard 到底多可比"的疑问。作者已尽力保证新旧分布一致、验证 sample/gold 提交结果与人类 leaderboard 一致。另一个隐忧:算法进步会让老竞赛变简单(今天的知识/工具优于当年选手)——所以复杂度是站在"今天的 ML 工程师"视角标注的,且可能需随能力进步更新。
[!NOTE] ④ 可复现性/成本:1800 GPU 小时 + 上亿 token 的单次运行,贵且难复现,限制大规模比较。代码已开源,但"可扩展运行 agent"的基建是 infra-specific 的,只给了可改的示例。
结论:MLE-bench 通过紧密模拟"参加一场 Kaggle 竞赛"的体验,实现了 agent 与人类选手的直接对比;前沿模型 + scaffold(o1-preview + AIDE)能在 16.9% 竞赛拿牌。作者强烈鼓励开发更多自动化 ML 研究能力的评估(尤其更贴近"训练 LLM 的研究员工作流"的)。
Ethics(值得记一笔):作者明确写道——"一个能改进自己训练代码级别的、做开放式 ML 研究的 agent,可能让前沿模型能力增长得远快于人类研究员";若创新快过理解其影响的能力,就有制造"能造成灾难性危害却来不及对齐/管控的模型"的风险。开源 MLE-bench 正是为了让实验室的加速风险更透明可测。
个人思考
与其他论文的关联(放进本项目坐标系)
- 对 [[ref31_re-bench]](最重要的一组对话):两者是同一问题的两代答案。MLE-bench 用"现成 Kaggle 竞赛 + 真实 leaderboard 奖牌线"低成本地拿到人类可比性,但 RE-Bench 精确地指出它的两大软肋——(a) 人类对照是"当年打 Kaggle 的选手",条件(时限/工具/激励)与 agent 完全不同,不是"同条件对照";(b) 分数难翻译成 AI R&D 自动化能力(Kaggle 竞赛太"干净",缺目标模糊/指令差/反馈慢)。RE-Bench 的回应是造 7 个"同机器、同起始代码、同连续评分"的环境去和人同台竞技。可以说 MLE-bench 赢在"生态效度/规模/低成本人类锚点",RE-Bench 赢在"人机对照的严格性 + 研究真实性"——本项目串讲时应把它俩当"benchmark 方法论的一对互补样本"。
- 对 [[ref30_paperbench]](同 OpenAI 团队的姊妹作):PaperBench 把任务从"解竞赛"升级到"从零复现一整篇论文",时程从 24h 拉到"人类专家至少几天",评分从"现成 leaderboard"升级到"与作者共创的 8316 叶子 rubric + LLM 评委"。两篇共享同一套安全叙事(挂在 Preparedness/RSP/FSF 上)和同一个核心信号——agent 会写大量代码,但不会整合调通跑出结果。MLE-bench 的 "Made Sub. 98% 但 Any Medal 17%" 和 PaperBench 的 "Code Dev 35% 但 Result Match 0.7%" 是同一个"最后一公里"缺口的两种表述。
- 对 [[ref09_meta-harness]](最直接的方法论钩子):MLE-bench 的 "GPT-4o 同模型下 AIDE 8.7% vs MLAB 0.8%" 是"scaffold/harness 决定 agent 死活"的教科书级实证——同一个模型,只换外面那层编排代码,能力差 10 倍。这正是 Meta-Harness 的立论前提("仅改 harness 就能造成数倍性能差距")。MLE-bench 用的是人手写死的三个 scaffold,而 Meta-Harness 会去自动搜索出更好的那个——如果把 MLE-bench 当优化目标、让 Meta-Harness 在 AIDE 之上继续进化,很可能能把 16.9% 再往上推。
- 对 [[ref17_self-harness]]:同属"自我改进"谱系。MLE-bench 提供的是外部标尺(能力到哪),Self-Harness 提供的是改进纪律(怎么有界地改自己)。二者可组合:用 MLE-bench 的奖牌率当连续信号,驱动 Self-Harness 式的"证据→有界编辑→回归门"循环。
方法论启示(可迁移的通用思路)
- "借现成的人类竞赛体系当刻度"是极高性价比的 benchmark 设计:MLE-bench 最聪明的一招不是造任务,而是复用 Kaggle 的 leaderboard + 奖牌线——一个已经过百万选手校准的"人类能力刻度"。任何要评估 agent 能力的场景,都值得先问:"有没有一个现成的、被人类大规模校准过的评分体系可以蹭?"
- 中间指标比 headline 更能定位瓶颈:Table 2 里 "Made Submission 98% → Valid 83% → Above Median 29% → Any Medal 17%" 这条漏斗,比单看 16.9% 信息量大得多——它精确告诉你 agent 卡在哪一环(这里是"从有效提交到超过 median"这段,即真正的建模质量)。设计 benchmark 时应保留这条漏斗。
- 污染验证要"正反两面":familiarity 相关(观测)+ 混淆题面(干预)是一对互补证据——一个看"眼熟度和分数相关吗",一个看"抹掉出处分数会掉吗"。这套"相关 + 干预"的组合拳,是任何"公开数据 benchmark"都该做的自证清白。
- scaling 曲线揭示"性价比"而非只看峰值:pass@k(多次尝试)和时间 scaling 都显示边际递减,而 pass@6 弱模型≈pass@1 强模型的换算,直接指导"该砸模型还是砸尝试次数"的工程决策。
在我的工作中能怎么用
- 我们这个
pdf-paper-readerskill 本身就是一个 harness。MLE-bench 的"漏斗式中间指标"思路可以直接搬来评估它:定义"生成了笔记 → 引用坐标合法 → 图裁切正确 → 内容覆盖到位"这条漏斗,就能精确定位 skill 卡在哪一环(对应 [[ref17_self-harness]] 的弱点挖掘)。 - "借现成人类刻度"这招提醒我:评估笔记质量时,与其自造 rubric,不如找已有的人类精读笔记当参考解(对应 [[ref31_re-bench]] 的起始/参考解归一化)。
开放问题 / 疑问
- "人类可比"到底多可比? headline 指标对标"9 个拿过 75 牌的人",但 agent 是"每个竞赛独立 24h 从零来一遍",人类是"数年间断续打不同竞赛、能复用经验、能看 Discussion"——这两种"75 竞赛得牌"的语义其实不完全对等(RE-Bench 正是攻击此点)。奖牌率作为跨主体比较,需要非常小心地读。
- 污染的"高层策略"漏洞无法堵:作者自己承认最危险的污染(学到 winning strategy)检测不了。以本项目 2026 年的时间点看,o1-preview/GPT-4o 早已过时,更强模型是否已经把"记忆高层策略"这条路走得更深、从而让近期竞赛的 0 分区被填平?这是判断"污染 vs 真能力"的关键,值得追踪 MLE-bench 的后续榜单。
- scaffold 是最大的未开发变量:本文只测了 3 个人手写 scaffold。Table 2 已证明 scaffold 影响 10×——那么把 [[ref09_meta-harness]] 式的自动 harness 搜索接到 MLE-bench 上,天花板会到哪?这几乎是把两篇论文焊在一起的显然实验。
- 算力不会用 = 自主 R&D 的硬伤:Table 3 显示 agent 连"用第二张 GPU"都想不到。真实 AI R&D 的核心恰恰是高效编排大规模算力——如果这个缺口不补,MLE-bench 上的分数再高,也不代表能自主做前沿研究。
局限性(对本笔记结论的自我提醒)
- 论文只评到 2024 年的模型(o1-preview / GPT-4o / Claude 3.5 Sonnet / Llama 3.1);一切"agent 能到哪"的结论都应视为该时点快照。
- 三档复杂度是主观人工标注、且随算法进步会漂移;类别分布极不均(Image Classification 独占 1/3),使"按类别"的结论对少样本类别(多为 0.0)不稳健。
- headline 指标是二元奖牌,丢失了"差多少分才够牌"的连续信息——一个 raw score 距奖牌线 0.1% 的提交,和差 50% 的提交,在 Any Medal 上都记 0,掩盖了真实进展(这也是 [[ref31_re-bench]] 改用连续评分的动机)。