Co to jest temperatura w modelu językowym (LLM)?
Temperatura (temperature) w LLM to parametr kontrolujący losowość odpowiedzi. Niska (0–0.3) = precyzyjne, przewidywalne. Wysoka (0.8–1.5) = kreatywne, zróżnicowane, czasem chaotyczne.
Zadajesz to samo pytanie ChatGPT dwa razy i dostajesz różne odpowiedzi. To nie błąd. To temperatura — i możesz nią sterować.
Co to jest temperatura?
Wyobraź sobie, że model stoi przed wyborem kolejnego słowa. Oblicza, które słowo najbardziej pasuje — i przypisuje każdemu kandydatowi prawdopodobieństwo. "Słońce" ma 70%, "niebo" 20%, "morze" 5%, reszta po ułamku procenta.
Temperatura 0 = zawsze bierze to z najwyższym prawdopodobieństwem. Zawsze "słońce". Przewidywalny, ale nudny.
Temperatura 1 = losuje zgodnie z prawdopodobieństwami. Czasem "słońce", czasem "niebo".
Temperatura 2 = wyrównuje prawdopodobieństwa. "Morze" nagle ma realną szansę. Kreatywny, ale ryzykowny.
Kiedy używać jakiej temperatury?
- 0.0 — kod, ekstrakcja danych, odpowiedzi TAK/NIE, SQL. Zawsze to samo, deterministycznie.
- 0.3–0.5 — analiza, podsumowania, odpowiedzi na fakty. Trochę swobody, ale trzyma się faktów.
- 0.7–1.0 — pisanie kreatywne, brainstorming, copywriting. Zaskakujące, ale spójne.
- 1.2+ — eksperymenty poetyckie, generowanie wariantów. Ryzykowne, ale ciekawe.
Jedna ważna rzecz, którą większość ignoruje
Wysoka temperatura nie czyni modelu mądrzejszym — daje mu więcej swobody. Przy zadaniach wymagających precyzji (obliczenia, fakty, kod) wysoka temperatura zwiększa ryzyko błędów. Nie podkręcaj temperatury licząc, że model "będzie kreatywniej rozwiązywał problemy logiczne" — będzie za to kreatywniej wymyślać błędne odpowiedzi.
Często zadawane pytania
Czym jest top_p i czym różni się od temperatury?
Top_p (nucleus sampling) to alternatywa dla temperatury. Zamiast skalować wszystkie prawdopodobieństwa, bierze pod uwagę tylko te tokeny, których łączne prawdopodobieństwo wynosi p. Top_p=0.9 = "rozważ tylko kandydatów pokrywających 90% masy". Zazwyczaj używa się jednego z dwóch, nie obu jednocześnie.
Czy temperatura 0 zawsze daje tę samą odpowiedź?
Prawie zawsze. Przy równoległym przetwarzaniu na GPU mogą wystąpić drobne różnice numeryczne (floating point non-determinism). W praktyce temperatura 0 jest "wystarczająco deterministyczna" dla zastosowań produkcyjnych.
Jak ustawić temperaturę w API?
Parametr temperature w body requestu. Dla OpenAI: zakres 0.0–2.0, domyślnie 1.0. Dla Anthropic Claude: 0.0–1.0, domyślnie 1.0. Nie wszystkie modele obsługują zakresy identycznie.
Temperatura to hiperparametr skalujący logits przed operacją softmax podczas dekodowania autoregresyjnego. Przy temperaturze T, prawdopodobieństwo i-tego tokenu wynosi: p_i = exp(z_i/T) / Σ exp(z_j/T), gdzie z_i to logit i-tego tokenu.
Efekty temperatury na rozkład
- T → 0: rozkład degeneruje się do argmax — greedy decoding, deterministyczne
- T = 1: rozkład bez modyfikacji — sampling z oryginalnego rozkładu modelu
- T > 1: spłaszczenie rozkładu — wzrost entropii, więcej "surprisalu"
- T → ∞: rozkład jednostajny — losowy dobór tokenów
Alternatywne metody kontroli losowości
- Top-p (nucleus sampling): truncation do minimalnego zestawu tokenów pokrywającego łącznie prawdopodobieństwo p; adaptacyjne w zależności od kształtu rozkładu
- Top-k: truncation do k-tokenów o najwyższym prawdopodobieństwie; mniej popularne, niespójne przy różnych rozkładach
- Min-p: odcina tokeny poniżej progu min_p × max(p_i); lepsze wyniki przy kreatywnym generowaniu niż top-p
- Beam search: deterministyczne dekodowanie utrzymujące beam_width hipotez — nieużywane w chatach, stosowane w niektórych zadaniach NLP
Kalibracja dla zadań produkcyjnych
Structured outputs (JSON mode, function calling) — temperatura 0.0–0.3 redukuje ryzyko malformed JSON. Classification — temperatura 0.0. Free-form generation z required format: temperatura 0.0 + explicit format instructions. Creative writing: temperatura 0.7–1.0 z top_p=0.95.
Często zadawane pytania
Czy temperatura wpływa na kalibrację modelu?
Temperatura kalibracyjna to osobna koncepcja (Platt scaling, temperature scaling) używana do kalibracji confidence scores klasyfikatora — nie mylić z temperatura dekodowania. W inference LLM wysoka temperatura "rozcieńcza" confidence, ale nie poprawia kalibracji faktycznej.