Die Temperature ist eine Zahl, die steuert, wie viel Zufall ein Sprachmodell bei der Wahl seines nächsten Wortes nutzt. Bei niedriger Temperature nimmt das Modell fast jedes Mal das wahrscheinlichste Wort, die Antworten sind also fokussiert und wiederholbar. Bei hoher Temperature verteilen sich die Chancen, die Antworten variieren stärker und schweifen manchmal ab. Die Temperature ändert, wie das Modell zwischen Wörtern wählt, die es ohnehin in Betracht zieht; sie ändert nicht, was das Modell weiß.
Wie ein Modell das nächste Wort wählt
Ein Modell schreibt Token für Token, wobei ein Token ein Wort oder ein Wortstück ist (siehe Tokens und Kontextfenster). Bei jedem Schritt gibt es jedem Token in seinem Vokabular einen Score, den sogenannten Logit. Eine Funktion namens Softmax macht aus diesen Scores Wahrscheinlichkeiten: Jeder Score wird exponenziert und dann durch die Summe aller geteilt, sodass höhere Scores größere Anteile bekommen und sich alle Anteile zu 1 summieren. Dann zieht das Modell ein Token zufällig gemäß diesen Anteilen.
Die Temperature kommt direkt vor Softmax ins Spiel. Jeder Score wird durch die Temperature T geteilt:
probability(word) = exp(score / T) / sum of exp(score / T) over all candidates
Mit T unter 1 werden die Abstände zwischen den Scores größer, der Spitzenreiter zieht also weiter davon. Mit T über 1 schrumpfen die Abstände, die Außenseiter holen auf. Bei T = 1 bekommst du die eigenen Wahrscheinlichkeiten des Modells. Bei T = 0 ist die Division nicht definiert, deshalb behandeln APIs das als "nimm immer das oberste Token", was Greedy Decoding heißt.
Probier es aus: der Temperature-Regler
Die Demo unten setzt den Satz "Meine liebste Programmiersprache ist" mit sechs Kandidatenwörtern fort. Die Scores sind zur Veranschaulichung für diese Demo gewählt; ein echtes Modell bewertet ein Vokabular von Zehntausenden Tokens oder mehr, und ein Sprachname kann in mehrere Tokens zerfallen. Die Mathematik ist echt: Die Balken sind das Softmax dieser Scores bei der Temperature, die du wählst, und der Sample-Button zieht daraus zehn Wörter.
Bei 1,0 bekommt Python etwa 46 % und COBOL unter 1 %. Zieh auf 0,5 herunter, und Python steigt auf etwa 67 %, während COBOL so gut wie verschwindet. Zieh auf 2,0 hoch, und Python fällt auf etwa 32 %, während COBOL auf etwa 4 % klettert, sodass ungefähr jede dritte Runde mit zehn Samples es mindestens einmal enthält. Achte darauf, was nie passiert: Die Reihenfolge der Wörter bleibt bei jeder Einstellung gleich. Die Temperature kann COBOL nicht wahrscheinlicher machen als Python; sie vergrößert oder verkleinert nur die Abstände.
Eine echte Antwort besteht aus Hunderten solcher Ziehungen hintereinander, und jede Ziehung wird Teil des Kontexts für die nächste. Ein ungewöhnliches Wort früh im Text verändert alles, was folgt, und deshalb driftet eine Antwort mit hoher Temperature viel weiter ab, als ein einzelnes Wort in dieser Demo vermuten lässt.
Wann du eine niedrige oder hohe Temperature nimmst
| Aufgabe | Startpunkt | Warum |
|---|---|---|
| Code, Bugfixes, SQL | Niedrig, 0 bis 0,3 | Meist gibt es eine beste Fortsetzung, und du willst bei jedem Durchlauf dasselbe Ergebnis |
| Extraktion, Klassifikation, JSON | 0 | Jede Abweichung ist Rauschen, und ein Programm muss die Ausgabe lesen |
| Erklärungen, Alltagsfragen | Der Standardwert des Anbieters | Standardwerte sind für den allgemeinen Gebrauch gewählt |
| Brainstorming, Namen, Story-Ideen | Standard oder etwas höher | Du willst Optionen, die sich voneinander unterscheiden |
Zwei Warnungen. Erstens macht eine niedrige Temperature eine Antwort nicht wahr. Wenn die wahrscheinlichste Antwort des Modells falsch ist, bekommst du bei Temperature 0 jedes Mal diese falsche Antwort, nur eben konsistent; siehe KI-Halluzinationen. Zweitens erzeugen sehr hohe Werte (deutlich über 1, bei APIs, deren Skala bis 2 reicht) oft Text, der den Faden verliert oder keinen Sinn mehr ergibt, weil unwahrscheinliche Tokens immer häufiger gewählt werden.
Manchmal ist der Zufall genau das Ziel. Self-Consistency-Prompting stellt dieselbe Denkfrage absichtlich mehrmals mit einer Temperature über 0 und nimmt dann die Antwort, auf die sich die meisten Durchläufe einigen.
Temperature, top_p und top_k
Zwei weitere Einstellungen steuern das Sampling ebenfalls, und APIs bieten sie oft neben der Temperature an.
top_p (Nucleus Sampling) behält nur die wahrscheinlichsten Tokens, deren Wahrscheinlichkeiten sich zu p summieren, und sampelt dann unter diesen. Mit den Zahlen der Demo bei Temperature 1: Python, JavaScript und Rust kommen zusammen auf etwa 88 %, und mit C werden 90 % überschritten. Mit top_p = 0.9 sampelt das Modell also nur unter diesen vier; Haskell und COBOL können nie erscheinen. Anders als die Temperature passt sich top_p an: Wenn das Modell sicher ist, schaffen es wenige Tokens in die Auswahl, wenn es unsicher ist, viele.
top_k behält eine feste Zahl der wahrscheinlichsten Tokens, etwa die obersten 40. Manche APIs bieten das an, andere nicht.
Anbieter empfehlen meist, entweder die Temperature oder top_p zu ändern, nicht beide, weil sich die Effekte auf schwer vorhersehbare Weise überlagern.
Temperature in der API einstellen
Die Chat-Apps verstecken die Einstellung, aber die APIs nehmen sie als Parameter. Der Wertebereich hängt vom Anbieter ab: OpenAIs Chat Completions API akzeptiert 0 bis 2, Anthropics Messages API 0 bis 1. Manche Reasoning-Modelle akzeptieren nur ihren Standardwert.
from openai import OpenAI
client = OpenAI()
MODEL = "your-model-id" # e.g. from your provider's model list
response = client.chat.completions.create(
model=MODEL,
messages=[{"role": "user", "content": "Write a SQL query that counts orders per customer."}],
temperature=0.2,
)
print(response.choices[0].message.content)
import anthropic
client = anthropic.Anthropic()
MODEL = "your-model-id" # e.g. from your provider's model list
message = client.messages.create(
model=MODEL,
max_tokens=500,
temperature=0.2,
messages=[{"role": "user", "content": "Write a SQL query that counts orders per customer."}],
)
print(message.content[0].text)
Warum Chat-Apps sie verstecken und was du stattdessen tust
Die Apps von ChatGPT, Claude und Gemini wählen die Sampling-Einstellungen für dich und zeigen keinen Regler. Das hält die Apps einfach, und bei den meisten Anfragen verändert eine Umformulierung des Prompts die Antwort viel stärker, als es eine Sampling-Einstellung täte.
In einer Chat-App ist also der Prompt dein Regler. Wenn du um eine Antwort bittest, bekommst du etwas nahe an der ersten Wahl des Modells. Wenn du um viele Antworten bittest, die sich voneinander unterscheiden, bekommst du Vielfalt bei jeder Temperature, weil das Modell jetzt einen Grund hat, seine erste Wahl zu meiden. Wechsle zwischen den Tabs und ändere das Produkt, um den Unterschied zu sehen.
Streakly. Kurz, leicht zu merken und ein Hinweis auf die täglichen Serien, die Leute immer wieder zurückbringen.
Der Button zum Neugenerieren in einer Chat-App sampelt eine neue Antwort aus demselben Prompt, und so siehst du schnell, wie stark die Antworten variieren. Wenn sie mehr variieren, als dir lieb ist, hilft meist ein genauerer Prompt: Eine präzise Aufgabe engt den Bereich guter Antworten ein, und dadurch werden die Durchläufe ähnlicher. Der Leitfaden zum Prompt schreiben zeigt, was du ergänzen kannst.
Häufig gestellte Fragen
Was ist die Temperature bei einem LLM?
Die Temperature ist eine Sampling-Einstellung, die steuert, wie zufällig die Wahl jedes nächsten Tokens ist. Das Modell gibt jedem möglichen nächsten Token einen Score, und die Scores werden durch die Temperature geteilt, bevor sie in Wahrscheinlichkeiten umgerechnet werden. Niedrige Werte lassen die erste Wahl dominieren; hohe Werte gleichen die Chancen an, sodass unwahrscheinlichere Tokens öfter gewählt werden.
Welche Temperature sollte ich zum Programmieren verwenden?
Ein niedriger Wert zwischen 0 und 0,3 ist ein üblicher Startpunkt für Code, Datenextraktion und jede Aufgabe mit genau einer richtigen Antwort, weil du die wahrscheinlichste Fortsetzung und wiederholbare Ergebnisse willst. Erhöhe ihn, wenn du Vielfalt willst, etwa beim Brainstorming von Namen oder alternativen Entwürfen. Manche Reasoning-Modelle akzeptieren nur ihren Standardwert, also schau in die Dokumentation deines Anbieters.
Was ist der Unterschied zwischen Temperature und top_p?
Die Temperature formt die ganze Wahrscheinlichkeitsverteilung um. top_p, auch Nucleus Sampling genannt, schneidet sie ab: Das Modell sampelt nur aus der kleinsten Gruppe von Tokens, deren Wahrscheinlichkeiten sich zu p summieren, also lässt top_p = 0.9 den langen Schwanz unwahrscheinlicher Tokens weg. Anbieter empfehlen meist, nur einen der beiden Werte anzupassen und den anderen auf dem Standard zu lassen.
Macht Temperature 0 die Ausgabe deterministisch?
Fast, aber nicht ganz. Bei 0 nimmt das Modell bei jedem Schritt das wahrscheinlichste Token, also sind wiederholte Durchläufe meist identisch oder sehr ähnlich. Kleine numerische Unterschiede auf den Servern des Anbieters können trotzdem hin und wieder ein Token ändern, und sobald ein Token anders ist, kann der Rest der Antwort einen anderen Weg nehmen.
Kann ich die Temperature in ChatGPT oder Claude ändern?
Nicht in den Chat-Apps: Sie wählen die Sampling-Einstellungen für dich und zeigen keinen Temperature-Regler. Du kannst sie über die APIs und in Entwickler-Tools wie OpenAIs Playground, der Anthropic Console und Google AI Studio einstellen. In einer Chat-App bittest du im Prompt selbst um Vielfalt oder Konsistenz.