Modell / Datensatz
raiyanyahya/how-to-train-your-gpt avatar
raiyanyahya/how-to-train-your-gpt

how-to-train-your-gpt: Ein Lehrbuch, das den Attention-Teil nicht überspringt

Build a modern LLM from scratch. Every line commented. Explained like we are five.

3.341 Sterne411 ForksJupyter NotebookMIT
GitHub

Auf einen Blick

Was ist das?
Zwölf Kapitel, rund 7.500 Zeilen und 28 Einzelerklärungen bauen einen LLaMA-3-artigen Decoder von der Tokenisierung bis zum KV-Cache. Das Material ist Lernstoff, kein Framework, und genau so sollte man es einsetzen.
Für wen ist es gedacht?
Wer Attention, RoPE und RMSNorm endlich selbst schreiben will und bereit ist, rund 3.500 Zeilen kommentierten Code sequenziell zu lesen, findet hier ein in sich geschlossenes Lehrbuch mit MIT-Lizenz. Wer ein trainiertes Modell, reproduzierbare Benchmarks oder Wartung sucht, ist falsch: das Repository liefert laut README keine Releases und keinen Homepage-Eintrag.
Darf ich es kommerziell nutzen?
Ja. MIT ist eine freizügige Lizenz: Sie dürfen darauf aufbauende Software nutzen, verändern und verkaufen, solange Sie die Urheberrechts- und Lizenzhinweise beibehalten.
Wird es noch gepflegt?
Ja. Die letzten Commits kamen vor 16 Tagen.
In welcher Sprache ist es geschrieben?
Hauptsächlich Jupyter Notebook, laut der Sprachstatistik von GitHub.

Die Antworten beruhen auf den GitHub-Daten des Projekts (zuletzt abgeglichen am 15. September 2026) und auf unserer Analyse. Sie sind keine Rechtsberatung.

TIEFGEHENDE OPEN-SOURCE-ANALYSE

Ein Lehrbuch für die Lücke zwischen API-Aufruf und Paper

Das Repository beschreibt sich selbst als Antwort auf zwei verbreitete Arten von ML-Material: Anleitungen, in denen ein Modell in einer Zeile trainiert wird, und akademische Arbeiten mit dichter Notation. Der Autor nennt als persönliches Motiv, dass er den Attention-Teil nicht vollständig verstanden hatte und KI-Werkzeuge zum Prüfen der Konzepte nutzte. Das ist eine ehrliche Herkunftsangabe und erklärt den Zuschnitt: Der Stoff ist für Python-Entwickler gedacht, die Funktionen, Klassen und Listen beherrschen, aber keine ML-Vorkenntnisse mitbringen. Calculus und lineare Algebra werden laut README unterwegs eingeführt. Die Zielgruppe ist damit enger als der Titel vermuten lässt. Wer bereits einen Transformer implementiert hat, wird von den Analogien und der kindlichen Sprache eher aufgehalten. Wer dagegen bei fremden Tutorials an der Stelle "attention" ausgestiegen ist, bekommt hier eine zweite Chance mit numerisch durchgerechneten Beispielen.

Der Aufbau: Kapitel, Topic-Explainer und zwei Satz-Durchläufe

Das Material ist in zwölf Kapitel von 00_overview.md bis 11_glossary.md gegliedert, dazu kommen laut README 28 eigenständige Topic-Explainer (genannt werden RoPE, Attention, RMSNorm, SwiGLU, KV-Cache, AdamW und Mixed Precision) sowie zwei narrative Walkthroughs, die einen einzelnen Satz Schritt für Schritt durch das Modell verfolgen. Die Kapitel bauen aufeinander auf, das README empfiehlt ausdrücklich, mit Kapitel 0 zu beginnen und sequenziell zu lesen. Diese Empfehlung ist keine Höflichkeit: Kapitel 4 erklärt RoPE, Kapitel 5 setzt es voraus, Kapitel 6 verbaut beides im Transformer-Block. Die Trennung zwischen Kapiteln und Topic-Explainaern ist der eigentliche Strukturgewinn. Man liest einmal den Fluss und kann später gezielt nachschlagen, wenn beim eigenen Code die Frage auftaucht, warum skaliert wird. Die zwei Satz-Durchläufe sind das Gegenmittel gegen das typische Problem von Architekturkapiteln, dass nach dem Lesen unklar bleibt, welche Form ein Tensor an welcher Stelle hat.

