Einleitung
Moderne KI – insbesondere große Sprachmodelle, Bildgeneratoren und Klassifikationssysteme – beruht auf einem überraschend kompakten mathematischen Fundament. Alles, vom Satz, den ChatGPT generiert, bis zum Bild, das Stable Diffusion rendert, lässt sich auf unterster Ebene auf dieselben Operationen zurückführen: Matrixmultiplikation, nichtlineare Funktionen und Gradientenabstieg. Die Raffinesse liegt darin, wie diese Grundbausteine kombiniert und skaliert werden.
Dieser Artikel entwickelt die Mathematik aus den Grundprinzipien. Wir beginnen mit linearer Algebra und Wahrscheinlichkeitstheorie, arbeiten uns über analysisbasierte Optimierung vor, bauen den Formalismus neuronaler Netze auf, leiten Backpropagation her und enden beim Attention-Mechanismus und der Transformer-Architektur, die 2026 jedem großen Sprachmodell zugrunde liegt. Es gibt keine Abkürzungen. Jede Gleichung wird hergeleitet oder aus ihren Bestandteilen erklärt.
Voraussetzungen: sicherer Umgang mit Schulalgebra und grundlegender Analysis-Notation (Ableitungen, Kettenregel). Alles Weitere wird hier aufgebaut.
Lineare Algebra
DIE SPRACHE DER KI
1.1 Vektoren und Vektorräume
Ein Vektor ist eine geordnete Liste von Zahlen. In der KI stellen Vektoren alles dar: ein Wort, einen Bildausschnitt, eine Nutzerpräferenz, einen verborgenen Zustand. Ein Vektor x im n-dimensionalen reellen Raum wird geschrieben als:
x = [x₁, x₂,..., xₙ]ᵀ ∈ ℝⁿ
Die Menge ℝⁿ ist ein Vektorraum: Sie ist abgeschlossen unter Addition und Skalarmultiplikation, besitzt einen Nullvektor und erfüllt die acht Vektorraumaxiome. Diese algebraische Struktur macht lineare Algebra auf maschinelles Lernen anwendbar – die Schichten neuronaler Netze sind lineare Abbildungen zwischen Vektorräumen.
1.1.1 Das Skalarprodukt und die Kosinus-Ähnlichkeit
Das Skalarprodukt zweier Vektoren x, y ∈ ℝⁿ lautet:
x · y = xᵀy = Σᵢ xᵢyᵢ = ‖x‖‖y‖cos(θ)
wobei θ der Winkel zwischen den Vektoren ist. Das Skalarprodukt misst die Ausrichtung: Es ist maximal, wenn x und y in dieselbe Richtung zeigen (cos θ = 1), null, wenn sie senkrecht zueinander stehen (cos θ = 0), und minimal, wenn sie antiparallel sind (cos θ = -1). Diese geometrische Deutung liegt Attention-Mechanismen zugrunde – das Skalarprodukt zwischen einer Query und einem Key misst, wie stark sie einander „beachten“.
Die Kosinus-Ähnlichkeit normiert das Skalarprodukt durch das Produkt der Vektorbeträge:
cos_sim(x, y) = (x · y) / (‖x‖ · ‖y‖) ∈ [-1, 1]
Die Kosinus-Ähnlichkeit wird im NLP intensiv genutzt, um die semantische Ähnlichkeit zwischen Wort-Embeddings zu messen: Vektoren für Wörter mit ähnlicher Bedeutung bilden im Embedding-Raum Cluster und haben eine Kosinus-Ähnlichkeit nahe 1.
1.2 Matrizen und lineare Abbildungen
Eine Matrix W ∈ ℝᵐˣⁿ stellt eine lineare Abbildung von ℝⁿ nach ℝᵐ dar. Matrix-Vektor-Multiplikation:
y = Wx, wobei yᵢ = Σⱼ Wᵢⱼ xⱼ
Dies ist die Kernoperation einer Schicht eines neuronalen Netzes. Jede Zeile Wi· ist ein Gewichtsvektor; die Ausgabe yi ist das Skalarprodukt der i-ten Zeile mit der Eingabe x. Die Matrix W kodiert, was die Schicht gelernt hat: welche Linearkombinationen der Eingabemerkmale berechnet werden.
1.2.1 Matrixmultiplikation
Für Matrizen A ∈ ℝᵐˣⁿ und B ∈ ℝⁿˣᵖ hat ihr Produkt C = AB ∈ ℝᵐˣᵖ die Einträge:
Cᵢⱼ = Σₖ Aᵢₖ Bₖⱼ = Aᵢ· · B·ⱼ
Die Matrixmultiplikation ist nicht kommutativ (im Allgemeinen AB ≠ BA), aber assoziativ: A(BC) = (AB)C. Der Rechenaufwand für die Multiplikation einer m×n-Matrix mit einer n×p-Matrix beträgt O(mnp) – der dominierende Kostenfaktor in großen neuronalen Netzen. Bei einem Transformer mit verborgener Dimension d = 4096, der eine Sequenz von 2048 Tokens verarbeitet, kostet eine einzige Matrixmultiplikation O(2048 × 4096 × 4096) ≈ 34 Milliarden Operationen.
1.2.2 Transponierte und symmetrische Matrizen
Die Transponierte Wᵀ einer Matrix W vertauscht Zeilen und Spalten: (Wᵀ)ij = Wji. Wichtige Eigenschaften: (AB)ᵀ = BᵀAᵀ, (Wᵀ)ᵀ = W. Eine symmetrische Matrix erfüllt W = Wᵀ.
Die Attention-Gewichtsmatrix QKᵀ/√dk in Transformern wird als Matrixprodukt mit einer Transponierten berechnet — die Query-Matrix Q ∈ ℝˢˣᵈ multipliziert mit der transponierten Key-Matrix Kᵀ ∈ ℝᵈˣˢ ergibt eine s×s-Attention-Gewichtsmatrix, wobei s die Sequenzlänge ist.
1.3 Eigenwerte, Eigenvektoren und SVD
Ein Vektor v ist ein Eigenvektor der Matrix A, wenn gilt:
Av = λv
wobei λ der zugehörige Eigenwert ist. Eigenvektoren sind Richtungen, die die Matrix A skaliert, ohne sie zu drehen. Die Menge aller Eigenwerte ist das Spektrum von A; es charakterisiert das Verhalten der Matrix: Große Eigenwerte verstärken die zugehörigen Richtungen, kleine Eigenwerte schwächen sie ab.
Die Singulärwertzerlegung (SVD) verallgemeinert die Eigenzerlegung auf nicht quadratische Matrizen:
W = U Σ Vᵀ
wobei U ∈ ℝᵐˣᵐ und V ∈ ℝⁿˣⁿ orthogonale Matrizen sind (Drehung/Spiegelung) und Σ ∈ ℝᵐˣⁿ eine Diagonalmatrix mit nichtnegativen Einträgen σ₁ ≥ σ₂ ≥... ≥ σᵣ (den Singulärwerten) ist. SVD wird zur Gewichtskompression eingesetzt: Die Niedrigrang-Approximation Wk = Uk Σk Vkᵀ, die nur die k größten Singulärwerte verwendet, liefert die beste Rang-k-Approximation von W in der Frobeniusnorm — die Grundlage des LoRA-Fine-Tunings (Low-Rank Adaptation).
1.4 Normen und Regularisierung
Die L2-Norm (euklidische Norm) eines Vektors x ∈ ℝⁿ:
‖x‖₂ = √(Σᵢ xᵢ²) = √(xᵀx)
Die Frobeniusnorm einer Matrix W ∈ ℝᵐˣⁿ:
‖W‖_F = √(Σᵢ Σⱼ Wᵢⱼ²) = √(tr(WᵀW))
Normen quantifizieren die „Größe“ von Vektoren und Matrizen. In der Optimierung bestraft ein zusätzlicher Normterm in der Verlustfunktion — die Regularisierung — große Gewichte und verhindert Overfitting. Die L2-Regularisierung (Weight Decay) addiert λ‖W‖²F zum Verlust, sodass die Gewichte während des Trainings gegen null abklingen.
Wahrscheinlichkeitstheorie & Informationstheorie
2.1 Wahrscheinlichkeitsverteilungen
Eine Wahrscheinlichkeitsverteilung P über einem diskreten Ergebnisraum X ordnet jedem Ergebnis x ∈ X einen Wert P(x) ≥ 0 zu, mit Σx P(x) = 1. Genau das ist Sprachmodellierung: die Schätzung einer Verteilung über Token-Sequenzen.
Für stetige Variablen erfüllt die Wahrscheinlichkeitsdichtefunktion f(x) die Bedingungen f(x) ≥ 0 und ∫f(x)dx = 1. Die Wahrscheinlichkeit eines Intervalls ist P(a ≤ X ≤ b) = ∫ab f(x)dx.
2.1.1 Die Softmax-Verteilung
Die Softmax-Funktion wandelt einen Vektor reellwertiger Logits z ∈ ℝⁿ in eine Wahrscheinlichkeitsverteilung um:
softmax(z)ᵢ = exp(zᵢ) / Σⱼ exp(zⱼ)
Eigenschaften: Alle Ausgaben sind positiv, sie summieren sich zu 1 (gültige Wahrscheinlichkeitsverteilung), und große Logits werden auf Wahrscheinlichkeiten nahe 1 abgebildet, kleine auf Werte nahe 0. Die Temperaturskalierung verändert dies: softmax(z/T) – für T → 0 nähert sie sich argmax (One-Hot), für T → ∞ der Gleichverteilung. Sprachmodelle ziehen in jedem Generierungsschritt eine Stichprobe aus dieser Verteilung.
Das Problem der numerischen Stabilität: exp(z) läuft für große z über. Die übliche Lösung – vor der Exponentiation das Maximum abziehen:
softmax(z)ᵢ = exp(zᵢ - max(z)) / Σⱼ exp(zⱼ - max(z))
2.2 Informationstheorie
2.2.1 Shannon-Entropie
Die Entropie H(P) einer Verteilung P misst ihre Unsicherheit – den durchschnittlichen Informationsgehalt eines Ergebnisses:
H(P) = -Σₓ P(x) log₂ P(x) [Bit]
Die Entropie ist maximal, wenn P gleichverteilt ist (maximale Unsicherheit), und minimal (= 0), wenn P deterministisch ist. Eine faire Münze hat H = 1 Bit; ein sechsseitiger Würfel hat H = log₂(6) ≈ 2,58 Bit. Die Entropie einer Sprache gibt an, wie viele Bit pro Token nötig sind, um sie zu kodieren.
2.2.2 Kreuzentropie und KL-Divergenz
Die Kreuzentropie H(P, Q) misst die erwartete Codelänge, wenn man die Verteilung Q verwendet, um Stichproben aus der wahren Verteilung P zu kodieren:
H(P, Q) = -Σₓ P(x) log Q(x)
Dies ist der Standard-Trainingsverlust für Klassifikation und Sprachmodellierung: P ist die wahre (One-Hot-)Labelverteilung, Q die vom Modell vorhergesagte Verteilung. Die Kreuzentropie zu minimieren ist gleichbedeutend damit, die Log-Likelihood der Daten unter dem Modell zu maximieren.
Die KL-Divergenz DKL(P‖Q) misst, wie stark Q von P abweicht:
D_KL(P‖Q) = Σₓ P(x) log(P(x)/Q(x)) = H(P,Q) - H(P) ≥ 0
Die KL-Divergenz ist genau dann null, wenn P = Q fast überall gilt, und sonst positiv (Gibbs-Ungleichung). Sie ist nicht symmetrisch: DKL(P‖Q) ≠ DKL(Q‖P). Sie taucht im RLHF-Training auf: Der KL-Strafterm, der verhindert, dass das feinabgestimmte Modell zu weit vom Basismodell abweicht, ist DKL(πθ ‖ πref).
2.2.3 Perplexity
Die Perplexität ist die Exponentialfunktion des Kreuzentropie-Verlusts – die Standardmetrik zur Bewertung von Sprachmodellen:
PPL(P, Q) = exp(H(P, Q)) = exp(-1/N Σₙ log Q(tₙ | t₁,...,tₙ₋₁))
Intuitiv ist die Perplexität die effektive Vokabulargröße, aus der das Modell in jedem Schritt wählt. Eine Perplexität von 20 bedeutet, dass das Modell im Durchschnitt so unsicher ist, als würde es gleichverteilt aus 20 gleich wahrscheinlichen Optionen wählen. Sprachmodelle auf dem neuesten Stand erreichen auf Standard-Benchmarks eine Perplexität von 3–8.
2.3 Satz von Bayes
Der Satz von Bayes ist die Grundlage des probabilistischen maschinellen Lernens:
P(θ|D) = P(D|θ) · P(θ) / P(D)
wobei θ die Modellparameter sind, D die beobachteten Daten, P(θ|D) die A-posteriori-Verteilung, P(D|θ) die Likelihood, P(θ) die A-priori-Verteilung und P(D) = ∫P(D|θ)P(θ)dθ die marginale Likelihood (Evidenz). Die Maximum-Likelihood-Schätzung (MLE) maximiert P(D|θ) und ignoriert die A-priori-Verteilung. Die Maximum-a-posteriori-Schätzung (MAP) maximiert P(θ|D) und entspricht MLE mit einer Regularisierung proportional zu -log P(θ).
Modernes Deep Learning nutzt in der Regel MLE/MAP statt vollständiger Bayes-Inferenz, weil die Berechnung der A-posteriori-Verteilung über Milliarden von Parametern rechnerisch nicht handhabbar ist. Die Schätzung von Unsicherheit in LLMs ist nach wie vor ein offenes Forschungsproblem.
Analysis und Optimierung
3.1 Ableitungen und der Gradient
Die Ableitung einer skalaren Funktion f: ℝ → ℝ im Punkt x misst die momentane Änderungsrate:
f'(x) = df/dx = lim_{h→0} [f(x+h) - f(x)] / h
Für eine Funktion f: ℝⁿ → ℝ (etwa eine Verlustfunktion) ist der Gradient ∇f ∈ ℝⁿ der Vektor der partiellen Ableitungen:
∇f(x) = [∂f/∂x₁, ∂f/∂x₂,..., ∂f/∂xₙ]ᵀ
Der Gradient zeigt in die Richtung des steilsten Anstiegs. Eine Bewegung in Richtung des negativen Gradienten senkt daher die Verlustfunktion – die Grundlage des Gradientenabstiegs.
3.1.1 Jacobi- und Hesse-Matrix
Für eine vektorwertige Funktion f: ℝⁿ → ℝᵐ enthält die Jacobi-Matrix J ∈ ℝᵐˣⁿ alle partiellen Ableitungen erster Ordnung: Jij = ∂fi/∂xj. Die Jacobi-Matrix der Ausgabe einer Schicht nach ihrer Eingabe ist zentral für die Backpropagation.
Die Hesse-Matrix H ∈ ℝⁿˣⁿ einer skalaren Funktion enthält alle partiellen Ableitungen zweiter Ordnung: Hij = ∂²f/(∂xi ∂xj). Die Hesse-Matrix beschreibt die Krümmung der Verlustlandschaft: Ist sie positiv definit, liegt ein lokales Minimum vor, ist sie negativ definit, ein lokales Maximum, ist sie indefinit, ein Sattelpunkt.
3.1.2 Die Kettenregel
Die Kettenregel ist die mathematische Grundlage der Backpropagation. Für verkettete Funktionen g(f(x)) gilt:
d/dx g(f(x)) = g'(f(x)) · f'(x)
Für vektorwertige Funktionen verwendet die mehrdimensionale Kettenregel Jacobi-Matrizen:
∂z/∂x = (∂z/∂y) · (∂y/∂x) = J_g · J_f
Ein neuronales Netz ist eine Verkettung von Funktionen: L(θ) = loss(fₙ(...f₂(f₁(x; W₁)); Wₙ)). Die rekursiv auf diese Verkettung angewandte Kettenregel berechnet ∂L/∂Wi für jede Schicht i — diese rekursive Anwendung ist die Backpropagation.
3.2 Gradientenabstieg und seine Varianten
3.2.1 Stochastischer Gradientenabstieg
Der einfache Gradientenabstieg aktualisiert die Parameter θ in Richtung des negativen Gradienten:
θ_{t+1} = θ_t - η · ∇_θ L(θ_t)
wobei η die Lernrate ist. Den echten Gradienten über den gesamten Datensatz zu berechnen ist teuer – O(N) Vorwärtsdurchläufe pro Schritt. Der stochastische Gradientenabstieg (SGD) nähert ihn mit einem Mini-Batch B ⊂ D der Größe b an:
θ_{t+1} = θ_t - η · (1/b) Σ_{x∈B} ∇_θ ℓ(f(x; θ), y)
Der Mini-Batch-Gradient ist ein erwartungstreuer Schätzer des vollständigen Gradienten: E[gB] = ∇L. Seine Varianz sinkt mit der Batchgröße b: Var(gB) = σ²/b.
3.2.2 Momentum
Momentum akkumuliert einen Geschwindigkeitsvektor v in Richtung beständiger Gradientenkomponenten:
v_{t+1} = β · v_t + (1-β) · ∇_θ L(θ_t)
θ_{t+1} = θ_t - η · v_{t+1}
Mit β ∈ [0.9, 0.99] mittelt Momentum die Gradienten effektiv über 1/(1-β) Schritte – 10 Schritte bei β=0.9, 100 Schritte bei β=0.99. Das beschleunigt die Konvergenz entlang flacher Dimensionen und dämpft Oszillationen entlang steiler Dimensionen.
3.2.3 Adam: Adaptive Moment Estimation
Adam (Kingma & Ba, 2015) verwaltet adaptive Lernraten pro Parameter, indem es sowohl das erste Moment (Mittelwert) als auch das zweite Moment (unzentrierte Varianz) der Gradienten verfolgt:
m_t = β₁ · m_{t-1} + (1-β₁) · g_t
v_t = β₂ · v_{t-1} + (1-β₂) · g_t²
m̂_t = m_t / (1-β₁ᵗ), v̂_t = v_t / (1-β₂ᵗ)
θ_{t+1} = θ_t - η · m̂_t / (√v̂_t + ε)
Typische Hyperparameter: β₁ = 0.9, β₂ = 0.999, ε = 10⁻⁸, η = 3×10⁻⁴. Die effektive Lernrate pro Parameter beträgt η/√v̂_t – Parameter mit hoher Gradientenvarianz erhalten kleinere effektive Schritte, Parameter mit geringer Gradientenvarianz größere.
3.2.4 Lernraten-Scheduling
Die Lernrate η wird in der Regel nicht konstant gehalten. Gängige Schedules sind lineares Warm-up + Cosine Decay (in den meisten Transformer-Pretrainings verwendet), Cosine Annealing mit Neustarts und polynomieller Abfall. Die Warm-up-Phase ist für große Modelle entscheidend: Bei der Initialisierung sind die Gradientenschätzungen verrauscht, und eine hohe anfängliche Lernrate kann das Training destabilisieren.
Architektur neuronaler Netze
MATHEMATIK
4.1 Die Feedforward-Schicht
Eine einzelne Schicht eines neuronalen Netzes berechnet eine lineare Abbildung, gefolgt von einer nichtlinearen Aktivierungsfunktion σ:
h = σ(Wx + b)
wobei W ∈ ℝᵐˣⁿ die Gewichtsmatrix, b ∈ ℝᵐ der Bias-Vektor, x ∈ ℝⁿ die Eingabe und h ∈ ℝᵐ der verborgene Zustand ist. Ohne σ wäre das Stapeln von Schichten gleichbedeutend mit einer einzigen linearen Abbildung. Die Aktivierungsfunktion bricht diese Linearität auf, sodass tiefe Netze exponentiell komplexere Funktionen darstellen können.
4.2 Aktivierungsfunktionen
4.2.1 ReLU und Varianten
ReLU(x) = max(0, x) = x · 𝟙[x > 0]
Eigenschaften: rechnerisch trivial, der Gradient ist entweder 0 (x < 0) oder 1 (x > 0), erzeugt dünn besetzte Aktivierungen, sättigt bei positiven Werten nicht. Problem: „Dying ReLU“ — Neuronen mit x < 0 haben einen Gradienten von null und können sich nicht erholen.
GeLU (Gaussian Error Linear Unit), verwendet in GPT und BERT:
GELU(x) = x · Φ(x) = x · P(Z ≤ x) mit Z ~ N(0,1)
SwiGLU, verwendet in LLaMA/PaLM, ist eine Variante mit Gating:
SwiGLU(x, W, V) = Swish(xW) ⊙ (xV)
4.2.2 Sigmoid und Tanh
σ(x) = 1/(1 + e⁻ˣ) ∈ (0,1)
tanh(x) = (eˣ - e⁻ˣ)/(eˣ + e⁻ˣ) ∈ (-1,1)
Beide leiden in tiefen Netzen unter verschwindenden Gradienten: Für |x| >> 0 gilt für den Gradienten σ'(x) = σ(x)(1-σ(x)) → 0, sodass die Gradienten bei der Rückwärtspropagation exponentiell verschwinden. Das war vor ReLU und Residualverbindungen das Haupthindernis beim Training tiefer Netze.
4.3 Mehrschichtige Perzeptronen (MLPs)
Ein MLP mit L Schichten berechnet:
h₀ = x
hₗ = σ(Wₗ hₗ₋₁ + bₗ) für l = 1,...,L-1
ŷ = softmax(W_L h_{L-1} + b_L)
Das universelle Approximationstheorem (Hornik, 1989) besagt, dass ein MLP mit einer einzigen verborgenen Schicht und ausreichender Breite jede stetige Funktion auf einem kompakten Definitionsbereich beliebig genau approximieren kann. Für viele Funktionsklassen sind tiefe Netze jedoch exponentiell parametereffizienter als flache.
4.4 Backpropagation
Backpropagation berechnet ∂L/∂W für jede Gewichtsmatrix W eines neuronalen Netzes, indem die Kettenregel rückwärts durch den Berechnungsgraphen angewendet wird.
Definieren Sie die Fehlersignale (Upstream-Gradienten):
δₗ = ∂L/∂zₗ mit zₗ = Wₗhₗ₋₁ + bₗ
Die Rekursion der Backpropagation:
δ_L = ∂L/∂z_L
δₗ = (Wₗ₊₁ᵀ δₗ₊₁) ⊙ σ'(zₗ)
∂L/∂Wₗ = δₗ hₗ₋₁ᵀ
∂L/∂bₗ = δₗ
# Forward pass
def forward(x, layers):
activations = [x]
pre_activations = []
for W, b in layers:
z = W @ activations[-1] + b
pre_activations.append(z)
activations.append(relu(z))
return activations, pre_activations
# Backward pass
def backward(loss_grad, activations, pre_acts, layers):
delta = loss_grad
grads = []
for l in reversed(range(len(layers))):
W, b = layers[l]
dW = delta @ activations[l].T # ∂L/∂W
db = delta.sum(axis=1) # ∂L/∂b
grads.insert(0, (dW, db))
if l > 0:
delta = (W.T @ delta) * relu_grad(pre_acts[l-1])
return grads
Warum Backpropagation effizient ist
Ein naiver Ansatz würde jedes Gewicht um ε verändern und (L(W+εeij) - L(W))/ε messen. Bei n Parametern sind dafür n Vorwärtsdurchläufe nötig. Backpropagation berechnet alle n Gradienten in einem einzigen Rückwärtsdurchlauf — O(n) statt O(n²) —, indem Zwischenergebnisse per dynamischer Programmierung wiederverwendet werden.
4.5 Das Problem verschwindender und explodierender Gradienten
Das Fehlersignal δₗ enthält ein Produkt aus L-l Jacobi-Matrizen. Ist der Spektralradius ρ(J) < 1, verschwinden die Gradienten exponentiell. Ist ρ(J) > 1, explodieren sie. Lösungen sind Residualverbindungen (h = F(x) + x), Gradient Clipping (‖g‖ > γ → neu skalieren), Layer-Normalisierung und sorgfältige Initialisierung (He-Initialisierung: W ~ N(0, 2/nin)).
Normalisierungsschichten
5.1 Batch-Normalisierung
μ_B = (1/m) Σᵢ xᵢ, σ²_B = (1/m) Σᵢ (xᵢ - μ_B)²
x̂ᵢ = (xᵢ - μ_B) / √(σ²_B + ε)
yᵢ = γ · x̂ᵢ + β
γ und β sind gelernte Parameter, mit denen das Netz die Normalisierung rückgängig machen kann, falls das optimal ist. BatchNorm ist für Sprachmodelle problematisch, weil Sequenzen unterschiedlich lang sind und die Batch-Statistiken bei kleinen Batches instabil werden.
5.2 Layer-Normalisierung
μₓ = (1/H) Σⱼ xⱼ, σ²ₓ = (1/H) Σⱼ (xⱼ - μₓ)²
x̂ⱼ = (xⱼ - μₓ) / √(σ²ₓ + ε), yⱼ = γⱼ x̂ⱼ + βⱼ
Die Statistiken der Layer-Norm werden pro Beispiel und nicht pro Batch berechnet – sie sind unabhängig von der Batchgröße und funktionieren beim Training und bei der Inferenz identisch. Deshalb ist LayerNorm die Standardnormalisierung in Transformern. In Pre-LN-Transformern (ab GPT-2) wird LayerNorm vor den Attention- und MLP-Teilschichten angewendet, was im großen Maßstab zu stabilerer Trainingsdynamik führt.
5.3 RMSNorm
RMSNorm(x) = x / RMS(x) · γ, wobei RMS(x) = √(1/H Σⱼ xⱼ²)
RMSNorm ist ~10 % schneller als LayerNorm und liefert vergleichbare Ergebnisse. Es wird in den Architekturen von LLaMA, Mistral und Gemma eingesetzt. Die Intuition: Der Zentrierungsschritt in LayerNorm hat kaum Einfluss auf die Modellqualität; der Hauptnutzen kommt von der Neuskalierung, die die Größe der Aktivierungen steuert.
Embeddings & Positionskodierung
6.1 Token-Embeddings
Eine Token-Embedding-Matrix E ∈ ℝ|V|×d bildet jedes diskrete Token des Vokabulars V auf einen dichten d-dimensionalen Vektor ab:
e_t = E[t] ∈ ℝᵈ
Die Embedding-Dimension d liegt bei modernen Modellen typischerweise bei 512–4096. Die Embedding-Matrix wird gemeinsam mit dem Rest des Modells gelernt – im Embedding-Raum benachbarte Tokens weisen ähnliche kontextuelle Verwendungsmuster auf. Die Word2Vec-Entdeckung, dass Arithmetik im Embedding-Raum semantische Beziehungen erfasst (König - Mann + Frau ≈ Königin), ist eine emergente Eigenschaft des Trainings auf großen Korpora.
Weight Tying: In vielen Modellen wird die Ausgabe-Projektionsmatrix Wout mit Eᵀ geteilt, was die Parameterzahl um |V|×d senkt – ohne empirisch messbare Verschlechterung.
6.2 Positionskodierung
Transformer haben keine eingebaute Reihenfolge – Attention ist permutationsäquivariant. Die Positionskodierung fügt Positionsinformationen hinzu.
6.2.1 Sinusförmige Positionskodierung
PE(pos, 2i) = sin(pos / 10000^(2i/d))
PE(pos, 2i+1) = cos(pos / 10000^(2i/d))
6.2.2 Rotary Position Embeddings (RoPE)
RoPE (Su et al., 2021), verwendet in LLaMA, Mistral und GPT-NeoX, kodiert die Position, indem Query- und Key-Vektoren in 2D-Unterräumen rotiert werden:
q_m = R_m q, k_n = R_n k
(R_m q)ᵀ(R_n k) = qᵀ R_{m-n}ᵀ k = f(q, k, m-n)
Das Skalarprodukt hängt nur von der relativen Position m-n ab, nicht von den absoluten Positionen. Dadurch ist RoPE der sinusförmigen Kodierung hinsichtlich der Empfindlichkeit für relative Positionen klar überlegen und ermöglicht die Extrapolation der Kontextlänge.
Der Attention-Mechanismus
7.1 Scaled Dot-Product Attention
Der Attention-Mechanismus berechnet gewichtete Summen von Values, wobei die Gewichte durch die Ähnlichkeit von Query und Key bestimmt werden:
Attention(Q, K, V) = softmax(QKᵀ / √dₖ) · V
wobei Q ∈ ℝˢˣᵈᵏ (queries), K ∈ ℝˢˣᵈᵏ (Keys), V ∈ ℝˢˣᵈᵥ (Values). Der Skalierungsfaktor 1/√dk verhindert, dass die Skalarprodukte zu groß werden — ohne ihn sättigt Softmax zu nahezu One-Hot-Verteilungen, was zu verschwindenden Gradienten führt.
Die Attention-Gewichtsmatrix A = softmax(QKᵀ/√dk) ∈ ℝˢˣˢ hat den Eintrag Aij, der angibt, wie stark Position i auf Position j achtet. Die Ausgabe ist eine gewichtete Summe der Values: outputi = Σj Aij Vj. So kann jede Position Informationen von jeder anderen Position der Sequenz zusammenführen — die entscheidende Fähigkeit von Transformern.
7.2 Multi-Head Attention
Multi-Head Attention führt h parallele Attention-Operationen in niedrigerdimensionalen Unterräumen aus:
headᵢ = Attention(QWᵢQ, KWᵢK, VWᵢV)
MultiHead(Q,K,V) = Concat(head₁,...,headₕ) Wᴼ
Verschiedene Heads lernen unterschiedliche Attention-Muster: Manche achten auf nahe Positionen (lokaler Kontext), andere auf syntaktische Struktur, wieder andere auf semantische Beziehungen. Mit h=12 Heads und d=768 (BERT-base) arbeitet jeder Head in einem 64-dimensionalen Unterraum.
7.3 Kausale (maskierte) Attention
A = softmax((QKᵀ/√dₖ) + M), M_ij = 0 falls j≤i, -∞ falls j>i
Wird vor Softmax an maskierten Positionen -∞ addiert, ergibt sich exp(-∞) = 0, wodurch diese Attention-Gewichte auf null gesetzt werden. Die resultierende Attention ist eine untere Dreiecksmatrix: Position i achtet auf die Positionen 1,...,i, aber nicht auf i+1,...,s.
7.4 Rechenkomplexität
Standard-Attention benötigt wegen der s×s-Attention-Matrix O(s²d) Zeit und O(s²) Speicher. Effiziente Varianten sind FlashAttention (Tiling für 2- bis 4-fache Beschleunigung, exakt), Sparse Attention (O(s·w) bei Fenstergröße w), lineare Attention (O(s·d²)) und Multi-Query Attention (teilt K und V über alle Heads und verkleinert den KV-Cache um den Faktor h).
Die Transformer-Architektur
8.1 Der Transformer-Block
Eine Transformer-Schicht besteht aus zwei Teilschichten: Multi-Head Self-Attention und einem positionsweisen MLP, jeweils mit Residualverbindung und Layer-Normalisierung:
x' = x + MultiHead(LN(x), LN(x), LN(x))
x'' = x' + MLP(LN(x'))
Die MLP-Teilschicht:
MLP(x) = W₂ · GELU(W₁x + b₁) + b₂
wobei W₁ ∈ ℝ4d×d und W₂ ∈ ℝd×4d. Für d=4096 hat dieses MLP ~134 Millionen Parameter pro Schicht.
8.2 Parameteranzahl
| Komponente | Parameter | Anmerkungen |
|---|---|---|
| Token-Embedding | d × |V| | Gewichte mit der Ausgabe geteilt |
| Positions-Embedding | d × s_max | Entfällt bei RoPE-Modellen |
| Attention (pro Schicht) | 4d² | Q-, K-, V-, O-Projektionen |
| MLP (pro Schicht) | 8d² | SwiGLU: 12d² |
| LayerNorm (pro Schicht) | 4d | Vernachlässigbar |
| Gesamt (L Schichten) | ≈ 12Ld² | Für große d |
Für GPT-3 (L=96, d=12288): 12 × 96 × 12288² ≈ 175 Milliarden Parameter.
8.3 Der Residual Stream
Das Muster der Residualverbindungen erzeugt den Residual Stream – einen d-dimensionalen Vektor, der durch das gesamte Netz fließt und von jeder Schicht additiv verändert wird:
x₀ = Embed(tokens) + PE
xₗ = xₗ₋₁ + Attn_l(xₗ₋₁) + MLP_l(...)
logits = Unembed(LN(x_L))
Die Sichtweise der mechanistischen Interpretierbarkeit betrachtet den Residual Stream als Kommunikationskanal: Attention-Heads und MLP-Schichten lesen daraus und schreiben additive Aktualisierungen hinein – das ermöglicht Interpretierbarkeitsforschung zum Informationsfluss.
Trainingsdynamik im großen Maßstab
9.1 Die Verlustlandschaft
Die Verlustfunktion eines neuronalen Netzes L: ℝⁿ → ℝ (mit n ~ 10⁹–10¹²) ist hochgradig nichtkonvex. Theoretisch ist sie nicht handhabbar, dennoch lassen sich große überparametrisierte Netze relativ leicht trainieren – dank Überparametrisierung (die meisten lokalen Minima sind nahezu global), NTK-Regime (unendlich breite Netze konvergieren wie eine Kernel-Regression) und impliziter Regularisierung (SGD findet flache, gut generalisierende Minima).
9.2 Die Chinchilla-Skalierungsgesetze
Hoffmann et al. (2022) leiteten empirische Skalierungsgesetze her, die Rechenbudget C, Modellgröße N und Datensatzgröße D zueinander in Beziehung setzen:
L(N, D) = E + A/Nᵅ + B/Dᵝ
wobei E ≈ 1,69 (irreduzible Entropie) und α ≈ β ≈ 0,34. Die zentrale Erkenntnis: Bei fester Rechenleistung C = 6ND lautet der optimale Kompromiss Nopt ∝ C0.5 und Dopt ∝ C0.5 — Modellgröße und Datensatzgröße sollten gleichermaßen skalieren. Daraus folgt, dass GPT-3 (175 Mrd. Parameter, 300 Mrd. Tokens) deutlich untertrainiert war.
9.3 Training mit gemischter Präzision
Moderne Modelle werden mit gemischter Präzision trainiert: der Vorwärtsdurchlauf in float16 für Speichereffizienz, die Gewichtsaktualisierungen in float32 für numerische Stabilität.
# Forward pass in fp16
with torch.autocast(device_type='cuda', dtype=torch.float16):
logits = model(input_ids)
loss = cross_entropy(logits, targets)
# Backward pass: gradients in fp16
scaler.scale(loss).backward()
# Gradient unscaling + clipping in fp32
scaler.unscale_(optimizer)
torch.nn.utils.clip_grad_norm_(model.parameters(), max_norm=1.0)
# Weight update in fp32 (master weights)
scaler.step(optimizer)
scaler.update()
BFloat16 wird float16 vorgezogen: gleicher 8-Bit-Exponent wie float32 (gleicher Dynamikbereich), aber nur 7 Mantissenbits – so werden Über- und Unterläufe ohne Loss Scaling vermieden.
9.4 Verteiltes Training
Das Training eines 70B-Modells erfordert allein für die Gewichte ~140 GB GPU-Speicher. Strategien sind Datenparallelität (Modell replizieren, Gradienten synchronisieren), Tensorparallelität (Gewichtsmatrizen auf mehrere GPUs aufteilen), Pipeline-Parallelität (Schichten verschiedenen GPUs zuweisen) und ZeRO (Optimiererzustände, Gradienten und Gewichte auf die Worker verteilen, was beliebig große Modelle ermöglicht).
Sprachmodellierung & Generierung
10.1 Das autoregressive Trainingsziel
L(θ) = -E_{x~D}[ Σₜ log P_θ(xₜ | x_{<t}) ]
An jeder Position t sagt das Modell auf Basis aller vorhergehenden Tokens eine Verteilung über das gesamte Vokabular V vorher. Dieses einfache Ziel der Next-Token-Vorhersage reicht, in enormem Maßstab angewendet, aus, um reichhaltige Repräsentationen von Sprache, Faktenwissen und logischem Denken zu erlernen.
10.2 Decoding-Strategien
10.2.1 Temperaturskalierung
P(tᵢ) = exp(zᵢ/T) / Σⱼ exp(zⱼ/T)
T < 1 schärft die Verteilung (deterministischer), T > 1 glättet sie (zufälliger). T = 0 reduziert sich auf argmax (Greedy Decoding).
10.2.2 Top-k-Sampling
P'(tᵢ) = P(tᵢ) / Σ_{j∈top-k} P(tⱼ) für i ∈ top-k
10.2.3 Nucleus-Sampling (Top-p)
V_p = {t : Σ_{v sorted} P(v) ≤ p}, P'(tᵢ) = P(tᵢ)/p
Top-p ist adaptiv: mehr Tokens bei Unsicherheit, weniger bei hoher Sicherheit. Typische Einstellungen: Temperatur 0,7–1,0, Top-p 0,9–0,95.
10.2.4 Beam Search
score(x_{1:t}) = (1/t) Σᵢ log P(xᵢ|x_{<i})
Beam Search maximiert die Wahrscheinlichkeit direkt. Es wird für Übersetzungen und strukturierte Ausgaben bevorzugt; für offene Generierung ist Sampling die bessere Wahl.
10.3 Der Key-Value-Cache
Bei der autoregressiven Inferenz speichert der KV-Cache die bereits berechneten K- und V-Tensoren, sodass jeder Generierungsschritt O(sd) statt O(s²d) kostet – er verbraucht allerdings O(2Lsd) Speicher, bei einem 70B-Modell ~320 GB in float16. Die Kompression des KV-Cache ist ein aktives Forschungsgebiet und entscheidend für Inferenz mit langem Kontext.
kv_cache = {}
def generate_step(input_token, kv_cache, model):
q, k, v = model.qkv_proj(embed(input_token))
if layer_idx in kv_cache:
K = torch.cat([kv_cache[layer_idx][0], k], dim=1)
V = torch.cat([kv_cache[layer_idx][1], v], dim=1)
else:
K, V = k, v
kv_cache[layer_idx] = (K, V)
output = scaled_dot_product_attention(q, K, V)
return output, kv_cache
Reinforcement Learning from Human Feedback
11.1 Die dreistufige Pipeline
RLHF richtet vortrainierte Sprachmodelle in drei Stufen an menschlichen Präferenzen aus: überwachtes Fine-Tuning (SFT), Training eines Belohnungsmodells und RL-Optimierung.
11.2 Das Belohnungsmodell
Ein Belohnungsmodell Rφ: (Prompt, Vervollständigung) → ℝ wird mit paarweisen menschlichen Präferenzdaten trainiert:
L_RM(φ) = -E[ log σ(R_φ(x,y_w) - R_φ(x,y_l)) ]
11.3 PPO-Optimierung
Das Sprachmodell πθ wird so optimiert, dass es die erwartete Belohnung maximiert und dabei nahe an der Referenz-Policy bleibt:
max_θ E[ R_φ(x,y) ] - β · D_KL(π_θ ‖ π_ref)
L_PPO = E_t[ min(rₜ Aₜ, clip(rₜ, 1-ε, 1+ε) Aₜ) ]
Der KL-Term verhindert Reward Hacking – also dass das Modell abdriftet, um Schwächen des Belohnungsmodells auszunutzen. Das geclippte Surrogat-Ziel von PPO verhindert übermäßig große Policy-Updates, die das Training destabilisieren würden.
11.4 Direct Preference Optimization (DPO)
DPO (Rafailov et al., 2023) kommt ganz ohne Belohnungsmodell aus:
L_DPO(θ) = -E[ log σ(β log π_θ(y_w|x)/π_ref(y_w|x) - β log π_θ(y_l|x)/π_ref(y_l|x)) ]
DPO ist mathematisch äquivalent zu RLHF, aber einfacher, stabiler und benötigt kein separates Belohnungsmodell. Die meisten modernen Fine-Tuning-Pipelines nutzen DPO oder Varianten (IPO, KTO) anstelle von PPO.
Zusammenfassung: Mathematische Bausteine
| Konzept | Zentrale Gleichung | Rolle in der KI |
|---|---|---|
| Matrixmultiplikation | y = Wx + b | Jede lineare Schicht, Attention-Projektion |
| Softmax | exp(z)/Σexp(z) | Token-Wahrscheinlichkeiten, Attention-Gewichte |
| Kreuzentropie | H(P,Q) = -Σ P log Q | Trainingsverlust für Klassifikation/LM |
| Kettenregel | ∂z/∂x = (∂z/∂y)(∂y/∂x) | Backpropagation durch die Schichten |
| Adam-Aktualisierung | θ -= η·m̂/√(v̂+ε) | Parameteraktualisierungen während des Trainings |
| Dot-Product Attention | softmax(QKᵀ/√dₖ)V | Kern der Self-Attention in Transformern |
| Layer-Norm | (x-μ)/σ · γ + β | Stabilisiert Aktivierungen pro Beispiel |
| RoPE | (Rₘq)ᵀ(Rₙk)=f(q,k,m-n) | Relative Positionskodierung |
| KL-Divergenz | Σ P log(P/Q) | RLHF-Regularisierung, VAE-Zielfunktion |
| Perplexity | exp(H(P,Q)) | Metrik zur Bewertung von Sprachmodellen |
| SVD | W=UΣVᵀ | Gewichtskompression, LoRA-Fine-Tuning |
| PPO-Zielfunktion | E[min(r·A, clip(r)·A)] | Policy-Optimierung im RLHF |
Literatur
Vaswani, A., et al. (2017). Attention is all you need. NeurIPS 2017.
He, K., et al. (2016). Deep residual learning for image recognition. CVPR 2016.
Ba, J. L., et al. (2016). Layer normalization. arXiv:1607.06450.
Kingma, D. P., & Ba, J. (2015). Adam: A method for stochastic optimization. ICLR 2015.
Hochreiter, S., & Schmidhuber, J. (1997). Long short-term memory. Neural Computation 9(8).
Ioffe, S., & Szegedy, C. (2015). Batch normalization. ICML 2015.
Elhage, N., et al. (2021). A mathematical framework for transformer circuits. Transformer Circuits Thread.
Hoffmann, J., et al. (2022). Training compute-optimal large language models. arXiv:2203.15556.
Su, J., et al. (2021). RoFormer: Enhanced transformer with rotary position embedding. arXiv:2104.09864.
Dao, T., et al. (2022). FlashAttention: Fast and memory-efficient exact attention. NeurIPS 2022.
Rafailov, R., et al. (2023). Direct preference optimization. NeurIPS 2023.
Zhang, B., & Sennrich, R. (2019). Root mean square layer normalization. NeurIPS 2019.
Schulman, J., et al. (2017). Proximal policy optimization algorithms. arXiv:1707.06347.
Ouyang, L., et al. (2022). Training language models to follow instructions with human feedback. NeurIPS 2022.
Kirchenbauer, J., et al. (2023). A watermark for large language models. ICML 2023.
Rajbhandari, S., et al. (2020). ZeRO: Memory optimizations toward training trillion parameter models. SC 2020.