Ein autonomes KI-Forschungsframework von Andrej Karpathy, das einem KI-Agenten (Claude/Codex) ermöglicht, ein kleines LLM über Nacht auf einer einzigen GPU iterativ zu modifizieren, zu trainieren und zu evaluieren – wobei etwa 100 Experimente laufen, während Sie schlafen.
autoresearch — Autonomer KI-Agent LLM-Forschungsframework
Übersicht
autoresearch ist ein experimentelles Framework von Andrej Karpathy, das den Prozess der KI/ML-Forschungsiteration automatisiert. Die Kernidee ist elegant einfach: Geben Sie einem KI-Agenten (wie Claude oder Codex) eine echte, funktionierende LLM-Trainingscodebasis und lassen Sie ihn autonom Änderungen vorschlagen, 5-minütige Trainingsversuche durchführen, Ergebnisse auswerten und iterieren – alles ohne menschliches Eingreifen.
Stellen Sie es sich als ein minimales, in sich geschlossenes KI-Forschungslabor vor, das über Nacht auf einer einzelnen GPU läuft und bis zum Morgen einen Protokoll von ca. 100 Experimenten und (hoffentlich) ein sich progressiv verbesserndes Sprachmodell liefert.
Hintergrund & Motivation
Karpathy eröffnet die README mit einer sarkastischen Vision der Zukunft – einer Welt, in der KI-Forschung nicht mehr von Menschen, sondern von „autonomen Schwärmen von KI-Agenten, die über Compute-Cluster-Megastrukturen laufen“, betrieben wird. Das Repository, schreibt er, ist „die Geschichte, wie alles begann“.
Die praktische Motivation ist bodenständiger: Die Forschungsiteration ist langsam, weil Menschen essen, schlafen und an Besprechungen teilnehmen müssen. Dieses Projekt ersetzt den Menschen in der Schleife durch einen KI-Agenten, der Experimente rund um die Uhr durchführen kann, wodurch die ML-Forschung dramatisch schneller und automatisierter wird.
Funktionsweise
Der Workflow ist eine enge editieren → trainieren → auswerten → behalten/verwerfen-Schleife:
- Der Agent liest
program.md– eine Markdown-Datei, die Forschungsanweisungen und Kontext enthält und vom menschlichen Forscher geschrieben und gepflegt wird. - Der Agent modifiziert
train.py– die einzelne Python-Datei, die die GPT-Modellarchitektur, den Optimizer (Muon + AdamW) und die Trainingsschleife enthält. Der Agent kann alles ändern: Architektur, Hyperparameter, Optimizer-Einstellungen, Batch-Größe usw. - Das Training läuft genau 5 Minuten (Wandzeit, ohne Start/Kompilierung).
- Die Metrik
val_bpb(validation bits per byte) wird berechnet – niedriger ist besser. Sie ist unabhängig von der Vokabulargröße, sodass architektonische Änderungen fair verglichen werden können. - Der Agent entscheidet, ob er die Änderung beibehalten oder verwerfen soll, und wiederholt dann den Vorgang.
Dies ergibt ungefähr 12 Experimente/Stunde und ca. 100 Experimente über Nacht.
Repository-Struktur
autoresearch/
├── prepare.py # Fest: einmalige Datenvorbereitung, BPE-Tokenizer-Training, Dataloader, Eval-Utils
├── train.py # Vom Agenten editierbar: GPT-Modell, Optimizer, Trainingsschleife
├── program.md # Vom Menschen editierbar: Agenten-Anweisungen und Forschungskontext
├── analysis.ipynb # Notebook zur Analyse von Experimentergebnissen
├── pyproject.toml # Abhängigkeiten (verwaltet über uv)
└── progress.png # Teaser-Bild, das den Trainingsfortschritt zeigt
Wichtige Dateien erklärt
| Datei | Besitzer | Zweck |
|---|---|---|
prepare.py |
Mensch (fest) | Lädt Daten-Shards herunter, trainiert BPE-Tokenizer, stellt Dataloader & Auswertungs-Utilities bereit |
train.py |
KI-Agent | Vollständige GPT-Implementierung + Trainingsschleife – die Sandbox des Agenten |
program.md |
Mensch (iterierbar) | Forschungs-"Skill" / Anweisungen für den Agenten |
Designphilosophie
1. Eine Datei zum Modifizieren
Der Agent berührt nur train.py. Dies hält den Umfang überschaubar und die Diffs leicht überprüfbar. Es schränkt auch den Aktionsraum des Agenten auf sinnvolle ML-Änderungen statt auf Infrastruktur-/Tooling-Änderungen ein.
2. Festes Zeitbudget
Jedes Experiment läuft genau 5 Minuten Trainingszeit (Wandzeit) (ohne Start). Dies stellt sicher:
- Alle Experimente sind direkt vergleichbar, unabhängig von architektonischen Änderungen (Modellgröße, Batch-Größe usw.)
- Der Agent findet die beste Modellkonfiguration für Ihre spezifische Hardware
- Vorhersehbare Durchsatzrate: ~12 Experimente/Stunde
Der Kompromiss: Die Ergebnisse sind nicht portierbar auf verschiedene Rechenplattformen (ein H100-Lauf kann nicht mit einem A100-Lauf verglichen werden).
3. In sich geschlossen
Kein verteiltes Training, keine komplexen Konfigurationsdateien, keine externe Forschungsinfrastruktur. Nur PyTorch + eine Handvoll kleiner Pakete, eine GPU, eine Datei, eine Metrik. Dies macht das Projekt leicht verständlich, zu forken und darauf aufzubauen.
4. program.md als menschliche Schnittstelle
Anstatt einen Forschungsagenten von Grund auf neu zu programmieren, verwendet Karpathy program.md als leichtgewichtigen "Skill" – eine Markdown-Datei, die dem KI-Agenten Kontext, Ziele und Einschränkungen gibt. Der Mensch iteriert im Laufe der Zeit über program.md, um den "Forschungs-Organisationscode" zu verbessern.
Technische Details
Modell & Training
- Basiert auf einer vereinfachten Single-GPU-Version von nanochat
- Verwendet standardmäßig den Muon + AdamW Optimizer (obwohl der Agent dies ändern kann)
- Trainiert ein GPT-ähnliches Modell von Grund auf auf heruntergeladenen Textdaten-Shards
- BPE-Tokenizer, der über
prepare.pyauf den Daten selbst trainiert wird - Bewertungsmetrik: val_bpb (validation bits per byte)
Anforderungen
- GPU: Einzelne NVIDIA GPU (getestet auf H100)
- Python: 3.10+
- Paketmanager: uv
Schneller Start
# 1. uv installieren (falls noch nicht installiert)
curl -LsSf https://astral.sh/uv/install.sh | sh
# 2. Abhängigkeiten installieren
uv sync
# 3. Einmalige Datenvorbereitung (~2 min)
uv run prepare.py
# 4. Einen einzelnen Trainingsversuch durchführen (~5 min)
uv run train.py
Ausführen des Agenten
Starten Sie Claude, Codex oder einen beliebigen fähigen Coding-Agenten im Repository-Verzeichnis (mit Schreibrechten für Dateien) und geben Sie dann die Aufforderung ein:
Schau dir program.md an und lass uns ein neues Experiment starten! Machen wir zuerst das Setup.
Der Agent liest program.md, schlägt eine Änderung an train.py vor, führt das Training durch, wertet das Ergebnis aus und iteriert.
Bedeutung & Auswirkung
autoresearch ist ein Proof-of-Concept für automatisiertes Machine-Learning-Research im Mikromaßstab. Während es große AutoML-Systeme gibt, ist dieses Projekt bemerkenswert für:
- Einfachheit: Die gesamte sinnvolle Codebasis besteht aus ~3 Dateien
- Transparenz: Jede Entscheidung des Agenten wird protokolliert und kann überprüft werden
- Zugänglichkeit: Läuft auf einer einzelnen Consumer-/Research-GPU
- Vision: Es demonstriert die Machbarkeit, dass KI-Agenten eigenständig echte ML-Forschung betreiben.
Es dient auch als Vorlage für das "Programmieren Ihrer KI-Forschungsorganisation über Markdown" – ein Paradigma, das zum Standard werden könnte, wenn KI-Coding-Agenten leistungsfähiger werden.
Bemerkenswerte Forks
- miolini/autoresearch-macos — macOS/MPS-Unterstützung
Zusammenfassung
| Eigenschaft | Wert |
|---|---|
| Typ | Autonomes KI-Forschungsagenten-Framework |
| Primäre Verwendung | Nächtliche automatisierte LLM-Trainings-Experimente |
| Agenten-Schnittstelle | program.md (Markdown-Anweisungen) |
| Agenten-Aktionsraum | train.py (GPT-Modell + Trainingsschleife) |
| Experimentdauer | 5 Minuten (fest) |
| Durchsatz | ~12 Experimente/Stunde, ~100 über Nacht |
| Metrik | val_bpb (validation bits per byte) |
| Hardware | Einzelne NVIDIA GPU (H100 getestet) |
| Lizenz | MIT |