harness_evolve/notes/ref32_mle-bench.md

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 在调试、从错误中恢复、算力/时间预算管理上系统性地弱。


TL;DR 速览

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 的评测闭环

Figure 1 逐元素解读(全文的"招牌图",一眼看懂整个考场): - 左侧「MLE-Bench」绿色堆叠卡片:每个卡片是一个竞赛,含四件套——Description("训一个模型达到最高准确率…")、Datasettrain.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)

漏斗式人工筛选(可复现的严格流程):

\[ 5673\ \text{已完结竞赛} \xrightarrow{\text{排除 Community 竞赛}} 586 \xrightarrow{\text{人工按 9 条准则筛}} 75\ (\text{+7 开发集}) \]

Figure 6: 75 个竞赛的类别 × 复杂度分布

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 上升

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: GPT-4o(AIDE) 奖牌率随时间上升

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: 各竞赛得牌率 vs 竞赛截止日期

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 正是为了让实验室的加速风险更透明可测。


个人思考

与其他论文的关联(放进本项目坐标系)

方法论启示(可迁移的通用思路)

  1. "借现成的人类竞赛体系当刻度"是极高性价比的 benchmark 设计:MLE-bench 最聪明的一招不是造任务,而是复用 Kaggle 的 leaderboard + 奖牌线——一个已经过百万选手校准的"人类能力刻度"。任何要评估 agent 能力的场景,都值得先问:"有没有一个现成的、被人类大规模校准过的评分体系可以蹭?"
  2. 中间指标比 headline 更能定位瓶颈:Table 2 里 "Made Submission 98% → Valid 83% → Above Median 29% → Any Medal 17%" 这条漏斗,比单看 16.9% 信息量大得多——它精确告诉你 agent 卡在哪一环(这里是"从有效提交到超过 median"这段,即真正的建模质量)。设计 benchmark 时应保留这条漏斗
  3. 污染验证要"正反两面":familiarity 相关(观测)+ 混淆题面(干预)是一对互补证据——一个看"眼熟度和分数相关吗",一个看"抹掉出处分数会掉吗"。这套"相关 + 干预"的组合拳,是任何"公开数据 benchmark"都该做的自证清白。
  4. scaling 曲线揭示"性价比"而非只看峰值:pass@k(多次尝试)和时间 scaling 都显示边际递减,而 pass@6 弱模型≈pass@1 强模型的换算,直接指导"该砸模型还是砸尝试次数"的工程决策。

在我的工作中能怎么用

开放问题 / 疑问

局限性(对本笔记结论的自我提醒)