Startseite / Artikel / Temperature, Top-K, and Top-P: A Practical Guide to LLM Sampling

Temperature, Top-K, and Top-P: A Practical Guide to LLM Sampling

Learn how temperature, top-k, and top-p settings control LLM output, with practical recipes and pitfalls for tuning chatbots, coding assistants, and RAG systems.

2423 Wörter

Man bringt einen Chatbot live. Die Leute mögen ihn. Eines Nachmittags postet jemand ein Screenshot einer Antwort, die so seltsam ist, dass es wirkt, als hätte das Modell einen Fiebertraum. Gleichzeitig liefert Ihr Programmierassistent stets dieselbe allgemeine Antwort – unabhängig davon, wie Sie die Frage formulieren – wie ein Papagei, der sich einen Lehrplan eingeprägt hat.

Sowohl Symptome lassen sich auf eine Ursache zurückführen: die Sampling-Einstellungen wurden nie angepasst.

Hinter den Kulissen führt das Modell Tausende von Wahrscheinlichkeitsberechnungen durch – jeweils für einen Token nach dem anderen.

  • Jedes Wort.
  • Jede Komma.
  • Jeder nächste Gedanke.

Und hier ist das, was die meisten Entwickler übersehen:

Wie kreativ, präzise oder vorhersehbar eine Antwort ausfällt, hängt stark von nur drei Einstellungen ab: Temperature, Top-K und Top-P.

Diese drei Einstellräder fungieren als Steuerungsrad dafür, wie sich ein Sprachmodell verhält.

Egal, ob Sie mit der API von OpenAI, den Modellen von Anthropic, Google Gemini oder der Llama-Familie von Meta arbeiten – ein echtes Verständnis für diese Parameter verändert die Art und Weise, wie Sie damit arbeiten.

Lassen Sie uns jede Einstellung nicht auf akademische Weise, sondern so durchgehen, dass Sie sie tatsächlich anwenden können.

Zuerst: Wie LLMs tatsächlich Text erzeugen

Bevor wir uns mit Temperature, Top-K und Top-P beschäftigen, gibt es eine zentrale Idee, die man verstehen muss.

Ein Sprachmodell formuliert Sätze nicht so wie ein Mensch. Es prognostiziert nacheinander jeweils einen Token.

Nehmen wir diesen Prompt als Beispiel:

"JavaScript ist"

Das Modell berechnet eine Reihe möglicher nächster Token zusammen mit ihren Wahrscheinlichkeiten:

awesome -> 30%
a -> 25%
the -> 15%
used -> 10%
not -> 8%
weird -> 7%
broken -> 5%

Diese Zahlen stammen aus Mustern, die das Modell während des Trainings mit enormen Mengen an Text aufgenommen hat.

Die eigentliche Frage ist: welchen dieser Tokens wählt das Modell tatsächlich aus?

Diese Entscheidung wird durch Sampling-Parameter gesteuert, die wie Filter auf der rohen Wahrscheinlichkeitsliste wirken.

Falls ein Modell einfach immer den Token mit der höchsten Wahrscheinlichkeit wählt, wird dieser Ansatz als greedy Decoding bezeichnet. Er klingt sinnvoll, erweist sich aber bei kreativem Schreiben, Gesprächen sowie jeder Aufgabe, die Nuancen erfordert, als unzureichend, da er tendenziell langweiligen, repetitiven und übermäßig vorsichtigen Text hervorbringt.

Anstelle dessen wählen Modelle in der Regel zufällig aus der Wahrscheinlichkeitsverteilung, das heißt sie entscheiden sich für Tokens aufgrund ihrer Wahrscheinlichkeit und greifen nicht immer zum am höchsten rangierten Token.

Temperatur: Der Regler für Kreativität

Die Temperatur ist der bekannteste der drei Parameter und zugleich der, den die Leute am häufigsten falsch verstehen.

