Temperatur ist ein Hyperparameter, der in großen Sprachmodellen verwendet wird, um die Zufälligkeit der Modellausgabe während der Textgenerierung zu steuern. Es handelt sich um einen Skalierungsfaktor, der auf die Logits (die rohen, nicht normalisierten Werte) angewendet wird, die von der letzten Schicht des Modells erzeugt werden, bevor die Softmax-Funktion sie in eine Wahrscheinlichkeitsverteilung über das Vokabular umwandelt. Durch die Anpassung der Temperatur können Entwickler und Nutzer das Gleichgewicht zwischen Kreativität und Vorhersagbarkeit im generierten Text beeinflussen.
Das Konzept stammt aus der statistischen Mechanik, wo die Temperatur die Entropie eines Systems bestimmt. Im maschinellen Lernen wurde die Temperatur als Modifikation der Softmax-Funktion eingeführt, die manchmal als „Softmax-Temperatur“ bezeichnet wird, um die Ausgabeverteilung zu verschärfen oder abzuflachen. Eine Temperatur von 1,0 lässt die Verteilung unverändert. Werte größer als 1,0 erhöhen die Entropie, wodurch die Verteilung gleichmäßiger und damit zufälliger wird. Werte kleiner als 1,0 verringern die Entropie, wodurch die Verteilung spitzer und damit deterministischer wird. Eine Temperatur von 0,0 (oder nahe Null) wählt effektiv das Token mit der höchsten Wahrscheinlichkeit aus, was zu einer gierigen Dekodierung führt.
Rolle bei der LLM-Inferenz
Während der Inferenz sagt ein LLM das nächste Token voraus, indem es eine Wahrscheinlichkeitsverteilung über sein gesamtes Vokabular berechnet. Der Temperaturparameter modifiziert diese Verteilung vor dem Sampling. Für eine gegebene Menge von Logits z wird die Wahrscheinlichkeit von Token i als Softmax(z_i / T) berechnet, wobei T die Temperatur ist. Bei niedriger Temperatur werden die Unterschiede zwischen den Logits verstärkt, wodurch das wahrscheinlichste Token dominiert. Bei hoher Temperatur werden die Unterschiede abgeschwächt, wodurch weniger wahrscheinliche Token eine größere Chance haben, ausgewählt zu werden.
Dieser Mechanismus ermöglicht es einem einzelnen Modell, für denselben Prompt unterschiedliche Ausgaben zu erzeugen. Beispielsweise könnte eine Temperatur von 0,2 für einen Kundendienst-Chatbot verwendet werden, um konsistente und zuverlässige Antworten zu gewährleisten, während eine Temperatur von 0,8 für einen Assistenten für kreatives Schreiben genutzt werden könnte, um fantasievollere Prosa zu erzeugen. Viele LLM-APIs, wie die von OpenAI, Anthropic und Google DeepMind, bieten die Temperatur als konfigurierbaren Parameter an.
Auswirkung auf die Ausgabequalität
Die Temperatur hat einen direkten Einfluss auf die Qualität und Kohärenz des generierten Textes. Niedrige Temperaturen neigen dazu, repetitive und sichere Ausgaben zu erzeugen, können aber auch zu einem „Modus-Kollaps“ führen, bei dem das Modell in einer Schleife stecken bleibt. Hohe Temperaturen können grammatikalische Fehler, logische Inkonsistenzen oder unsinnige Inhalte einführen, da das Modell unwahrscheinliche Token auswählen kann. Die optimale Temperatur zu finden, erfordert oft Experimente und hängt von der spezifischen Aufgabe und dem Modell ab.
Forschung und praktische Erfahrung haben gezeigt, dass moderate Temperaturen (z. B. 0,7 bis 0,9) oft ein gutes Gleichgewicht für die allgemeine Textgenerierung bieten. Für Aufgaben wie Codegenerierung werden jedoch niedrigere Temperaturen (z. B. 0,1 bis 0,3) empfohlen, um Syntaxfehler zu reduzieren und die Korrektheit zu verbessern. Umgekehrt können bei Aufgaben wie Geschichtengenerierung oder Dialogführung höhere Temperaturen ansprechendere und vielfältigere Antworten liefern.
Beziehung zu anderen Sampling-Methoden
Die Temperatur wird häufig in Verbindung mit anderen Sampling-Techniken verwendet. Top-k-Sampling beschränkt den Sampling-Pool auf die k wahrscheinlichsten nächsten Token, während Nucleus-Sampling (Top-p) aus der kleinsten Menge von Token auswählt, deren kumulative Wahrscheinlichkeit einen Schwellenwert p überschreitet. Diese Methoden können mit der Temperatur kombiniert werden, um die Zufälligkeit weiter zu steuern. Beispielsweise könnte ein Modell eine Temperatur von 0,8 mit Top-p von 0,9 verwenden, was bedeutet, dass die Temperatur zuerst angewendet wird und dann der Nucleus-Filter die wahrscheinlichsten Token auswählt, die zusammen 90 % der Wahrscheinlichkeitsmasse ausmachen.
In einigen Implementierungen wird die Temperatur vor der Top-k- oder Top-p-Filterung angewendet, in anderen danach. Die genaue Reihenfolge kann die resultierende Verteilung beeinflussen, aber das allgemeine Prinzip bleibt: Die Temperatur passt die Gesamtzufälligkeit an, während Top-k und Top-p sich auf die wahrscheinlichsten Token konzentrieren.
Praktische Überlegungen
Beim Einsatz von LLMs in der Produktion ist die Temperatur ein kritischer Parameter, der abgestimmt werden muss. Sie beeinflusst nicht nur die Qualität der Ausgaben, sondern auch die Kosten und die Latenz, da höhere Temperaturen zu längeren Generierungen führen können, wenn das Modell vielfältigere Pfade erkundet. Einige Frameworks, wie die Hugging-Face-Transformers-Bibliothek, bieten integrierte Unterstützung für die Temperatur und andere Sampling-Parameter.
Die Temperatur ist auch beim Feintuning und beim Reinforcement Learning relevant. Während des Trainings verwendet eine Technik namens Wissensdestillation eine Temperatur, um die Ausgabeverteilungen eines Lehrermodells aufzuweichen, sodass ein Schülermodell aus den probabilistischen Ausgaben des Lehrers lernen kann. In diesem Kontext wird die Temperatur verwendet, um die „Weichheit“ der Labels zu steuern, was die Generalisierung des Schülermodells verbessern kann.
Historischer Kontext
Die Verwendung der Temperatur in Softmax-Funktionen geht der Ära der modernen LLMs voraus. Sie wurde im Kontext neuronaler Netze in den 1980er- und 1990er-Jahren eingeführt, insbesondere durch Forscher wie Geoffrey Hinton und andere, die an Boltzmann-Maschinen und dem Training neuronaler Netze arbeiteten. Das Konzept wurde später in Sequenz-zu-Sequenz-Modellen übernommen und wurde schließlich zu einem Standardmerkmal in Transformer-basierten LLMs. Seit den frühen 2020er-Jahren ist die Temperatur ein allgegenwärtiger Parameter in LLM-APIs und Open-Source-Implementierungen.
Siehe auch
- Top-P (Nucleus) Sampling
- Top-K Sampling
- Softmax
- Logits