MLE-bench is a benchmark for measuring how well AI agents perform at machine learning engineering
See the codeCode for the paper "MLE-Bench: Evaluating Machine Learning Agents on Machine Learning Engineering". We have released the code used to construct the dataset, the evaluation logic, as well as the agents we evaluated for this benchmark.
Update (04-24-2026): We are currently not taking any new submissions to the leaderboard while we develop an improved process for ensuring submissions are fair and comparable. We will share updates on this process in the future.
| Agent | LLM(s) used | Low == Lite (%) | Medium (%) | High (%) | All (%) | Running Time (hours) | Date | Source Code Available | Grading Reports Available |
|---|---|---|---|---|---|---|---|---|---|
| Famou-Agent 2.0 | Gemini-3-Pro-Preview | 80.3 ± 1.52 | 64.04 ± 2.32 | 42.22 ± 2.22 | 64.44 ± 1.18 | 24 | 2026-02-23 | X | ✓ |
| AIBuildAI | Claude-Opus-4.6 | 77.27 ± 0.00 | 61.40 ± 0.88 | 46.67 ± 0.00 | 63.11 ± 0.44 | 24 | 2026-03-06 | X | ✓ |
| CAIR MARS+ | Gemini-3-Pro-Preview | 78.79 ± 1.52 | 60.53 ± 1.52 | 44.44 ± 2.22 | 62.67 ± 0.77 | 24 | 2026-02-17 | X | ✓ |
| MLEvolve | Gemini-3-Pro-Preview | 80.30 ± 1.52 | 57.89 ± 1.52 | 42.22 ± 2.22 | 61.33 ± 1.33 | 12 | 2026-02-14 | ✓ | ✓ |
| PiEvolve (Fractal AI Research) | Gemini-3-Pro-Preview1 | 80.30 ± 1.522 | 58.77 ± 0.882 | 40.0 ± 0.002 | 61.33 ± 0.772 | 24 | 2026-01-05 | X | ✓ |
| Famou-Agent 2.0 | Gemini-2.5-Pro | 75.76 ± 1.52 | 57.89 ± 1.52 | 40.00 ± 0.00 | 59.56 ± 0.89 | 24 | 2025-12-27 | X | ✓ |
| ML-Master 2.0 | Deepseek-V3.2-Speciale | 75.76 ± 1.51 | 50.88 ± 3.51 | 42.22 ± 2.22 | 56.44 ± 2.47 | 24 | 2025-12-16 | X | ✓ |
| CAIR MARS | Gemini-3-Pro-Preview | 74.24 ± 1.52 | 52.63 ± 3.04 | 37.78 ± 2.22 | 56.0 ± 1.54 | 24 | 2026-01-25 | X | ✓ |
| PiEvolve (Fractal AI Research) | Gemini-3-Pro-Preview1 | 74.24 ± 3.032 | 45.61 ± 0.882 | 35.55 ± 2.222 | 52.0 ± 0.772 | 12 | 2026-01-05 | X | ✓ |
| Leeroo | Gemini-3-Pro-Preview1 | 68.18 ± 2.622 | 44.74 ± 1.522 | 40.00 ± 0.002 | 50.67 ± 1.332 | 24 | 2025-12-07 | ✓ | ✓ |
| Thesis | gpt-5-codex | 65.15 ± 1.52 | 45.61 ± 7.18 | 31.11 ± 2.22 | 48.44 ± 3.64 | 24 | 2025-11-10 | X | ✓ |
| CAIR MLE-STAR-Pro-1.5 | Gemini-2.5-Pro | 68.18 ± 2.62 | 34.21 ± 1.52 | 33.33 ± 0.00 | 44.00 ± 1.33 | 24 | 2025-11-25 | X | ✓ |
| Famou-Agent | Gemini-2.5-Pro | 62.12 ± 1.52 | 36.84 ± 1.52 | 33.33 ± 0.00 | 43.56 ± 0.89 | 24 | 2025-10-10 | X | ✓ |
| Operand ensemble | gpt-5 (low verbosity/effort)3 | 63.64 ± 0.00 | 33.33 ± 0.882 | 20.00 ± 0.002 | 39.56 ± 0.442 | 24 | 2025-10-06 | X | ✓ |
| CAIR MLE-STAR-Pro-1.0 | Gemini-2.5-Pro | 66.67 ± 1.52 | 25.44 ± 0.88 | 31.11 ± 2.22 | 38.67 ± 0.77 | 12 | 2025-11-03 | X | ✓ |
| InternAgent | deepseek-r1 | 62.12 ± 3.03 | 26.32 ± 2.63 | 24.44 ± 2.22 | 36.44 ± 1.18 | 12 | 2025-09-12 | X | ✓ |
| R&D-Agent | gpt-5 | 68.18 ± 2.62 | 21.05 ± 1.52 | 22.22 ± 2.22 | 35.11 ± 0.44 | 12 | 2025-09-26 | ✓ | ✓ |
| Neo multi-agent | undisclosed | 48.48 ± 1.52 | 29.82 ± 2.32 | 24.44 ± 2.22 | 34.22 ± 0.89 | 36 | 2025-07-28 | X | ✓ |
| AIRA-dojo | o3 | 55.00 ± 1.47 | 21.97 ± 1.17 | 21.67 ± 1.07 | 31.60 ± 0.82 | 24 | 2025-05-15 | ✓ | ✓ |
| R&D-Agent | o3 + GPT-4.1 | 51.52 ± 4.01 | 19.30 ± 3.16 | 26.67 ± 0.00 | 30.22 ± 0.89 | 24 | 2025-08-15 | ✓ | ✓ |
| ML-Master | deepseek-r1 | 48.48 ± 1.52 | 20.18 ± 2.32 | 24.44 ± 2.22 | 29.33 ± 0.77 | 12 | 2025-06-17 | ✓ | ✓ |
| R&D-Agent | o1-preview | 48.18 ± 1.11 | 8.95 ± 1.05 | 18.67 ± 1.33 | 22.40 ± 0.50 | 24 | 2025-05-14 | ✓ | ✓ |
| AIDE | o1-preview | 35.91 ± 1.86 | 8.45 ± 0.43 | 11.67 ± 1.27 | 17.12 ± 0.61 | 24 | 2024-10-08 | ✓ | ✓ |
| AIDE | gpt-4o-2024-08-06 | 18.55 ± 1.26 | 3.06 ± 0.33 | 8.15 ± 0.84 | 8.63 ± 0.54 | 24 | 2024-10-08 | ✓ | ✓ |
| AIDE | claude-3-5-sonnet-20240620 | 19.70 ± 1.52 | 2.63 ± 1.52 | 2.22 ± 2.22 | 7.56 ± 1.60 | 24 | 2024-10-08 | ✓ | ✓ |
| OpenHands | gpt-4o-2024-08-06 | 12.12 ± 1.52 | 1.75 ± 0.88 | 2.22 ± 2.22 | 4.89 ± 0.44 | 24 | 2024-10-08 | ✓ | ✓ |
| AIDE | llama-3.1-405b-instruct | 10.23 ± 1.14 | 0.66 ± 0.66 | 0.00 ± 0.00 | 3.33 ± 0.38 | 24 | 2024-10-08 | ✓ | ✓ |
| MLAB | gpt-4o-2024-08-06 | 4.55 ± 0.86 | 0.00 ± 0.00 | 0.00 ± 0.00 | 1.60 ± 0.27 | 24 | 2024-10-08 | ✓ | ✓ |
Additional submissions that are not directly comparable to the main leaderboard (see Notes column).
| Agent | LLM(s) used | Low == Lite (%) | Medium (%) | High (%) | All (%) | Running Time (hours) | Date | Notes | Source Code Available | Grading Reports Available |
|---|---|---|---|---|---|---|---|---|---|---|
| Disarray | Ensemble (Claude-Opus-4.5, Claude-Sonnet-4.5, GPT-5.2-Codex, Gemini-3-Pro-Preview) | 90.91 ± 0.00 | 72.81 ± 0.88 | 71.11 ± 2.22 | 77.78 ± 0.44 | 24 | 2026-02-03 | Test-set feedback | X | ✓ |
| LoongFlow | Gemini-3-Flash-Preview | 77.27 ± 0.02 | 63.15 ± 1.512 | 40.0 ± 0.002 | 62.66 ± 0.762 | 24 | 2026-02-09 | Test-set feedback | ✓ | ✓ |
To produce the scores for the leaderboard, please organize your grading reports
in the runs/ folder organized by run groups, with one grading report per run
group. Identify the run groups for your submission in
runs/run_group_experiments.csv with an experiment id. Then run
uv run python experiments/aggregate_grading_reports.py --experiment-id <exp_id> --split low
uv run python experiments/aggregate_grading_reports.py --experiment-id <exp_id> --split medium
uv run python experiments/aggregate_grading_reports.py --experiment-id <exp_id> --split high
uv run python experiments/aggregate_grading_reports.py --experiment-id <exp_id> --split split75
Report the mean and standard error of the mean (SEM) for each of the splits on
the reported any_medal_percentage metric. The --split75 flag corresponds to
the All (%) column.
This section describes a canonical setup for comparing scores on MLE-bench. We recommend the following:
Evaluating agents with the above settings on the full 75 competitions of MLE-bench can be expensive. For users preferring a "lite" version of the benchmark, we recommend using the Low complexity split of our dataset, which consists of only 22 competitions. This reduces the number of runs substantially, while still allowing fair comparison along one column of the table above.
Furthermore, the Low complexity competitions tend to be significantly more lightweight (158GB total dataset size compared to 3.3TB for the full set), so users may additionally consider reducing the runtime or compute resources available to the agents for further cost reduction. However, note that doing so risks degrading the performance of your agent. For example, see Section 3.3 and 3.4 of our paper where we have experimented with varying resources on the full competition set.
The Lite dataset contains the following competitions:
| Competition ID | Category | Dataset Size (GB) |
|---|---|---|
| aerial-cactus-identification | Image Classification | 0.0254 |
| aptos2019-blindness-detection | Image Classification | 10.22 |
| denoising-dirty-documents | Image To Image | 0.06 |
| detecting-insults-in-social-commentary | Text Classification | 0.002 |
| dog-breed-identification | Image Classification | 0.75 |
| dogs-vs-cats-redux-kernels-edition | Image Classification | 0.85 |
| histopathologic-cancer-detection | Image Regression | 7.76 |
| jigsaw-toxic-comment-classification-challenge | Text Classification | 0.06 |
| leaf-classification | Image Classification | 0.036 |
| mlsp-2013-birds | Audio Classification | 0.5851 |
| new-york-city-taxi-fare-prediction | Tabular | 5.7 |
| nomad2018-predict-transparent-conductors | Tabular | 0.00624 |
| plant-pathology-2020-fgvc7 | Image Classification | 0.8 |
| random-acts-of-pizza | Text Classification | 0.003 |
| ranzcr-clip-catheter-line-classification | Image Classification | 13.13 |
| siim-isic-melanoma-classification | Image Classification | 116.16 |
| spooky-author-identification | Text Classification | 0.0019 |
| tabular-playground-series-dec-2021 | Tabular | 0.7 |
| tabular-playground-series-may-2022 | Tabular | 0.57 |
| text-normalization-challenge-english-language | Seq->Seq | 0.01 |
| text-normalization-challenge-russian-language | Seq->Seq | 0.01 |
| the-icml-2013-whale-challenge-right-whale-redux | Audio Classification | 0.29314 |
Some MLE-bench competition data is stored using Git-LFS. Once you have downloaded and installed LFS, run:
git lfs fetch --all
git lfs pull
You can install mlebench with pip:
pip install -e .
If you're committing code, you can install the pre-commit hooks by running:
pre-commit install
The MLE-bench dataset is a collection of 75 Kaggle competitions which we use to evaluate the ML engineering capabilities of AI systems.
Since Kaggle does not provide the held-out test set for each competition, we provide preparation scripts that split the publicly available training set into a new training and test set.
For each competition, we also provide grading scripts that can be used to evaluate the score of a submission.
We use the Kaggle API to download the
raw datasets. Ensure that you have downloaded your Kaggle credentials
(kaggle.json) and placed it in the ~/.kaggle/ directory (this is the default
location where the Kaggle API looks for your credentials). To download and prepare the MLE-bench dataset, run the following, which will download and prepare the dataset in your system's default cache directory. Note, we've found this to take two days when running from scratch:
mlebench prepare --all
To prepare the lite dataset, run:
mlebench prepare --lite
Alternatively, you can prepare the dataset for a specific competition by running:
mlebench prepare -c <competition-id>
Run mlebench prepare --help to see the list of available competitions.
Answers for competitions must be submitted in CSV format; the required format is described in each competition's description, or shown in a competition's sample submission file. You can grade multiple submissions by using the mlebench grade command. Given a JSONL file, where each line corresponds with a submission for one competition, mlebench grade will produce a grading report for each competition. The JSONL file must contain the following fields:
competition_id: the ID of the competition in our dataset.submission_path: a .csv file with the predictions for the specified
competition.See more information by running mlebench grade --help.
You can also grade individual submissions using the mlebench grade-sample command. For example, to grade a submission for the Spaceship Titanic competition, you can run:
mlebench grade-sample <PATH_TO_SUBMISSION> spaceship-titanic
See more information by running mlebench grade-sample --help.
We provide a base Docker image mlebench-env which is the base environment for our agents. This base image contains:
INSTALL_HEAVY_DEPENDENCIES environment variable to false when building the image, by adding --build-arg INSTALL_HEAVY_DEPENDENCIES=false to the docker build command belowBuild this image by running:
docker build --platform=linux/amd64 -t mlebench-env -f environment/Dockerfile .
We purposefully designed our benchmark to not make any assumptions about the agent that produces submissions, so agents can more easily be evaluated on this benchmark. We evaluated three open-source agents; we discuss this procedure in agents/README.md.
We include additional features in the MLE-bench repository that may be useful for MLE-bench evaluation. These include a rule violation detector and a plagiarism detector. We refer readers to extras/README.md for more information.
We collect example usage of this library in the examples/ directory, see examples/README.md for more information.
We place the code specific to the experiments from our publication of the
benchmark in the experiments/ directory:
experiments/splits/.experiments/make_submission.py script to compile its submission for grading.experiments/familiarity/, see experiments/familiarity/README.md for more information.Note, when running pytest locally, be sure to accept the competition rules otherwise the tests will fail.
There are some known issues with certain MLE-bench competitions. Since we have already received leaderboard submissions, we are postponing fixes to avoid invalidating the leaderboard. Instead, we plan to release batched fixes in the upcoming v2 release of MLE-bench on the openai/frontier-evals repo, which will include a version column in the leaderboard to distinguish between v1 and v2 results. If you wish to make a submission to v1 in the meantime, please still include the following competitions in your overall scores. The known issues are catalogued below:
validate_submission function in grade.py fails on this competition
because the answer file is test.jsonl instead of test.csv.
#134train/ and test/ directories incorrectly, so train.7z and test.7z
can be missing their image contents in the prepared public dataset.
#122.mat files leak test labels.
#77span_log.nmea files leak
information that makes achieving a perfect score trivial.
#93{image_id}.json files leak
information that makes achieving a close-to-perfect score trivial. They should
be removed.giver_username_if_known leaks the outcome,
enabling trivial perfect prediction. This competition should be dropped.
#108Chan 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
Please cite using the following BibTeX entry:
@article{chan2024mle-bench,
title={MLE-bench: Evaluating Machine Learning Agents on Machine Learning Engineering},
author={Jun Shern Chan and Neil Chowdhury and Oliver Jaffe and James Aung and Dane Sherburn and Evan Mays and Giulio Starace and Kevin Liu and Leon Maksin and Tejal Patwardhan and Lilian Weng and Aleksander Mądry},
year={2024},
eprint={2410.07095},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2410.07095}
}
The architecture is primarily driven by Gemini-3-Pro-Preview, with a subset of modules utilizing GPT-5 and GPT-5-mini. ↩ ↩2 ↩3
Computed by padding incomplete seeds with failing scores. ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 ↩9 ↩10 ↩11 ↩12 ↩13 ↩14 ↩15 ↩16 ↩17 ↩18 ↩19
With some light assistance from an ensemble of models including Gemini-2.5-Pro, Grok-4, and Claude 4.1 Opus, distilled by Gemini-2.5-Pro. ↩
918 followers · starred Aug 2026
348 followers · starred Jul 2025
622 followers · starred Jun 2026
4,155 followers · starred Apr 2026
MLE-bench is a benchmark for measuring how well AI agents perform at machine learning engineering
See the codeCode for the paper "MLE-Bench: Evaluating Machine Learning Agents on Machine Learning Engineering". We have released the code used to construct the dataset, the evaluation logic, as well as the agents we evaluated for this benchmark.
Update (04-24-2026): We are currently not taking any new submissions to the leaderboard while we develop an improved process for ensuring submissions are fair and comparable. We will share updates on this process in the future.
| Agent | LLM(s) used | Low == Lite (%) | Medium (%) | High (%) | All (%) | Running Time (hours) | Date | Source Code Available | Grading Reports Available |
|---|---|---|---|---|---|---|---|---|---|
| Famou-Agent 2.0 | Gemini-3-Pro-Preview | 80.3 ± 1.52 | 64.04 ± 2.32 | 42.22 ± 2.22 | 64.44 ± 1.18 | 24 | 2026-02-23 | X | ✓ |
| AIBuildAI | Claude-Opus-4.6 | 77.27 ± 0.00 | 61.40 ± 0.88 | 46.67 ± 0.00 | 63.11 ± 0.44 | 24 | 2026-03-06 | X | ✓ |
| CAIR MARS+ | Gemini-3-Pro-Preview | 78.79 ± 1.52 | 60.53 ± 1.52 | 44.44 ± 2.22 | 62.67 ± 0.77 | 24 | 2026-02-17 | X | ✓ |
| MLEvolve | Gemini-3-Pro-Preview | 80.30 ± 1.52 | 57.89 ± 1.52 | 42.22 ± 2.22 | 61.33 ± 1.33 | 12 | 2026-02-14 | ✓ | ✓ |
| PiEvolve (Fractal AI Research) | Gemini-3-Pro-Preview1 | 80.30 ± 1.522 | 58.77 ± 0.882 | 40.0 ± 0.002 | 61.33 ± 0.772 | 24 | 2026-01-05 | X | ✓ |
| Famou-Agent 2.0 | Gemini-2.5-Pro | 75.76 ± 1.52 | 57.89 ± 1.52 | 40.00 ± 0.00 | 59.56 ± 0.89 | 24 | 2025-12-27 | X | ✓ |
| ML-Master 2.0 | Deepseek-V3.2-Speciale | 75.76 ± 1.51 | 50.88 ± 3.51 | 42.22 ± 2.22 | 56.44 ± 2.47 | 24 | 2025-12-16 | X | ✓ |
| CAIR MARS | Gemini-3-Pro-Preview | 74.24 ± 1.52 | 52.63 ± 3.04 | 37.78 ± 2.22 | 56.0 ± 1.54 | 24 | 2026-01-25 | X | ✓ |
| PiEvolve (Fractal AI Research) | Gemini-3-Pro-Preview1 | 74.24 ± 3.032 | 45.61 ± 0.882 | 35.55 ± 2.222 | 52.0 ± 0.772 | 12 | 2026-01-05 | X | ✓ |
| Leeroo | Gemini-3-Pro-Preview1 | 68.18 ± 2.622 | 44.74 ± 1.522 | 40.00 ± 0.002 | 50.67 ± 1.332 | 24 | 2025-12-07 | ✓ | ✓ |
| Thesis | gpt-5-codex | 65.15 ± 1.52 | 45.61 ± 7.18 | 31.11 ± 2.22 | 48.44 ± 3.64 | 24 | 2025-11-10 | X | ✓ |
| CAIR MLE-STAR-Pro-1.5 | Gemini-2.5-Pro | 68.18 ± 2.62 | 34.21 ± 1.52 | 33.33 ± 0.00 | 44.00 ± 1.33 | 24 | 2025-11-25 | X | ✓ |
| Famou-Agent | Gemini-2.5-Pro | 62.12 ± 1.52 | 36.84 ± 1.52 | 33.33 ± 0.00 | 43.56 ± 0.89 | 24 | 2025-10-10 | X | ✓ |
| Operand ensemble | gpt-5 (low verbosity/effort)3 | 63.64 ± 0.00 | 33.33 ± 0.882 | 20.00 ± 0.002 | 39.56 ± 0.442 | 24 | 2025-10-06 | X | ✓ |
| CAIR MLE-STAR-Pro-1.0 | Gemini-2.5-Pro | 66.67 ± 1.52 | 25.44 ± 0.88 | 31.11 ± 2.22 | 38.67 ± 0.77 | 12 | 2025-11-03 | X | ✓ |
| InternAgent | deepseek-r1 | 62.12 ± 3.03 | 26.32 ± 2.63 | 24.44 ± 2.22 | 36.44 ± 1.18 | 12 | 2025-09-12 | X | ✓ |
| R&D-Agent | gpt-5 | 68.18 ± 2.62 | 21.05 ± 1.52 | 22.22 ± 2.22 | 35.11 ± 0.44 | 12 | 2025-09-26 | ✓ | ✓ |
| Neo multi-agent | undisclosed | 48.48 ± 1.52 | 29.82 ± 2.32 | 24.44 ± 2.22 | 34.22 ± 0.89 | 36 | 2025-07-28 | X | ✓ |
| AIRA-dojo | o3 | 55.00 ± 1.47 | 21.97 ± 1.17 | 21.67 ± 1.07 | 31.60 ± 0.82 | 24 | 2025-05-15 | ✓ | ✓ |
| R&D-Agent | o3 + GPT-4.1 | 51.52 ± 4.01 | 19.30 ± 3.16 | 26.67 ± 0.00 | 30.22 ± 0.89 | 24 | 2025-08-15 | ✓ | ✓ |
| ML-Master | deepseek-r1 | 48.48 ± 1.52 | 20.18 ± 2.32 | 24.44 ± 2.22 | 29.33 ± 0.77 | 12 | 2025-06-17 | ✓ | ✓ |
| R&D-Agent | o1-preview | 48.18 ± 1.11 | 8.95 ± 1.05 | 18.67 ± 1.33 | 22.40 ± 0.50 | 24 | 2025-05-14 | ✓ | ✓ |
| AIDE | o1-preview | 35.91 ± 1.86 | 8.45 ± 0.43 | 11.67 ± 1.27 | 17.12 ± 0.61 | 24 | 2024-10-08 | ✓ | ✓ |
| AIDE | gpt-4o-2024-08-06 | 18.55 ± 1.26 | 3.06 ± 0.33 | 8.15 ± 0.84 | 8.63 ± 0.54 | 24 | 2024-10-08 | ✓ | ✓ |
| AIDE | claude-3-5-sonnet-20240620 | 19.70 ± 1.52 | 2.63 ± 1.52 | 2.22 ± 2.22 | 7.56 ± 1.60 | 24 | 2024-10-08 | ✓ | ✓ |
| OpenHands | gpt-4o-2024-08-06 | 12.12 ± 1.52 | 1.75 ± 0.88 | 2.22 ± 2.22 | 4.89 ± 0.44 | 24 | 2024-10-08 | ✓ | ✓ |
| AIDE | llama-3.1-405b-instruct | 10.23 ± 1.14 | 0.66 ± 0.66 | 0.00 ± 0.00 | 3.33 ± 0.38 | 24 | 2024-10-08 | ✓ | ✓ |
| MLAB | gpt-4o-2024-08-06 | 4.55 ± 0.86 | 0.00 ± 0.00 | 0.00 ± 0.00 | 1.60 ± 0.27 | 24 | 2024-10-08 | ✓ | ✓ |
Additional submissions that are not directly comparable to the main leaderboard (see Notes column).
| Agent | LLM(s) used | Low == Lite (%) | Medium (%) | High (%) | All (%) | Running Time (hours) | Date | Notes | Source Code Available | Grading Reports Available |
|---|---|---|---|---|---|---|---|---|---|---|
| Disarray | Ensemble (Claude-Opus-4.5, Claude-Sonnet-4.5, GPT-5.2-Codex, Gemini-3-Pro-Preview) | 90.91 ± 0.00 | 72.81 ± 0.88 | 71.11 ± 2.22 | 77.78 ± 0.44 | 24 | 2026-02-03 | Test-set feedback | X | ✓ |
| LoongFlow | Gemini-3-Flash-Preview | 77.27 ± 0.02 | 63.15 ± 1.512 | 40.0 ± 0.002 | 62.66 ± 0.762 | 24 | 2026-02-09 | Test-set feedback | ✓ | ✓ |
To produce the scores for the leaderboard, please organize your grading reports
in the runs/ folder organized by run groups, with one grading report per run
group. Identify the run groups for your submission in
runs/run_group_experiments.csv with an experiment id. Then run
uv run python experiments/aggregate_grading_reports.py --experiment-id <exp_id> --split low
uv run python experiments/aggregate_grading_reports.py --experiment-id <exp_id> --split medium
uv run python experiments/aggregate_grading_reports.py --experiment-id <exp_id> --split high
uv run python experiments/aggregate_grading_reports.py --experiment-id <exp_id> --split split75
Report the mean and standard error of the mean (SEM) for each of the splits on
the reported any_medal_percentage metric. The --split75 flag corresponds to
the All (%) column.
This section describes a canonical setup for comparing scores on MLE-bench. We recommend the following:
Evaluating agents with the above settings on the full 75 competitions of MLE-bench can be expensive. For users preferring a "lite" version of the benchmark, we recommend using the Low complexity split of our dataset, which consists of only 22 competitions. This reduces the number of runs substantially, while still allowing fair comparison along one column of the table above.
Furthermore, the Low complexity competitions tend to be significantly more lightweight (158GB total dataset size compared to 3.3TB for the full set), so users may additionally consider reducing the runtime or compute resources available to the agents for further cost reduction. However, note that doing so risks degrading the performance of your agent. For example, see Section 3.3 and 3.4 of our paper where we have experimented with varying resources on the full competition set.
The Lite dataset contains the following competitions:
| Competition ID | Category | Dataset Size (GB) |
|---|---|---|
| aerial-cactus-identification | Image Classification | 0.0254 |
| aptos2019-blindness-detection | Image Classification | 10.22 |
| denoising-dirty-documents | Image To Image | 0.06 |
| detecting-insults-in-social-commentary | Text Classification | 0.002 |
| dog-breed-identification | Image Classification | 0.75 |
| dogs-vs-cats-redux-kernels-edition | Image Classification | 0.85 |
| histopathologic-cancer-detection | Image Regression | 7.76 |
| jigsaw-toxic-comment-classification-challenge | Text Classification | 0.06 |
| leaf-classification | Image Classification | 0.036 |
| mlsp-2013-birds | Audio Classification | 0.5851 |
| new-york-city-taxi-fare-prediction | Tabular | 5.7 |
| nomad2018-predict-transparent-conductors | Tabular | 0.00624 |
| plant-pathology-2020-fgvc7 | Image Classification | 0.8 |
| random-acts-of-pizza | Text Classification | 0.003 |
| ranzcr-clip-catheter-line-classification | Image Classification | 13.13 |
| siim-isic-melanoma-classification | Image Classification | 116.16 |
| spooky-author-identification | Text Classification | 0.0019 |
| tabular-playground-series-dec-2021 | Tabular | 0.7 |
| tabular-playground-series-may-2022 | Tabular | 0.57 |
| text-normalization-challenge-english-language | Seq->Seq | 0.01 |
| text-normalization-challenge-russian-language | Seq->Seq | 0.01 |
| the-icml-2013-whale-challenge-right-whale-redux | Audio Classification | 0.29314 |
Some MLE-bench competition data is stored using Git-LFS. Once you have downloaded and installed LFS, run:
git lfs fetch --all
git lfs pull
You can install mlebench with pip:
pip install -e .
If you're committing code, you can install the pre-commit hooks by running:
pre-commit install
The MLE-bench dataset is a collection of 75 Kaggle competitions which we use to evaluate the ML engineering capabilities of AI systems.
Since Kaggle does not provide the held-out test set for each competition, we provide preparation scripts that split the publicly available training set into a new training and test set.
For each competition, we also provide grading scripts that can be used to evaluate the score of a submission.
We use the Kaggle API to download the
raw datasets. Ensure that you have downloaded your Kaggle credentials
(kaggle.json) and placed it in the ~/.kaggle/ directory (this is the default
location where the Kaggle API looks for your credentials). To download and prepare the MLE-bench dataset, run the following, which will download and prepare the dataset in your system's default cache directory. Note, we've found this to take two days when running from scratch:
mlebench prepare --all
To prepare the lite dataset, run:
mlebench prepare --lite
Alternatively, you can prepare the dataset for a specific competition by running:
mlebench prepare -c <competition-id>
Run mlebench prepare --help to see the list of available competitions.
Answers for competitions must be submitted in CSV format; the required format is described in each competition's description, or shown in a competition's sample submission file. You can grade multiple submissions by using the mlebench grade command. Given a JSONL file, where each line corresponds with a submission for one competition, mlebench grade will produce a grading report for each competition. The JSONL file must contain the following fields:
competition_id: the ID of the competition in our dataset.submission_path: a .csv file with the predictions for the specified
competition.See more information by running mlebench grade --help.
You can also grade individual submissions using the mlebench grade-sample command. For example, to grade a submission for the Spaceship Titanic competition, you can run:
mlebench grade-sample <PATH_TO_SUBMISSION> spaceship-titanic
See more information by running mlebench grade-sample --help.
We provide a base Docker image mlebench-env which is the base environment for our agents. This base image contains:
INSTALL_HEAVY_DEPENDENCIES environment variable to false when building the image, by adding --build-arg INSTALL_HEAVY_DEPENDENCIES=false to the docker build command belowBuild this image by running:
docker build --platform=linux/amd64 -t mlebench-env -f environment/Dockerfile .
We purposefully designed our benchmark to not make any assumptions about the agent that produces submissions, so agents can more easily be evaluated on this benchmark. We evaluated three open-source agents; we discuss this procedure in agents/README.md.
We include additional features in the MLE-bench repository that may be useful for MLE-bench evaluation. These include a rule violation detector and a plagiarism detector. We refer readers to extras/README.md for more information.
We collect example usage of this library in the examples/ directory, see examples/README.md for more information.
We place the code specific to the experiments from our publication of the
benchmark in the experiments/ directory:
experiments/splits/.experiments/make_submission.py script to compile its submission for grading.experiments/familiarity/, see experiments/familiarity/README.md for more information.Note, when running pytest locally, be sure to accept the competition rules otherwise the tests will fail.
There are some known issues with certain MLE-bench competitions. Since we have already received leaderboard submissions, we are postponing fixes to avoid invalidating the leaderboard. Instead, we plan to release batched fixes in the upcoming v2 release of MLE-bench on the openai/frontier-evals repo, which will include a version column in the leaderboard to distinguish between v1 and v2 results. If you wish to make a submission to v1 in the meantime, please still include the following competitions in your overall scores. The known issues are catalogued below:
validate_submission function in grade.py fails on this competition
because the answer file is test.jsonl instead of test.csv.
#134train/ and test/ directories incorrectly, so train.7z and test.7z
can be missing their image contents in the prepared public dataset.
#122.mat files leak test labels.
#77span_log.nmea files leak
information that makes achieving a perfect score trivial.
#93{image_id}.json files leak
information that makes achieving a close-to-perfect score trivial. They should
be removed.giver_username_if_known leaks the outcome,
enabling trivial perfect prediction. This competition should be dropped.
#108Chan 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
Please cite using the following BibTeX entry:
@article{chan2024mle-bench,
title={MLE-bench: Evaluating Machine Learning Agents on Machine Learning Engineering},
author={Jun Shern Chan and Neil Chowdhury and Oliver Jaffe and James Aung and Dane Sherburn and Evan Mays and Giulio Starace and Kevin Liu and Leon Maksin and Tejal Patwardhan and Lilian Weng and Aleksander Mądry},
year={2024},
eprint={2410.07095},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2410.07095}
}
The architecture is primarily driven by Gemini-3-Pro-Preview, with a subset of modules utilizing GPT-5 and GPT-5-mini. ↩ ↩2 ↩3
Computed by padding incomplete seeds with failing scores. ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 ↩9 ↩10 ↩11 ↩12 ↩13 ↩14 ↩15 ↩16 ↩17 ↩18 ↩19
With some light assistance from an ensemble of models including Gemini-2.5-Pro, Grok-4, and Claude 4.1 Opus, distilled by Gemini-2.5-Pro. ↩
918 followers · starred Aug 2026
348 followers · starred Jul 2025
622 followers · starred Jun 2026
4,155 followers · starred Apr 2026