Перейти к содержанию

Учусь ИИ, урок 8: температура и другие ручки — почему модель отвечает по-разному

Я шесть раз попросил домашнюю модель придумать название для кофейни рядом с библиотекой, и шесть раз спросил, сколько будет 17 умножить на 23. С кофейнями вышло пять разных ответов из шести, с умножением — шесть раз 391. Модель та же, запрос тот же, изменилась только одна настройка. Называется она температура.

Урок за 4 минуты: почему на один и тот же вопрос модель отвечает по-разному, что крутит температура и какие ещё ручки есть у модели. С опытами на домашней Gemma 3.

Откуда берётся разница

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

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

Сама модель от этого не становится ни умнее, ни глупее. Меняется только способ выбирать из того, что она и так считает возможным.

Опыт 1: кофейня и таблица умножения

Два запроса, три температуры, по шесть попыток на каждую, модель Gemma 3 на 4 миллиарда параметров:

  • Температура 0. Кофейня: все шесть раз один и тот же список («Страницы и Кофе», «Книжный Чердак», «Библиотекарий»), только один раз в кавычках. Умножение: 391.
  • Температура 0,7. Кофейня: пять разных вариантов из шести, появились «Книжный Завар» и «Буквоед». Умножение: 391.
  • Температура 1,5. Кофейня: тоже пять из шести, плюс «Книжный Эспрессо» и «Чтение и Напитки». Умножение: 391.

Заметьте две вещи. Даже при нуле повторяемость оказалась не абсолютной: кавычки появились в первом запуске и больше не возвращались. И на высокой температуре «Страницы и Кофе» всё равно встречается почти всегда: модель рискует, но в пределах того, что считает разумным. Безумия не случилось.

Умножение не изменилось вовсе. Когда модель уверена, у правильного кусочка вероятность так велика, что рисковать не с чем. То же вышло с разбором комментариев из прошлого урока: восемь попыток при температурах 0, 1 и 2 дали восемь одинаковых «отзыв». Температура влияет там, где у модели есть выбор.

Опыт 2: случайность можно зафиксировать

У случайности в компьютере есть зерно — число, с которого она начинается. Оно называется seed. Я дважды запустил кофейню при температуре 1 с одним и тем же seed: ответы совпали до буквы. Это удобно, когда надо воспроизвести результат: для отладки, для сравнения двух промптов.

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

Другие ручки

  • top_p — ограничивает выбор кусочками, которые вместе набирают заданную долю вероятности. При 0,1 все мои пять попыток дали один и тот же список, при 0,95 — пять разных. Обычно крутят что-то одно: или температуру, или top_p.
  • Предел длины (num_predict, max_tokens) — сколько токенов модель может написать. Это не просьба быть краткой, а обрезка: с пределом 20 токенов объяснение цвета неба оборвалось на «Солне». Краткость просите в промпте, а предел ставьте как страховку от бесконечного ответа и лишних расходов.
  • Усилие (effort) — ручка новых облачных моделей: сколько думать над задачей. Чем больше, тем дольше и дороже. У свежих версий Claude температуры в API больше нет: запрос с ней вернёт ошибку. Осталось усилие. Так что ручки зависят от модели, смотрите документацию своей.

Что когда ставить

  • Около нуля: разбор данных, классификация, вычитка текста, код. Нужен один предсказуемый ответ.
  • 0,5–0,8: обычное письмо, объяснения. Часто это значение по умолчанию.
  • Около 1 и выше: мозговой штурм, названия, варианты. Нужна разница между попытками.

И главное: низкая температура не делает ответ правдивым. Выдуманный рассказ Чехова из третьего урока при нуле просто будет выдуман одинаково. Повторяемость и правда — разные вещи.

Попробуйте сами

В чате с нейросетью ручек обычно нет, так что возьмите домашнюю модель или песочницу вашего сервиса. В Ollama:

ollama run gemma3:4b
>>> /set parameter temperature 0
>>> Придумай название для кофейни. Только название.
>>> /set parameter temperature 1.5
>>> Придумай название для кофейни. Только название.

Повторите каждый запрос раза три. Если ручек нет совсем, задайте один вопрос в трёх новых чатах: увидите разброс при температуре по умолчанию.

Что запомнить

  • Температура решает, насколько часто модель берёт не самый вероятный кусочек.
  • Низкая — для точной работы, высокая — для идей. Где модель уверена, разницы почти нет.
  • Seed повторяет случайность, но только на той же модели. Ноль тоже не гарантирует полного совпадения.
  • Предел длины обрезает ответ, а не сокращает. Низкая температура не лечит галлюцинации.

Проверьте себя

  1. Почему при любой температуре умножение дало 391, а названия менялись?
  2. Какую температуру поставить для программы, которая раскладывает письма по папкам, и какую для подбора десяти слоганов?
  3. Модель при температуре 0 назвала несуществующую книгу. Поможет ли запустить ещё раз с тем же значением?

В следующем уроке — локальная модель или облачная: что реально тянет домашний компьютер и когда лучше платить за облако.

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

Написать комментарий

Адрес почты не публикуется. Обязательные поля отмечены звёздочкой.

Возможно, вы не читали