К содержимому
Основы

Температура и параметры генерации на практике

Что делают temperature, top_p, max_tokens и stop на практике: как параметры влияют на ответ модели и какие значения выбирать под задачу — с примерами.

2 минуты чтения

Помимо промпта, поведением модели управляют параметры генерации. Их немного, и понимание четырёх основных — temperature, top_p, max_tokens, stop — покрывает почти все практические потребности. Разберём, что каждый делает и какие значения брать под задачу.

temperature: детерминизм или разнообразие

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

ЗначениеПоведениеЗадачи
0 – 0,3
Максимально стабильно, почти детерминированно
Извлечение данных, классификация, код, строгий JSON
0,4 – 0,7
Баланс точности и живости
Ответы поддержки, деловая переписка, объяснения
0,8 – 1,0+
Разнообразно и вариативно
Идеи, тексты, брейншторм, варианты формулировок
на заметку
Для задач, где важна повторяемость (тесты, извлечение, классификация), ставьте низкую температуру. Одинаковый вход при низкой температуре даёт близкие ответы — это упрощает отладку и проверку.

top_p: альтернативный рычаг случайности

top_p (nucleus sampling) ограничивает выбор токенов самыми вероятными, чья суммарная вероятность не превышает p. При top_p = 0.1 модель выбирает только из самого вероятного ядра, при 1.0 — из всего распределения.

  • Не крутите одновременно temperature и top_p — эффекты накладываются и результат трудно предсказать. Выберите один рычаг.
  • По умолчанию большинству задач достаточно управлять temperature, оставив top_p в значении по умолчанию.
  • top_p удобен, когда нужно отсечь совсем маловероятные токены, сохранив разнообразие среди правдоподобных.

max_tokens: потолок длины ответа

max_tokens ограничивает длину генерации сверху. Это и защита от неожиданно длинных ответов, и контроль стоимости — выходные токены обычно дороже входных.

параметры в запросеpython
from openai import OpenAI​client = OpenAI(base_url="https://ai-gatewey.ru/v1",api_key="sk-aigate-ваш_ключ",)​resp = client.chat.completions.create(model="anthropic/claude-sonnet-5.5",messages=[{"role": "user", "content": "Классифицируй тональность отзыва одним словом."}],temperature=0.2,   # стабильный, повторяемый ответmax_tokens=10,     # ответ короткий — потолок низкийstop=["\n"],       # остановиться на первом переносе строки)print(resp.choices[0].message.content)
обратите внимание
max_tokens — это обрезка, а не цель: если поставить слишком низко, модель оборвёт ответ на середине. Задавайте потолок с запасом над ожидаемой длиной, но не настолько большим, чтобы модель «растекалась».

stop: где остановить генерацию

  • stop — список строк-стопперов; встретив любую, модель прекращает генерацию, а сама стоп-строка в ответ не попадает.
  • Применение — обрезать по разделителю (\n, ###), не дать модели продолжить за нужный фрагмент, удержать формат в few-shot-шаблоне.
  • Пример — в шаблоне «Ответ: …» стоппер на метку следующего примера не даст модели придумать лишние пары.

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

Какую температуру ставить по умолчанию?

Зависит от задачи. Для извлечения, классификации и кода — низкую (0–0,3): важна стабильность. Для текстов и идей — выше (0,7–1,0): нужна вариативность. Если сомневаетесь, начните с 0,2–0,3 и поднимайте, если ответы слишком однообразны.

Можно ли крутить temperature и top_p вместе?

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

max_tokens влияет на стоимость?

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

AI Gateway

Полный контроль параметров через единый API