Temperature (sampling parameter)
Jak działa
1. Model zwraca logity z_i dla każdego tokenu w słowniku. 2. Skalowanie: podziel logity przez T: z_i / T. 3. Softmax: p_i = exp(z_i / T) / Σ_j exp(z_j / T). 4. Sampling: wylosuj token z rozkładu p (lub zastosuj greedy argmax dla T→0). Efekt T: • T < 1 → wyostrzenie: prawdopodobieństwa koncentrują się na tokenie o najwyższym logicie. T→0 to greedy decoding. • T = 1 → surowy rozkład modelu. • T > 1 → spłaszczenie: różnice między tokenami maleją, wzrasta losowość. T→∞ to rozkład jednostajny. 5. Temperatura stosowana PRZED opcjonalnym top-k / top-p — najpierw skaluj logity, potem przytnij. 6. Temperature scaling (kalibracja): ucz jednego skalara T na zbiorze walidacyjnym minimalizując negative log-likelihood, żeby prawdopodobieństwa posterior lepiej odpowiadały rzeczywistej trafności.
Rozwiązany problem
Logity modelu językowego muszą zostać zamienione na rozkład prawdopodobieństwa, z którego samplujesz token. Surowy rozkład (T=1) generuje tekst mechanicznie podążający za statystycznym nawykiem — prowadząc do powtarzalności lub degeneracji. Jednocześnie brak kontroli nad losowością uniemożliwia dostosowanie generacji do zadania: kod wymaga deterministyczności, kreatywne pisanie — różnorodności. Temperature rozwiązuje oba problemy jednym skalarnym parametrem.
Kluczowe mechanizmy
Mocne strony i ograniczenia
Implementacja
Temperatura 0 (argmax) powinna dawać deterministyczne wyniki, ale błędy zaokrąglenia float16 i różne kolejności operacji GPU mogą dawać różne tokeny na remisach logitów. Dla pełnej deterministyczności wymagany float32 i seeded PRNG.
T>1.5 często prowadzi do niespójnych lub bezsensownych odpowiedzi. "Kreatywność" LLM wynika z różnorodności danych treningowych, nie z wysokiej temperatury — T=0.7–1.0 to optymalny zakres dla większości zastosowań.
Ewolucja
Złożoność obliczeniowa
Typowe zakresy: T = 0,0 (greedy, kod / zadania faktograficzne), T = 0,2–0,5 (precyzyjne odpowiedzi), T = 0,7–1,0 (kreatywne pisanie, chat), T > 1,2 (eksperymentalne / wysoka kreatywność). Guo et al. (2017) pokazali, że temperature scaling redukuje Expected Calibration Error (ECE) ResNetów na CIFAR-100 z ~16% do <2%. Holtzman et al. (2020) wykazali, że T = 1,0 z pure samplingiem daje wysoką perplexity, ale prowadzi do degeneracji tekstu — co uzasadniło wprowadzenie nucleus sampling jako alternatywy.