Инференс

Top-p сэмплирование

Top-p (nucleus) сэмплирование — стратегия генерации токенов, при которой выбор осуществляется только из минимального набора наиболее вероятных токенов, суммарная вероятность которых достигает порога p; размер этого набора адаптивно меняется на каждом шаге в зависимости от формы распределения.

Top-p сэмплирование, или nucleus sampling, предложено Holtzman et al. в статье «The Curious Case of Neural Text Degeneration» (2019, опубликовано на ICLR 2020). Метод решает ключевой недостаток top-k сэмплирования: фиксированное число кандидатов k не адаптируется к реальной форме распределения — в одних позициях разумных продолжений лишь несколько, в других их тысячи.

Алгоритм: токены сортируются по убыванию вероятности, затем формируется «ядро» (nucleus) — наименьший набор токенов, суммарная вероятность которых достигает или превышает p. Все остальные токены обнуляются, оставшиеся вероятности нормализуются, и следующий токен сэмплируется из этого усечённого распределения. При p = 0,9 метод в каждой позиции адаптивно сужает или расширяет пространство выбора: в «уверенных» позициях ядро может содержать 5 токенов, в «неопределённых» — несколько сотен.

Top-p устраняет две патологии генерации: детерминизм (узкое распределение ведёт к повторяющемуся «попугайскому» тексту) и хаос (широкое распределение порождает бессвязные цепочки). Значение p = 0,9–0,95 является наиболее распространённым дефолтом на практике. Метод особенно эффективен в сочетании с температурой: сначала температура масштабирует логиты, затем top-p формирует ядро.

API OpenAI, Anthropic, Google и большинство open-source фреймворков — vLLM, llama.cpp, Hugging Face Transformers — поддерживают top_p как стандартный параметр. В ряде систем применяется комбинированная стратегия top-k + top-p: сначала top-k обрезает явный хвост, затем top-p уточняет ядро. Nucleus sampling остаётся одним из наиболее распространённых методов управляемой генерации по состоянию на 2026 год.

Пример

При настройке генератора диалогов команда установила top_p=0.92 вместе с temperature=0.8: это позволило модели выбирать разнообразные, но лексически корректные продолжения, эффективно отсекая редкие токены-артефакты из длинного хвоста распределения.

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

← Глоссарий