Заметки

Температура нейросети: как настроить разнообразие ответов

M
Markabus
·
Два лотка с одинаковыми и разными формулировками рядом с регулятором temperature: метафора разнообразия генерации. Пометка «Иллюстрация · сгенерировано ИИ».

Температура нейросети — параметр, который меняет распределение вероятностей при выборе следующего токена. Если модель и режим поддерживают эту настройку, меньшая температура обычно делает выбор более сосредоточенным, а большая допускает больше разнообразия. Она не добавляет знаний, не проверяет факты и не заменяет режим рассуждений. Разберём, как пользоваться параметром без универсального совета «всегда ставьте ноль».

Что такое температура генерации простыми словами

Языковая модель строит ответ по частям — токенам. На каждом шаге она оценивает возможные продолжения. Параметр temperature влияет на то, насколько сильно самые вероятные варианты будут преобладать над остальными, прежде чем система выберет продолжение. О самих единицах текста писали в статье «Токены и лимиты».

Представьте, что для очередного места в предложении есть очевидное продолжение и несколько менее привычных. При меньшей температуре выбор чаще концентрируется на лидере. При большей шансы распределяются ровнее. При этом настройка не означает «выбрать случайное слово из всего словаря»: исходные оценки модели и другие ограничения продолжают работать.

Здесь нет связи с нагревом видеокарты или процессора. Название пришло из математической модели распределений. Ползунок в клиенте также не обязательно отражает реальную настройку сервера: посредник может ограничивать значения, преобразовывать их или вообще не передавать параметр выбранной модели.

Как температура меняет вероятности: учебный расчёт

В стандартной схеме положительная температура T масштабирует оценки токенов перед softmax — преобразованием оценок в вероятности. Для уже заданного распределения это можно выразить так: каждую вероятность возвести в степень 1 / T, затем разделить на сумму получившихся величин. Это объясняющая математика, а не описание всех возможных серверных реализаций.

Пусть у трёх условных продолжений A, B и C начальные вероятности равны 60%, 30% и 10%. Рассмотрим только изменение температуры, без отсечения кандидатов другими параметрами:

ТемператураВариант AВариант BВариант C
T = 0,578,26%19,57%2,17%
T = 160%30%10%
T = 247,27%33,43%19,30%

Это локальный расчёт по вымышленным исходным вероятностям, не эксперимент с конкретной нейросетью. Даже при T = 2 вариант A остаётся самым вероятным. Меняется степень его преимущества, а не порядок оценок. У температуры нет встроенного понимания, какой вариант фактически верен или полезен пользователю.

Почему температура 0 не гарантирует одинаковый и правильный ответ

В формулу выше ноль подставлять нельзя: получится деление на ноль. В программных интерфейсах значение 0 может быть специальным обозначением выбора наиболее вероятного продолжения или обрабатываться особым образом. Допустимые значения и смысл граничного случая нужно смотреть у конкретного движка.

Даже выбор самого вероятного токена не равен проверке фактов. Если модель уверенно склоняется к неверной дате, уменьшение разнообразия может сделать эту ошибку более устойчивой. Для проверки нужны источники, вычисления или тесты. Отдельный разбор — почему нейросети выдумывают.

Для побайтно повторяемого результата важны также версия модели, входной контекст, программное окружение и реализация вычислений. Если система поддерживает seed — начальное значение генератора случайных чисел, — его стоит фиксировать при сравнении. Но один seed и низкая температура сами по себе не являются обещанием абсолютной воспроизводимости любого облачного сервиса.

Temperature, top_p и top_k: в чём разница

Температура перераспределяет вероятности. top_k оставляет заданное число наиболее вероятных кандидатов. top_p, или nucleus sampling, оставляет минимальный набор наиболее вероятных токенов, который набирает заданную суммарную вероятность. Точный порядок применения преобразований зависит от реализации.

Например, для исходных 60%, 30% и 10% порог top_p = 0,9 позволяет набрать нужную массу первыми двумя вариантами. Это иллюстрация принципа, а не гарантия одинакового результата при одновременном изменении температуры: после пересчёта вероятностей состав набора может оказаться другим.

В документации Transformers эти настройки перечислены отдельно. Есть и другие способы декодирования: например, в режиме без случайной выборки ползунок температуры может не играть ту роль, которую вы ожидаете. Для понятного эксперимента сначала выясните, какой режим используется, затем меняйте по одному параметру.

Три примера из актуальной документации

Система или режимЧто важно знатьПрактический вывод
Ollama ModelfileЕсть отдельный параметр temperature; также перечислены seed, top_k и top_pПроверяйте настройки своей модели и движка, фиксируйте остальные условия
DeepSeek в thinking-режимеПо документации temperature принимается для совместимости, но не действуетУспешный HTTP-ответ ещё не доказывает применение настройки
Gemini разных поколенийДля ранних Gemini 3 рекомендованы значения по умолчанию; для Gemini 3.6+ и 4 описано игнорирование пользовательских sampling-параметровНельзя переносить старую инструкцию на новую модель без проверки справки

