КЛАСТЕР 01 · ОСНОВЫ СЛУЧАЙНОСТЬ ~12 МИНУТ
День 04 · из 35

Температура

Третий рычаг управления моделью — после формы и способа мышления. На первый взгляд — про «креативность». На самом деле — про распределение вероятностей и как ты с ним играешь.

Суть урока

Temperature — это параметр, который управляет степенью случайности в ответе модели. При низкой температуре модель выбирает самые вероятные токены — детерминированно, скучно, точно. При высокой — допускает менее вероятные варианты — креативно, разнообразно, рискованно. Это не «креативность» в человеческом смысле, это математический параметр. Понимая, как он работает, ты подбираешь его под класс задачи, а не «методом тыка».

Что такое температура — на уровне токенов

Модель генерирует ответ токен за токеном. На каждом шаге она получает список из десятков тысяч возможных следующих токенов, и у каждого — своя вероятность.

Например, после фразы «Столица Франции — » у модели в голове примерно такое распределение:

  • «Париж» — вероятность 92%
  • «это» — 5%
  • «крупный» — 1%
  • ...и десятки тысяч других вариантов с очень маленькими вероятностями

Температура — это параметр, который пересчитывает это распределение перед выбором. На математическом уровне он сглаживает или заостряет кривую вероятностей.

temperature = 0 → модель всегда берёт самый вероятный токен. temperature = 1 → берёт случайно согласно естественному распределению. temperature > 1 → распределение сглаживается, маловероятные варианты становятся реальнее.

Поэтому low-temperature ответы — скучные и предсказуемые: модель всегда выбирает «среднестатистическое следующее слово». High-temperature — разнообразные, иногда странные: модель допускает редкие варианты, которые ведут текст в неожиданные стороны.

Шкала и зоны

Параметр обычно в диапазоне от 0 до 2 (некоторые провайдеры — до 1, у некоторых другие диапазоны, всегда проверяй документацию). Условно делим на три зоны:

Шкала температуры · условные зоны
0детерминизм 0.7норма 1.2+хаос
Холодная · 0 – 0.3

Максимально предсказуемые ответы. Один и тот же запрос даёт почти один и тот же ответ. Хорошо для извлечения данных, классификации, фактических вопросов.

Тёплая · 0.4 – 0.9

Дефолтная зона. Естественные ответы, есть вариативность, но без сюрпризов. Большинство задач решается здесь: ассистенты, генерация текстов, объяснения.

Горячая · 1.0+

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

i
Дефолт большинства провайдеров — около 1.0
Не путать с «1.0 = горячая». В разных шкалах разные дефолты. Например, у OpenAI дефолт — 1.0 (умеренная), а максимум — 2.0. У некоторых других провайдеров шкала 0-1, и там дефолт около 0.7. Всегда смотри документацию своего провайдера и приводи значения к одной системе при сравнениях.

Какой температуре какие задачи

Правило: чем больше у задачи правильного ответа — тем ниже температура. Чем больше задача про вариативность и свежесть — тем выше.

T = 0

Извлечение и парсинг

«Извлеки из текста все email», «классифицируй отзыв», «достань цену из описания». Один правильный ответ есть — пусть модель его и даёт.

T ≈ 0.2

Перевод и переписывание

«Переведи на английский», «упрости язык». Допустима лёгкая вариативность стиля, но смысл должен сохраняться железно.

T ≈ 0.7

Объяснения и ассистенты

Чат-боты, объяснение концепций, ответы на вопросы. Естественный тон, разнообразие формулировок.

T ≈ 0.9

Творческое письмо

Тексты для маркетинга, статьи, диалоги. Здесь однообразие — враг.

T = 1.2+

Брейншторм идей

«Дай 20 идей для названия». Чем выше температура, тем более неожиданные варианты будут в списке. Качество идей — отдельный вопрос, главное — широта.

T → max

Эксперименты

Когда хочешь увидеть «что модель вообще может сказать» — на пределе шкалы. На практике — почти никогда.

Эмпирическое правило

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

