KI-Begriffe

Temperatur

Der Regler, der bestimmt, wie mutig ein Sprachmodell aus seinen Möglichkeiten wählt – und der Grund, warum dieselbe Frage nicht immer dieselbe Antwort ergibt.

Lesestand

Ein Sprachmodell liefert bei jedem Schritt eine Liste möglicher nächster Tokens mit Wahrscheinlichkeiten. Die Temperatur verformt diese Liste, bevor gezogen wird: niedrig macht den Favoriten noch dominanter – vorhersehbar, sachlich. Hoch ebnet die Unterschiede ein – abwechslungsreich, aber fehleranfälliger.

Die Temperatur ändert nichts am Wissen des Modells, nur an der Auswahl. Verwandte Regler sind Top-p und Top-k, die unwahrscheinliche Kandidaten ganz abschneiden.

Wo die Temperatur ansetzt

Das Modell selbst entscheidet nichts. Es rechnet nur aus, wie gut jedes Token aus seinem Vokabular als Nächstes passen würde. Danach kommt ein separater, sehr einfacher Schritt: das Sampling – eines der Tokens wird ausgewählt. Genau dort, und nur dort, wirkt die Temperatur.

Kontextbisheriger Text
→
Modellrechnet Punktzahlen (Logits)
→
TemperaturPunktzahlen verformen
→
Top-p / Top-kUnwahrscheinliches streichen
→
Ziehenein Token, per Zufall
Die blauen Schritte gehören nicht zum Modell, sondern zur Auswahl danach. Sie kosten praktisch keine Rechenzeit.

Selbst drehen

Das Modell soll den Satz ergänzen. Die Balken zeigen die Wahrscheinlichkeit jedes Kandidaten nach Temperatur und Top-p. Zieh 20 Mal und sieh dir an, was herauskommt:

Temperatur und Top-p
Zum Frühstück esse ich am liebsten ___

Die Werte sind ausgedacht. Die kleine graue Zahl neben jedem Wort ist der rohe Logit – die Punktzahl, die das Modell vergibt. Probier Temperatur 0 (immer „Brötchen“), dann 2 (sogar „Pizza“ und „Beton“ tauchen auf), und dann Top-p 0,9 bei hoher Temperatur.

Was mathematisch passiert

Das Modell gibt für jedes Token eine rohe Punktzahl aus, einen Logit. Aus diesen Punktzahlen werden mit der Softmax-Funktion Wahrscheinlichkeiten. Die Temperatur T teilt die Punktzahlen vorher:

                exp(zᵢ / T)
pᵢ  =  ─────────────────────
        Σⱼ exp(zⱼ / T)

Was das bewirkt, sieht man an drei Fällen:

T klein (0,3)

Abstände werden vergrößert. Der Favorit nimmt fast alles.

T = 1

Die Verteilung, wie das Modell sie gelernt hat.

T groß (2)

Abstände schrumpfen. Alles wird ähnlich wahrscheinlich.

Dieselben fünf Logits, durch verschiedene Temperaturen geschickt. Die Reihenfolge ändert sich nie – nur die Abstände.

Zwei Grenzfälle: Bei T → 0 wird immer das wahrscheinlichste Token gewählt („greedy decoding“); in der Praxis wird T = 0 genau so umgesetzt, statt durch null zu teilen. Bei sehr hohem T nähert sich die Auswahl reinem Zufall über das ganze Vokabular – der Text zerfällt zu Wortsalat.

Der Name kommt aus der Physik: In der Boltzmann-Verteilung bestimmt die Temperatur, wie gleichmäßig sich Teilchen auf Energiezustände verteilen. Heiß = viel Unordnung, kalt = alles im günstigsten Zustand. Die Formel ist tatsächlich dieselbe.

Top-p und Top-k: den Schwanz abschneiden

Ein Problem der Temperatur: Ein echtes Vokabular hat zehntausende Tokens, die meisten davon völlig unpassend. Einzeln sind sie winzig wahrscheinlich, aber zusammen können sie bei höherer Temperatur einen spürbaren Anteil ausmachen – und dann landet irgendwann Unsinn im Text. Deshalb wird zusätzlich abgeschnitten:

k

Top-k

Nur die k wahrscheinlichsten Tokens bleiben, z. B. die besten 40. Einfach, aber starr: Mal sind 40 zu viele, mal zu wenige.

p

Top-p (Nucleus)

Es bleiben so viele der besten Tokens, bis zusammen p erreicht ist, z. B. 90 %. Bei klarer Lage nur wenige, bei offener Lage viele. Am weitesten verbreitet.

↻

Danach

Die übrigen Wahrscheinlichkeiten werden wieder auf 100 % hochgerechnet, dann wird gezogen.

Im Widget oben kannst du das sehen: Bei Top-p 0,9 werden die Außenseiter durchgestrichen und können nicht mehr gezogen werden – egal wie hoch die Temperatur ist.