Was tatsächlich implementiert wird, Zeile für Zeile

Das README gibt eine Aufschlüsselung nach Komponenten mit ungefähren Zeilenzahlen: BPE-Tokenizer rund 60 Zeilen, Embeddings rund 30, RoPE rund 70, Multi-Head Attention rund 120, Transformer-Block rund 50, vollständiges GPT-Modell rund 200, Trainingspipeline rund 250, Inference-Engine rund 80. In Summe etwa 860 Zeilen Kernmodellcode, dazu laut README rund 2.600 Zeilen Erklärung und Diagramme. Der Anspruch "100% commented" bedeutet hier, dass jede Zeile erklärt wird, was sie tut und warum sie existiert. Das Modell selbst hat laut Kapitelübersicht 151 Millionen Parameter, mit SwiGLU, Weight Tying und Pre-Norm. Die Architekturtabelle ordnet jede Technik einem Herkunftsmodell zu: RoPE von LLaMA, Mistral und Qwen, RMSNorm von LLaMA, Mistral und Gemma, SwiGLU von PaLM, LLaMA und Gemini, Pre-Norm von GPT-3. Das README weist selbst darauf hin, dass GPT-4 und Claude nicht offengelegt sind und man deshalb die beste öffentlich bestätigte Architektur lehre. Diese Einschränkung ist wichtiger als sie klingt: Wer die Tabelle als Aussage über ChatGPT liest, zieht den falschen Schluss.

Zahlen, die im README stehen, und solche, die fehlen

An mehreren Stellen nennt das Material quantitative Behauptungen: RMSNorm sei 15 Prozent schneller als LayerNorm bei gleicher Wirksamkeit, Weight Tying spare 30 Prozent Parameter, Mixed Precision bringe doppelten Durchsatz bei halbem Speicherbedarf und gleicher Qualität. Diese Angaben sind im Repository nicht mit Messungen hinterlegt, es gibt keine Releases und keinen Homepage-Eintrag. Man sollte sie als Lernregeln behandeln, nicht als Benchmark. Für die Entscheidung, ob man dem Stoff folgt, ist das unproblematisch: Wer die Herleitung von 1/sqrt(d_k) versteht, kann die Zahlen später selbst nachmessen. Für die Entscheidung, ob man diese Vorlagen in Produktionscode überführt, ist es relevant. Kapitel 11 enthält laut README eine Architektur-Herkunftstabelle und eine Parameteraufschlüsselung, das ist die Stelle, an der man die 151 Millionen Parameter nachvollziehen kann statt sie zu glauben.

In Betrieb nehmen: Klonen, Colab oder lokale Umgebung

Der Quick-Start im README beginnt mit git clone https://github.com/raiyanyahya/how-to-train-your-gpt.git und einem cd in das Verzeichnis. Kapitel 1 behandelt die Einrichtung: Abhängigkeiten installieren, GPU gegen CPU abwägen, venv anlegen, PyTorch-Grundlagen. Für den kürzesten Weg verlinkt das README ein Colab-Notebook unter notebooks/colab_train.ipynb, das direkt aus dem Repository geladen wird. Kapitel 10 enthält laut Inhaltsverzeichnis ein vollständiges main.py, in dem alles in einer Datei zusammengeführt ist, und ist damit der einzige Ort, an dem der komplette Pfad von Tokenisierung über Training bis Inferenz ohne Kapitelwechsel sichtbar wird. Konkrete Konfigurationsschlüssel, etwa für Lernrate, Warmup-Schritte oder Temperatur, sind im README nicht abgedruckt; sie stehen in den Kapiteln und im Skript. Wer das Repository nur nach dem README bewertet, sieht die Trainingsparameter nicht. Das ist ein Grund, vorher in Kapitel 8 und 9 zu schauen.

Wo der Ansatz an Grenzen stößt

