Kapitel 05 · Architektur · 14 min
Der vollständige Transformer
Die Teile zusammensetzen: Multi-Head-Attention, Feed-Forward, Normalisierung, Residualverbindungen.
Das alles dafür
Wir haben jetzt alle Puzzleteile:
- Der Text wird zu Tokens (Kapitel 02).
- Die Tokens werden zu Vektoren in einem Bedeutungsraum (Kapitel 03).
- Die Attention lässt jeden Vektor die anderen betrachten und sich neu konfigurieren (Kapitel 04).
Es bleibt zu wissen, wie man diese Teile zu einem vollständigen Modell zusammensetzt. Die Antwort, elegant minimalistisch: Man stapelt sie.
Der Grundbaustein
Ein moderner Transformer ist derselbe kleine Block, N-mal wiederholt. Dieser Block enthält zwei Untermodule:
- Eine Multi-Head Attention-Schicht, die es den Tokens ermöglicht, miteinander zu kommunizieren.
- Ein Feed-Forward Network (FFN) — zwei lineare Transformationen, getrennt durch eine Nichtlinearität — das jeden Token unabhängig transformiert.
Um diese beiden Untermodule herum zwei feste Strukturen:
- LayerNorm vor jedem Untermodul: normalisiert die Vektoren, um das Lernen zu stabilisieren.
- Residualverbindungen um jedes Untermodul: Die Ausgabe des Blocks ist die Eingabe plus die Transformation, niemals die Transformation allein.
Bewege den Mauszeiger über einen Subblock, um seine Rolle zu sehen: Attention verteilt Information zwischen Tokens, das Feed-Forward verwandelt sie lokal, Normalisierung und Residuals stabilisieren das Ganze. 32- oder 96-mal gestapelt ergibt das ein GPT-4 oder ein Claude.
Warum die Residualverbindungen alles ändern
Das ist wahrscheinlich der wichtigste architektonische Trick des Jahrzehnts. Ohne Residualverbindung bedeutet das Stapeln von 96 aufeinanderfolgenden Blöcken, ein Signal durch 96 kaskadierte Transformationen zu schicken. Der Gradient (das Lernsignal) verdünnt sich bei jedem Durchgang. Nach ein paar Schichten bleibt nichts mehr zu lernen.
Mit einer Residualverbindung lernt der Block eine Modifikation statt einer vollständigen Transformation: Ausgabe = Eingabe + f(Eingabe). Das ursprüngliche Signal läuft immer unversehrt durch das gesamte Netzwerk, und jeder Block bereichert es ein wenig.
Ohne Residualen kann ein tiefer Transformer nicht trainiert werden. Mit ihnen kann er 100+ Schichten stapeln ohne zu straucheln.
Das FFN, die vergessene Hälfte
Über Attention wird viel gesprochen. Weniger über das FFN, das jedoch doppelt so viele Parameter enthält.
In jeder Schicht, nach der Attention, durchläuft jeder Token ein MLP:
FFN(x) = Linear_2(GELU(Linear_1(x)))
Linear_1 projiziert den Vektor in eine Zwischendimension, die 4× breiter ist (typischerweise 4 × 768 = 3072 für GPT-2 small). Linear_2 bringt ihn zurück auf die ursprüngliche Dimension. Diese Expansion-dann-Kontraktion ist der Ort, wo das Modell den Großteil seines Faktenwissens speichert — Eigennamen, gelernte Assoziationen, wiederkehrende Muster.
Wenn man von „75 Milliarden Parametern" in einem Modell spricht, lebt die überwiegende Mehrheit in den FFNs.
Position und Kausalität
Zwei Details, die wir noch nicht erwähnt haben:
Positionskodierung. Attention ist permutationsinvariant: Wenn du die Tokens eines Satzes mischst, liefert Attention dasselbe Ergebnis (nur gemischt). Das ist nicht was wir wollen. Damit ein LLM weiß, dass „Die Katze frisst den Fisch" sich von „Der Fisch frisst die Katze" unterscheidet, wird Positionsinformation in jeden Embedding-Vektor injiziert (Positional Encoding, RoPE, ALiBi…). Heute ist RoPE (Rotary Position Embedding) die Konvention.
Kausale Maske. Wie in Kapitel 4 gesehen, kann in einem Generierungsmodell jeder Token nur seine Vorgänger betrachten. Die kausale Maske wird auf die Attention-Matrix angewendet: Zukünftige Positionen werden vor dem Softmax auf −∞ gesetzt. Das zwingt das Modell zu vorhersagen, nicht zu kopieren.
Wie viele Blöcke?
Die Architektur ist von GPT-2 bis GPT-4 dieselbe. Was sich ändert, ist die Größenordnung:
| Modell | Blöcke | Dimension | Heads | Parameter |
|---|---|---|---|---|
| GPT-2 small | 12 | 768 | 12 | 117M |
| GPT-2 XL | 48 | 1600 | 25 | 1,5B |
| GPT-3 | 96 | 12288 | 96 | 175B |
| Llama 3 70B | 80 | 8192 | 64 | 70B |
Mehr Blöcke = mehr kompositionelles Denken möglich (jede Schicht kann auf den Abstraktionen der vorherigen aufbauen). Mehr Dimensionen = mehr Kapazität pro Token. Mehr Heads = mehr simultane „Fragen".
Die Ausgabe: vom Vektor zur Verteilung
An diesem Punkt liefert uns der letzte Block für jede Position einen Vektor mit einigen tausend Dimensionen. Wie kommen wir daraus zurück zu einer Verteilung über das Vokabular?
Ein einziger Schritt. Man multipliziert diesen Vektor mit einer Matrix W_out mit den Dimensionen (d_model × |vocab|) und wendet anschließend einen Softmax an. Das Ergebnis: für jede Position eine Wahrscheinlichkeit über die ~50.000 Tokens des Vokabulars. Das ist die Ausgabe eines LLM — eine Verteilung.
Elegantes Detail: In den meisten Modellen teilt sich W_out die Gewichte mit der Eingabe-Embedding-Matrix (weight tying). Dieselbe Transformation, die Token 5234 auf einen Vektor abbildet, bildet umgekehrt einen Vektor auf die Wahrscheinlichkeit von Token 5234 ab. Spart Parameter und generalisiert besser.
Mixture of Experts: nicht alle Parameter feuern
Eine architektonische Variante ist in den jüngsten Modellen dominant geworden: Mixture of Experts (MoE). Mixtral, DeepSeek, Llama 4, GPT-4, Gemini — alle nutzen sie.
Die Idee: Statt eines einzigen FFN pro Block setzt man mehrere parallel ein (typischerweise 8 bis 128 Experten). Bei jedem Token wählt ein kleines Routing-Netzwerk (Router) zwei oder vier aus — die für diesen Token relevantesten. Nur diese Experten feuern.
Folge: Ein Modell kann 400 Milliarden „Gesamt"-Parameter haben, aber pro Token nur 50 Milliarden aktivieren. Kapazität eines großen Modells, Rechenkosten eines kleinen. Das ist es, was Mixtral 8×7B (47 Milliarden Parameter) bei der Inferenz mit deutlich größeren dichten Modellen konkurrenzfähig macht.
Der Kompromiss: Der VRAM muss alle Experten aufnehmen können (sonst muss man swappen), und das Routing fügt eine Schicht von Trainingsinstabilität hinzu. Es ist ein noch sehr aktives Forschungsgebiet.
Das Wunder der Einfachheit
Das gesamte Gebäude beruht auf einem einzigen Muster, wiederholt, normalisiert, zu sich selbst addiert. Keine spezifischen Strukturen für Grammatik. Keine getrennten Module für Semantik. Keine kodierten linguistischen Regeln.
Ein Transformer weiß nichts über Sprache. Er kann nur Vektoren mischen, indem er schaut, wer wem ähnelt.
Die gesamte Komplexität entsteht aus dem Training — das ist das Thema des nächsten Kapitels.
Aktualisiert am