Температура (LLM)
Температура (англ. Temperature) в контексте больших языковых моделей (LLM) — это гиперпараметр, который контролирует уровень случайности и «креативности» при генерации текста. Он регулирует «резкость» или, наоборот, «разглаженность» вероятностного распределения следующего токена на каждом шаге декодирования. Манипулируя температурой, можно управлять балансом между предсказуемостью (когерентностью) и разнообразием (креативностью) генерируемого текста.
Простое объяснение
Температура — это параметр, который задаёт, насколько осторожно или, наоборот, свободно модель выбирает следующее слово. У большой языковой модели почти никогда нет только одного возможного продолжения: обычно на каждом шаге есть несколько подходящих вариантов, и у каждого из них своя вероятность. Температура влияет не на сами знания модели и не на то, «что она знает», а на то, как именно она выбирает между этими вариантами при генерации.
При низкой температуре модель ведёт себя более консервативно. Она сильнее «доверяет» самым вероятным словам и реже отклоняется от наиболее ожидаемого продолжения. В результате текст обычно получается более ровным, предсказуемым, формально правильным и последовательным. Такой режим полезен там, где важны точность формулировок, стабильность ответа, повторяемость результата и минимизация лишней вариативности. Однако у этого подхода есть и обратная сторона: текст может становиться слишком шаблонным, сухим, однообразным и иногда излишне «осторожным». При чрезмерно низкой температуре модель может даже начать бесконечно повторять одни и те же конструкции (попадать в цикл), «застревая» на самых вероятных, но не всегда уместных продолжениях.
При высокой температуре модель ведёт себя смелее. Она чаще допускает выбор не только самых вероятных, но и менее очевидных слов. За счёт этого ответы становятся более разнообразными, живыми, нестандартными и иногда более оригинальными. Это может быть полезно в творческих задачах, при мозговом штурме, генерации идей, художественных текстов или поиске нескольких разных формулировок. Но вместе с ростом разнообразия увеличивается и риск: текст может стать менее связным, менее точным, а в крайних случаях — странным, нелогичным или случайным.
Удобная интуиция состоит в том, что температура — это не регулятор знаний, а регулятор риска при выборе слов. Низкая температура заставляет модель почти всегда выбирать «самый безопасный» вариант. Высокая — позволяет ей чаще «рисковать» и пробовать менее очевидные продолжения.
Ещё один полезный образ: температуру можно сравнить с тем, как человек отвечает на вопрос. Если требуется официальный, точный и аккуратный ответ, человек, как правило, выбирает наиболее нейтральные и ожидаемые формулировки — это похоже на низкую температуру. Если же задача состоит в том, чтобы придумать необычную идею, метафору, сюжетный ход или несколько нестандартных вариантов, формулировки становятся свободнее и смелее — это похоже на высокую температуру.
Таким образом, температура отвечает за баланс между двумя свойствами генерации:
- предсказуемостью и устойчивостью ответа;
- разнообразием и неожиданностью формулировок.
Чем ниже температура, тем ближе модель к наиболее вероятному и стандартному продолжению. Чем выше температура, тем больше пространство для вариативности, но тем слабее контроль над строгостью и связностью результата.
Теоретическое определение
Математически, температура () вводится как делитель в функцию softmax, которая преобразует выходные логиты модели () в распределение вероятностей (). Формула выглядит следующим образом:
Где:
- — итоговая вероятность -го токена при температуре .
- — логит (не нормализованная оценка) для -го токена, выданный моделью.
- — параметр температуры (строго положительное число). Например, в API OpenAI для большинства моделей допустимый диапазон составляет от 0 до 2.0, где 0 — специальный случай greedy decoding (см. ниже). В других библиотеках (Hugging Face Transformers, llama.cpp) температура может принимать любое положительное значение.
Важно: температура влияет на вывод только в режимах с sampling. В режимах без сэмплирования (greedy decoding, классический beam search) параметр температуры не оказывает эффекта. Например, в Hugging Face Transformers для работы температуры необходимо включить do_sample=True.
Влияние значения температуры
- (стандартное значение): Распределение вероятностей остаётся без изменений. Это стандартный softmax, который отражает исходные предсказания модели.
- (низкая температура, например, – ): Распределение становится более острым или пиковым. Вероятности наиболее вероятных токенов увеличиваются, а маловероятных — уменьшаются. Это делает генерацию более детерминированной и предсказуемой. Модель чаще выбирает очевидные, высокочастотные слова, что повышает когерентность и грамматическую правильность текста, но снижает его разнообразие.
- (высокая температура, например, – ): Распределение становится более гладким или равномерным. Разница между вероятностями токенов сглаживается, что увеличивает шанс выбора менее вероятных (и более «неожиданных») токенов. Это делает текст более креативным, разнообразным и непредсказуемым, но повышает риск генерации бессвязных или грамматически неверных фраз.
Граничные случаи
- : В пределе, когда температура стремится к нулю, softmax-функция превращается в argmax. Модель всегда будет выбирать токен с наивысшим логитом. Этот режим эквивалентен жадному декодированию (greedy decoding) и является полностью детерминированным. Он часто приводит к повторяющемуся и шаблонному тексту. Примечание: значение нельзя подставить в формулу напрямую (деление на ноль); во многих реализациях оно обрабатывается как специальный режим максимально консервативного выбора, близкий к greedy decoding. При этом не все hosted API гарантируют полную детерминированность при — например, в Anthropic API даже при нулевой температуре результаты могут незначительно варьироваться.
- : Когда температура стремится к бесконечности, распределение вероятностей становится равномерным. Все токены в словаре становятся равновероятными, и модель генерирует случайный «поток сознания», полностью теряя когерентность. На практике бесконечность не нужна: уже при распределение становится почти равномерным, и текст превращается в бессвязный набор токенов.
Практическое применение и рекомендации
Правильный выбор температуры критически важен и зависит от конкретной задачи. Приведённые ниже диапазоны являются грубыми эвристиками — оптимальные значения могут существенно различаться в зависимости от конкретной модели, домена и задачи.
- Для творческих задач (написание рассказов, стихов, маркетинговых слоганов):
- Рекомендуется более высокая температура ().
- Это стимулирует модель генерировать более неожиданные и креативные идеи, использовать разнообразную лексику и избегать шаблонных фраз.
- Для задач, требующих точности и фактологичности (ответы на вопросы, суммаризация, генерация кода):
- Рекомендуется низкая температура ().
- Это снижает вариативность и повышает воспроизводимость результата, заставляя модель придерживаться наиболее вероятных продолжений текста. При генерация становится детерминированной (при фиксированном seed и отсутствии других источников случайности), что полезно для тестирования и отладки, но может маскировать проблемы, проявляющиеся только при сэмплировании. Однако низкая температура сама по себе не гарантирует фактическую точность — если модель не обладает нужным знанием, она может уверенно генерировать неверный ответ. Для максимальной фактологичности рекомендуется комбинировать низкую температуру с методами поиска по базе знаний (RAG) и улучшенным промптингом. В документации OpenAI для задач извлечения данных и фактологических ответов рекомендуется .
- Для задач reasoning, математики и генерации кода:
- Как правило, используются более низкие температуры, однако оптимальное значение заметно зависит от конкретной модели и задачи.
- Примечание: в некоторых reasoning-моделях (например, семейство OpenAI o1/o3) параметры sampling могут быть ограничены или зафиксированы на стороне провайдера. Внутренний chain-of-thought требует стабильного распределения, поэтому провайдеры могут полностью блокировать изменение температуры или принимать пользовательские значения только в узком диапазоне.
- Для диалоговых систем и чат-ботов:
- Рекомендуется умеренная температура ().
- Это позволяет найти баланс: ответы остаются связными и по теме, но при этом не становятся слишком сухими и однообразными.
Примечание: в документации OpenAI API рекомендуется изменять либо temperature, либо top_p, но не оба параметра одновременно — иначе поведение становится сложно предсказуемым. В справочных примерах OpenAI API в качестве значения по умолчанию обычно фигурирует .
Сравнение с Top-k и Top-p
Температура, в отличие от методов отсечения, таких как Top-k и Top-p (nucleus sampling), работает по-другому:
- Температура перераспределяет вероятности между всеми токенами в словаре, но не отсекает ни одного из них. Даже при очень низкой температуре у маловероятных токенов остаётся мизерный, но ненулевой шанс быть выбранными.
- Top-k и Top-p вводят жёсткое отсечение, полностью исключая токены, не попавшие в ядро выборки. Такое отсечение уменьшает риск выбора хвостовых токенов, но само по себе является грубой эвристикой и может отбрасывать правдоподобные продолжения с ненулевой «истинной» вероятностью.
На практике эти параметры часто используются совместно. Например, можно установить умеренную температуру (например, ) для общей стилистики и добавить Top-p (например, ), чтобы отсечь «хвост» распределения и уменьшить риск грубых ошибок. При очень низкой температуре () Top-p фактически теряет смысл, так как распределение и без того имеет только один значимый пик.
Взаимодействие температуры с другими параметрами декодирования
Температура почти никогда не используется в изоляции. На практике её комбинируют с другими гиперпараметрами для тонкой настройки баланса «креативность ↔ надёжность».
Типичный порядок применения параметров
В распространённых sampling-реализациях (в частности, Hugging Face Transformers) параметры обычно применяются в следующем порядке:
- Модель выдаёт сырые логиты ().
- Применяются штрафы за повторения (repetition / frequency / presence penalty) — изменение логитов на основе уже сгенерированных токенов.
- Температура масштабирует логиты: .
- Применяется softmax → получается новое распределение вероятностей.
- Отсечение (truncation): сначала Top-k (если задан), затем Top-p или Min-p.
- Из оставшегося «ядра» происходит случайная выборка (sampling).
В этой типичной схеме температура меняет форму распределения после применения штрафов за повторения, но до softmax и фильтрации. Поэтому одна и та же при и при даёт совершенно разный размер «ядра». Штрафы и температура взаимодействуют нелинейно — это важно учитывать при подборе параметров. Внутренний порядок применения в hosted API (OpenAI, Anthropic) публично не документирован на таком уровне детализации.
Top-p (nucleus sampling) и Min-p
Min-p (minimum probability sampling) — относительно новый метод отсечения, задающий нижний порог вероятности относительно наиболее вероятного токена (обычно 0.05–0.1). В отличие от Top-p, он отсекает токены по относительному порогу (привязанному к вероятности лучшего токена, а не к фиксированной кумулятивной массе), что особенно эффективно при высокой температуре (>0.8): предотвращает выбор совсем неподходящих токенов без значительной потери разнообразия. Min-p поддерживается рядом популярных open-source inference-стеков, включая vLLM и llama.cpp.
Repetition / Frequency / Presence penalty
Frequency_penalty и presence_penalty (OpenAI API) снижают вероятность повторения уже встречавшихся токенов. Они могут компенсировать один из недостатков низкой температуры — склонность к шаблонности и зацикливанию.
Typical sampling и Mirostat
Typical sampling (Meister et al., 2023) выбирает токены, чья вероятность близка к «ожидаемой» энтропии контекста. Mirostat (v2) динамически подстраивает параметры отсечения, чтобы целевая perplexity оставалась постоянной — это полезно для длинных текстов, где стабильность стиля критична.
Иллюстративные примеры настройки
Ниже приведены примерные конфигурации для различных типов задач. Эти значения не являются рекомендациями общего назначения — оптимальные параметры зависят от конкретной модели, задачи и inference-стека.
| Задача | Температура | Возможная комбинация | Логика |
|---|---|---|---|
| Factual Q&A, суммаризация | 0.0–0.3 | T + top_p=0.9 | Минимизация случайной вариативности |
| Генерация кода, математика | 0.1–0.4 | T + repetition_penalty | Стабильность + избежание зацикливания |
| Диалоги / чат-боты | 0.6–0.85 | T + top_p=0.92 или min_p=0.1 | Баланс естественности и связности |
| Творчество (рассказы, маркетинг) | 0.75–1.1 | T + min_p=0.07–0.1 | Разнообразие с фильтрацией хвоста |
| Long-form / агенты | 0.5–0.8 | Mirostat или T + frequency_penalty | Контроль длины и связности |
Общий совет: не стоит сильно менять одновременно temperature и top_p. Как правило, удобнее зафиксировать один из truncation-параметров и управлять креативностью температурой — это делает поведение модели более предсказуемым.
Особенность современных aligned-моделей: в сильно выровненных моделях (прошедших RLHF / Constitutional AI / RLAIF) эффект высокой температуры ослаблен по сравнению с базовыми моделями — модель реже генерирует бессвязный текст даже при . Конкретные оптимальные значения могут меняться с выходом новых поколений моделей; приведённые выше рекомендации актуальны по состоянию на 2025–2026 годы.
Литература
- Holtzman, A. et al. (2020). The Curious Case of Neural Text Degeneration. arXiv:1904.09751.
- Caccia, M. et al. (2018). Language GANs Falling Short. arXiv:1811.02549.
- Fan, A. et al. (2018). Hierarchical Neural Story Generation. arXiv:1805.04833.
- Meister, C. et al. (2023). Locally Typical Sampling. arXiv:2202.00666.
- Hewitt, J.; Manning, C.; Liang, P. (2022). Truncation Sampling as Language Model Desmoothing. arXiv:2210.15191.
- Su, Y.; Collier, N. (2022). Contrastive Search Is What You Need for Neural Text Generation. arXiv:2210.14140.
- O'Brien, S.; Lewis, M. (2023). Contrastive Decoding Improves Reasoning in Large Language Models. arXiv:2309.09117.
- Finlayson, M. et al. (2023). Closing the Curious Case of Neural Text Degeneration. arXiv:2310.01693.
- Shi, C. et al. (2024). A Thorough Examination of Decoding Methods in the Era of Large Language Models. arXiv:2402.06925.
- Ravfogel, S. et al. (2023). Conformal Nucleus Sampling. arXiv:2305.02633.
- Sen, J. et al. (2025). Advancing Decoding Strategies: Enhancements in Locally Typical Sampling for LLMs. arXiv:2506.05387.
- Basu, S. et al. (2021). Mirostat: A Perplexity-Controlled Neural Text Decoding Algorithm. arXiv:2007.14966.
- Nguyen, M. N. et al. (2025). Turning Up the Heat: Min-p Sampling for Diverse and High-Quality Text Generation. arXiv:2407.01082.
- Renze, M.; Guven, E. (2024). The Effect of Sampling Temperature on Problem Solving in Large Language Models. arXiv:2402.05201.
- Zhang, S. et al. (2024). EDT: Improving Large Language Models' Generation by Entropy-based Dynamic Temperature Sampling. arXiv:2403.14541.
- Li, L. et al. (2025). Exploring the Impact of Temperature on Large Language Models: Hot or Cold?. arXiv:2506.07295.