Transformer¶
Der Transformer ist die Architektur hinter modernen LLMs wie GPT, Claude, Llama und Gemini. Er wurde 2017 von Google in dem Paper "Attention Is All You Need" vorgestellt und hat die KI revolutioniert.
Die Kernidee¶
Vor Transformern dominierten RNNs (Recurrent Neural Networks). Diese verarbeiten Text Wort für Wort – sequentiell. Das ist langsam und macht es schwer, Zusammenhänge über lange Distanzen zu lernen.
Transformer lösen das durch parallele Verarbeitung und den Attention-Mechanismus: Jedes Wort kann direkt auf jedes andere Wort "schauen", unabhängig von der Entfernung.
graph LR
subgraph "RNN (alt)"
A1[Wort 1] --> A2[Wort 2] --> A3[Wort 3] --> A4[Wort 4]
end
subgraph "Transformer (neu)"
B1[Wort 1] <--> B2[Wort 2]
B1 <--> B3[Wort 3]
B1 <--> B4[Wort 4]
B2 <--> B3
B2 <--> B4
B3 <--> B4
end
Architektur-Überblick¶
Ein Transformer besteht aus gestapelten Encoder- und/oder Decoder-Blöcken:
| Modelltyp | Architektur | Beispiele |
|---|---|---|
| Encoder-only | Nur Encoder | BERT, RoBERTa |
| Decoder-only | Nur Decoder | GPT, Llama, Claude |
| Encoder-Decoder | Beide | T5, BART |
Moderne LLMs sind fast alle Decoder-only – sie generieren Text Token für Token.
Der Decoder-Block¶
Jeder Decoder-Block enthält:
graph TB
Input[Input Embeddings] --> Norm1[Layer Norm]
Norm1 --> Attn[Masked Self-Attention]
Attn --> Add1[+ Residual]
Add1 --> Norm2[Layer Norm]
Norm2 --> FFN[Feed-Forward Network]
FFN --> Add2[+ Residual]
Add2 --> Output[Output]
Input --> Add1
Add1 --> Add2
1. Self-Attention¶
Der Kern des Transformers. Hier entscheidet das Modell, welche anderen Tokens für das aktuelle Token relevant sind. Details: → Attention
2. Feed-Forward Network (FFN)¶
Ein einfaches neuronales Netz mit zwei Schichten:
Das FFN verarbeitet jede Position unabhängig und speichert "Wissen" in seinen Gewichten.
3. Layer Normalization¶
Stabilisiert das Training, indem Aktivierungen normalisiert werden:
4. Residual Connections¶
Die "+" Verbindungen. Sie erlauben Gradienten, direkt durch das Netzwerk zu fließen, was tiefe Netzwerke erst trainierbar macht.
Positionsinformation¶
Da Transformer alle Tokens parallel verarbeiten, wissen sie zunächst nicht, welches Token wo steht. Positional Encodings lösen das:
Sinusoidale Encodings (Original):
[ PE_{(pos, 2i)} = \sin(pos / 10000^{2i/d}) ] [ PE_{(pos, 2i+1)} = \cos(pos / 10000^{2i/d}) ]
RoPE (Rotary Position Embedding): Moderner Standard in Llama, Mistral etc. Kodiert Position als Rotation im Embedding-Raum.
Skalierung¶
Transformers skalieren gut – mehr Parameter und Daten = bessere Performance. Das ist die Grundlage der "Scaling Laws":
| Modell | Parameter | Decoder-Blöcke | Attention Heads |
|---|---|---|---|
| GPT-2 Small | 124M | 12 | 12 |
| GPT-3 | 175B | 96 | 96 |
| Llama 3 70B | 70B | 80 | 64 |
Warum so viele Parameter?
Die meisten Parameter stecken im FFN (~⅔) und in den Embedding-Tabellen. Die Attention selbst ist relativ "günstig".
Inference-Ablauf¶
Schritt für Schritt, wie ein Transformer Text generiert:
- Tokenisierung: Text → Token-IDs
- Embedding: Token-IDs → Vektoren
- Positional Encoding: Position hinzufügen
- N × Decoder-Block: Attention + FFN
- Output-Projektion: Vektor → Vokabular-Wahrscheinlichkeiten
- Sampling: Nächstes Token wählen (Temperature, Top-K, Top-P)
- Wiederholen ab Schritt 1 mit neuem Token
# Vereinfacht
for _ in range(max_tokens):
logits = model(tokens) # Forward pass
next_token = sample(logits[-1]) # Letztes Token samplen
tokens.append(next_token)
if next_token == eos_token:
break
Der KV-Cache¶
Bei der Inferenz muss Attention für alle vorherigen Tokens berechnet werden. Der KV-Cache speichert die Key- und Value-Vektoren, sodass sie nicht neu berechnet werden müssen.
→ Siehe KV-Cache für Details
Varianten & Verbesserungen¶
| Technik | Beschreibung |
|---|---|
| Multi-Query Attention | Keys/Values werden zwischen Heads geteilt → weniger VRAM |
| Grouped-Query Attention | Kompromiss zwischen MHA und MQA |
| Flash Attention | Memory-effiziente Attention-Implementierung |
| Mixture of Experts | Nur Teil der Parameter wird pro Token aktiviert |
Siehe auch¶
- Attention – Der Kern des Transformers
- Embedding – Wie Text zu Vektoren wird
- Tokenisierung – Text in Tokens zerlegen
- LLM – Large Language Models auf Transformer-Basis