Top-k und Top-p sind zwei Auswahl-Filter für Large Language Models (LLMs, große Sprachmodelle). Sie schränken beim Schreiben die Menge der Wortbausteine (Tokens) ein, aus denen das Modell den nächsten Baustein zufällig zieht. Top-k behält die k wahrscheinlichsten Tokens (eine feste Anzahl). Top-p (auch Nucleus Sampling) behält so viele der wahrscheinlichsten Tokens, bis ihre Wahrscheinlichkeiten zusammengezählt den Schwellwert p erreichen (eine anpassbare Anzahl).
Was sind Top-k und Top-p?
Ein Large Language Model (LLM, großes Sprachmodell) schreibt Text baustein-weise: Für jede Position berechnet es für jeden möglichen nächsten Wortbaustein (Token) einen Wahrscheinlichkeitswert. Das nächste Token wird zufällig aus dieser Verteilung gezogen. Ohne Filter würden auch sehr unwahrscheinliche Tokens gelegentlich getroffen, genau dieser lange Schwanz an unpassenden Kandidaten produziert die typischen Ausreißer der Text-Generierung: abrupte Themenwechsel, unpassende Wörter, halluzinierte Fakten. Top-k und Top-p schneiden diesen Schwanz ab, bevor gezogen wird.
Top-k sortiert die Kandidaten nach Wahrscheinlichkeit, behält die k höchsten und renormalisiert deren Wahrscheinlichkeiten auf 1. Der Rest fällt raus. Das Verfahren ist statisch: Ob die Verteilung spitz oder flach ist, das Modell zieht immer aus k Kandidaten. Typische Werte für top_k liegen zwischen 20 und 50. [Fan et al. 2018](https://arxiv.org/abs/1805.04833) haben Top-k im Kontext von Story-Generierung populär gemacht.
Top-p, auch Nucleus Sampling, arbeitet adaptiv. Es legt einen kumulierten Wahrscheinlichkeits-Schwellwert p fest (typisch 0,9 oder 0,95) und nimmt die kleinste Menge Tokens, deren aufsummierte Wahrscheinlichkeit p erreicht. Bei einer spitzen Verteilung sind das wenige Tokens (weil die Spitze schon 90 Prozent der Masse trägt), bei einer flachen viele. Der Filter passt sich der lokalen Unsicherheit des Modells an. [Holtzman et al. 2019](https://arxiv.org/abs/1904.09751) haben gezeigt, dass Top-p flüssigere Texte erzeugt als Top-k mit fester Kandidaten-Zahl, weil eine feste Zahl entweder gute Kandidaten abschneidet (spitze Verteilung) oder zu viel Schwanz reinholt (flache Verteilung).
Die Anbieter unterstützen die Parameter unterschiedlich. OpenAI exponiert top_p (0 bis 1), aber kein top_k. Anthropic Claude, Google Gemini und die meisten Open-Weight-Modelle (Llama, Mistral, Qwen) exponieren beide. Default-Werte liegen meistens bei top_p=1,0 oder top_p=0,95 und top_k=40. Reasoning-Modelle wie die OpenAI-o-Serie oder Claude Extended Thinking ignorieren die Sampling-Parameter oder unterstützen sie nur begrenzt; die Antwort-Variation entsteht dort im Reasoning-Trace.
Abgrenzung zu Temperature, Greedy Decoding, Beam Search und Min-p
Sampling-Filter, Verteilungs-Skalierung und Suchstrategie werden häufig durcheinandergeworfen. Die relevanten Trennlinien:
| Begriff | Verhältnis zu Top-k/Top-p | Kern-Unterschied |
|---|---|---|
| Temperature | Ergänzung, andere Achse | Skaliert die Verteilung (softmax(logits / T)); Top-k/Top-p trunkieren die Kandidaten-Menge |
| Greedy Decoding | Grenzfall | Wählt immer das wahrscheinlichste Token (entspricht top_k=1); deterministisch, wiederholungs-anfällig |
| Beam Search | Andere Strategie | Verfolgt mehrere Kandidaten-Sequenzen parallel; eine Suchstrategie, kein Sampling |
| Repetition Penalty | Andere Achse | Senkt Logits bereits gewählter Tokens; steuert Wiederholung, nicht die Kandidaten-Menge |
| Min-p Sampling | Alternative zu Top-p | Filtert Tokens unterhalb min_p × höchste Wahrscheinlichkeit; robuster bei sehr flachen Verteilungen |
[Temperature](/insights/glossar/temperature/) und die beiden Sampling-Filter arbeiten auf verschiedenen Achsen. Temperature T teilt die Logits vor dem Softmax und ändert damit die Form der Verteilung: Werte unter 1 spitzen sie zu, Werte über 1 flachen sie ab. Top-k und Top-p ändern die Form nicht, sondern beschneiden die Kandidaten-Menge, aus der gezogen wird. Die Parameter kombinieren sich: temperature=0,7 mit top_p=0,9 ist die häufigste Standard-Kombination in der API-Dokumentation von OpenAI und Anthropic. Beide Anbieter empfehlen, jeweils nur einen der beiden Trunkierungs-Parameter zusammen mit Temperature zu setzen.
Greedy Decoding ist der Grenzfall, in dem immer der argmax gezogen wird. Das entspricht top_k=1 oder Temperature T=0. Die Ausgabe ist deterministisch und ohne Long-Tail-Anteil. Reines Greedy führt bei längeren Texten zu Wiederholungs-Schleifen, weil Modelle dazu neigen, in wahrscheinliche Muster zu verfallen. Deshalb wird auch bei Extraktions-Aufgaben mit T=0 meistens ein Structured-Output-Contract dazugesetzt, damit die Ausgabe schema-konform bleibt und Wiederholungen nicht ausufern.
Beam Search fällt aus dem Sampling-Bild ganz heraus und arbeitet als Suchstrategie: Das Modell verfolgt B parallele Sequenzen (Beams) und behält am Ende die mit der höchsten Gesamt-Wahrscheinlichkeit. Übliches Verfahren bei Übersetzung, Zusammenfassung und älteren NLP-Aufgaben mit klarer Referenz-Ausgabe; bei offener Chat-Generierung liefert Beam Search meistens langweilige, überkonservative Texte. Repetition Penalty und Frequency Penalty greifen auf einer nachträglichen Ebene: Sie senken die Logits von Tokens, die im laufenden Text schon vorkamen, und steuern damit Wiederholungs-Muster. Min-p Sampling ([Nguyen et al. 2024](https://arxiv.org/abs/2407.01082)) ist eine neuere Alternative zu Top-p, die relativ zur höchsten Wahrscheinlichkeit filtert und in Ideation-Szenarien mit hoher Temperature stabilere Ergebnisse liefert als Top-p.
Beispiel: Chat-Assistent versus Struktur-Extraktion versus Open-Weight-Inferenz
Ein Betrieb setzt denselben LLM-Provider für drei Aufgaben ein. Ein Kundenchat-Assistent auf einem Anbieter-Modell (OpenAI, Anthropic, Gemini) läuft mit temperature=0,7 und top_p=0,9. Das ist die Standard-Kombination der Anbieter-Dokumentation: Top-p schneidet den Long Tail ab, Temperature sorgt für Variation im verbleibenden Bereich. top_k bleibt bei OpenAI unerreichbar; bei Anthropic und Gemini bleibt es auf dem Default.
Ein Extraktions-System für Rechnungsdaten (RAG-Pipeline liest PDF, Modell schreibt JSON in eine Delta-Tabelle) läuft dagegen mit temperature=0. Bei T=0 fällt das Sampling auf Greedy Decoding zurück, top_p und top_k haben keine Wirkung mehr. Die Ausgabe ist deterministisch. Zusätzlich sichert ein Structured-Output-Contract ab, dass die Antwort dem JSON-Schema entspricht.
Ein selbst betriebenes Open-Weight-Modell auf einem eigenen Inferenz-Server (Llama 3, Mistral, Qwen auf vLLM oder Text Generation Inference) exponiert alle drei Parameter. Übliche Konfiguration für offene Antworten: temperature=0,8, top_p=0,95, top_k=40. Der zusätzliche top_k-Schnitt hilft, weil die Verteilungen offener Modelle in Grenzbereichen etwas flacher sind als die stark kalibrierten API-Modelle und der Long Tail sonst häufiger durchschlägt.
Top-k und Top-p im eigenen Unternehmen umsetzen?
Wir zeigen, wie sich das in deiner Systemlandschaft konkret abbilden lässt.
der zweite Sampling-Parameter, mit dem Top-k und Top-p meistens kombiniert werden
Large Language Modelsdie Modell-Klasse, aus deren Wahrscheinlichkeitsverteilung gesampelt wird
Foundation ModelsDach-Kategorie über die Modell-Familien
Structured OutputSchema-Erzwingung, die die Wirkung der Sampling-Filter überlagert
Reasoning ModelsModell-Klasse, die Sampling-Parameter meist ignoriert
Halluzinationdas Fehlerbild, das Top-k und Top-p am Long Tail reduzieren