Einen Transformer von Grund auf bauen
Tokenizer und Attention von Hand schreiben, ein vollständiges kleines GPT bauen, es auf über dreißigtausend Tang-Gedichten trainieren, bis es Gedichte schreibt, dann Generierung und KV-Cache, und was vom kleinen GPT bis zu einem echten Sprachmodell noch fehlt.
Lektionen
- 01Einen BPE-Tokenizer von Hand schreiben
Modul 01 hat gesagt, dass das Modell Tokens sieht. Diese Lektion schreibt selbst einen Byte-basierten BPE-Tokenizer, trainiert ihn auf Tang-Gedichten und zeigt, wie er aus Bytes Schritt für Schritt chinesische Schriftzeichen und häufige Wörter zusammensetzt – und welche Schwächen er bei wenigen Daten hat.
45 Minuten · Fortgeschritten - 02Der Attention-Mechanismus
Um seine eigene Bedeutung zu verstehen, muss ein Zeichen sehen, welche Zeichen vor ihm stehen. Vom einfachsten „Mittelwert aller vorigen Zeichen“ aus kommen Schritt für Schritt Query, Key und Value, kausale Maske und Skalierung dazu, bis ein vollständiger Attention-Kopf entsteht, der mit der Implementierung von PyTorch abgeglichen wird.
50 Minuten · Vertiefung - 03Mehrköpfige Attention und Positionskodierung
Ein Attention-Kopf kann die vorigen Zeichen nur nach einem Maßstab betrachten; mit mehreren Köpfen sieht man mehrere Dinge zugleich. Außerdem kann Attention die Reihenfolge der Zeichen nicht unterscheiden, deshalb muss man ihr die Position mitteilen. Diese Lektion macht beides im Experiment sichtbar – und stößt auf ein unerwartetes Ergebnis.
40 Minuten · Vertiefung - 04Ein vollständiges GPT bauen
Attention, Feedforward-Netz, Residualverbindungen und LayerNorm zu einem Transformer-Block zusammensetzen, mehrere Schichten stapeln, Embedding und Ausgabeschicht ergänzen – fertig ist ein vollständiges GPT. gpt.py Abschnitt für Abschnitt lesen und nachzählen, wo die 1,6 Millionen Parameter stecken.
50 Minuten · Vertiefung - 05Trainieren: das Modell lernt Tang-Gedichte schreiben
Das GPT der vorigen Lektion mit 34.000 Tang-Gedichten trainieren, sieben Minuten auf der CPU eines Laptops, und zusehen, wie es sich vom Zeichensalat Schritt für Schritt Gedichte mit fünf und sieben Zeichen pro Zeile aneignet. Dann bekommt es nur dreihundert Gedichte, und man sieht, wie es sie auswendig lernt, statt Gedichte schreiben zu lernen.
50 Minuten · Vertiefung - 06Text generieren und KV-Cache
Ein trainiertes Modell bewertet nur das nächste Zeichen – wie wird aus Punktwerten ein Gedicht? Diese Lektion probiert mit dem eigenen GPT Temperatur, Top-k, Fortsetzung und Akrostichon aus, setzt dann den KV-Cache um und misst, wie viel doppelte Rechenarbeit er spart.
40 Minuten · Vertiefung - 07Vom kleinen GPT zum großen Sprachmodell
Unser kleines GPT schreibt Gedichte, kann aber keine Fragen beantworten. Zwischen ihm und einem großen Sprachmodell, das Gespräche führt, liegen Größe, Vortraining, Instruktions-Feintuning und Präferenzabgleich. Diese Lektion erklärt jeden Schritt mit echten Zahlen aus den Papers.
30 Minuten · Fortgeschritten
Modul 01 hat gesagt: Ein Sprachmodell tut nur eines, es sagt das nächste Token voraus. Dieses Modul baut selbst ein Modell, das genau das tut.
Wir schreiben ein GPT von Grund auf: Tokenizer, Attention, mehrere Köpfe, Positionskodierung, Transformer-Block, alles von Hand, ohne fertige Modellbibliothek. Dann trainieren wir es auf 35.000 metrisch gebundenen Gedichten aus der „Vollständigen Sammlung der Tang-Gedichte“ (全唐诗). Es hat nur 1,61 Millionen Parameter, trainiert etwa 7 Minuten auf der CPU eines Laptops und schreibt dann recht ordentliche Gedichte mit fünf und sieben Zeichen pro Zeile.
Der Unterschied zu ChatGPT und DeepSeek liegt vor allem in der Größe und in den Trainingsmethoden; das Prinzip ist dasselbe. Nach diesem Modul kannst du die Hauptstruktur des Codes echter großer Modelle lesen.
Warum diese Reihenfolge
Zuerst die Tokenisierung, denn die Eingabe des Modells sind Tokens. Dann Attention, der Kern des Transformers; Lektion 3 ergänzt mehrere Köpfe und Positionsinformation, Lektion 4 setzt alle Teile zum vollständigen Modell zusammen. Lektion 5 trainiert es, Lektion 6 generiert damit Text und erklärt die wichtigste Optimierung beim Inferenzieren, den KV-Cache. Die letzte Lektion schreibt keinen Code, sondern erklärt, welche Schritte zwischen unserem kleinen GPT und einem echten Sprachmodell liegen, das Gespräche führen kann.
Der Code dieses Moduls liegt in code/09-transformer/; gpt.py ist das Modell, das die späteren Lektionen gemeinsam nutzen. Vorher sollte man Modul 08 abgeschlossen haben, besonders Backpropagation, PyTorch und Kreuzentropie.
Du bist fertig, wenn
- du einen Byte-basierten BPE-Tokenizer von Hand schreiben kannst und erklären kannst, warum er bei wenigen Daten sehr kleinteilig zerlegt.
- du Attention mit kausaler Maske und Skalierung schreiben kannst und sagen kannst, wofür q, k und v jeweils da sind.
- du erklären kannst, warum mehrköpfige Attention und Positionskodierung nötig sind und dass die kausale Maske selbst Reihenfolgeinformation verrät.
- du
gpt.pyabschnittsweise lesen und berechnen kannst, wie viele Parameter jeder Teil hat. - du auf deinem eigenen Rechner ein kleines GPT trainieren kannst, das Gedichte schreibt, und an Verlustkurve und Ausgaben erkennst, ob es lernt oder auswendig lernt.
- du Temperatur, Top-k und KV-Cache erklären und die Beschleunigung durch den KV-Cache messen kannst.
- du sagen kannst, was Vortraining, Instruktions-Feintuning und Präferenzabgleich jeweils tun.
Code zu diesem Modul
Code und Programmausgaben stehen genau so da, wie sie gelaufen sind – Kommentare und Ausgaben sind daher auf Chinesisch.