Эта сверка сделана 26 октября 2026 года. В troubleshooting Google сказано, что Gemini 3.6+ и Gemini 4 игнорируют пользовательские temperature, top_p и top_k, возвращая предупреждения об устаревании; в будущем заявлены ошибки 400. Для ранних Gemini 3 разработчик рекомендует сохранять значения по умолчанию. Это различие между моделями, а не противоречие общему смыслу температуры.

У DeepSeek режим рассуждений тоже имеет собственные правила. Его документация прямо предупреждает, что temperature не влияет на thinking-генерацию. Не пытайтесь компенсировать это перебором сотни значений: сначала убедитесь, что меняете действующий параметр. Поведение top_p у DeepSeek дополнительно зависит от модели и режима, поэтому его тоже нельзя считать универсальной заменой.

Температура и режим рассуждений — разные настройки

Thinking или reasoning — работа модели с промежуточным рассуждением. Настройки усилия задают доступную интенсивность в рамках конкретного продукта. Температура относится к выбору продолжения при декодировании. Высокое значение temperature не включает «больше интеллекта», а низкое не означает «думать тщательнее».

Если задача требует решить сложную проблему, сначала выберите подходящую модель, доступный режим и понятный критерий успеха. Затем проверяйте качество. Дополнительный контекст и полезные инструменты могут быть важнее перебора sampling-параметров. О таких режимах подробнее — в статье про thinking-модели.

Как подобрать настройку под задачу

Для извлечения полей, разметки отзывов и коротких технических ответов полезна предсказуемость формата. Начните с рекомендованных разработчиком значений; если температура действительно регулируется, сравните более сосредоточенный вариант с исходным. Для JSON дополнительно используйте поддерживаемую схему и программную проверку: ползунок не гарантирует корректную структуру.

Для заголовков, идей и вариантов формулировки можно проверить более разнообразный режим. Но оценивать нужно не количество необычных слов, а число подходящих вариантов после проверки. Если из десяти предложений восемь не соответствуют задаче, сама по себе разница формулировок не является улучшением.

Для кода критерий — корректное поведение, читаемость и прохождение проверок. Слишком необычное решение может увеличить время ревью. Для справочного текста критерий — точность и подтверждённость утверждений. Поэтому универсальные таблицы «для кода всегда 0,2, для статьи всегда 0,8» без указания модели и теста мало полезны.

Небольшой протокол сравнения вместо догадок

  1. Зафиксируйте модель и её версию, режим рассуждений, промпт, контекст, инструменты и ограничение ответа. Проверьте поддержку temperature и допустимый диапазон.
  2. Соберите небольшой набор характерных заданий, включая сложные и неоднозначные случаи. Заранее запишите критерии: формат, правильные поля, фактические ошибки, полезность вариантов.
  3. Сравните настройку по умолчанию и ещё одно-два поддерживаемых значения. Остальные параметры оставьте неизменными. Повторите запросы несколько раз, если генерация случайная.
  4. Сохраните фактические запросы, ответы, предупреждения API и расходы. Проверяйте итог целиком, а не только удачную формулировку из одного запуска.
  5. Выберите вариант по качеству на своём наборе. После смены модели повторите проверку: прежняя настройка может перестать действовать или иметь другой эффект.

Платный сравнительный эксперимент с моделями для этой статьи не проводился. Протокол выше — способ организовать собственную проверку; численная таблица иллюстрирует только математическое перераспределение трёх вероятностей.

Температура генерации полезна, когда вы понимаете, где она применяется и что измеряете. Начинайте с документации и значений по умолчанию, проверяйте один параметр за раз и не подменяйте разнообразием ответа его достоверность. В некоторых современных моделях правильная настройка temperature — вовсе убрать её из запроса.

Частые вопросы

Q.Что такое температура нейросети?

Это параметр изменения распределения вероятностей при выборе следующего токена. При поддерживаемой случайной генерации меньшая температура усиливает преимущество наиболее вероятных продолжений, большая делает распределение ровнее.

Q.Гарантирует ли temperature 0 правильный и одинаковый ответ?

Нет. Выбор вероятного продолжения не проверяет факты, а воспроизводимость зависит также от модели, окружения и режима исполнения. Значение 0 обрабатывается движками отдельно и не подставляется в формулу деления на температуру.

Q.Чем temperature отличается от top_p?

Температура перераспределяет вероятности, top_p ограничивает набор кандидатов по суммарной вероятности. Для понятного сравнения лучше менять один поддерживаемый параметр за раз.

Q.Почему изменение температуры не меняет ответы модели?

Проверьте поддержку в конкретном режиме. Например, DeepSeek описывает игнорирование temperature в thinking, а Google — игнорирование пользовательских sampling-параметров в Gemini 3.6+ и 4. Клиент также может не передавать настройку серверу.

Источники

Поделиться:OKVK