Температура LLM: что меняет настройка случайности — она управляет формой распределения вероятностей следующего токена. Низкие значения смещают выбор к самым вероятным кандидатам, высокие повышают шанс менее вероятных. Знания модели при этом остаются прежними: меняется способ выбора из уже посчитанных вариантов.
Предсказание следующего токена и sampling
Модель генерирует текст по одному токену за шаг. В документации IBM на странице про температуру этот механизм описан так: каждому токену словаря присваивается логит, числовое значение, а весь набор нормализуется в распределение softmax. Каждое значение лежит между нулём и единицей, сумма по всем токенам равна единице. Это вероятностный портрет следующего шага, посчитанный на основе обученных весов.
Sampling — процедура выбора одного токена из этого распределения. Документация Amazon Bedrock формулирует прямо: для любой последовательности модель определяет распределение вероятностей вариантов следующего токена, и чтобы сгенерировать каждый токен, она берёт выборку из этого распределения. Параметр do_sample в материалах IBM включает такой режим: при значении True модель выбирает токен по распределению вероятностей. Без включённого sampling настройка температуры не действует.
Разница между жадным выбором и sampling видна на бытовом примере из документации Cohere. Автодополнение в телефоне, которое всегда берёт самое вероятное слово, может уйти в повторяющиеся фразы. Выбор из короткого списка верхних кандидатов даёт тексту естественность. Именно поэтому sampling стал стандартом генерации: он вносит управляемую вариативность.
Ключевая мысль для читателя: распределение уже содержит все возможные продолжения с их весами. Sampling выбирает одно. Температура меняет веса до выбора. Никакого нового знания о мире на этом шаге не появляется — только перераспределение шансов между кандидатами, которые модель и так рассматривала.
Как температура меняет распределение
В материалах IBM сказано: параметр температуры модифицирует распределение. Низкая температура делает токены с высокой вероятностью ещё более вероятными, высокая повышает шанс выбора менее вероятных токенов. Причина — большая вариативность в выборе токена. Разные значения задают разные уровни случайности при выводе текста.
Документация Amazon Bedrock даёт техническую формулировку: температура модулирует функцию массы вероятностей следующего токена. Низкое значение делает функцию круче и ведёт к более детерминированным ответам, высокое — плоским и ведёт к более случайным. Это геометрическая операция над кривой распределения, применённая к уже посчитанным логитам.
Что это значит на практике. Модель обучилась на корпусе текстов и выучила закономерности языка и фактов. Эти закономерности зафиксированы в весах. Температура не переобучает веса и не добавляет фактов. Она решает, насколько охотно модель берёт редкие продолжения вместо частых. При низкой температуре модель чаще идёт по проторенной дороге корпуса. При высокой — чаще сворачивает на боковые тропы, которые тоже есть в обучающих данных, но реже встречались.
IBM приводит наблюдение исследователей под руководством Макса Пеперкорна: температура слабо коррелирует с новизной и умеренно — с бессвязностью, а связи с цельностью и типичностью не обнаружено. Влияние на креативность тоньше и слабее, чем подсказывает ярлык «параметр творчества». При росте температуры модель выдаёт немного более новые результаты. Формулировка IBM: высокое значение делает вывод менее определённым обучающими данными, и это точнее, чем называть его креативным.
Отсюда практический вывод. Температура меняет статистику выбора. Она не меняет то, что модель знает о мире, и не превращает неверный факт в верный. Если модель уверенно называет несуществующий год, при снижении температуры неверный год может повторяться стабильнее. Для проверки даты нужен источник.
Temperature, top-p, top-k и максимальная длина
Эти параметры часто путают, потому что все они влияют на выбор токена. Различие в операции. Температура пересчитывает форму распределения. Top-k и top-p отсекают часть кандидатов. Максимальная длина ограничивает объём вывода и к выбору токена отношения не имеет.
Документация Amazon Bedrock описывает top-k как число наиболее вероятных кандидатов, которые модель рассматривает для следующего токена. Меньшее значение сокращает пул, большее расширяет его и допускает менее вероятные варианты. Пример из той же документации: при top-k равном 50 модель выбирает из 50 самых вероятных токенов.
Top-p, он же nucleus sampling, задаёт долю распределения. Документация Amazon Bedrock: модель вычисляет накопленное распределение вероятностей и рассматривает только верхние P процентов. При значении 0.8 выбор идёт из верхних 80 процентов распределения. Документация Cohere уточняет: top-p обычно ставят высоко, около 0.75, с максимумом 0.99, чтобы отсечь длинный хвост маловероятных токенов. При включённых k и p параметр p действует после k.
Порядок применения описан в документации Google Cloud для параметров генерации: сначала отбираются top-k токены с наибольшими вероятностями, затем они фильтруются по top-p, и финальный токен выбирается с помощью temperature sampling. Температура работает на последнем шаге, уже внутри урезанного пула.
| Параметр | Что делает | Низкое значение | Высокое значение |
|---|---|---|---|
| Temperature | Меняет форму распределения | Смещает к вероятным токенам | Повышает шанс редких токенов |
| Top-k | Ограничивает пул фиксированным числом | Меньше кандидатов | Больше кандидатов |
| Top-p | Ограничивает пул долей вероятности | Меньшая доля распределения | Большая доля распределения |
| Максимальная длина | Ограничивает объём вывода | Короткий ответ | Длинный ответ |
Максимальная длина управляет другим. В материалах IBM сказано: это общее число токенов, которое модели разрешено сгенерировать, и настройка помогает управлять длиной ответа и предотвращать слишком длинные или нерелевантные выводы. Документация Google Cloud добавляет ориентир: токен — примерно четыре символа, поэтому 100 токенов соответствуют примерно 60–80 словам. Этот параметр не влияет на случайность выбора и работает как ограничитель объёма.
Ручной расчёт на трёх кандидатах
Возьмём учебный пример с тремя символическими кандидатами A, B и C. Это редакторский математический пример; модель не запускалась. Исходное распределение при условной температуре 1: A — 0.7, B — 0.2, C — 0.1. Такое же распределение 0.7 / 0.2 / 0.1 приведено в документации Amazon Bedrock на примере слов horses, zebras и unicorns. Мы используем его как учебный вход и считаем сами.
Формула нормировки: новое значение кандидата пропорционально p в степени 1/T, затем сумма приводится к единице. Считаем для двух температур.
При T = 0.5 возведите каждую исходную вероятность в степень 1/T и нормируйте результаты. Получится: A — 0.907407, B — 0.074074, C — 0.018519. Сумма строки равна единице с округлением.
При T = 2 повторите ту же операцию со степенью 1/T. Получится: A — 0.522879, B — 0.27949, C — 0.19763. Сумма строки тоже равна единице с округлением.
| Кандидат | T = 1 (вход) | T = 0.5 | T = 2 |
|---|---|---|---|
| A | 0.7 | 0.907407 | 0.522879 |
| B | 0.2 | 0.074074 | 0.27949 |
| C | 0.1 | 0.018519 | 0.19763 |
| Сумма | 1.0 | 1.0 | 1.0 |
Что показывает расчёт. Порядок вероятностей не меняется: A остаётся лидером при обеих температурах. Меняются разрывы. При T = 0.5 отрыв A от C огромен, шанс редкого кандидата падает почти до двух процентов. При T = 2 разрыв сжимается, и C получает почти двадцать процентов. Температура перераспределяет массу внутри одного и того же набора кандидатов.
Проверьте расчёт сами: возведите каждую вероятность в степень 1/T, сложите результаты и поделите каждое на сумму. Так вы увидите форму распределения своими глазами и перестанете воспринимать температуру как абстрактный ползунок.
Критерии качества для классификации и идей
Задача определяет, что считать хорошим результатом. Для классификации письма критерий один: правильная метка по эталону и доля ошибок на наборе примеров. Для генерации идей заголовка критерий другой: разнообразие вариантов при сохранении фактов. Один и тот же параметр температуры обслуживает эти задачи по-разному.
| Задача | Что проверяем | Как измеряем |
|---|---|---|
| Классификация письма | Правильная метка | Доля ошибок по эталону |
| Идеи заголовка | Разнообразие при сохранении фактов | Число различных вариантов, проверка фактов |
| Неизвестный факт | Наличие источника | Поиск подтверждения вне модели |
Для классификации низкая температура даёт стабильную метку на одинаковых входах. Это удобно для повторяемой обработки. Правильность метки проверяют сравнением с эталоном. Если модель стабильно ставит неверную метку, причина в промпте, примерах или самой модели.
Для идей заголовка высокая температура расширяет набор вариантов. IBM относит творческое письмо и брейнсторминг концепций к задачам, где предпочтительна высокая температура. Проверка здесь двойная: варианты должны различаться и не искажать факты. Разнообразие без опоры на факты даёт набор красивых, но ложных формулировок.
Отдельный случай — неизвестный факт. Если модель не знает дату или число, температура не поможет. Нужен источник вне модели. Смена настройки случайности здесь маскирует проблему: вы получаете разные формулировки одного и того же пробела в знаниях.
Проверка поддержки и диапазона перед изменением
Перед правкой настройки убедитесь, что выбранная модель её принимает. Документация Amazon Bedrock указывает: значения по умолчанию и диапазоны параметров зависят от модели. Документация Google Cloud даёт конкретный пример: для Gemini 3.6 Flash и более поздних моделей пользовательские значения temperature, topP и topK не поддерживаются и игнорируются, если заданы, а пользовательские frequencyPenalty и presencePenalty возвращают ошибку. Для Gemini 3.5 Flash параметр topK зафиксирован на 64 и не изменяется.
Порядок проверки перед изменением настройки:
- Откройте справочник параметров для конкретной модели и версии, которую вызываете.
- Найдите раздел с параметрами sampling и убедитесь, что температура в списке поддерживаемых.
- Проверьте допустимый диапазон и значение по умолчанию.
- Проверьте, не фиксирован ли параметр на одном значении.
- Отправьте пробный запрос и убедитесь, что настройка принята без ошибки.
Документация Google Cloud приводит рекомендуемое стартовое значение температуры 1.0. Там же сказано: температура 0 означает выбор самых вероятных токенов, ответы для данного промпта в основном детерминированы, но небольшая вариация всё же возможна. Документация Cohere напоминает, что при top-k равном 0 модель отключает k-выборку и использует p.
Отдельно про seed. Документация Google Cloud: при фиксированном seed модель прилагает усилия, чтобы дать одинаковый ответ на повторные запросы, однако детерминированный вывод не гарантируется. Смена модели или настроек, включая температуру, может вызвать вариации даже при том же seed. По умолчанию используется случайное значение seed. Нулевая температура и фиксированный seed дают высокую повторяемость, гарантии идентичного текста они не дают.
Стабильная ошибка остаётся ошибкой
Низкая температура делает ответы повторяемыми. Это свойство часто принимают за признак правильности. Связи здесь нет. Если модель называет неверный год, при низкой температуре она назовёт его снова и снова. Пять одинаковых ответов — это один и тот же неверный факт, повторённый пять раз.
Обратная ошибка встречается при высокой температуре. Модель выдаёт пять разных уверенных вариантов ответа, и это выглядит как пять независимых мнений. Источник у них один: то же распределение той же модели. Пять разных формулировок не становятся пятью источниками.
Проверка качества строится на эталоне. Для фактов эталон — внешний документ. Для классификации — размеченный пример. Для идей — список требований к заголовку. Температура настраивается после того, как определён эталон, и не заменяет его.
Практическое правило: если ответ нужно сверить с источником, сверяйте. Если ответ должен быть стабильным, снижайте температуру. Эти два действия решают разные задачи и не подменяют друг друга.
Журнал подбора
Подбор настройки без записи превращается в угадывание. Журнал фиксирует вход, версию модели и результат проверки. Формат записи:
Дата: [дата прогона]
Модель и версия: [точное имя модели, например gemini-3.5-flash]
Задача: [классификация письма / идеи заголовка]
Вход: [полный текст промпта, без изменений между прогонами]
Параметры: temperature=[значение], top_p=[значение], top_k=[значение], max_output_tokens=[значение]
Эталон: [файл или ссылка на правильный ответ]
Результат: [доля ошибок / число различных вариантов]
Вывод: [оставить значение / изменить на другое]
Правила ведения журнала. Вход остаётся неизменным между прогонами, иначе сравнение теряет смысл. Версия модели указывается точно: смена версии меняет поведение. Параметры записываются все, включая те, что остались по умолчанию. Критерий качества формулируется до прогона: доля ошибок для классификации, число различных вариантов для идей. Один прогон меняет один параметр.
Готовый промпт для разбора распределения кандидатов:
Ты помогаешь разобрать выбор следующего токена. Для фразы "[ваш текст]" предложи три наиболее вероятных продолжения. Для каждого укажи условную вероятность так, чтобы сумма трёх равнялась единице. Затем пересчитай вероятности для температуры [0.5] и температуры [2] по формуле p в степени 1/T с последующей нормировкой. Покажи таблицу: кандидат, исходная вероятность, значение при первой температуре, значение при второй температуре. Отметь, меняется ли порядок кандидатов. Не добавляй новых кандидатов сверх трёх.
Вариации той же задачи: замените [ваш текст] на начало письма, на заголовок статьи, на строку кода. Замените значения температур на свои. Попросите добавить столбец с отсечением по top-p. Попросите объяснить, при какой температуре редкий кандидат получает наибольший шанс. Попросите сравнить две температуры и назвать ту, что даёт более предсказуемый результат.
Частые вопросы
Что такое llm temperature простыми словами?
Это настройка, которая управляет случайностью выбора следующего токена. Низкое значение смещает выбор к самым вероятным продолжениям, высокое повышает шанс редких. Знания модели при этом не меняются, меняется только способ выбора из уже посчитанных вариантов.
Что даёт llm temperature 0?
Документация Google Cloud указывает: температура 0 означает выбор самых вероятных токенов, и ответы для данного промпта в основном детерминированы. Небольшая вариация всё же возможна. Полной гарантии одинакового текста при каждом запросе это значение не даёт.
Temperature vs top p — в чём разница?
Температура меняет форму распределения вероятностей. Top-p отсекает часть кандидатов по накопленной доле вероятности. Документация Google Cloud описывает порядок: сначала отбор по top-k, затем фильтрация по top-p, и только потом выбор токена с помощью температуры.
Почему при низкой температуре ответ всё равно неверный?
Температура управляет выбором из распределения. При низкой температуре неверный ответ тоже может повторяться. Правильность проверяют по внешнему эталону; повторяемости для этого недостаточно.
Как подобрать температуру для своей задачи?
Сначала определите критерий качества: доля ошибок для классификации, разнообразие при сохранении фактов для идей. Затем проверьте поддержку параметра в документации вашей модели и допустимый диапазон. Меняйте один параметр за прогон и записывайте вход, версию модели и результат в журнал.
