Как работает temperature при генерации текста
В какой момент применяется temperature при генерации LLM, какая формула scaling и что происходит после softmax?
Короткий ответ
Temperature применяется к logits перед softmax: softmax(logits / T). T < 1 делает распределение острее, T > 1 - более плоским. После softmax токен либо выбирают argmax, либо sampling из распределения.
Полный разбор
Модель на каждом decode step выдает logits по словарю. Перед превращением logits в вероятности можно применить temperature:
`p_i = exp(z_i / T) / sum_j exp(z_j / T)`.
Если `T < 1`, большие logits становятся еще более доминирующими, распределение острее, генерация более deterministic. Если `T > 1`, распределение выравнивается, растет разнообразие и риск мусора. При `T -> 0` поведение приближается к greedy argmax.
После softmax можно выбрать самый вероятный токен или сэмплировать из распределения, часто вместе с top-k/top-p фильтрацией.
Теория
Temperature не обучает модель и не меняет веса. Это inference-time преобразование распределения следующего токена.
Типичные ошибки
- Говорить, что temperature применяется после выбора токена.
- Перепутать эффект T < 1 и T > 1.
- Не объяснить sampling как случайный выбор из categorical distribution.
Как отвечать на собеседовании
- Запиши softmax(logits / T).
- Объясни крайние случаи: T -> 0 и большая T.