Настройки LLM
Temperature, Top-p и другие
Проблема: Ты задаёшь ChatGPT один и тот же вопрос дважды, но получаешь разные ответы. Иногда креативные, иногда сухие. Что происходит?
Решение: Регуляторы на микшерном пульте
Представь микшерный пульт диджея со слайдерами. Каждый слайдер влияет на звук по-своему: басы, высокие, громкость. У LLM есть похожие «ползунки», которые управляют генерацией текста во время инференса. На каждом шаге модель строит распределение вероятностей по следующему возможному токену, а эти настройки решают, как именно из этого распределения выбирается один токен. Они не меняют то, что модель знает, — только то, насколько смело или осторожно она сэмплирует из уже имеющихся вероятностей.
Температура: регулятор креативности
Температура (temperature) пересчитывает распределение вероятностей перед выборкой. Большинство API принимают значения от 0 до 2. Низкая температура (0–0.3) «заостряет» распределение, и самый вероятный токен почти всегда побеждает — ответы становятся сфокусированными, воспроизводимыми и консервативными. Высокая температура (0.8–1.5) «сглаживает» распределение, давая реальный шанс редким токенам и порождая более разнообразный, неожиданный текст. Ставь temperature 0 для извлечения данных, классификации или математики, где нужен один и тот же верный ответ каждый раз, и 0.8 — для брейншторма или творческого письма, где ценно именно разнообразие.
Top-P, Top-K и штрафы
Top-P (nucleus sampling) работает иначе: вместо пересчёта вероятностей он оставляет минимальный набор токенов, чьи вероятности в сумме дают P (например, 0.9 — верхние 90% вероятностной массы), и сэмплирует из него. Этот набор подстраивается автоматически: уверенная модель рассматривает мало вариантов, неуверенная — много. Top-K — более простой родственник: он всегда оставляет ровно K самых вероятных токенов (например, K=40), независимо от уверенности модели. Распространённый приём — снижать либо температуру, либо top-p, но не оба сразу. Наконец, frequency penalty (штраф за частоту) снижает оценку токена тем сильнее, чем чаще он уже встречался (борется с дословными повторами), а presence penalty (штраф за присутствие) даёт фиксированное снижение, как только токен появился хотя бы раз (подталкивает к новым темам). Обычно оба лежат в диапазоне от 0 до 2. Настройка max tokens — это жёсткий лимит длины ответа: ставь его щедро для эссе и узко для односложных классификаций, чтобы экономить деньги и избегать разрастающихся ответов.
Представьте это как микшерный пульт диджея с регуляторами:
- 1. Temperature (0-2): «ручка креативности». Низко = предсказуемо и чётко. Высоко = дико и творчески
- 2. Top-P (0-1): «ширина словарного запаса». Низко = только самые безопасные слова. Высоко = рассматриваются и редкие варианты
- 3. Max Tokens: «лимит длины ответа». Сколько слов может сгенерировать модель
- 4. Frequency Penalty: «штраф за повторения». Заставляет модель избегать повторения одних и тех же слов
- 5. Presence Penalty: «поощритель новых тем». Подталкивает модель поднимать новые темы
Где это применяется?
Интересный факт: Temperature = 0 не гарантирует одинаковые ответы! В системе есть другие источники случайности. Для полностью детерминированного вывода нужно также задать фиксированный «seed».
Попробуйте сами!
Ниже — интерактивная панель. Двигай ползунки и наблюдай, как меняется поведение модели. Попробуй temperature 0 vs 2 — разница колоссальная!
Двигай слайдеры и смотри, как каждый параметр влияет на выбор следующего токена и генерацию в реальном времени.
Нажми на чип, чтобы активировать стоп-последовательность
Больше креативности — менее вероятные слова получают шанс
{
"temperature": 0.7,
"top_p": 0.90,
"max_tokens": 10Temperature и Top-P работают вместе: низкая temperature (0.1-0.3) для фактов и кода, средняя (0.5-0.7) для большинства задач, высокая (0.8-1.2) для креатива. Избегай temperature > 1.5 — ответы станут бессмысленными.
Частые вопросы
Что такое temperature (температура) в LLM?
Температура — это параметр выборки, который пересчитывает распределение вероятностей перед выбором следующего токена. Низкие значения (0–0.3) делают ответы сфокусированными и предсказуемыми, высокие (0.8–1.5) — более разнообразными и творческими. Большинство API принимают значения от 0 до 2.
Чем top-p отличается от top-k?
Top-p (nucleus sampling) оставляет минимальный набор токенов, чьи вероятности в сумме дают P (например, 0.9), и этот набор подстраивается под уверенность модели. Top-k всегда оставляет ровно K самых вероятных токенов (например, 40) независимо от уверенности. Top-p адаптивен, top-k — фиксированный по количеству.
Какую температуру выбрать для разных задач?
Для извлечения данных, классификации и математики ставьте temperature 0 — нужен один и тот же верный ответ каждый раз. Для генерации кода подойдёт 0.2–0.4, а для брейншторма и творческого письма — около 0.8 и выше, где ценно разнообразие. Менять стоит либо температуру, либо top-p, но не оба сразу.
Чем frequency penalty отличается от presence penalty?
Frequency penalty (штраф за частоту) снижает оценку токена тем сильнее, чем чаще он уже встречался, и борется с дословными повторами. Presence penalty (штраф за присутствие) даёт фиксированное снижение, как только токен появился хотя бы раз, подталкивая модель к новым темам. Оба параметра обычно лежат в диапазоне от 0 до 2.
Попробуй сам
Интерактивное демо этой техники
Написать функцию для вычисления факториала числа
def factorial(n):
if n == 0:
return 1
return n * factorial(n-1)
def factorial(n: int) -> int:
"""Calculate factorial of n.
Args:
n: Non-negative integer
Returns:
Factorial of n
Raises:
ValueError: If n is negative
"""
if n < 0:
raise ValueError("n must be non-negative")
if n == 0 or n == 1:
return 1
return n * factorial(n - 1)
Низкая temperature (0.1) для кода обеспечивает более консистентный, документированный и безопасный результат.
Создайте бесплатный аккаунт для решения челленджей
4 челленджей с AI-проверкой для этого урока
Этот урок — часть структурированного курса по LLM.
Мой путь обучения