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

Temperature и top-p в LLM: как настраивать параметры генерации

Основы3 мин

Коротко

Temperature управляет степенью случайности при выборе следующего токена, top-p ограничивает выбор самыми вероятными вариантами. Для точных задач ставьте низкие значения, для творческих — выше, и меняйте обычно только один параметр.

Коротко: что делают эти параметры

LLM генерирует текст по одному токену (слову или его части). На каждом шаге модель считает вероятность для всех возможных следующих токенов, а затем выбирает один из них. Temperature и top-p управляют именно этим выбором.

  • Temperature — насколько «смело» выбирать. Низкое значение: почти всегда берется самый вероятный токен. Высокое: шансы менее вероятных вариантов растут.
  • Top-p (nucleus sampling) — из какого круга выбирать. Модель сортирует токены по вероятности и оставляет только самые вероятные, пока их суммарная вероятность не достигнет p. Остальные отбрасываются.

Как это выглядит на практике

Допустим, модель продолжает фразу «Наш магазин работает…», и ее оценки такие:

ТокенВероятность
ежедневно0.50
без0.25
с0.15
круглосуточно0.07
вприпрыжку0.03
  • Temperature около 0: почти всегда «ежедневно». Ответы стабильные и предсказуемые.
  • Temperature выше: распределение «сглаживается», и «круглосуточно» или даже «вприпрыжку» появляются чаще. Текст разнообразнее, но растет риск странностей.
  • Top-p = 0.9: модель берет «ежедневно», «без», «с» (вместе 0.90) и выбирает только среди них. Редкие и странные варианты отсечены, но разнообразие остается.

Пример одного запроса с разными настройками

Запрос: «Придумай название для кофейни».

  • Низкая temperature: несколько запусков дают одно и то же или очень похожие названия.
  • Средняя: варианты отличаются, но остаются уместными.
  • Высокая: появляются неожиданные и иногда бессмысленные комбинации слов.

Рекомендуемые настройки по задачам

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

ЗадачаTemperatureTop-pПочему
Извлечение данных, классификация, JSONминимальная (0 или близко)по умолчаниюНужен один правильный и воспроизводимый ответ
Ответы службы поддержки, RAGнизкаяпо умолчаниюТочность и опора на документы важнее разнообразия
Резюме, перефразированиенизкая или средняяпо умолчаниюНужна естественность без ухода от смысла
Маркетинговые тексты, идеи, названиясредняя или высокаяпо умолчанию или чуть нижеЦенится разнообразие вариантов

Пример вызова API с параметрами:

response = client.chat.completions.create(
    model="your-model",
    messages=[{"role": "user", "content": "Извлеки дату и сумму из текста..."}],
    temperature=0,
)

Частые ошибки

  • Меняют оба параметра сразу. Документация многих провайдеров советует настраивать либо temperature, либо top-p. Так проще понять, что повлияло на результат.
  • Ждут детерминизма при temperature 0. Ответы станут гораздо стабильнее, но полная идентичность при каждом запуске не гарантируется.
  • Лечат температурой галлюцинации. Низкая temperature снижает случайность, но не добавляет знаний. Против выдуманных фактов помогают RAG, четкие инструкции и проверка ответа.
  • Поднимают temperature для «живости» в поддержке. Тон лучше задавать промптом, а не случайностью.
  • Не проверяют поддержку параметров. Некоторые модели, особенно с режимом рассуждений, игнорируют или ограничивают эти настройки. Смотрите документацию конкретной модели.

Как подобрать значения

  1. Начните со значений по умолчанию или с низкой temperature для точных задач.
  2. Соберите 20–30 типичных запросов.
  3. Прогоните их несколько раз с разными значениями одного параметра.
  4. Оцените не только качество, но и стабильность: насколько отличаются ответы между запусками.
  5. Зафиксируйте выбранные значения в коде и пересматривайте их при смене модели.

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

Для большинства задач достаточно temperature — она интуитивнее. Top-p полезен, когда нужно разнообразие, но без редких странных вариантов. Меняйте один параметр, второй оставляйте по умолчанию.

Поможем с этим

Если хотите не разбираться самим, а получить результат — этим мы занимаемся каждый день.

Обсудить проект

Читайте также

Есть идея или задача? Расскажите нам

Ответим в течение рабочего дня и предложим решение. Консультация бесплатная.