Die Kernidee: Die Temperatur bestimmt, wie schmal oder breit die Wahrscheinlichkeitsverteilung vor der Stichprobenentnahme ist.

  • Niedrige Temperatur (ungefähr 0,1 bis 0,4): Die Verteilung wird schmaler. Der bereits wahrscheinliche Token wird noch dominanter, sodass das Modell vorhersagbarer, konservativer und konstanter handelt.
  • Hohe Temperatur (ungefähr 0,8 bis 1,5 und mehr): Die Verteilung wird flacher. Auch weniger wahrscheinliche Tokens haben eine Chance ausgewählt zu werden, wodurch die Ausgabe kreativer, überraschender – aber manchmal auch incoherenter – wird.
  • Temperatur = 0: Vollständig deterministisch. Das Modell gibt immer den eindeutig wahrscheinlichsten Token aus – im Grunde genommen gierige Dekodierung.
  • Temperatur = 1,0: Es erfolgt keinerlei Anpassung. Das Modell verwendet die ursprünglichen, unveränderten Wahrscheinlichkeiten.
  • Die Mathematik (keine Sorge, es ist einfach)

    Im Hintergrund teilt die Temperatur jede rohe Modellwertung (Logit) auf, bevor diese in Wahrscheinlichkeiten umgewandelt werden:

    adjusted_logit = original_logit / temperature
    

    Die so neu skalierten Logits werden anschließend durch eine softmax-Funktion geleitet, um die endgültige Wahrscheinlichkeitsverteilung zu erzeugen.

    • Teilen durch einen kleinen Wert (niedrige Temperatur): Die Logits werden weiter auseinandergebracht, wodurch die Verteilung schärfer wird und das Modell mit größerer Sicherheit zu seiner bevorzugten Wahl greift.
    • Teilen durch einen großen Wert (hohe Temperatur): Die Logits werden enger zusammengebracht, wodurch die Verteilung abgeflacht wird und mehr Zufälligkeit eingeführt wird.

    Beispiel: Temperatur = 0

    Prompt: "Write a startup tagline for an AI coding tool."

    Result: "Build software faster with AI."

    Repeat the request ten times and you'll get the exact same line every time.

    The reason is simple: temperature 0 always selects the single most probable token, with no exceptions.

    This deterministic behavior is well suited to:

    • Code generation
    • SQL queries
    • JSON output
    • Structured data extraction

    Example: Temperature = 0.3

    Result: "Accelerate software development with intelligent AI."

    Still fairly consistent, but with a touch more flexibility.

    This range works well for:

    • Technical writing
    • Documentation
    • API explanations

    Example: Temperature = 1.0

    Ergebnis: ">Ihr KI-Co-Pilot, um Mitternachtsideen in Produktionscode zu verwandeln."

    Nun hat die Ausgabe mehr Persönlichkeit und Vielfalt. Dieser Bereich eignet sich für:

    • Blogschreiben
    • Marketingtexte
    • Brainstorming-Sessions

    Beispiel: Temperatur = 2,0

    Ergebnis: ">Code-Träume. Galaxien ins Leben rufen. Morgen mit siliziumbasierter Vorstellungskraft umschreiben."

    Ist das kreativ? Sicher.

    Ist das praktisch? Nicht wirklich.

    Setzen Sie die Temperatur zu hoch ein, riskieren Sie Texte, die wenig Sinn ergeben.

    Wann was verwenden

    Use                     | CaseTemperature
    ========================|=================
    Code generation         | 0.0 – 0.2
    Factual Q&A / RAG.      | 0.1 – 0.3
    Summarization           | 0.3 – 0.5
    Chatbot/conversation.   | 0.6 – 0.8
    Creative writing        | 0.8 – 1.2
    Brainstorming/ideation. | 1.0 – 1.5
    

    Was ist Top-K?

    Top-K beschränkt die Anzahl der möglichen Token, die das Modell berücksichtigen darf.

    Anstatt das gesamte Vokabular zu bewerten, beschränkt sich das Modell auf die K Token mit der höchsten Wahrscheinlichkeit.

    Die Regel lautet im Grunde:

    ">Ignorieren Sie alles außerhalb der Top-K-Kandidaten."

    Mit K = 50 wählt das Modell nur aus den 50 wahrscheinlichsten nächsten Tokenn aus. Alles, was auf Rang 51 oder weiter kommt, wird vollständig entfernt – unabhängig davon, wie wahrscheinlich es ursprünglich war.

    Warum das notwendig ist

    Stellen Sie sich eine Verteilung mit 50.000 möglichen Tokenn vor. Selbst Token mit sehr geringen Wahrscheinlichkeiten können gelegentlich ausgewählt werden, was zu seltsamen oder sinnlosen Ergebnissen führt. Die Top-K-Methode dient als fester Grenzwert und bedeutet im Grunde: "Wir berücksichtigen die Ausreißer überhaupt nicht."

    Beispiel

    Aufforderung:

    "React ist"

    Mögliche nächste Token:

    Token    -> Probability
    a        -> 35%
    the      -> 20%
    one      -> 15%
    becoming -> 10%
    fast     -> 8%
    useful   -> 7%
    wild     -> 5%
    

    Top-K = 1

    Nur beibehalten: [a]

    Ausgabe: "React ist a"

    Extrem sicher, ohne jegliche kreative Variation. Dies ist funktional identisch mit der gierigen Dekodierung.

    Top-K = 3

    Behalten: [a, the, one]

    Dies bringt eine gewisse regulierte Vielfalt mit sich.

    Mögliche Ergänzungen sind:

    • React ist ein…
    • React ist das…
    • React ist eine…

    Ein vernünftiger Kompromiss.

    Top-K = 5

    Behalten: [a, the, one, becoming, fast]

    Mehr Raum für Variationen. Die Antworten werden deutlich vielfältiger.

    Top-K = 50

    Ein viel breiteres Spektrum. Ungewöhnliche, aber potenziell interessante Wortauswahlen können auftauchen, doch auch die Wahrscheinlichkeit für ungewöhnliche Ausgaben steigt.

    Vergleich aus der Praxis für Top-K

    Stellen Sie sich vor, Sie wählen aus einem Menü mit 200 Gerichten aus.

    Wenn Top-K auf 5 gesetzt ist, schauen Sie sich nur die fünf am besten empfohlenen Gerichte an.

    Die Entscheidungsfindung wird schneller und weniger überwältigend. Das ist im Grunde die Aufgabe, die Top-K für ein Sprachmodell erfüllt.

    Was ist Top-P? (Nucleus Sampling)

    Top-P verfolgt einen feiner abgestimmten Ansatz als Top-K.

    Anstelle eines festen Anzahlens von Kandidaten wird die Auswahl anhand der akkumulierten Wahrscheinlichkeit vorgenommen. Man fügt weiterhin Tokens in absteigender Reihenfolge der Wahrscheinlichkeit hinzu, bis ihre Gesamtwahrscheinlichkeit den Wert P erreicht hat; anschließend wird nur aus dieser Menge gezogen.

    Falls Sie also P = 0,9 einstellen, wählt das Modell aus der kleinstmöglichen Gruppe von Tokens aus, deren Wahrscheinlichkeiten zusammen 90 % der Gesamtverteilung ausmachen.

    Warum „Nucleus Sampling“?

    Der Name spiegelt die Idee wider, dass die am höchsten rangierten Token einen Kern, ein „Nukleus“, realistischer Fortsetzungen bilden. Alles außerhalb dieses Kerns wird als Rauschen betrachtet: Token mit geringer Wahrscheinlichkeit, die das Modell technisch bewertet hat, aber keine echten Kandidaten für das Sampling sein sollten.

    Beispiele für Wahrscheinlichkeiten:

    Top-P = 0,50

    Fügen Sie weiterhin Token hinzu, bis die gesamte Summe mindestens 50 % erreicht hat.

    A = 40 % B = 25%

    Gesamt = 65%

    Behalten: [A, B]

    Top-P = 0,80

    A = 40% B = 25% C = 20%

    Gesamt = 85%

    Behalten: [A, B, C]

    Top-P = 0,95

    A+B+C+D = 95%

    Behalten: [A, B, C, D]

    Wichtig ist zu beachten, dass Top-P seinen Kandidatenpool dynamisch anpasst.

    Deshalb wird es in modernen Systemen oft dem Top-K vorgezogen.

    Typische Werte

    P    | ValueBehavior
    =====|============================
    0.5. | Very conservative, focused
    0.75 | Balanced
    0.9  | Standard creative tasks
    0.95 | More exploratory
    1.0  | No filtering (use all tokens)
    

    Top-K gegen Top-P

    Top-K arbeitet mit einer festen Anzahl an Token.

    Top-P arbeitet mit einer variablen Anzahl an Token.

    Beispiel:

    Wenn die Wahrscheinlichkeitsverteilung stark geschärft ist, behält Top-P möglicherweise nur 2 Token bei.

    Wenn sie breit gestreut ist, behält Top-P möglicherweise 15 Token bei.

    Genau diese Anpassungsfähigkeit macht ihn so effektiv.

    Top-K sagt dem Modell: „Wähle aus diesen X Optionen.“ Top-P sagt ihm: „Wähle aus so vielen guten Optionen, wie vorhanden sind.“

    Dieser Unterschied ist in der Praxis sehr wichtig.

    Ihre gemeinsame Verwendung (Hier wird es ernst)

    Etwas, das selten klar dargelegt wird: Temperature, Top-K und Top-P werden nacheinander angewendet, nicht isoliert voneinander.

    Ein typischer Sampling-Prozess sieht so aus:

    Raw logits
        ↓
    ÷ Temperature  (reshape the distribution)
        ↓
    Apply Top-K    (cut to top K tokens)
        ↓
    Apply Top-P    (cut to nucleus)
        ↓
    Sample         (pick one token from what's left)
    

    Jede Stufe reduziert den Pool der möglichen Token weiter, und die Reihenfolge, in der diese Filter angewendet werden, ist wichtig.

    Praktische Ansätze für reale Projekte

    Rezept 1: Der Code-Assistent

    temperature = 0.1
    top_p = 0.95
    top_k = 40
    

    Hier ist Vorhersehbarkeit gefragt – eine einzige richtige Antwort ohne Überraschungen. Eine niedrige Temperatur erledigt den größten Teil der Arbeit, während Top-P als zusätzliche Sicherheitsmaßnahme dient.

    Rezept 2: Der Chatbot

    temperature = 0.7
    top_p = 0.9
    top_k = 50
    

    Dies erzeugt konversationelle, natürlich klingende Antworten, ohne in Zufälligkeit abzurutschen. Das Modell wirkt menschlich und nicht roboterhaft.

    Rezept 3: Der Partner für kreative Schreibarbeit

    temperature = 1.1
    top_p = 0.95
    top_k = 0  # disabled
    

    Geben Sie dem Modell Raum zum Erkunden. Es geht um echte kreative Variationen, nicht um allgemeinen Füllstoff. Top-K wird vollständig deaktiviert, sodass Top-P die Auswahl selbst übernimmt.

    Rezept 4: Das faktenbasierte RAG-System

    temperature = 0.0
    top_p = 1.0
    top_k = 1
    

    Das ist eine vollständig gierige Dekodierung. Da das Modell bereits den relevanten Kontext besitzt, soll die einzig wahrscheinlichste Antwort erzielt werden – ohne jegliche Zufälligkeit beim Sampling, wie es beispielsweise in Rechnungsverarbeitungsschritten der Fall ist.

    Rezept 5: Blogschreiben

    Temperature = 0.8
    Top-K = 40
    Top-P = 0.95
    

    Dies erzeugt Text, der natürlich und ansprechend wirkt und sich für längere Artikel eignet.

    Rezept 6: Geschichtenschreiben

    Temperature = 1.2
    Top-K = 100
    Top-P = 0.98
    

    Dies bevorzugt kreative, weniger vorhersehbare Ergebnisse, die sich hervorragend für Fiktion eignen.

    Rezept 7: Datenauswertung

    Temperature = 0
    Top-K = 1
    Top-P = 1
    

    Das Verfahren ist streng und vollständig deterministisch – ideal für Aufgaben wie JSON-Auswertung, Klassifizierung oder Entitätenextraktion.

    Die Fallstricke, vor denen Sie nicht gewarnt werden

    1. Eine höhere Temperatur bedeutet nicht automatisch bessere Ergebnisse

    Es ist verlockend, die Temperatur zu erhöhen in der Erwartung, das Modell werde „intensiver denken“ oder kreativer werden. Tatsächlich führt das jedoch dazu, dass Schwingungen eingeführt werden. Das Modell beginnt, aus Tokens zu schöpfen, die es als unwahrscheinlich eingestuft hat – meist aus gutem Grund. Das Ergebnis sind erfundene Inhalte, sinnlose Aussagen und fehlerhafte Grammatik. Kreativität, die durch Zufälligkeit angetrieben wird, ist nicht dasselbe wie Kreativität, die auf logischem Denken beruht.

    2. Temperatur = 0 ist nur innerhalb einer einzigen Sitzung deterministisch

    Bei einer Temperatur von 0 führt das Modell im Grunde den argmax-Algorithmus aus und wählt stets das Token mit der höchsten Wahrscheinlichkeit. Doch bei unterschiedlicher Hardware, Batch-Größen oder API-Versionen können geringe Rundungsfehler bei Fließkommazahlen immer noch leicht unterschiedliche Ausgaben erzeugen. Gehen Sie nicht von perfekter Wiederholbarkeit aus, es sei denn, Sie setzen auch eine zufällige Startzahl fest, sofern die API dies unterstützt.

    3. Top-P und Top-K können sich gegenseitig ausschließen

    Falls Top-K auf einen sehr niedrigen Wert gesetzt wird, z. B. K=5, während Top-P auf einen hohen Wert eingestellt ist, z. B. P=0.95, hat Top-K effektiv die Oberhand. Dadurch wird das Sampling bereits auf 5 Token beschränkt, sodass Top-P keinen weiteren Pool mehr zur Reduzierung hat. Überlegen Sie sorgfältig, welcher Parameter in Ihrer Konfiguration tatsächlich das eigentliche Filtern vornimmt.

    4. Die Standardwerte unterscheiden sich je nach Anbieter

    OpenAI’s GPT-4 kommt standardmäßig mit temperature=1.0 und top_p=1.0 aus. Anthropic’s Claude-Modelle geben keinen einheitlichen Standardwert an – dieser variiert je nach Modellversion. Google’s Gemini verwendet in einigen Konfigurationen oft temperature=1.0, top_p=0.95 und top_k=40.

    Überprüfen Sie diese Werte immer selbst, anstatt einfach davon auszugehen. Das Portieren derselben Anwendung auf ein anderes Modell ohne Anpassung dieser Parameter kann zu deutlich unterschiedlichem Verhalten führen.

    Empfohlene Standardwerte

    Ein vernünftiger Allzweck-Ausgangspunkt sieht so aus:

    Passen Sie diese Werte an die konkrete Aufgabe an.

    Das mentale Modell, das Sie im Gedächtnis behalten sollten

    Falls sonst nichts hängen bleibt, merken Sie sich Folgendes:

    Die Temperatur bestimmt die Zufälligkeit. Top-K legt fest, wie viele Optionen vorhanden sind. Top-P bestimmt die Wahrscheinlichkeitsgrenze dieser Optionen.

    Das ist das ganze Bild.

    Sobald Sie verstehen, wie diese drei Faktoren miteinander interagieren, hören Sie auf, ein KI-Modell einfach nur „zu verwenden“.

    Sie beginnen, seine Ausgaben gezielt zu gestalten. Genau dieser Wandel unterscheidet oberflächliches Prompting von hochwertigen KI-Systemen.

    Und in Zukunft wird dieser Unterschied nur noch wichtiger.

    Fazit

    Viele Entwickler investieren all ihre Anstrengungen in die Feinabstimmung von Prompts, doch Prompts sind nur die eine Hälfte des Ganzen. Die Sampling-Parameter sind die weniger sichtbaren Einstellungen, die genauso viel bewirken.

    Oft sind sie sogar wichtiger als die Formulierung des Prompts selbst.

    Nächstes Mal, wenn ein LLM etwas Seltsames erzeugt, geben Sie dem Modell nicht sofort die Schuld.

    Prüfen Sie stattdessen:

    • Temperature
    • Top-K
    • Top-P

    Mannchmal ist das Modell nicht die verwirrte Seite – Ihre Konfiguration schon. Sobald Sie das begreifen, gewinnen Sie ein viel tieferes Verständnis dafür, wie sich diese Systeme verhalten.

    Viel Erfolg beim Programmieren!

    Zusätzliche Literatur

  • Eine hierarchische Karte der Konzepte der KI-Engineering und wann sie wichtig sind — Erfahren Sie, welche Konzepte der KI-Engineering darüber entscheiden, ob ein System überhaupt funktioniert, welche für die Produktion relevant sind und welche warten können.
  • Jev von TypeSafe AI: Ein nicht-chattendes Modell für typisierte Entscheidungen — In diesem Artikel wird erklärt, wie das Jev-Modell von TypeSafe AI die Textgenerierung vollständig weglässt und stattdessen kalibrierte, typisierte Antworten liefert, sowie wo dieser Kompromiss tatsächlich Vorteile bringt.
  • 30 Praktische Claude-Prompting-Techniken aus dem echten täglichen Einsatz — Eine im Feld getestete Übersicht von 30 Claude-Prompting-Techniken, geordnet nach deren tatsächlichem Nutzen, von klaren Anweisungen bis hin zu vollständigen Prompt-Systemen.