7 параметров генерации LLM — что они делают и как их настраивать

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

Максимум токенов

Жесткий предел на число токенов, которые модель может сгенерировать в ответе. Это не расширяет окно контекста: сумма входных и выходных токенов всё ещё должна помещаться в допустимую длину контекста. Если достигнут предел, многие API помечают ответ как усеченный или неполный.

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

Температура

Температура масштабирует логи перед softmax: softmax(z/T)_i = e^{z_i/T} / \sum_j e^{z_j/T}. Низкая температура сужает распределение и делает семплирование более детерминированным; высокая температура выравнивает распределение и увеличивает случайность. Обычно API предлагают диапазон около 0–2. Используйте низкие значения для аналитических и фактических задач, высокие — для творческой генерации.

Nucleus-сэмплинг (top_p)

Nucleus-сэмплинг выбирает из наименьшего набора токенов, чья суммарная вероятность достигает p. Это обрезает длинный хвост маловероятных токенов, который часто вызывает бессвязность и повторения. Для открытых текстов практичен диапазон top_p ≈ 0.9–0.95. Рекомендация от поставщиков — настраивать либо температуру, либо top_p, а не оба сразу.

Top-k сэмплинг

Top-k ограничивает кандидатов на каждом шаге k наиболее вероятными токенами, затем нормализует их вероятности и семплирует. Этот метод часто комбинируют с температурой или top_p. Практические диапазоны для сбалансированного разнообразия — примерно 5–50. При одновременной установке top_k и top_p многие реализации применяют фильтрацию по k, затем по p.

Штраф за частоту

Frequency penalty уменьшает вероятность токенов пропорционально тому, сколько раз они уже встречались в сгенерированном контексте, что снижает дословные повторы. Диапазоны у поставщиков (Azure/OpenAI) около -2.0 до +2.0: положительные значения уменьшают повторы, отрицательные их поощряют. Применяйте при долгих генерациях, где модель зацикливается или повторяет фразы.

Штраф за присутствие

Presence penalty штрафует токены, которые уже появились хотя бы один раз, поощряя появление новых токенов или тем. Диапазон схож с frequency penalty (примерно -2.0 до +2.0). Начинайте с нуля и повышайте, если модель слишком «по рельсам» и не исследует альтернативы.

Стоп-строки

Stop sequences — строки, которые заставляют декодер остановиться при их появлении, не выводя текст стоп-строки. Полезны для ограничения структурированных выходов, например при закрытии JSON-объекта или секции текста. Многие API поддерживают несколько стоп-строк. Выбирайте однозначные делимитеры, маловероятные в обычном тексте, и комбинируйте стоп-строки с max_tokens для надежной остановки.

Взаимодействие параметров

Температура против top_p и top_k: повышение температуры перераспределяет массу вероятностей в хвост; top_p и top_k затем обрезают этот хвост. Из-за такого взаимодействия рекомендуется менять по одному параметру случайности, чтобы поведение оставалось предсказуемым.

Контроль деградации: nucleus-сэмплинг обычно уменьшает повторы и однообразие, обрезая ненадежные хвосты; в сочетании с лёгким frequency penalty он эффективен для длинных выходов.

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

Особенности моделей

Некоторые эндпоинты для reasoning ограничивают или игнорируют часть этих параметров. Перед переносом конфигураций между провайдерами проверьте документацию конкретной модели.