Framework
openml/automlbenchmark avatar
openml/automlbenchmark

OpenML AutoML Benchmark: A Standardized Harness for Comparing AutoML Systems

OpenML AutoML Benchmarking Framework

468 stars150 forksPythonMIT

At a glance

What is it?
The OpenML AutoML Benchmark packages curated OpenML task suites with a runner that executes AutoML frameworks inside Docker or Singularity containers, locally or on AWS. Its value is comparability, and its cost is that you inherit its task definitions, its container assumptions and a release cadence that has been quiet since 2023.
Who is it for?
Adopt it if you need a defensible comparison between two or more AutoML systems on a shared, published task suite, and you can run containers or provision AWS instances. Do not adopt it if your question is whether AutoML helps on your own tabular data; the curated suites are fixed and the harness is built around them, not around arbitrary CSV files.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 1 day ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

The Two Reproducibility Problems This Harness Attacks

The README names two obstacles to AutoML research. The first is the absence of standardized, easily accessible benchmarking suites of tasks, curated to reflect important problem domains and difficult enough to support rigorous analysis. The second is subtler: small differences in problem definition, such as how the hyperparameter search space is designed or how time budgets are defined, can change a task's difficulty substantially. That second point is the more interesting one, because it is not a data problem. Two papers can use the same dataset and still be incomparable if one gives each framework sixty minutes and the other gives it sixty minutes per fold, or if the search space is bounded differently.

The framework's answer is to fix the environment rather than the algorithm. Tasks come from OpenML, organized into regression and classification suites that the project maintains as OpenML study collections. Frameworks are plugged in as definitions. The runner then imposes a common protocol on both. This is aimed at AutoML researchers and benchmark maintainers, plus engineering teams that need an internal comparison between two candidate systems and would rather borrow a published protocol than invent one. It is not aimed at someone who wants a quick accuracy number on a private dataset; nothing in the supplied material suggests the curated suites can be swapped for arbitrary local files without work.

Curated OpenML Suites Plus a Containerized Runner

The architecture has three visible parts. First, task suites: curated collections of OpenML datasets for regression and classification, published as OpenML studies rather than shipped as raw files. Second, framework definitions: code that benchmarks a set of popular AutoML systems on those tasks, with a documented extension path for adding new ones. Third, an execution layer that runs experiments in Docker or Singularity containers, either locally or on AWS.

The container choice is the load-bearing decision. AutoML systems carry heavy and mutually incompatible dependency trees, and a container boundary is the only practical way to run several of them in one campaign without version conflicts. It also means results depend on the image, not just on the framework version string, so the container definition is part of the experimental record. The AWS path exists because a full suite across several frameworks is a long-running job that most laptops cannot finish in a reasonable window.

The README does not describe the internal scheduling, parallelism or result-aggregation mechanics, so I cannot say how the runner distributes tasks across cores or how partial failures are handled. Treat those as unknowns to inspect in the source before you plan a large campaign.

Getting a First Run Without Reading the Whole Manual

The README points to a dedicated installation page under the documentation site rather than embedding setup steps, so the exact bootstrap command is not in the material I have. What the README does state plainly is the set of execution targets: Docker, Singularity, local execution and AWS. Those are the four knobs that determine your first run.

Practically, the sequence is: clone the repository, install its Python dependencies, confirm a container runtime is available if you intend to use one, then invoke the runner against a named suite and a named framework. The extension documentation lives at the project's docs site under an extending path, and it covers both adding a framework and adding datasets, which tells you the two extension surfaces are treated as separate concerns. Configuration in this family of tools is conventionally driven by a YAML file plus command-line overrides, but I have not verified the specific keys from the material provided, so check the getting-started page for the current names rather than copying keys from a blog post.

One practical note: because experiments run in containers, the host Python version matters far less than the image contents. If a run fails immediately, the container runtime is the first thing to check, not your virtualenv.

Where the Harness Fights You

The strongest limitation is the one the project would probably accept as a design consequence: the curated suites are the point. A benchmark that lets you substitute any dataset stops being a benchmark. If your interest is a specific domain, say insurance claims or sensor telemetry, and that domain is not represented in the OpenML regression or classification collections the project curates, the framework gives you an extension path but not an answer. You would be maintaining a fork of the task definition rather than using a shared one, and comparisons you publish from it would not be comparable to anyone else's.