Wirkung auf ganze Texte

Weil eine Antwort aus Hunderten solcher Ziehungen besteht, summieren sich kleine Unterschiede. Eine Abweichung früh im Text führt das Modell auf einen ganz anderen Weg. So könnte die Bitte „Beschreib einen Herbstmorgen in einem Satz“ dreimal hintereinander ausfallen:

Temperatur 0 – dreimal dasselbe
  1. Nebel liegt über den Feldern, und die Blätter leuchten in Rot und Gold.
  2. Nebel liegt über den Feldern, und die Blätter leuchten in Rot und Gold.
  3. Nebel liegt über den Feldern, und die Blätter leuchten in Rot und Gold.
Temperatur 1 – Variationen
  1. Nebel liegt über den Feldern, und die Blätter leuchten in Rot und Gold.
  2. Der Atem dampft in der kühlen Luft, während die Sonne sich durch den Dunst kämpft.
  3. Kaffeeduft, nasses Laub vor der Tür und ein Himmel, der sich noch nicht entschieden hat.
Temperatur 2 – es zerfällt
  1. Nebel tanzt Kastanien quer durch Morgenröhren, golden verschluckt.
  2. Der Herbst klirrt leise Teekannenlaub, oktoberig verschwommen wolle.
  3. Blätterfrost summend, Laterne Uhrzeiger Igelmorgen.
Illustrative Beispiele, nicht von einem echten Lauf. Das Muster ist aber typisch: zu kalt wiederholt sich, zu heiß verliert den Faden.

Welche Einstellung wofür?

Temperaturgeeignet für
0 – 0,3Code, Datenextraktion, Klassifizieren, Fakten – überall, wo es eine richtige Antwort gibt und Reproduzierbarkeit zählt
0,5 – 1normale Gespräche, Erklärungen, Zusammenfassungen – der übliche Standard
1 – 1,3Brainstorming, Ideen, Geschichten, Varianten – wenn Abwechslung wichtiger ist als Präzision
darüberselten sinnvoll; der Text wird schnell unzusammenhängend

In Chat-Apps kann man die Temperatur meist nicht einstellen; der Anbieter hat sie festgelegt. Über die API geht es, der erlaubte Bereich ist je nach Anbieter verschieden (oft 0 bis 1 oder 0 bis 2). Manche neueren Modelle, die vor der Antwort „nachdenken“, erlauben gar keine eigene Temperatur oder nur eingeschränkt.

Für Entwickler übersetzt

BegriffEntspricht ungefähr
Logitsein float[] mit einer Punktzahl pro Token im Vokabular – die eigentliche Ausgabe des Modells
Samplinggewichtete Zufallsauswahl aus einem Array, wie ein Glücksrad mit unterschiedlich großen Feldern
Temperaturein Skalierungsfaktor für die Feldgrößen, bevor gedreht wird
T = 0argmax – kein Zufall mehr
Seedwie new Random(42): gleicher Startwert, gleiche Zufallsfolge (wenn der Anbieter das unterstützt)
int ziehe(float[] logits, float T, Random rnd) {
    if (T == 0) return argmax(logits);                  // greedy

    double[] p = new double[logits.length];
    double max = max(logits), sum = 0;
    for (int i = 0; i < p.length; i++) {
        p[i] = Math.exp((logits[i] - max) / T);         // "- max" nur gegen Überlauf
        sum += p[i];
    }
    double r = rnd.nextDouble() * sum;                  // Glücksrad drehen
    for (int i = 0; i < p.length; i++) {
        r -= p[i];
        if (r <= 0) return i;
    }
    return p.length - 1;
}

Das ist im Prinzip der komplette Mechanismus – ein paar Zeilen nach Milliarden Rechenschritten im Modell.

Häufige Irrtümer

„Höhere Temperatur macht das Modell kreativer.“ – Es macht die Auswahl zufälliger. Das wirkt anfangs kreativ, aber das Modell kennt dadurch keine neuen Ideen – es greift nur häufiger zu weniger passenden Wörtern.
„Temperatur 0 heißt immer exakt gleiche Antwort.“ – Fast. Durch Rechenungenauigkeiten auf Grafikkarten und die Art, wie Anfragen gebündelt werden, kann es trotzdem kleine Abweichungen geben.
„Niedrige Temperatur verhindert Halluzinationen.“ – Sie verhindert Ausreißer beim Ziehen. Wenn das Modell aber etwas Falsches für am wahrscheinlichsten hält, sagt es das bei T = 0 umso zuverlässiger.
„Die Temperatur ist ein Parameter des Modells.“ – Sie ist eine Einstellung der Anfrage. Mit den gelernten Parametern (Gewichten) hat sie nichts zu tun.

Verwandte Begriffe