Der wichtigste Vorbehalt steht im README selbst als Badge: "purpose: learning only". Es gibt keine Releases, keine veröffentlichten Gewichte und keine Angabe zu Datensätzen oder Trainingsdauer. Wer ein Modell braucht, das auf einem eigenen Korpus trainiert werden soll, muss die Datenpipeline vollständig selbst bauen; das Material behandelt laut Kapitelverzeichnis die Mechanik des Trainings, nicht die Beschaffung und Bereinigung von Text. Ein zweiter Punkt betrifft die Sprache der Erklärung: Kindgerechte Analogien sind ein didaktisches Werkzeug, aber sie skalieren nicht. Wer nach dem Durcharbeiten eine Architekturvariante bewerten will, braucht die Paper, und das README verweist nicht auf Primärliteratur. Drittens die Kommentardichte. Rund 3.500 Zeilen kommentierter Code sind zum Lernen richtig und zum Wiederverwenden hinderlich, weil die Erklärungen zwischen den Anweisungen stehen. Für einen schnellen Vergleich mit einer anderen Implementierung ist das die falsche Quelle.

Alternative: nanoGPT und was sich dadurch ändert

Die naheliegende Alternative ist nanoGPT von Andrej Karpathy, ebenfalls ein von Grund auf geschriebener Decoder in PyTorch. Der Unterschied liegt nicht im Umfang, sondern im Verhältnis von Kommentar zu Code. nanoGPT ist auf knappen, produktionsnahen Code hin optimiert: Man liest ihn, um zu sehen, wie wenig für ein funktionierendes Modell nötig ist, und kann ihn als Ausgangspunkt für eigene Trainingsläufe nehmen. how-to-train-your-gpt ist auf Erklärung hin optimiert: 860 Zeilen Kerncode gegen 2.600 Zeilen Erläuterung, mit 28 Einzeltexten zu Techniken wie RoPE oder KV-Cache. Wer die Wahl hat, sollte sie an der eigenen Frage festmachen. Frage "warum funktioniert Attention" führt hierher. Frage "wie bekomme ich schnell ein Modell auf meinen Text" führt zu nanoGPT. Beide Wege sind mit MIT-Lizenz nutzbar, was für kommerzielle Verwendung ohne Copyleft-Pflichten spricht. Rechtliche Beratung ersetzt das nicht, und das Repository enthält keine NOTICE-Datei oder Angaben zu Beiträgen Dritter, die man prüfen müsste.

Wartung, Aktualisierung und was das für die Lizenz bedeutet

Der letzte Push liegt laut Metadaten im August 2026, das Repository ist nicht archiviert und hat keine veröffentlichten Releases. Ein versionierter Stand, auf den man sich berufen könnte, existiert damit nicht; wer das Material in einem Kurs einsetzt, sollte einen Commit-Hash festhalten statt auf master zu verweisen. Die MIT-Lizenz erlaubt Weitergabe und Anpassung, verlangt aber die Beibehaltung des Copyright-Hinweises und des Lizenztextes. Für ein Lehrbuch, aus dem man Code in ein eigenes Projekt kopiert, ist das die relevante Pflicht. Da das README selbst angibt, dass KI-Werkzeuge beim Verstehen und Prüfen der Konzepte verwendet wurden, ist eine unabhängige Verifikation der Erklärungen sinnvoll, bevor man sie in eigenem Unterricht oder in Dokumentation weitergibt. Diese Prüfung ist mit Kapitel 5 und Kapitel 11 am schnellsten zu erledigen, weil dort die zentralen Behauptungen zu Attention und zur Parameterzahl stehen.

Redaktionelles Fazit

Wer Attention, RoPE und RMSNorm endlich selbst schreiben will und bereit ist, rund 3.500 Zeilen kommentierten Code sequenziell zu lesen, findet hier ein in sich geschlossenes Lehrbuch mit MIT-Lizenz. Wer ein trainiertes Modell, reproduzierbare Benchmarks oder Wartung sucht, ist falsch: das Repository liefert laut README keine Releases und keinen Homepage-Eintrag. Vor dem ersten Commit sollte man den Quick-Start im Colab-Notebook durchlaufen und prüfen, ob die Kapitel 10 und 11 (main.py, Glossar mit Parameteraufschlüsselung) den eigenen Stand widerspiegeln, denn nur diese beiden Dateien zeigen den vollständigen, lauffähigen Pfad.

Offizielle Quellen

  1. Issues
  2. License: MIT
  3. raiyanyahya/how-to-train-your-gpt on GitHub
  4. README
Community-Notizen

Community-Notizen