基准
评测基准
★ 必读
MLAgentBench: Evaluating Language Agents on Machine Learning Experimentation
MLAgentBench:评测语言 agent 自主做 ML 实验
Qian Huang, Jian Vora, Percy Liang, Jure Leskovec · Stanford · ICML 2024 · 2023-10 · 被引 317
一句话 Stanford 提出的 13 任务基准,让 LLM agent 在真实代码环境里读文件、改 train.py、跑训练、迭代提性能;最好的 Claude 3 Opus agent 平均成功率 37.5%,但任务间从 100% 到 0% 剧烈波动,是 autoresearch 评测方向的奠基工作(ICML 2024,引用 400+)。
这是什么 这篇工作问的问题很直接:LLM agent 能不能自主完成 ML 实验的完整循环——设计改动、写代码、跑训练、看结果、再迭代?为此作者构建了 MLAgentBench:13 个端到端 ML 实验任务,每个任务给 agent 一份任务描述、一组 starter files(数据 + 基线训练脚本)和一个隐藏的 evaluator,agent 在一个可以读写文件、执行任意 Python 脚本的环境里自由行动,最多 50 步 / 5 小时,最后以工作目录的最终快照算分。
13 个任务刻意拉开了难度和时间跨度:canonical 任务(CIFAR-10、imdb、ogbn-arxiv)、入门 Kaggle(house-price、spaceship-titanic)、4 个 2022-08 到 2023-05 之间上线的新 Kaggle challenge(用于规避预训练数据污染)、前沿研究问题(CLRS、BabyLM)、以及两个代码提速任务(llama-inference、vectorization)。论文同时给出一个基于 ReAct 改造的参考 agent,在 7 个模型(GPT-4/GPT-4-turbo/Claude v1/v2.1/3 Opus/Gemini Pro/Mixtral)上跑了完整对比。
定位上它是这个方向的第一个系统基准:后来 OpenAI 的 MLE-bench、Meta 的 MLGym、MLRC-Bench 等都可以看作它的扩展,而且 MLE-bench 和 MLRC-Bench 直接把本文的 agent(代号 MLAB)拿去当评测 scaffold 用。
基准总体框架:每个任务 = 任务描述 + starter files + evaluator;agent 在 workspace 里循环"想(r_t)—动(a_t,如 Edit train.py / 执行脚本)—观察(o_t)",最终以工作目录快照(submission.csv)交给 evaluator 打分。 机制与做法 任务规范与环境
每个任务由三件东西定义:文本任务描述(如"把 train.py 的模型准确率提升 10% 以上,把测试集预测写入 submission.csv")、starter files(训练/测试数据、数据说明、基于 PyTorch/TF/JAX/Keras 等不同框架的起始代码)、以及一个对最终 submission 打分的 evaluator。部分任务(imdb、house-price 等)不给基线实现,agent 要从零写模型。
环境是任务无关的:每步 agent 产出 rationale r_t 和 action a_t,环境执行后返回 observation,工作目录即状态。动作空间包括文件读写/复制/undo、执行任意 Python 脚本、Final Answer,外加三个封装了独立 LM 调用的复合动作:Understand File(带 query 摘要文件)、Edit Script(按自然语言指令改代码)、Edit Script Segment(只改指定行段,给 CLRS/BabyLM 这类大代码库用)。整个交互 trace(所有动作、观察、每步的 workspace 快照)都被记录下来供评测。
参考 agent 的单步流程:左边是拼接的 prompt(工具描述 + 任务 + 最近 3 步完整历史),右上是强制格式的 LM 输出(Reflection / Research Plan and Status / Fact Check / Thought / Action),动作执行后的训练日志作为 observation 回填。Fact Check 字段用于压制"没跑就宣称提升"的幻觉。 评测指标
核心指标是 success rate:最终 performance metric 比 starter code 基线提升超过 10% 即算成功,每个 (模型, 任务) 组合跑 8 次取比例。辅以 average improvement(有效提交的平均提升幅度)和 efficiency(总 token 数和 wall clock 时间)。
注意这个定义有两个坑(详见核查部分):无基线任务用 1e10 占位数做 baseline,导致"跑通即成功";10% 阈值对高方差 metric 会误报,连什么都不改的 trivial baseline agent 都能在个别任务上刷出 40% "成功率"。
对每个中间步骤的 workspace 评分(CIFAR-10 平均 test accuracy):GPT-4-turbo、Gemini Pro 跑到后面反而变差(改崩不回滚),只有 Claude v3 随步数持续上升——论文识别的核心失败模式之一。 参考 agent:ReAct + 结构化自查
agent 本体就是一个精心设计的 prompt 循环:每步的 prompt 包含工具描述、任务描述、最近 3 步的完整 (rationale, action, observation) 历史,并强制 LM 按固定格式输出 Reflection、Research Plan and Status、Fact Check、Thought、Action、Action Input 六个字段。
其中 Research Plan and Status 让 agent 维护一份可读的实验计划和进展记录;Fact Check 是针对性设计——预实验发现模型常在改完代码没跑之前就幻觉"性能已提升",强制它逐条核对哪些陈述被观察确认过、哪些是猜的。这两个字段是它区别于裸 ReAct(LangChain zero-shot-react)的主要增量。
各模型在 13 个任务上的平均 token 消耗:Claude v3 Opus 成功率最高但 token 花得也最多(单任务最高近 30 万),GPT-4-turbo 比平均少用 51% token,性能/成本比最好。 实验设置
7 个模型 × 13 任务 × 8 runs,大部分限 50 动作 / 5 小时,但 GPT-4 因 API 太贵只给 30 动作(作者在论文里自己承认,tex 源码里还留着 Percy Liang 的批注说这对比不公平)。另与 AutoGPT 和 LangChain ReAct agent 对比(用 GPT-4-turbo 和 Claude 3 Opus 驱动),本文 agent 平均成功率更高,但 LangChain+Claude 3 相当接近——作者归因于简单 agent 反而不容易乱改提交格式。
关键结果 Claude 3 Opus agent 平均成功率最高,37.5%(GPT-4 19.2%、GPT-4-turbo 26.0%、Claude v2.1 26.0%、Gemini Pro 18.3%、Mixtral 3.8%);但按 average improvement 算 GPT-4 最高(41.3% vs Opus 26.1%),两个指标给出的排名并不一致。 成功率任务间极端分化:house-price 上 Opus 100%,而 parkinsons-disease、fathomnet、vectorization、BabyLM 上所有模型全部 0%——新 Kaggle challenge(可能晚于预训练截止)和真研究问题基本全军覆没,论文以此提示数据污染对旧数据集成绩的贡献。 跑得越久越差:对中间每一步的 workspace 评分发现,除 Claude 3 Opus 外,所有模型的平均性能随步数增加而下降(改崩了不会回滚),长程规划和 debug 是主要失败模式。 成本:GPT-4-turbo 跑完整套基准约 600 万 tokens ≈ 60 美元;但按其 26% 平均成功率折算,期望每"做成"一个任务要 231 美元。 与通用 agent 框架对比,同为 Claude 3 Opus 驱动时本文 agent 平均成功率高于 AutoGPT,与 LangChain ReAct 接近;说明增量主要来自 Research Plan / Fact Check 这类结构化字段而非复杂工具。 全部实验 log(agent 每步的完整 trace)公开在 q-hwang/MLAgentBench_logs,透明度在同类工作里少见。 实证核查
有水分 基准本身扎实:代码开源可跑、全部 trace 公开、被 MLE-bench/MLRC-Bench 直接复用为 scaffold;但头条数字"37.5% 成功率"有明确水分——无基线任务把"代码跑通"算成功、10% 阈值被 metric 方差污染、GPT-4 与其他模型步数预算不等。
Claude 3 Opus agent 达到 37.5% 平均成功率,能"build compelling ML models";house-price 等任务成功率 100%。
success 定义为比 starter code 基线提升 >10%,但 house-price、spaceship-titanic 等任务的 starter code 根本不产出结果,作者用 1e10 当占位 baseline(GitHub issue #6 中作者原话:"We used 1e10 as a baseline number since the starter code does not produce anything",并确认对无基线任务 success 就等于"能把代码填完跑通")。house-price 一列所有 7 个模型 improvement 全是 100.0 正是这个原因,平均成功率被这类任务系统性抬高。
以 10% improvement 为阈值的 success rate 是可靠的能力度量。
论文 success rate 表(Table 2)里,什么都不改、直接跑 starter code 的 trivial Baseline agent 在 identify-contrails 上也有 40.0%、CLRS 上 42.9% 的"成功率",纯粹来自训练随机性导致的 metric 方差;arXiv tex 源码(source/example_paper.tex)里留着合作者批注 "shouldn't baseline always be 0; no baseline has high variance some times",说明作者自己清楚这个指标噪声大,论文正文未做校正。
对 7 个模型做了统一评测。
GPT-4 因 API 成本只允许 30 个动作,其他模型 50 个(论文 Experiments 节自述);tex 源码里 Percy Liang 批注 "that doesn't seem like a fair comparison between GPT-4 and Claude"。另外每格只有 8 runs,在成功率 0/12.5/25% 这个粒度上单次波动就是 12.5 个百分点。
代码开源可用(README:pip install -e + docker 镜像即可复现)。
可用性被第三方实质验证:OpenAI 的 MLE-bench(arXiv 2410.07095)把本文 agent 直接作为三个官方 scaffold 之一(代号 MLAB),MLRC-Bench(arXiv 2504.09702)也用 MLAB 当默认 scaffold。但在更难的 MLE-bench 上 GPT-4o+MLAB 只拿 0.8% medal(AIDE scaffold 8.7%),说明这个 agent 设计本身并不强,价值主要在基准框架。工程上 repo 有未修的环境问题:issue #19(无固定版本 requirements.txt)、#15(clrs 模块缺失)、#21(docker 缺依赖),仓库 2024-06 后停止维护。
新任务(2022-08 之后的 Kaggle challenge)用于规避数据污染,agent 在其上接近 0% 成功率。
这一点论文反而是诚实的:4 个新 Kaggle challenge 中 3 个全模型 0% 成功,与公开 log(q-hwang/MLAgentBench_logs)一致;后续 MLRC-Bench 沿用了同样的批评视角,指出这类基准"prioritize code implementation over novel research contributions"、缺算力约束,并以持续更新的竞赛任务作为改进。
与我们方向的关系 对 autoresearch 方向,这是必须精读的坐标原点:它定义了"agent 做 ML 实验"的标准形态(任务描述 + starter files + evaluator + 文件/执行动作空间 + 最终快照打分),MLE-bench、MLGym、MLRC-Bench、TimeSeriesGym 都是在这个模板上加任务、加约束、换指标。设计自己的基准时,它踩过的两个坑值得直接规避:无基线任务的 success 定义,和高方差 metric 上用固定百分比阈值判成功(至少要报 trivial baseline 的"成功率"做对照)。
agent 设计上可借鉴的是 Fact Check 字段:强制模型区分"已被执行结果确认的陈述"和"未验证的猜测",针对的正是改完代码不跑就宣称提升的幻觉模式——这个问题在我们自己的实验 agent 里同样存在,成本几乎为零。另一个有用的负结果:除 Opus 外所有模型跑得越久性能越差,说明没有 checkpoint/回滚机制的线性 agent 循环在长任务上是净亏的,后来 AIDE 的树搜索式 scaffold 在 MLE-bench 上大幅超过 MLAB(8.7% vs 0.8% medal)印证了这一点。
阅读笔记 arXiv tex 源码是带全部合作者批注的工作版本(Percy Liang/Jure Leskovec 的 \pl{} \jure{} 批注没删),里面能看到不少作者自己对指标和公平性的疑虑,信息量比正文大。摘要里的 37.5% 是 2024 年加测 Claude 3 Opus 后更新的数字,2023 年初版主角还是 GPT-4。复现时注意:依赖没有版本锁定,Kaggle 任务需要自己配 API 凭证并手动同意各竞赛条款。
材料清单 TeX 源码 已存档:Raw/mlagentbench/source/
同类条目