Top-p

Top-p (также Nucleus Sampling или ядерная выборка) — это метод сэмплирования, применяемый в ИИ, особенно в больших языковых моделях (LLM) для генерации текста. Он служит для управления уровнем случайности и креативности при выборе следующего токена (слова или части слова) в генерируемой последовательности, обеспечивая баланс между предсказуемостью и разнообразием вывода[1].

Принцип действия

Метод Top-p работает следующим образом:

  1. Предсказание вероятностей: Модель нейронной сети предсказывает вероятности для всех возможных следующих токенов в своём словаре. Например, после последовательности "Кошка сидела на..." модель может назначить вероятности: "коврике" (0.4), "полу" (0.2), "столе" (0.15), "окне" (0.1), "диване" (0.08), и так далее.
  2. Сортировка: Токены сортируются по убыванию их предсказанных вероятностей.
  3. Формирование "ядра" (Nucleus): Отбирается минимальный набор (ядро) наиболее вероятных токенов, сумма вероятностей которых больше или равна заданному порогу p. Этот порог p является ключевым параметром метода.
    Пример: Если p = 0.7, и вероятности отсортированы как P(коврике)=0.4, P(полу)=0.2, P(столе)=0.15, P(окне)=0.1, ...
    * Добавляем "коврике". Сумма = 0.4 (< 0.7).
    * Добавляем "полу". Сумма = 0.4 + 0.2 = 0.6 (< 0.7).
    * Добавляем "столе". Сумма = 0.6 + 0.15 = 0.75 (>= 0.7).
    * Останавливаемся. Ядро состоит из {"коврике", "полу", "столе"}.
  4. Перераспределение вероятностей: Вероятности токенов, попавших в ядро, нормализуются таким образом, чтобы их новая сумма стала равна 1. (В примере: P'(коврике) ≈ 0.53, P'(полу) ≈ 0.27, P'(столе) ≈ 0.20).
  5. Выборка: Следующий токен выбирается случайным образом из сформированного ядра с учётом их новых, нормализованных вероятностей.

Ключевая особенность

Главное отличие и преимущество Top-p — это адаптивность. Размер ядра (количество токенов, из которых производится выбор) не фиксирован, а зависит от распределения вероятностей, предсказанного моделью:

  • Если модель очень уверена в наиболее вероятном токене (его вероятность значительно выше остальных), ядро будет маленьким (возможно, содержащим всего один токен). Это приводит к более предсказуемому и сфокусированному результату.
  • Если вероятности распределены более равномерно между несколькими кандидатами (модель менее уверена), ядро будет включать больше токенов. Это позволяет генерировать более разнообразный, неожиданный и потенциально креативный текст.

Параметр p

Параметр p — это вещественное число в диапазоне от 0 до 1, которое контролирует размер ядра выборки:

  • Высокое значение `p` (близкое к 1, например, 0.9 или 0.95): В ядро попадает больше токенов с меньшими вероятностями. Результат становится более случайным, разнообразным, но может иногда терять связность или релевантность.
  • Низкое значение `p` (например, 0.5 или 0.7): В ядро попадает меньше самых вероятных токенов. Результат более предсказуемый, сфокусированный и "безопасный", но может быть менее интересным и склонным к повторениям.
  • Если `p=1`, выборка фактически происходит из всего распределения вероятностей (с поправкой на другие параметры сэмплирования, такие как температура, если она используется).
  • Если `p` стремится к 0, метод приближается к жадной выборке, то есть выбору только самого вероятного токена.

Сравнение с Top-k

Метод Top-k выбирает следующее слово из фиксированного числа k наиболее вероятных кандидатов, независимо от их абсолютных или относительных вероятностей. Например, при `k=5` выбор всегда будет производиться из 5 лучших токенов. В отличие от Top-k, Top-p динамически изменяет размер набора кандидатов (ядра) на основе порога суммарной вероятности `p`. Это часто считается преимуществом, так как позволяет методу быть гибким: ограничивать выбор, когда есть явный фаворит, и расширять его, когда уверенность модели ниже. Это помогает избегать включения маловероятных, но попавших в топ-k токенов, и наоборот, не отсекать разумные варианты, если их много с близкими вероятностями[2].

См. также

Примечания

  1. Holtzman, Ari, et al. "The curious case of neural text degeneration." arXiv preprint arXiv:1904.09751 (2019).
  2. Ошибка в сносках?: Неверный тег <ref>; для сносок holtzman_2019 не указан текст

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.