Top-p sampling (DE)
Top-p-Sampling, auch bekannt als Nucleus-Sampling (englisch Nucleus Sampling), ist eine stochastische Dekodierungsmethode, die in großen Sprachmodellen (LLMs) zur Textgenerierung verwendet wird. Die Methode wurde 2019 von Ari Holtzman et al. als verbesserte Alternative zum festen Top-k-Sampling vorgeschlagen. Ihre Idee besteht darin, die Menge der Kandidaten-Tokens bei jedem Generierungsschritt dynamisch anhand einer kumulativen Wahrscheinlichkeitsschwelle auszuwählen.[1]
Konzept
Die Grundidee von Top-p besteht darin, bei jedem Schritt die kleinste mögliche Menge der wahrscheinlichsten Tokens auszuwählen, deren summierte Wahrscheinlichkeit nicht geringer als ein vorgegebener Schwellenwert ist (der Kern, englisch nucleus). Mathematisch lässt sich für eine bedingte Verteilung über dem Vokabular der Kern wie folgt definieren:
Eine äquivalente Formulierung lautet: Sortieren Sie die Tokens nach absteigender Wahrscheinlichkeit und wählen Sie das kürzeste Präfix aus, dessen kumulative Wahrscheinlichkeitsmasse ≥ ist.[1]
Nach der Bestimmung des Kerns werden die Wahrscheinlichkeiten der Tokens außerhalb von auf null gesetzt und die Wahrscheinlichkeiten innerhalb des Kerns neu normiert (sodass ihre Summe 1 beträgt). Das nächste Token wird dann aus dieser verkürzten Verteilung gesampelt.
Dynamische Anpassung
- Bei einer „spitzen“ Verteilung (wenn das Modell sehr sicher ist) ist der Kern klein: Nur wenige Tokens erreichen bereits eine kumulative Wahrscheinlichkeit von ≥ , was die Kohärenz erhöht.
- Bei einer „flachen“ Verteilung (wenn es viele plausible Fortsetzungen gibt) ist der Kern groß: Die Auswahl wird erweitert, was die Vielfalt erhöht.[1]
Vergleich mit anderen Dekodierungsmethoden
Top-p vs. Top-k
- Top-k wählt immer aus einer festen Anzahl der wahrscheinlichsten Tokens aus. Bei „spitzen“ Verteilungen kann dies unnötige, unwahrscheinliche Optionen hinzufügen, nur um die Anzahl zu erreichen, während bei „flachen“ Verteilungen umgekehrt plausible Fortsetzungen abgeschnitten werden können, die nicht zu den Top- gehören.
- Top-p passt die Größe der Kandidatenmenge an die Verteilung des aktuellen Schritts an, was das Verhalten flexibler und über verschiedene Verteilungstypen hinweg stabiler macht.[1]
Top-p vs. Temperatur
- Temperatur (temperature) formt die gesamte Wahrscheinlichkeitsverteilung um (macht sie spitzer oder flacher), schneidet aber keine Tokens ab: Selbst sehr unwahrscheinliche Optionen behalten eine von null verschiedene Wahrscheinlichkeit.[2]
- Top-p führt eine harte Abschneidung des Verteilungsschwanzes ein, wodurch Tokens mit geringer Wahrscheinlichkeit vollständig vom Sampling ausgeschlossen werden. Dies hilft, offensichtlich unpassende Fortsetzungen zu verhindern.[1]
Ein praktischer Ratschlag von Anbietern lautet: Zur Steuerung von Stil und Zufälligkeit sollte man in der Regel entweder `temperature` oder `top_p` anpassen, aber nicht beide gleichzeitig, um eine doppelte Beeinflussung der Verteilung zu vermeiden und die Fehlersuche zu vereinfachen.[3]
Praktische Anwendung und Empfehlungen
Top-p wird in modernen LLMs aufgrund seiner Kombination aus Flexibilität und Kontrollierbarkeit häufig eingesetzt.
- Typischer Wertebereich. In der Praxis werden oft Werte von verwendet (siehe Anleitungen und Beispiele in Transformers; in vielen SDKs wird 0.95 als Standardwert oder in Beispielen empfohlen).[2][4]
- Werte nahe 1.0 (z. B. 0.98–0.99) erhöhen die Vielfalt, da mehr Tokens in den Kern aufgenommen werden.
- Niedrigere Werte (z. B. 0.80–0.90) erhöhen die Determiniertheit und „Zurückhaltung“ der Ausgabe.
- Bei entfällt die Abschneidung: Die Auswahl erfolgt aus dem gesamten Vokabular (unter Berücksichtigung der Temperatur).[2]
- Kompatibilität mit Bibliotheken und APIs.
- In Transformers ist der TopPLogitsWarper implementiert, der zusätzlich einen Schwellenwert `min_tokens_to_keep` (typischerweise ≥1) verwendet. Dieser verhindert, dass der Kern bei sehr kleinen -Werten und „spitzen“ Verteilungen degeneriert (leer wird).[5]
- In einigen APIs ist der Parameter `top_p` verfügbar, während `top_k` möglicherweise fehlt. Die Unterstützung und Semantik der Parameter hängen vom jeweiligen Modell/Anbieter ab (z. B. können einige auf schlussfolgerndes Denken spezialisierte Modelle die Anpassung der Stochastizität einschränken). Siehe dazu die offiziellen Dokumentationen von OpenAI, Azure und Google.[6][3][4]
- Lange Texte und Wiederholungen. In Experimenten wurde gezeigt, dass Nucleus-Sampling im Vergleich zu Greedy- und Beam-Search sowie festem Top-k die Tendenz zur Textdegeneration (Wiederholungen, stereotype Phrasen) reduziert, insbesondere bei langen Sequenzen.[1][7]
Siehe auch
Literatur
- Holtzman, A. et al. (2020). The Curious Case of Neural Text Degeneration. arXiv:1904.09751.
- Fan, A. et al. (2018). Hierarchical Neural Story Generation. arXiv:1805.04833.
- Meister, C. et al. (2023). Locally Typical Sampling. arXiv:2202.00666.
- Su, Y.; Collier, N. (2022). Contrastive Search Is What You Need for Neural Text Generation. arXiv:2210.14140.
- O’Brien, S.; Lewis, M. (2023). Contrastive Decoding Improves Reasoning in Large Language Models. arXiv:2309.09117.
- Yu, S. et al. (2023). Conformal Nucleus Sampling. ACL Findings 2023.
- Tan, Q. et al. (2024). A Thorough Examination of Decoding Methods in the Era of Large Language Models. arXiv:2402.06925.
- Finlayson, M. et al. (2024). Basis‑Aware Truncation Sampling for Neural Text Generation. arXiv:2412.14352.
- Chen, S. J. et al. (2025). Decoding Game: On Minimax Optimality of Heuristic Text Generation Methods. arXiv:2410.03968.
- Sen, J. et al. (2025). Advancing Decoding Strategies: Enhancements in Locally Typical Sampling for LLMs. arXiv:2506.05387.
Einzelnachweise
- ↑ 1.0 1.1 1.2 1.3 1.4 1.5 Holtzman, A., Buys, J., Du, L., Forbes, M., & Choi, Y. (2019). The Curious Case of Neural Text Degeneration. arXiv:1904.09751. [1]
- ↑ 2.0 2.1 2.2 Hugging Face Transformers. Generation strategies (top-k, top-p, temperature). [2]
- ↑ 3.0 3.1 Microsoft Learn (Azure OpenAI). Text/Chat Completions — parameters. Empfehlung: „ändern Sie `temperature` oder `top_p`, aber nicht beides gleichzeitig“. [3]
- ↑ 4.0 4.1 Google AI / Vertex AI. Generation parameters (topP/topK) for text/Gemini. Beispiele mit topP≈0.95. [4] [5]
- ↑ Transformers API. TopPLogitsWarper (Parameter und Verhalten, einschließlich `min_tokens_to_keep`). [6]
- ↑ OpenAI API Reference. top_p. [7]
- ↑ Tan, Q. et al. (2024). A Thorough Examination of Decoding Methods in the Era of Large Language Models. arXiv:2402.06925. [8]