Ultralytics YOLO27: Вступи в список ожидания.
Лицензия YOLO
Назад к глоссарию Ultralytics

Nucleus Sampling

При сэмплировании top-p (по ядру) каждый токен выбирается из наименьшего набора с суммарной вероятностью p, поэтому размер набора зависит от уверенности модели — в отличие от top-k.

Сэмплирование ядра, также называемое сэмплированием top-p, — это метод декодирования, при котором каждый следующий токен выбирается из наименьшего набора кандидатов, суммарная вероятность которых достигает порога p, после чего из этого набора производится выборка. Ари Холцман и его коллеги из Вашингтонского университета и Allen Institute for AI представили этот метод в 2019 году в работе The Curious Case of Neural Text Degeneration. Работая с GPT-2 Large, они показали, что жадное декодирование и поиск по лучу загоняют языковые модели в унылые повторяющиеся циклы, а выборка из полного распределения приводит к бессвязному тексту; отсечение ненадежного хвоста распределения дает текст, чьи перплексия и разнообразие наиболее близки к человеческому письму. Top-p теперь стал стандартным параметром в API генерации текста практически для каждой большой языковой модели.

Как выбирается ядро#

На каждом шаге языковая модель оценивает каждый токен в своем словаре, а softmax преобразует оценки в вероятности. Затем сэмплирование ядра сортирует токены от наиболее вероятных к наименее вероятным, суммирует их вероятности в этом порядке, пока накопленная сумма не достигнет p, отбрасывает все токены за пределами этого набора, перенормирует оставшиеся вероятности так, чтобы их сумма равнялась единице, и выбирает один токен.

Возьмём четыре варианта с вероятностями 0,50, 0,25, 0,15 и 0,10 и зададим p равным 0,8. Сумма вероятностей первых двух вариантов равна 0,75, что ниже порога, поэтому добавляется третий, и ядро охватывает 0,90 вероятности. Четвёртый токен отбрасывается, а вероятности трёх оставшихся после нормализации составляют примерно 0,56, 0,28 и 0,17.

Главная особенность в том, что размер ядра меняется на каждом шаге. После фразы «Столица Франции —» почти вся вероятность приходится на один токен, и ядро сжимается до одного слова. В начале рассказа вероятность распределяется между сотнями подходящих слов, поэтому ядро расширяется и включает их. Фиксированное число кандидатов не может адаптироваться таким образом.

Та же процедура на PyTorch для одного шага декодирования по словарю из шести токенов:

import torch

# Вероятности следующих токенов для словаря из 6 токенов
probs = torch.tensor([0.10, 0.40, 0.04, 0.25, 0.06, 0.15])
top_p = 0.75

# Сортировка с последующим отбором токенов до достижения суммарной вероятностью значения top_p
sorted_probs, order = probs.sort(descending=True)
cumulative = sorted_probs.cumsum(dim=0)
keep = cumulative - sorted_probs < top_p  # Токен, при добавлении которого значение top_p превышено, остаётся в наборе

# Нормализация ядра и выбор следующего идентификатора токена
nucleus = sorted_probs * keep
next_token = order[torch.multinomial(nucleus / nucleus.sum(), num_samples=1)]
print(order[keep].tolist(), next_token.item())

В выводе сначала перечислено ядро: идентификаторы токенов 1, 3 и 5, на которые вместе приходится 0,80 вероятности, — а затем выбранный идентификатор. На этом шаге токены 0, 2 и 4 выбрать нельзя. При повторном запуске скрипт выбирает один из трёх оставшихся токенов с вероятностью, пропорциональной их вероятностям.

Сравнение top-p с жадным декодированием, top-k и температурой#

  • Жадное декодирование всегда выбирает наиболее вероятный токен. Оно детерминированное и подходит для коротких ответов на фактические вопросы, но длинные выводы обычно начинают повторяться по кругу.
  • Сэмплирование top-k сохраняет фиксированное количество кандидатов. При k, равном 50, даже в случае высокой уверенности модель выбирает из 50 токенов, включая бессмысленные, а при низкой уверенности может отбросить подходящие варианты. Top-p заменяет фиксированное количество фиксированной долей вероятности.
  • Температура делит оценки модели перед применением softmax. Значения ниже 1 концентрируют распределение на наиболее вероятных вариантах, а значения выше 1 делают его более равномерным. Поскольку top-p применяется после температуры, её повышение также расширяет ядро.
  • Сэмплирование min-p сохраняет каждый токен, вероятность которого не меньше заданной доли вероятности наиболее вероятного токена, поэтому порог также зависит от уверенности модели. Hugging Face Transformers, vLLM и llama.cpp предлагают этот метод наряду с top-p.

