Obsah

autoresearch – autonomní ML experiment loop

autoresearch je open-source framework od Andreje Karpathyho, který umožňuje AI agentovi autonomně provádět stovky ML experimentů přes noc. Agent opakovaně upravuje trénovací kód, spouští krátké experimenty a měří výsledky – bez zásahu člověka.

Jak to funguje

Celý cyklus je přímočarý:

  1. Agent si přečte instrukce v program.md
  2. Navrhne změnu v train.py – architekturu, hyperparametry, optimizer
  3. Spustí trénink (přesně 5 minut na hodinách)
  4. Změří výsledek (metrika val_bpb)
  5. Pokud je výsledek lepší, změnu ponechá; pokud horší, zahodí
  6. Cyklus se opakuje

Za noc tak proběhne přibližně 100 experimentů. Člověk nastaví pravidla hry v program.md, agent dělá experimenty sám.

Klíčové soubory

prepare.py – jednosměrná příprava dat. Stáhne trénovací data a natrénuje BPE tokenizer. Tento soubor člověk ani agent neupravuje.

train.py – jediný soubor, který agent edituje. Obsahuje architekturu GPT-like modelu, optimizer (Muon + AdamW) a celý trénovací loop. Agent může měnit cokoliv: hloubku modelu, batch size, attention pattern, regularizaci, scheduling.

program.md – instrukce pro agenta. Tento soubor edituje člověk – zde se nastavuje výzkumný směr, omezení a cíle experimentů.

Instalace

Potřebuješ NVIDIA GPU (projekt je testovaný na H100) a Python 3.10+.

curl -LsSf https://astral.sh/uv/install.sh | sh
uv sync
uv run prepare.py    # stáhne data a tokenizer, jednorázově (~2 minuty)
uv run train.py      # spustí jeden 5minutový experiment ručně

Komunita vytvořila forky i pro macOS, Windows a AMD GPU s upravenými hyperparametry pro menší compute.

Metrika: val_bpb

Všechny experimenty se porovnávají podle jedné metriky – validation bits per byte (val_bpb). Čím nižší číslo, tím lepší model. Fixní časový rozpočet 5 minut zajistí, že všechny pokusy jsou přímo srovnatelné a výsledek je optimalizovaný pro konkrétní hardware, na kterém experimenty běží.

Co obsahuje – a co ne

Repo obsahuje:

Repo neobsahuje:

Při spuštění se model inicializuje s náhodnými vahami a trénuje se od nuly. Pro použití s open-weight modely by bylo potřeba upravit experiment loop a metriku.

Typické use cases

Limity

Zdroje