- Ein in sich geschlossenes autonomes Forschungs-Framework, das den nanochat-LLM-Trainingskern auf etwa 630 Zeilen in einer einzelnen Datei auf einer einzelnen GPU komprimiert und mit dem KI-Agenten über Nacht autonom LLM-Trainingsexperimente wiederholen können
- Der Mensch passt den
Prompt an, der KI-Agent ändert den Trainingscode → trainiert mit festem Zeitbudget von 5 Minuten → vergleicht die Ergebnisse → wiederholt die Schleife aus Beibehalten oder Verwerfen
- Der Agent läuft in einer autonomen Schleife auf einem Git-Feature-Branch und sammelt Git-Commits für das Trainingsskript, jedes Mal wenn bei neuronaler Architektur, Optimizer, Hyperparametern usw. ein niedrigerer validation loss erreicht wird
- Ziel ist es, einen Agenten zu entwerfen, der ohne menschliches Eingreifen den schnellstmöglichen Forschungsfortschritt erzielt
Projektüberblick
- Struktur, in der ein KI-Agent den Trainingscode autonom verändert und Experimente ausführt, basierend auf einer vereinfachten Single-GPU-Implementierung von nanochat
- Der Agent wiederholt die Schleife aus Code ändern → 5 Minuten trainieren → Ergebnis prüfen → beibehalten/verwerfen; der Nutzer prüft morgens die Experiment-Logs und das verbesserte Modell
- Vorgehensweise, bei der ein gewünschter Agent wie Claude oder Codex mit diesem Repository verbunden wird,
program.md liest und dann die Experimente startet
Zentrale Dateistruktur (nur 3 sind wichtig)
prepare.py - enthält feste Konstanten, Datenvorbereitung (Download der Trainingsdaten, Training des BPE-Tokenizers) und Runtime-Utilities (Data Loader, Evaluation); nicht zur Änderung vorgesehen
train.py - die einzelne Datei, die vom Agenten geändert wird; enthält das vollständige GPT-Modell, den Optimizer (Muon + AdamW) und die Trainingsschleife; alle Elemente wie Architektur, Hyperparameter, Optimizer und Batch-Größe können geändert werden
program.md - grundlegende Anweisungsdatei für den Agenten; wird vom Menschen bearbeitet und dient als leichtgewichtiges Skill, das die Richtung der autonomen Forschung des Agenten festlegt
Designprinzipien
- Änderung an nur einer Datei: Der Agent verändert ausschließlich
train.py, wodurch der Änderungsumfang beherrschbar bleibt und Diffs leicht geprüft werden können
- Festes Zeitbudget: Unabhängig von der Plattform immer genau 5 Minuten Laufzeit → etwa 12 Durchläufe pro Stunde, rund 100 Experimente während des Schlafs möglich
- Direkter Vergleich zwischen Experimenten möglich, unabhängig von Änderungen an Modellgröße, Batch-Größe, Architektur usw.
- Nachteil: nicht mit Ausführungsergebnissen anderer Personen auf anderen Plattformen vergleichbar
- In sich geschlossen: keine externen Abhängigkeiten außer PyTorch und einigen wenigen Paketen; kein verteiltes Training; keine komplexe Konfiguration
Anforderungen und Ausführung
- Anforderungen: einzelne NVIDIA-GPU (getestet auf H100), Python 3.10+, Paketmanager
uv
- Derzeit nur für NVIDIA-GPUs; Unterstützung anderer Plattformen wie CPU/MPS ist aus Sorge vor Code-Aufblähung aktuell nicht enthalten
- Wenn breitere Plattformunterstützung benötigt wird, wird das übergeordnete nanochat-Repository empfohlen; ein macOS-Fork (
miolini/autoresearch-macos) existiert bereits
- Beim Ausführen des Agenten werden Claude/Codex usw. im Repository gestartet, alle Berechtigungen deaktiviert und per Prompt angewiesen,
program.md zu lesen und mit den Experimenten zu beginnen
Grundlegende Designabsicht von program.md
- Das Standard-
program.md bleibt absichtlich eine minimale Baseline
- Es kann im Lauf der Zeit iterativ verbessert werden, um einen „Forschungsorganisations-Code“ zu finden, der den schnellsten Forschungsfortschritt erzielt
- Die Struktur lässt sich auch klar erweitern, etwa durch das Hinzufügen weiterer Agenten oder spezifischerer Anweisungen
3 Kommentare
Bitte auch AMD ROCm unterstützen.
Karpathys Vorstellungs-Tweet
> Für alle, die es am Wochenende ausprobieren möchten, habe ich das vorbereitet.
> Ein Werk aus Code, Science-Fiction und einem Hauch Wahnsinn :)
Warum machen Sie so etwas am Wochenende, Herr Professor?
Ich glaube, er erstellt die Materialien schnell, damit die Vorlesungsunterlagen nicht veralten und er den Eureka-Lab-Kurs veröffentlichen kann, und macht deshalb wohl immer weiter damit ;_;
PS: Vor 7 Stunden hat er wohl noch etwas Neues erstellt und hochgeladen, nämlich AgentHub 🫢