Inference

top-p (nucleus sampling)

Сэмплинг из минимального множества токенов, чья совокупная вероятность превышает порог p.

Что такое top-p (nucleus sampling)

Top-p, или nucleus sampling — метод сэмплинга следующего токена, предложенный Holtzman et al. (2019). Вместо выбора из фиксированного числа токенов (как в top-k), top-p динамически формирует «ядро» (nucleus):

  1. Отсортировать все токены по убыванию вероятности
  2. Набирать токены в ядро, пока их суммарная вероятность не достигнет порога p
  3. Сэмплировать только из этого ядра

При p=0.9 в ядро попадает минимальное число токенов, покрывающих 90% вероятности. В моменты высокой неопределённости ядро большое (много равновероятных продолжений), в моменты очевидного продолжения — маленькое (1–2 токена).

Практические значения

top-p Поведение
0.1 Очень консервативно, почти argmax
0.9 Стандарт: баланс качества и разнообразия
0.95–1.0 Больше разнообразия, риск нерелевантных токенов
1.0 Отключить фильтрацию (только temperature контролирует)

top-p vs top-k

Top-k фиксирует ровно K кандидатов вне зависимости от распределения — это плохо работает, когда распределение резко меняется. Top-p адаптивен: если модель уверена (один токен с вероятностью 0.95), ядро = 1 токен; если неуверена (100 токенов по 0.01) — ядро = 100 токенов.

# vLLM / OpenAI API
response = client.chat.completions.create(
    model="mistral-7b",
    messages=[...],
    temperature=1.0,
    top_p=0.9    # стандартные настройки для диалога
)

Связанные термины

  • temperature — дополнительный параметр сэмплинга
  • логиты — вход для top-p фильтрации
  • decode — фаза, где применяется top-p

Готовы запустить GPU-задачу?

Запустить GPU-сервер