Не повторяй ошибку: «выкручу температуру повыше, чтобы было креативнее». В системах, которые что-то парсят или решают — это путь к багам, потому что выше температура = больше странных токенов = больше нестабильность формата.

Решения AI-инженера

Развилка 1. Temperature или top_p

У большинства провайдеров рядом с temperature есть параметр top_p (nucleus sampling). Он делает похожую вещь — управляет случайностью — но по-другому: отсекает токены с накопленной вероятностью больше p.

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

Совет: если ты не уверен, что именно делаешь — оставь top_p = 1 (выключен) и крути только temperature. Этого достаточно для 99% случаев.

Развилка 2. T=0 ≠ детерминизм

Распространённое заблуждение: «поставлю temperature = 0, получу один и тот же ответ всегда». Это почти так, но не совсем.

Во-первых, при равенстве вероятностей разных токенов модель должна как-то выбирать — и тут может быть случайность. Во-вторых, у провайдеров есть свои внутренние недетерминизмы: распределённые вычисления, разные GPU, кеши. Поэтому два одинаковых запроса с T=0 чаще всего дают одинаковый ответ, но не гарантированно.

Для настоящего детерминизма у некоторых провайдеров есть параметр seed — фиксирует генератор случайных чисел. Тоже не 100%-я гарантия, но сильно повышает воспроизводимость для отладки и тестов.

Концептуальные грабли

«Ответы скучные — выкручу температуру». Часто это не помогает, а делает хуже: ответы становятся не «креативнее», а просто странными. Если ответы скучные — это чаще проблема промпта, а не температуры. Уточни system, добавь конкретики, дай примеры стиля. И только потом крути ползунок.

«Хочу креативный JSON». При высокой температуре модель чаще промахивается мимо формата: лишний пробел, неправильная кавычка, обрыв на полуслове. Конфликт целей: либо строгая структура + низкая T, либо креативность + готовность к ошибкам парсинга.

Хорошее решение: используй response_format или Structured Outputs (см. День 2). Они гарантируют формат даже при высокой температуре.

Промпт долго настраивал, всё работает — и тут решил «поднять креативность». Часто промпт был оптимизирован под конкретное значение температуры. Поменял T — система начала вести себя по-другому. Если меняешь — обязательно перепроверь весь набор тестовых запросов, не только один.

Практика

Эксперимент 01 · Один вопрос — три температуры

Почувствуй разницу руками

В плейграунде задай вопрос «Опиши закат в одно предложение». Прогон 1: temperature = 0. Прогон 2: 0.7. Прогон 3: 1.5. Сравни. Заметишь: на 0 — описание клишированное, «золотое солнце садится за горизонт». На 0.7 — живо, разнообразно. На 1.5 — иногда красиво, иногда странно или несвязно. Это твоё личное ощущение шкалы.

Эксперимент 02 · T=0 для извлечения

Стабильность парсинга

Возьми текст с несколькими email-адресами. Промпт: «Извлеки все email из текста, верни JSON-массив». Прогон 5 раз с T=0.9. Прогон 5 раз с T=0. Сравни стабильность — на T=0 ответ будет идентичен или почти идентичен, на 0.9 — может варьироваться формат, иногда теряются email, иногда добавляются комментарии. Это показывает, почему для парсинга T=0 — норма.

Эксперимент 03 · Высокая T для брейншторма

Разнообразие vs повторы

Задача: «Дай 10 идей для названия кофейни». Прогон с T=0.3 — увидишь, что идеи будут вертеться вокруг одной семантики («Утренний кофе», «Кофейный уголок», «Кафе Бариста»). Прогон с T=1.2 — идеи будут разнообразнее, среди них появятся неожиданные, иногда — глупые. Для брейншторма второе полезнее: лучше 10 разных идей, из которых отберёшь 2-3, чем 10 похожих.

Что в Дне 05
У нас есть все три рычага: форма, способ мышления, температура. Время разобраться с главным выбором, который ты делаешь как AI-инженер: какую модель брать под задачу. От «маленькая дешёвая» до «огромная мощная» — и почему ответ не всегда «лучшая».