Поскольку температура и top-p управляют случайностью, стандартная рекомендация — менять что-то одно, а не оба параметра одновременно. Многие движки инференса также позволяют одновременно использовать top-k и top-p: top-k задает жесткий предел числа кандидатов.

Как выбрать значение top-p#

Значение top-p, равное 1.0, отключает фильтр, а типичные значения по умолчанию находятся в диапазоне от 0.9 до 1.0. Top-p только изменяет вероятности самой модели, поэтому фактическая точность зависит от контекста в запросе, например от генерации с дополненной выборкой, которая сокращает число галлюцинаций, предоставляя модели нужные факты. Более высокие значения добавляют разнообразия при мозговых штурмах, в диалогах чат-ботов и творческом письме. Более низкие значения, например 0.5, делают результаты предсказуемее и однообразнее, что подходит для извлечения данных, запросов на классификацию и кода, а декодирование с ограничениями идет дальше и маскирует каждый токен, который нарушил бы заданный формат.

Этот же параметр управляет генерацией текста в конвейерах компьютерного зрения. Когда детекция Ultralytics YOLO26 запускает описание сцены с помощью визуально-языковой модели, интерфейс Ultralytics для LLM передает аргументы запроса, например top_p, непосредственно в API провайдера, поэтому низкое значение, например 0.5, помогает формулировать описания похожих кадров единообразно.

Изучи решения

Компьютерное зрение в спорте

Компьютерное зрение в спорте

Узнай, как Ultralytics YOLO обеспечивает компьютерное зрение в спорте: отслеживание игроков и мяча, аналитика результатов, полезные выводы для тренеров и реабилитация спортсменов.
Подробнее
Компьютерное зрение для аэросъёмки

Компьютерное зрение для аэросъёмки

Превращай снимки с дронов и аэрофотоснимки в полезные данные в реальном времени для сельского хозяйства, аквакультуры, охраны природы и геопространственного анализа с Ultralytics YOLO.
Подробнее
Компьютерное зрение в аэрокосмической отрасли

Компьютерное зрение в аэрокосмической отрасли

Применяй компьютерное зрение в аэрокосмической отрасли с Ultralytics YOLO: для осмотра самолётов, обнаружения посторонних предметов на взлётно-посадочных полосах, наземного обслуживания аэропортов и выявления дефектов композитных материалов.
Подробнее
Компьютерное зрение в сфере безопасности

Компьютерное зрение в сфере безопасности

Защити любой объект с помощью моделей Ultralytics YOLO. ИИ на базе компьютерного зрения обеспечивает мониторинг периметра, обнаружение угроз, распознавание номерных знаков и безопасность на рабочем месте.
Подробнее
Компьютерное зрение в робототехнике

Компьютерное зрение в робототехнике

Создавай более интеллектуальные машины с моделями Ultralytics YOLO. ИИ на базе компьютерного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Подробнее
Компьютерное зрение в логистике

Компьютерное зрение в логистике

Оптимизируй логистику с моделями Ultralytics YOLO. Визуальный AI обеспечивает проверку посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складе в реальном времени.
Подробнее
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

Переосмысли розничную торговлю с моделями Ultralytics YOLO. Визуальный AI обеспечивает отслеживание запасов, мониторинг полок, управление очередями и более глубокое понимание поведения покупателей.
Подробнее
Компьютерное зрение в здравоохранении

Компьютерное зрение в здравоохранении

Создавай решения для здравоохранения с моделями Ultralytics YOLO. Визуальный AI в здравоохранении ускоряет медицинскую визуализацию, улучшает диагностику и мониторинг пациентов.
Подробнее
Компьютерное зрение в производстве

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ обеспечивает контроль качества, обнаружение дефектов, контроль использования СИЗ и автоматизацию сборочных линий.
Подробнее
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ повышает безопасность дорожного движения, улучшает помощь водителю и автоматизацию автомобилей, делая дороги умнее.
Подробнее
Компьютерное зрение в сельском хозяйстве

Компьютерное зрение в сельском хозяйстве

Внедряй ИИ для компьютерного зрения в умное сельское хозяйство с моделями Ultralytics YOLO. Используй их для мониторинга посевов, отслеживания скота и точного земледелия, чтобы повысить урожайность и эффективность.
Подробнее

Давай вместе строить будущее ИИ!

Начни свой путь в будущее машинного обучения