Sampling-Strategien: Von Greedy zu Stochastisch

Das einfachste Decoding-Verfahren ist Greedy Decoding: Wähle das Token mit der höchsten Wahrscheinlichkeit. Dies ist deterministisch und führt zu konsistenten, aber oft langweiligen Outputs.

Stochastisches Sampling erlaubt Variabilität: Sample Tokens entsprechend ihrer Wahrscheinlichkeitsverteilung. Dies erhöht Kreativität, kann aber zu "unlogischem Unsinn" führen.

Um diese Balance zu finden, verwenden moderne LLMs Filtering-Strategien, die die Anzahl der Kandidaten-Tokens begrenzen:

Abb. 1 | Vergleich Top-k und Top-p Filterung auf gleiche Wahrscheinlichkeitsverteilung. Top-k wählt die k wahrscheinlichsten Tokens, Top-p wählt so viele Tokens bis die kumulative Wahrscheinlichkeit p überschreitet.
k=5
p=0.90

Top-k Sampling

Top-k Sampling behält die k Tokens mit den höchsten Wahrscheinlichkeiten. Alle anderen Tokens werden auf Wahrscheinlichkeit 0 gesetzt, und die Verteilung wird renormalisiert.

Filtered Tokens = {i : rank(P(token_i)) ≤ k}

P'(token_i) = P(token_i) / Σ(Filtered) falls i ∈ Filtered, sonst 0

Vorteil: Einfach, vorhersagbar. Mit k=5 werden immer nur 5 Tokens berücksichtigt.

Nachteil: Starr. Bei sehr sicheren Vorhersagen (z.B. "The capital of France is ___") begrenzt k=5 die Kandidaten unnötig. Bei unsicheren Aufgaben ist k=5 vielleicht zu restriktiv.

Top-p (Nucleus) Sampling

Top-p Sampling (auch Nucleus Sampling genannt) behält die kleinste Menge von Tokens, deren kumulative Wahrscheinlichkeit ≥ p ist. Dies ist adaptiv.

Sorted: P(token_1) ≥ P(token_2) ≥ ... ≥ P(token_n)

Filtered Tokens = {token_i : Σ(j≤i) P(token_j) ≥ p}

Vorteil: Adaptiv. Bei sicheren Vorhersagen (hohe Wahrscheinlichkeit für Top-Token) sind wenige Tokens nötig. Bei unsicheren kann p=0.9 auch 20+ Tokens einschließen.

Nachteil: Komplexer zu verstehen und zu implementieren. Ein Schwellenwert p=0.9 hat unterschiedliche Bedeutung je nach Kontexttyp.

Abb. 2 | Side-by-Side Vergleich: Linke Seite zeigt die gefilterten Tokens für Top-k, rechte Seite für Top-p. Die kumulative Wahrscheinlichkeit wird durch die rote Linie angezeigt.

Praktische Empfehlungen

Anwendungsfall Top-k Setting Top-p Setting Temperature Begründung
Faktisch (Search, QA) k=1 (Greedy) p=1.0 (No Filter) T=0.0-0.3 Eine richtige Antwort bevorzugt
Allgemein (Chat) k=40-50 p=0.9-0.95 T=0.7-0.9 Balanciert Kohärenz und Variabilität
Kreativ (Storytelling) k=100+ p=0.95+ T=1.0-1.5 Mehr Kreativität, weniger Kohärenz
Code-Generation k=5-10 p=0.8-0.9 T=0.0-0.5 Syntaktisch korrekt ist wichtig

In der Praxis: Top-p wird häufiger verwendet als Top-k, da es adaptiver ist. OpenAI nutzt p=1.0 standardmäßig, aber viele Nutzer setzen p=0.9 für bessere Qualität. Wichtig ist die Kombination mit Temperature T für feinere Kontrolle.

Wichtige Erkenntnisse

⚖️ Qualität vs Diversität

Top-k und Top-p balancieren zwischen deterministischen korrekten Antworten und kreativen, vielfältigen Outputs.

📊 Adaptivität

Top-p passt sich der Unsicherheit an: Bei sicheren Vorhersagen automatisch restriktiver.

🔧 Kombinationen

Temperature + Top-k/p arbeiten zusammen. Beide müssen für optimale Ergebnisse tuned werden.

💡 Praktische Defaults

Top-p=0.9 + Temperature=0.7 ist ein guter Standardwert für die meisten Aufgaben.

🎯 Trade-offs

Zu restriktiv = langweilig. Zu permissiv = inkoherent. Die Balance hängt von der Aufgabe ab.

🚀 Inferenz-Qualität

Gutes Sampling ist so wichtig wie Modellgröße für Generierungsqualität. Oft unterschätzt.