Epoch AI Notable AI Models dataset

A Brightfield dashboard of Epoch AI's notable AI models. The main panel plots training compute (log10 FLOP) against the year each model was published, under the title "Training compute bends upward around 2010: since then it doubles in months, not years". Below it: models published per year, how the compute is known, and counts by the kind of organisation that built the model, how it can be reached, and its first-listed domain (top eight).
Data: Epoch AI, 'Data on AI models', CC BY 4.0

Epoch AI's database of notable AI models: when each was published, its first-listed domain, its training compute and how that compute is known, the kind of organisation behind it, and how the model can be reached. Epoch AI adds models as they are released and publishes no dated snapshot, so the recipe reads the file from Epoch AI's own URL on each run; it held 1,082 models on 26 October 2026. The Authors and Abstract columns are left out of every table the recipe makes.

Load it

These commands install arc, Meridian’s open-source Protocol runner, clone the open-analytics repository and run this Protocol, which writes build/models.parquet in open-analytics/examples/epoch-ai-models.

shell
curl -fsSL https://install.meridian.online/arc | bash
git clone https://github.com/meridian-online/open-analytics
cd open-analytics/examples/epoch-ai-models && arc run

arc runs the Protocol’s SQL on DuckDB 2.x, which its installer puts in place when no DuckDB is on your PATH, saying what to add to PATH; the last step, which describes the Parquet, needs finetype 0.6.54 or later on your PATH.

Columns

NameTypeDescription
modelstringThe model's name, as Epoch AI records it.
organizationstringThe organisation or organisations behind the model, comma-separated as the source gives them.
publication_datedateThe date the model was first published or announced.
publication_yearnumberpublication_date as a fractional year, so it can be drawn on a continuous axis.
training_compute_flopnumberThe compute used to train the model, in floating-point operations, where Epoch AI has recorded or estimated it.
training_compute_log10numberThe base-10 logarithm of training_compute_flop: training compute spans many orders of magnitude, and this is the scale it is drawn on.
domainstringThe first domain the source lists for the model, such as Language or Vision, or not given.
organization_typestringindustry, academia, industry and academia, government or collective, or not given, from the source's organisation categorisation.
accessstringopen weights, API or hosted only, unreleased, or not given, from the source's model accessibility.
compute_recordstringWhether training compute is recorded, and if so the confidence Epoch AI gives the figure: confident, likely or speculative.

Source and licence

Licence

Sources

Meridian hosts none of this data: the Protocol downloads it, from the address its fetch step names, when you run it.

The steps

5 stepsduckdb >=1.2

Every step runs in order. op: steps are typed, versioned operators; sql: steps are DuckDB models.

  1. 01fetch_modelsop: http_fetch@1

    Fetch notable_ai_models.csv from Epoch AI. No sha256 pin, deliberately: Epoch AI adds models as they are released, so each run reads the file as Epoch AI publishes it that day.

    producesbuild/notable_ai_models.csv
    with
    url: https://epoch.ai/data/notable_ai_models.csv
    out: build/notable_ai_models.csv
    headers:
      User-Agent: Meridian Protocol (open-analytics demo; research@meridian.online)
  2. 02raw_modelssql: models/01_raw_models.sql

    Read the models as they arrive, leaving out the Authors and Abstract columns. Checks that every model has a name and a date and that the file holds at least 1,000 rows.

    readsbuild/notable_ai_models.csvproducesraw_models
    model
    models/01_raw_models.sql
  3. 03modelssql: models/02_models.sql

    Shape the table a dashboard reads: publication date, training compute, first-listed domain, the kind of organisation behind the model, how it can be reached, and how its compute is known.

    producesmodels
    model
    models/02_models.sql
  4. 04export_modelsop: parquet_export@1

    Write build/models.parquet, on your own disk. ORDER BY ALL makes the bytes reproducible for a given day's file, not across days.

    readsmodelsproducesbuild/models.parquet
    with
    input: models
    dest: build/models.parquet
    compression: zstd
    order_by: ALL
  5. 05describeop: datapackage_describe@1

    Emit datapackage.json from the built Parquet: finetype types every column, and descriptor.overrides.json adds the curated title, licence, sources and per-field prose.

    readsbuild/models.parquetdescriptor.overrides.jsonproducesdatapackage.json
    with
    parquet: build/models.parquet
    overrides: descriptor.overrides.json
    out: datapackage.json