Kapitel 07 · Generierung · 7 min

Das nächste Wort wählen

Temperature, Top-k, Top-p. Die Kunst, eine Wahrscheinlichkeitsverteilung in Text umzuwandeln.

Die Verteilung ist berechnet. Und dann?

An diesem Punkt des Buchs kann das Modell eine Wahrscheinlichkeitsverteilung über den nächsten Token berechnen. Um Text zu generieren, muss man jetzt einen auswählen. Das ist der Sampling-Schritt (Stichprobenziehung).

Wir haben diesen Mechanismus bereits in Kapitel 01 kurz gesehen. Jetzt ist es Zeit, genauer hinzuschauen: Er unterscheidet ein vorsichtiges von einem kreativen Modell, einen zuverlässigen Assistenten von einem repetitiven Papagei.

Warum nicht immer das Wahrscheinlichste?

Die einfachste Strategie — Greedy Decoding — besteht darin, immer den Token mit der maximalen Wahrscheinlichkeit zu nehmen. Schnell, deterministisch, reproduzierbar.

Und doch fast nie allein verwendet. Warum?

Weil Greedy Decoding seltsam flachen Text erzeugt. Es gerät in Schleifen („sehr sehr sehr interessant interessant interessant…"). Es wählt immer das konventionellste Wort. Es erzeugt technisch korrekte, aber farblose Sätze. Das Modell wurde auf menschlichem Text trainiert, der immer einen Teil an Unvorhersehbarkeit enthält — und diese Unvorhersehbarkeit muss sich in der Generierung wiederfinden.

Daher das stochastische Sampling: Man zieht einen Token zufällig gemäß der Verteilung. Je wahrscheinlicher ein Token, desto mehr Chancen hat er, ausgewählt zu werden — aber die anderen haben auch eine Chance.

Drei Regler

Dieses reine stochastische Sampling wäre zu verrauscht. Typischerweise werden drei Filter vor dem Ziehen angewendet:

Temperatur

Die Temperatur T dividiert die Logits vor dem Softmax. Das ist die mächtigste Einstellung.

  • T = 1,0 — Verteilung wie sie aus dem Modell kommt (Referenz)
  • T < 1,0zugespitztere Verteilung: die Hohen werden höher, die Niedrigen niedriger. Das Modell wird vorhersehbarer.
  • T → 0 — entspricht Greedy Decoding (nur ein Token möglich).
  • T > 1,0abgeflachte Verteilung: wenig wahrscheinliche Optionen steigen. Das Modell wird kreativ, manchmal seltsam.
  • T → ∞ — gleichförmig, das Modell zieht völlig zufällig.

Temperatur ist ein Schieberegler zwischen Vorhersehbarkeit und Phantasie.

Top-k

Statt allen Tokens des Vokabulars (50.000+) zu erlauben, behält man die k wahrscheinlichsten und setzt den Rest auf null, dann renormalisiert man. k = 40 ist ein klassischer Wert für Kreativität, k = 1 führt zurück zu Greedy.

Vorteil: Eliminiert sofort absurde Tokens (jene mit 0,0001%), die zufällig gezogen werden könnten. Nachteil: Der optimale k-Wert hängt von jedem Schritt ab — manchmal reichen 5 Kandidaten, manchmal sind 100 alle plausibel.

Top-p (Nucleus Sampling)

Cleverer als Top-k. Man behält die kleinste Menge, deren kumulierte Wahrscheinlichkeit p übersteigt, dann renormalisiert man.

  • Bei einem Schritt, wo das Modell zwischen 30 ähnlichen Optionen schwankt → Top-p behält alle Optionen, deren Summe p erreicht.
  • Bei einem Schritt, wo das Modell zu 95 % sicher ist → Top-p behält einen einzigen Token.

In der Praxis ist Top-p ≈ 0,9 die Standardeinstellung moderner LLMs geworden. Es passt sich automatisch an die Sicherheit des Modells an.

Nochmal interagieren

Wir haben diese Visualisierung bereits in Kapitel 01 gesehen — wir spielen sie hier nochmal ab, weil das genau das Thema ist:

Spiele mit der Temperature: bei 0 ist das Modell deterministisch und repetitiv; bei 1.5 wird es kreativ — bis hin zur Inkohärenz. Top-k und Top-p schneiden die lange Reihe unwahrscheinlicher Kandidaten ab, ohne die wahrscheinlichen zu berühren.

Diesmal beobachte:

  • Bei Hauptstadt ist das Modell so sicher (10,0 vs. 5,0 für den nächsten), dass es eine extrem hohe Temperatur (>1,5) braucht, um etwas anderes als Paris auszugeben. Das ist typisch für Prompts, bei denen die Antwort bekannt ist.
  • Bei Der Himmel im zweiten Schritt sind mehrere Fortsetzungen semantisch plausibel. Mit Temperatur = 1,5 kann man Farbe oder Meer statt Licht erhalten. Die Bedeutung bleibt korrekt, aber der Text wird unvorhersehbarer.
  • Bei Top-k = 1 wird jede andere Einstellung nutzlos: Man ist in Greedy.
  • Bei Top-p = 0,5 auf dem Prompt Hauptstadt überlebt nur Paris (weil es bereits 50 % allein erreicht).

Einige typische Einstellungen

Typische Einstellungen nach Anwendungsfall:

AnwendungsfallTemperaturTop-p
Code, strukturierte Daten0,0–0,21,0
Faktische Antwort0,3–0,50,9
Allgemeines Gespräch0,70,9
Brainstorming, kreatives Schreiben0,9–1,20,95
Variationsgenerierung1,2–1,50,95

Das sind keine harten Regeln. Aber das ist die Größenordnung, die man in den meisten Produkten findet, die ein LLM verwenden.

Drei weitere Regler, die man kennen sollte

Über Temperatur / Top-k / Top-p hinaus tauchen ein paar Parameter überall in den APIs auf.

Repetition penalty (oder frequency penalty / presence penalty bei OpenAI). Bestraft Tokens, die bereits in der Ausgabe erschienen sind. Nützlich, um repetitive Schleifen zu durchbrechen, ohne die Temperatur hochziehen zu müssen. Typischer Wert: 1,05–1,2.

Stop sequences. Eine Liste von Zeichenketten, die, wenn sie in der Ausgabe erscheinen, die Generierung sofort stoppen. Unverzichtbar für strukturierte Anwendungen: In einem formatierten Dialog stoppt man bei <|im_end|> oder \n\nUser:, um zu verhindern, dass das Modell die Konversation allein weiterführt.

Beam search. Statt stochastisch zu sampeln, behält man parallel die k besten partiellen Sequenzen bei jedem Schritt und wählt am Ende diejenige, die die Gesamtwahrscheinlichkeit maximiert. Das Ergebnis ist „glatter", aber oft weniger natürlich. Wird in maschineller Übersetzung und Spracherkennung verwendet, viel seltener in kreativer Generierung.

Die illusorische Determinismus

Eine letzte Feinheit. Selbst mit Temperatur = 0 können zwei Aufrufe desselben Modells in der Praxis unterschiedliche Ergebnisse liefern:

  • Nicht-deterministische Quantisierung (Berechnungen in INT8/FP8 haben eine Fehlertoleranz).
  • Dynamisches Batching auf der Serverseite (je nach anderen Anfragen ändern sich die Reihenfolgen der Fließkommaoperationen).
  • Modellversionen, die beim Anbieter stillschweigend wechseln.

Wenn du Tests schreibst, die von der genauen Ausgabe eines LLM abhängen, wirst du leiden.

Was als nächstes kommt

Jetzt weißt du, wie ein LLM:

  • Text in Tokens zerlegt,
  • sie in Vektoren umwandelt,
  • sie über Attention aneinander betrachten lässt,
  • Transformer-Blöcke stapelt, um die Repräsentation zu verfeinern,
  • eine Verteilung über den nächsten Token vorhersagt,
  • einen mit einer Sampling-Strategie zieht.

Und doch ist das, was wir „Assistent" nennen — etwas wie ChatGPT oder Claude — nicht nur das. Ein Basismodell an diesem Punkt wäre ein Textvervollständiger, kein Assistent. Wie kommt man von einem zum anderen? Das ist das Thema des letzten Kapitels: das Alignment.

Aktualisiert am

Das nächste Token wählen: Temperature, Top-k, Top-p · Step by Token