The second limitation is release cadence. The three most recent releases in the material are v2.1.7 in September 2023, v2.1.6 in June 2023 and v2.1.5 in June 2023. The repository shows a push in September 2026, so the project is not abandoned, but the tagged releases are old relative to that push. Anyone pinning to a release is pinning to a 2023 dependency set, and AutoML frameworks move quickly. The v2.1.7 notes mention a NAML version bump and a fix for evaluation on sparse targets, which suggests the maintenance work is exactly this kind of version chasing.

The third limitation is operational. Container-based execution on AWS means cost and quota management are yours. Nothing in the README describes a budget guard, and a suite run across several frameworks is not a short job. I cannot confirm from the material whether the runner supports resuming an interrupted campaign, so plan for the possibility that a failed AWS run means starting over.

How It Differs From Generic Experiment Trackers

The obvious alternative is a general-purpose experiment tracker such as MLflow: log parameters, metrics and artifacts from whatever training script you write, then compare runs in a UI. That approach is more flexible. It will accept any dataset, any model and any metric you define, and it does not care whether a container is involved.

The difference in approach is where the standardization lives. MLflow standardizes the record of an experiment; you still define the experiment. The OpenML AutoML Benchmark standardizes the experiment itself: which tasks, which protocol, which execution environment. That is why results from it can be compared across papers and why results from a hand-rolled MLflow project generally cannot, even when both use the same datasets. If your goal is a number you can defend against someone else's number, the harness is doing work that a tracker will not do for you. If your goal is to iterate on your own pipeline, the harness is overhead.

A second alternative is to use the OpenML task collections directly and write your own runner. That gets you the curated suites without the container layer, at the cost of reimplementing the protocol that makes the suites comparable in the first place.

Maintenance Surface and What the MIT Licence Does Not Cover

Two maintenance costs are visible. The first is dependency drift: each AutoML framework in the set has its own release cycle, and the project's own release notes show it absorbing those changes. If you add a framework, you own that integration forever. The second is the container images. They are the reproducibility boundary, and they will need rebuilding as base images age and as upstream frameworks change their install requirements.

The licence is MIT for the harness. That is permissive: you can modify it, redistribute it and use it commercially, subject to the usual requirement to preserve the copyright notice and permission notice. Two caveats are worth stating without pretending to give legal advice. First, MIT covers the code in this repository, not the AutoML systems it downloads or the datasets it fetches from OpenML; those carry their own licences, and some AutoML frameworks are not permissively licensed. Second, benchmark results you publish are a separate question from the licence, and the project's paper is the natural citation target. Read the actual licence files of every framework you add to a suite before you ship numbers built on them.

Who Should Pick This Up, and What to Check First

This is a tool for a narrow job done properly. If you are choosing between two AutoML systems for a production tabular pipeline and you want the comparison to survive scrutiny, running both on a published OpenML suite gives you a defensible answer and a citation. If you are an AutoML author who wants your system measured on the same terms as the established ones, the extension path for adding a framework is the entry point.

If your question is whether AutoML beats a tuned gradient boosting baseline on your own data, this is the wrong tool. Nothing here is designed around private datasets, and the container and AWS machinery is overhead you would be paying for nothing.

Before you commit, check three things in the repository rather than in this article. Confirm your target frameworks are in the bundled set or budget time to write a definition. Confirm your environment can run Docker or Singularity, since that is the execution boundary. And check whether the pinned dependencies from the 2023 releases still install cleanly on your Python version, because that is the failure you are most likely to hit on day one.

Editorial conclusion

Adopt it if you need a defensible comparison between two or more AutoML systems on a shared, published task suite, and you can run containers or provision AWS instances. Do not adopt it if your question is whether AutoML helps on your own tabular data; the curated suites are fixed and the harness is built around them, not around arbitrary CSV files. Before committing, verify three things: that your target frameworks are present in the bundled framework set or that you are prepared to write a new framework definition, that your compute environment supports Docker or Singularity, and whether the pinned dependency versions in the repository still resolve on your Python version given that the most recent tagged release is v2.1.7 from September 2023. The MIT licence covers the harness code, while the datasets it downloads remain subject to their own OpenML terms.

Official sources

  1. License: MIT
  2. openml/automlbenchmark on GitHub
  3. Project website
  4. README
  5. Releases
Community notes

Community notes