🤖 nach Andrej Karpathys „microgpt“ · 12.02.2026

Ein ganzes GPT in 200 Zeilen – Schritt für Schritt im Debugger.

microgpt ist eine einzige Python-Datei ohne Abhängigkeiten, die ein GPT trainiert und benutzt: Datensatz, Tokenizer, Autograd, Transformer, Adam, Trainings- und Inferenzschleife. „Alles andere ist nur Effizienz.“ Hier gehst du jede Zeile vor und zurück durch – mit echten Zahlen aus einem echten Modell.

4.192
Parameter
27
Token (a–z + BOS)
2,35
Verlust nach 1.000 Schritten
kalia, cami
erfundene Namen
e
m
m
a
Trainiertes Modell: Top 3 für das nächste Token
a
9 %
m
8 %
j
8 %

🧩 Die sieben Bausteine

Die Gliederung von Karpathys Artikel – jeder Baustein hat eine eigene Debugger-Lektion.

🧭 Die Lektionen

Sechs Ausschnitte aus microgpt.py, die du wie im Debugger durchläufst – mit Haltepunkten, Step Over und Rückwärtsschritten.

🪜 Schicht für Schicht wie eine Zwiebel

Karpathys empfohlene Reihenfolge aus build_microgpt.py – jede Stufe fügt genau einen Baustein hinzu.

Dateifügt hinzu
train0.py
Bigramm-Zähltabelle – kein neuronales Netz, keine Gradienten
train1.py
MLP + manuelle Gradienten (numerisch und analytisch) + SGD
train2.py
Autograd (Klasse Value) ersetzt die manuellen Gradienten
train3.py
Positions-Embeddings + Single-Head-Attention + RMSNorm + Residuals
train4.py
Multi-Head-Attention + Schichten-Schleife – volle GPT-Architektur
train5.py
Adam-Optimizer – das ist train.py / microgpt.py

🏭 microgpt vs. ChatGPT

Was sich auf dem Weg zum produktiven Sprachmodell ändert – am Kernalgorithmus nichts.

📚

Daten

microgpt: 32.033 kurze Vornamen, ein Dokument pro Zeile.
Produktion: Billionen Token aus Webseiten, Büchern und Code – dedupliziert, nach Qualität gefiltert und sorgfältig gemischt.
🔤

Tokenizer

microgpt: Ein Token pro Buchstabe: 26 Zeichen + BOS = 27.
Produktion: Subword-Tokenizer wie BPE mit ~100.000 Token: häufige Wörter sind ein Token, seltene werden zerlegt.
🧮

Autograd

microgpt: Skalare Value-Objekte in reinem Python.
Produktion: Tensoren auf GPUs/TPUs mit PyTorch-Autograd und fusionierten CUDA-Kerneln wie FlashAttention – dieselbe Mathematik, Milliarden Skalare parallel.
🏗️

Architektur

microgpt: 4.192 Parameter, 1 Schicht, 16 Dimensionen, 4 Heads.
Produktion: Hunderte Milliarden Parameter, 100+ Schichten, 10.000+ Dimensionen; dazu RoPE, Grouped Query Attention, gated Aktivierungen, Mixture of Experts.
🏋️

Training

microgpt: Ein Dokument pro Schritt, 1.000 Schritte, ~1 Minute auf dem Laptop.
Produktion: Batches mit Millionen Token pro Schritt, Gradient Accumulation, Mixed Precision (bf16) – Tausende GPUs über Monate.
⚙️

Optimierung

microgpt: Adam mit linearem Lernraten-Abfall.
Produktion: Eigene Disziplin: Warmup, Weight Decay, Scaling Laws (Chinchilla), Experimente im Kleinen, bevor Millionen an Rechenzeit fließen.
💬

Post-Training

microgpt: Keins – das Modell vervollständigt Dokumente.
Produktion: SFT (kuratierte Gespräche als Dokumente) und Reinforcement Learning mit bewerteten Antworten machen daraus einen Chat-Assistenten.
🚀

Inferenz

microgpt: Ein Name nach dem anderen, Token für Token.
Produktion: Batching vieler Anfragen, KV-Cache-Paging (vLLM), Speculative Decoding, Quantisierung (int8/int4), Verteilung über mehrere GPUs.

💬 Häufige Fragen

Aus dem FAQ des Artikels.

Mechanisch passiert keine Magie: Das Modell ist eine große mathematische Funktion, die Eingabe-Token auf eine Wahrscheinlichkeitsverteilung für das nächste Token abbildet. Ob man das „Verstehen“ nennt, ist eine philosophische Frage – der Mechanismus steckt vollständig in den 200 Zeilen.

📖 Glossar

Die Begriffe aus microgpt kurz erklärt.

BOS

Daten

Beginning of Sequence – Sondertoken, das Anfang und Ende eines Dokuments markiert.

tokens = [BOS] + … + [BOS]

Token

Daten

Ein diskretes Symbol, mit dem das Modell rechnet. Bei microgpt ein Buchstabe oder BOS, in großen Modellen meist ein Wortstück.

uchars.index(ch)

Halluzination

Inferenz

Plausibel klingende, aber nicht reale Ausgabe – Folge des Ziehens aus einer Wahrscheinlichkeitsverteilung.

Temperatur

Inferenz

Teilt die Logits vor der Softmax: klein = konservativ, groß = vielfältig.

softmax([l / temperature …])

Attention

Modell

Mechanismus, mit dem eine Position auf frühere Positionen schaut: Query · Key → Gewichte → gewichtete Summe der Values.

softmax(q·k / √d)

Embedding

Modell

Gelernter Vektor, der ein Token (wte) oder eine Position (wpe) repräsentiert.

state_dict['wte'][token_id]

KV-Cache

Modell

Speicher der Keys und Values früherer Positionen, damit sie nicht neu berechnet werden müssen.

keys[li].append(k)

Logits

Modell

Rohe, unnormierte Bewertungen pro möglichem nächsten Token – vor der Softmax.

logits = linear(x, lm_head)

MLP

Modell

Zweischichtiges Netz pro Position: 16 → 64 → ReLU → 16. Hier „denkt“ das Modell lokal.

linear → relu → linear

Residualverbindung

Modell

Das Ergebnis eines Blocks wird zum Eingang addiert – Informationen und Gradienten fließen ungehindert durch.

x = [a + b for …]

RMSNorm

Modell

Skaliert einen Vektor auf mittlere Größe 1 und stabilisiert so das Training (einfachere Variante von LayerNorm).

rmsnorm(x)

Softmax

Modell

Macht aus beliebigen Zahlen eine Wahrscheinlichkeitsverteilung (alle Werte zwischen 0 und 1, Summe 1).

softmax(logits)

Adam

Training

Optimizer mit Schwung (m) und angepasster Schrittweite (v) je Parameter, plus Bias-Korrektur.

p.data -= lr * m_hat / (√v_hat + eps)

Backpropagation

Training

Rückwärtslauf durch den Rechengraphen, der per Kettenregel alle Gradienten berechnet.

loss.backward()

Kreuzentropie

Training

Verlust −log p(richtiges Token): 0 bei Sicherheit, groß bei Überraschung. Raten unter 27 Token ergibt 3,30.

-probs[target_id].log()

📎 Quellen

Andrej Karpathy: „microgpt“, Blogartikel vom 12.02.2026 · Datensatz names.txt aus makemore. Die App rechnet microgpt in TypeScript nach (Zufallsgenerator Mulberry32 statt Pythons Mersenne Twister – daher andere Einzelzahlen, gleicher Algorithmus).