Nucleus Sampling
Beim Top-p-Sampling (Nucleus Sampling) wird jedes Token aus der kleinsten Menge ausgewählt, deren Wahrscheinlichkeitssumme p erreicht. Dadurch passt sich die Auswahlmenge der Sicherheit des Modells an – anders als bei Top-k.
Nucleus Sampling, auch Top-p-Sampling genannt, ist ein Dekodierungsverfahren, bei dem das nächste Token jeweils aus der kleinsten Kandidatenmenge ausgewählt wird, deren Gesamtwahrscheinlichkeit einen Schwellenwert p erreicht. Anschließend wird aus dieser Menge ein Token gezogen. Ari Holtzman und seine Kollegen an der University of Washington und dem Allen Institute for AI stellten das Verfahren 2019 in The Curious Case of Neural Text Degeneration vor. Anhand von GPT-2 Large zeigten sie, dass Greedy Decoding und Beam Search Sprachmodelle in fade, repetitive Schleifen führen, während das Sampling aus der gesamten Verteilung unzusammenhängende Texte hervorbringt. Wenn der unzuverlässige Randbereich der Verteilung abgeschnitten wird, entstehen dagegen Texte, deren Perplexität und Vielfalt dem menschlichen Schreiben am nächsten kommen. Top-p ist mittlerweile eine Standardeinstellung in APIs zur Textgenerierung für fast jedes große Sprachmodell.
So wird der Nukleus ausgewählt#
Bei jedem Schritt bewertet das Sprachmodell alle Tokens in seinem Vokabular, und Softmax wandelt diese Bewertungen in Wahrscheinlichkeiten um. Beim Nucleus Sampling werden die Tokens anschließend von der höchsten zur niedrigsten Wahrscheinlichkeit sortiert. Ihre Wahrscheinlichkeiten werden in dieser Reihenfolge so lange addiert, bis die laufende Summe p erreicht. Alles außerhalb dieser Menge wird verworfen, die Wahrscheinlichkeiten der verbleibenden Tokens werden so neu normiert, dass ihre Summe eins ergibt, und ein einzelnes Token wird daraus gezogen.
Nimm vier Kandidaten mit den Wahrscheinlichkeiten 0,50, 0,25, 0,15 und 0,10 und setze p auf 0,8. Die ersten beiden ergeben zusammen 0,75 und unterschreiten damit den Schwellenwert. Daher kommt der dritte Kandidat hinzu und der Nukleus umfasst 0,90. Das vierte Token wird verworfen. Nach der Neunormierung werden die drei verbleibenden Tokens mit Wahrscheinlichkeiten von ungefähr 0,56, 0,28 und 0,17 gezogen.
Das entscheidende Merkmal ist, dass sich der Nukleus in jedem Schritt neu anpasst. Nach „Die Hauptstadt von Frankreich ist“ hält ein Token fast die gesamte Wahrscheinlichkeit, sodass der Nukleus auf ein einziges Wort schrumpft. Am Anfang einer Geschichte verteilt sich die Wahrscheinlichkeit auf Hunderte plausibler Wörter, und der Nukleus wird entsprechend größer. Eine feste Anzahl an Kandidaten kann sich nicht auf diese Weise anpassen.
Dasselbe Verfahren in PyTorch, für einen Dekodierungsschritt über ein Vokabular mit sechs Tokens:
import torch
# Wahrscheinlichkeiten für das nächste Token bei einem Vokabular aus 6 Tokens
probs = torch.tensor([0.10, 0.40, 0.04, 0.25, 0.06, 0.15])
top_p = 0.75
# Sortieren und dann Tokens beibehalten, bis die laufende Summe top_p erreicht
sorted_probs, order = probs.sort(descending=True)
cumulative = sorted_probs.cumsum(dim=0)
keep = cumulative - sorted_probs < top_p # Das Token, das top_p überschreitet, bleibt erhalten
# Den Nukleus neu normieren und die nächste Token-ID ziehen
nucleus = sorted_probs * keep
next_token = order[torch.multinomial(nucleus / nucleus.sum(), num_samples=1)]
print(order[keep].tolist(), next_token.item())Die Ausgabe listet den Nukleus mit den Token-IDs 1, 3 und 5 auf, die zusammen 0,80 der Wahrscheinlichkeit abdecken, gefolgt von der gezogenen ID. Die Tokens 0, 2 und 4 können in diesem Schritt nicht ausgewählt werden. Wird das Skript erneut ausgeführt, wird eines der drei verbleibenden Tokens entsprechend seiner Wahrscheinlichkeit ausgewählt.
Top-p im Vergleich zu gierigem Dekodieren, Top-k und Temperatur#
- Gieriges Dekodieren wählt immer das Token mit der höchsten Wahrscheinlichkeit. Es ist deterministisch und eignet sich für kurze sachliche Antworten, aber lange Ausgaben neigen zu Wiederholungen.
- Top-k-Sampling behält eine festgelegte Anzahl an Kandidaten bei. Ist k auf 50 gesetzt, wird selbst bei einem sicheren Vorhersageschritt aus 50 Tokens gezogen, darunter auch unsinnige. Bei einem unsicheren Vorhersageschritt können dagegen plausible Optionen ausgeschlossen werden. Top-p ersetzt die feste Anzahl durch einen festen Anteil der Wahrscheinlichkeit.
- Temperatur teilt die Modellwerte vor der Softmax-Funktion. Werte unter 1 schärfen die Verteilung zugunsten der wahrscheinlichsten Optionen, Werte über 1 flachen sie ab. Da Top-p nach der Temperatur angewendet wird, vergrößert eine höhere Temperatur auch den Nukleus.
- Min-p-Sampling behält jedes Token bei, dessen Wahrscheinlichkeit mindestens einem festgelegten Anteil der Wahrscheinlichkeit des wahrscheinlichsten Tokens entspricht. Der Grenzwert passt sich also ebenfalls an die Sicherheit des Modells an. Hugging Face Transformers, vLLM und llama.cpp bieten es zusätzlich zu Top-p an.
Da Temperatur und Top-p beide die Zufälligkeit steuern, lautet die übliche Empfehlung, den einen oder den anderen Wert anzupassen, statt beide gleichzeitig zu verändern. Viele Inferenz-Engines lassen auch Top-k und Top-p gemeinsam zu. Dabei setzt Top-k eine feste Obergrenze für die Anzahl der Kandidaten.
Den Top-p-Wert auswählen#
Ein Top-p-Wert von 1.0 deaktiviert den Filter. Übliche Standardwerte liegen zwischen 0.9 und 1.0. Top-p verändert nur die Wahrscheinlichkeiten des Modells. Die sachliche Richtigkeit hängt daher davon ab, dass der Prompt mit relevanten Informationen angereichert wird, zum Beispiel durch Retrieval-Augmented Generation. Dadurch werden Halluzinationen reduziert, weil das Modell die benötigten Fakten erhält. Höhere Werte sorgen für mehr Abwechslung beim Brainstorming, bei Chatbot-Dialogen und beim kreativen Schreiben. Niedrigere Werte wie 0.5 machen die Ausgaben vorhersehbarer und repetitiver. Das eignet sich für die Datenextraktion, Klassifikations-Prompts und Code. Constrained Decoding geht noch weiter und maskiert jedes Token, das ein vorgeschriebenes Format verletzen würde.
Dieselbe Einstellung steuert die Sprachausgabe in Bildverarbeitungspipelines. Wenn eine Erkennung mit Ultralytics YOLO26 eine Szenenbeschreibung durch ein Vision-Language-Modell auslöst, leitet die Ultralytics-LLM-Schnittstelle Anforderungsargumente wie top_p direkt an die API des Anbieters weiter. Ein niedriger Wert wie 0.5 sorgt dafür, dass ähnliche Bilder ähnlich beschrieben werden.










