top-p (nucleus sampling)
Сэмплинг из минимального множества токенов, чья совокупная вероятность превышает порог p.
Что такое top-p (nucleus sampling)
Top-p, или nucleus sampling — метод сэмплинга следующего токена, предложенный Holtzman et al. (2019). Вместо выбора из фиксированного числа токенов (как в top-k), top-p динамически формирует «ядро» (nucleus):
- Отсортировать все токены по убыванию вероятности
- Набирать токены в ядро, пока их суммарная вероятность не достигнет порога p
- Сэмплировать только из этого ядра
При 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-сервер