Настройки LLM
Temperature, Top-p и другие
Проблема: Ты задаёшь ChatGPT один и тот же вопрос дважды, но получаешь разные ответы. Иногда креативные, иногда сухие. Что происходит?
Решение: Регуляторы на микшерном пульте
Представь микшерный пульт диджея со слайдерами. Каждый слайдер влияет на звук по-своему: басы, высокие, громкость. У LLM есть похожие «ползунки», которые управляют генерацией текста во время инференса!
Как выбрать настройки?
Два главных регулятора — температура и Top-P. Для разных задач нужны разные настройки:
- Математические задачи: temperature = 0 (нужны точные ответы, никакой креативности)
- Написание историй: temperature = 0.8-1.2 (нужно воображение)
- Генерация кода: temperature = 0.2-0.4 (креативно, но не безумно)
- Брейншторм: temperature = 1.5+ с высоким presence penalty
Представьте это как микшерный пульт диджея с регуляторами:
- 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 — ответы станут бессмысленными.
Попробуй сам
Интерактивное демо этой техники
Написать функцию для вычисления факториала числа
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.
Мой путь обучения