Top-p

Материал из Systems analysis wiki
Перейти к навигации Перейти к поиску

Top‑p сэмплирование, также известное как ядерная выборка (англ. Nucleus Sampling), — стохастический метод декодирования для авторегрессивных языковых моделей, широко применяемый в том числе в больших языковых моделях (LLM). Метод предложен в 2019 году Ари Хольцманом и соавт. (препринт arXiv — апрель 2019; публикация на ICLR 2020) как усовершенствованная альтернатива фиксированному Top‑k сэмплированию. Его идея — динамически подбирать множество кандидатов на каждом шаге генерации по порогу кумулятивной вероятности p.[1]

Историческая предпосылка: проблема нейронной дегенерации текста

До появления Top‑p доминирующими стратегиями декодирования были жадный поиск (greedy search) и лучевой поиск (beam search), основанные на парадигме максимизации правдоподобия — выбора последовательности токенов с наивысшей совокупной вероятностью. Жадный поиск на каждом шаге локально выбирает токен с максимальной вероятностью, а лучевой поиск параллельно отслеживает несколько гипотез генерации.[1]

Хотя эти методы были эффективны в закрытых задачах (машинный перевод, извлечение данных), при переходе к задачам открытой генерации текста (написание историй, диалоговые системы) они часто приводили к нейронной дегенерации текста — вырождению вывода, при котором текст становится шаблонным, теряет связность или зацикливается на повторениях. Это явление подробно описано Хольцманом и соавт. в работе The Curious Case of Neural Text Degeneration.[1]

Meister и соавт. связывают проблему дегенерации с тем, что человеческий текст стремится поддерживать информационное содержание, близкое к ожидаемой условной энтропии, а не просто максимизировать локальную вероятность каждого следующего токена.[2]

Альтернативой стало чистое стохастическое сэмплирование (sampling without truncation), при котором токен выбирается случайным образом в соответствии с его вероятностью. Однако этот метод породил обратную проблему: функция Softmax никогда не присваивает токену вероятность, строго равную нулю, поэтому в словаре из десятков тысяч слов всегда существует обширная зона шумовых токенов. При чистом сэмплировании увеличивается риск попадания в ненадёжный хвост распределения, что может ухудшать связность генерируемого текста.[1][3] Необходимость совместить богатство стохастического выбора с надёжностью детерминированных ограничений привела к разработке методов усечения распределения, флагманом которых стало ядерное сэмплирование (Top‑p).[1][4]

Простое объяснение

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

При генерации текста языковая модель на каждом шаге оценивает множество возможных продолжений и присваивает каждому из них некоторую вероятность. Одни токены оказываются очень вероятными, другие — умеренно вероятными, а большая часть словаря образует так называемый «хвост» распределения: варианты с очень малой вероятностью, которые формально допустимы, но часто оказываются случайными, неуместными или ухудшают связность текста.

Top-p сэмплирование отсекает этот маловероятный хвост не по фиксированному количеству токенов, а по суммарной вероятности. Сначала все кандидаты упорядочиваются от наиболее вероятных к наименее вероятным. Затем выбирается минимальный набор верхних токенов, чья общая вероятность достигает заданного порога p — например, 0.9 или 0.95. После этого следующий токен выбирается случайным образом только из этого набора, а все остальные варианты исключаются.

Например, если модель продолжает фразу «Сегодня на улице шёл сильный…», среди наиболее вероятных вариантов могут оказаться «дождь» (0.45), «ливень» (0.25), «снег» (0.15) и «ветер» (0.10). При пороге p=0.90 алгоритм суммирует токены по убыванию вероятности: 0.45 + 0.25 = 0.70 (меньше 0.90), добавляет «снег»: 0.70 + 0.15 = 0.85 (всё ещё меньше 0.90), добавляет «ветер»: 0.85 + 0.10 = 0.95 (порог превышен). Ядро сформировано из четырёх токенов. Все более редкие варианты отбрасываются, а вероятности оставшихся нормализуются: так, вероятность токена «дождь» после перенормировки составит 0.45/0.9547.4%, и генератор выберет следующий токен именно из этого обновлённого распределения.

Главное отличие от Top‑k в том, что Top‑k всегда берёт фиксированное число лучших слов (например, 50), тогда как Top‑p не фиксирует количество вариантов заранее: иногда это может быть 3 слова, иногда 20 — всё зависит от того, как распределились вероятности именно на этом шаге. За счёт этого метод адаптируется к контексту и помогает отсекать «хвост» маловероятных токенов, делая текст более естественным.

Ещё один пример. Например, модель продолжает фразу «На завтрак он выпил горячий…». Среди наиболее вероятных продолжений могут быть: «чай» (0.50), «кофе» (0.30), «шоколад» (0.08), «бульон» (0.04), «кефир» (0.03). Если задан порог p=0.80, алгоритм начинает суммировать вероятности сверху вниз: 0.50 для «чая», затем 0.50 + 0.30 = 0.80. Порог уже достигнут, значит ядро состоит только из двух токенов: «чай» и «кофе». Все остальные варианты отбрасываются. После перенормировки вероятность «чая» внутри ядра становится 0.50/0.80=62.5%, а вероятность «кофе» — 0.30/0.80=37.5%. Следующий токен выбирается только между этими двумя вариантами.

Иными словами, модель сначала убирает маловероятные и неудачные продолжения, а потом выбирает из оставшихся. Это помогает ей писать более понятно, естественно и без лишнего «шума».

Концепция

Основная идея Top‑p — на каждом шаге выбирать наименьшее множество наиболее вероятных токенов, чья суммарная вероятность не меньше заданного порога p (ядро, англ. nucleus).

Формально, пусть x(1),x(2), — токены словаря V, отсортированные по убыванию условной вероятности P(xx1:i1). Тогда ядро V(p) определяется как кратчайший префикс этой упорядоченной последовательности, чья кумулятивная масса достигает порога:

m=min{n:j=1nP(x(j)x1:i1)p},V(p)={x(1),,x(m)}.

Иными словами, это наименьшее по включению множество самых вероятных токенов, суммарная вероятность которых не меньше p.[1]

После определения ядра вероятности токенов вне V(p) обнуляются, а внутри ядра — перенормируются (делятся на фактическую кумулятивную массу p=xV(p)P(xx1:i1), так что сумма становится равной 1). Следующий токен сэмплируется из этого усечённого и перенормированного распределения.

Динамическая адаптация

  • При «остром» распределении (модель уверена) ядро мало: несколько токенов уже дают массу ≥ p, что повышает связность. В предельном случае, если вероятность самого вероятного токена уже превышает p (например, P(x(1))=0.96 при p=0.95), ядро сужается до единственного токена и Top‑p фактически превращается в жадное декодирование (greedy search).
  • При «плоском» распределении (много правдоподобных продолжений) ядро велико: выбор расширяется, растёт разнообразие.[1]

Сравнение с другими методами декодирования

Top‑p vs. Top‑k

  • Top‑k всегда выбирает из фиксированного числа k наиболее вероятных токенов. В «острых» распределениях это может добавлять лишние маловероятные варианты «для количества», а в «плоских» — наоборот, отсекать разумные продолжения, не попавшие в топ‑k.
  • Top‑p подстраивает размер множества кандидатов по данным шага, что делает поведение более гибким и стабильным на разных типах распределений.[1]
  • На практике Top‑k и Top‑p могут применяться одновременно. В этом случае сначала отбирается топ‑k токенов, а затем внутри этого ограниченного множества ищется ядро с порогом p. Точный порядок и мотивация зависят от реализации, но такая комбинация документирована как распространённый приём.[5]

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

Top‑p vs. Температура

  • Температура (temperature) перепрофилирует всю форму распределения (делает его более острым или гладким), но не отсекает токены: даже маловероятные варианты сохраняют ненулевой шанс.[5]
  • Top‑p вводит жёсткое усечение хвоста распределения — низковероятные токены полностью исключаются из сэмплирования, что помогает предотвращать явно неуместные продолжения.[1]
  • Порядок применения. В стандартных пайплайнах (например, в Hugging Face Transformers) сначала к логитам применяется температура (меняется форма распределения), затем может применяться Top‑k, и только потом Top‑p (усечение хвоста). Это объясняет, почему «двойное воздействие» трудно контролировать: изменение температуры меняет саму кумулятивную массу, с которой затем работает Top‑p.[5]

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

Порядок операций в реализации Hugging Face Transformers

Порядок применения sampling-процессоров зависит от конкретной библиотеки. В Hugging Face Transformers (начиная с v4.x) для обсуждаемой тройки параметров логит-процессоры по умолчанию добавляются в следующей последовательности:[5][6]

  1. Температурное масштабирование логитов. Логит каждого токена делится на значение температуры перед экспоненцированием функции Softmax. Температура модифицирует форму распределения, подготавливая его к последующей фильтрации.
  2. Фильтр Top‑k (если сконфигурирован): обрезает словарь до фиксированного количества претендентов.
  3. Фильтр Top‑p: к уже суженному пулу токенов применяется кумулятивное усечение.
  4. Ренормализация оставшихся вероятностей и стохастическое сэмплирование.

На практике распространена комбинация умеренной температуры (0.7) с широким ядром Top‑p (0.95) и лимитом Top‑k (50): температура обеспечивает базовую вариативность, Top‑k работает как грубый предохранитель, а Top‑p выполняет контекстно‑зависимую микронастройку.[5]

Проще говоря, модель сначала делает выбор более или менее «свободным» с помощью температуры, потом при необходимости ограничивает число кандидатов через Top-k, а затем убирает слишком слабые варианты через Top-p. Такой порядок помогает сначала настроить общий характер выбора, а потом отсечь лишнее.

Рекомендация: настройка одного параметра за раз

Провайдеры моделей рекомендуют при настройке стиля генерации изменять либо temperature, либо top_p, но не оба одновременно. Эта рекомендация содержится в официальной документации OpenAI, Azure OpenAI и Anthropic.[7][8][9]

Практическое обоснование: оба параметра влияют на форму вероятностного распределения (температура изменяет крутизну кривой, а Top‑p устанавливает точку отсечения), поэтому одновременное их изменение затрудняет диагностику — невозможно определить, какой именно параметр привёл к улучшению или ухудшению выхода. Кроме того, при экстремально низких значениях обоих параметров (например, Temperature ≈ 0 и Top‑p ≈ 0.01) ядро на практике сужается до одного токена, фактически превращая сэмплирование в жадный поиск.[7]

Ряд reasoning‑моделей дополнительно ограничивают настройку этих параметров на уровне API, что делает вопрос их совместного изменения неактуальным для таких моделей (см. раздел «Совместимость с библиотеками и API»).[7]

Распространённая инженерная эвристика: для задач, требующих высокой воспроизводимости, — использовать низкую температуру (вплоть до нуля); для творческих задач — оставлять температуру на базовом уровне (1.0) и регулировать вариативность параметром Top‑p, либо зафиксировать Top‑p на 1.0 и варьировать температуру. Конкретные рекомендации могут различаться у провайдеров.[7][9]

Влияние на фактологичность и галлюцинации

Выбор стратегии декодирования может влиять не только на стилистику генерируемого текста, но и на частоту и тип фактологических ошибок. Феномен галлюцинаций — уверенной генерации ложной или противоречащей контексту информации — является одной из центральных проблем генеративного ИИ. Эмпирические исследования показывают, что эффект стратегий сэмплирования на галлюцинации зависит от задачи, модели и конкретной настройки параметров.[3][10]

Механизм возникновения ошибок при стохастическом сэмплировании

При высоких значениях Top‑p (например, 0.95) модель формирует ядро, охватывающее 95% вероятностной массы. В состояниях высокой энтропии (например, при попытке ответить на малоизвестный факт) это ядро может включать сотни низковероятных токенов. Стохастическое сэмплирование в таких условиях способно извлечь токен, грамматически корректный, но семантически не связанный с фактологической истиной. Оказавшись в контексте, такой токен может повлиять на последующие шаги генерации, поскольку модель продолжает генерацию с учётом всех предыдущих токенов, включая ошибочные.[3][1]

Дихотомия открытых и закрытых задач

Масштабные эксперименты выявляют зависимость качества генерации от типа задачи. В задачах написания эссе или диалоговых системах стохастические методы (Top‑p, Temperature) остаются лидерами, тогда как в строго детерминированных доменах они могут значительно уступать детерминированным подходам.[10]

На бенчмарках синтеза программного кода (HumanEval, MBPP) и решения математических задач (GSM8K) детерминированные методы (Beam Search, Greedy Decoding) показывают лучшие результаты по сравнению с подходами на базе Top‑p. Датасет GSM8K, включающий 8,5 тысяч математических задач, требующих от 2 до 8 шагов вычислений, иллюстрирует уязвимость стохастического выбора в таких задачах: инъекция случайности через усечённое распределение Top‑p может нарушить цепочку рассуждений модели (Chain‑of‑Thought) на любом из промежуточных шагов. Tan и соавт. подчёркивают, что эффективность метода декодирования сильно зависит от конкретной задачи (task‑dependent).[10]

Методы борьбы с галлюцинациями на уровне декодирования

Для борьбы с галлюцинаторными эффектами, спровоцированными стохастическим сэмплированием, разработаны методы продвинутой аугментации декодирования:

  • Контрастное декодирование (Contrastive Decoding, DoLa) — оптимизирует разрыв в логарифмическом правдоподобии между основной моделью и меньшей вспомогательной моделью, выступая в роли фильтра достоверности.[10]
  • SH2 (Self‑Highlighted Hesitation) — искусственно заставляет декодер «колебаться» при работе с низкоуверенными токенами.[11]
  • Направленное проецирование активаций (SEA) — подавляет галлюцинаторные сигналы на уровне векторных представлений.[11]

При этом современные модели с качественным выравниванием (alignment) обладают более глубоким пониманием фактологии, что снижает энтропию их внутренних распределений и делает их менее подверженными деградации фактов даже при высоких значениях Top‑p.[10][12]

Практическое применение и рекомендации

Top‑p широко используется в современных LLM благодаря сочетанию гибкости и управляемости.

  • Типичный диапазон значений. На практике часто применяют p0.900.95. Значение по умолчанию различается у провайдеров: у OpenAI `top_p` = 1.0 (усечение фактически отключено), у Anthropic — 0.99, у многих моделей Google Gemini — 0.95.[13] В библиотеке Hugging Face Transformers фреймворковый default также равен 1.0, хотя отдельные модели могут переопределять его в своём `generation_config.json`.[14] Таким образом, 0.9–0.95 — это распространённый рекомендуемый практический диапазон, но не универсальный стандарт по умолчанию.[5][15]
    • Значения, близкие к 1.0 (например, 0.98–0.99), увеличивают разнообразие: в ядро попадает больше токенов.
    • Малые значения (например, 0.80–0.90) повышают детерминированность и «сдержанность» вывода.
    • При p=1 усечение по Top‑p исчезает: выбор ведётся по всему словарю (с учётом температуры и других фильтров декодирования, если они включены).[5]
  • Совместимость с библиотеками и API.
    • В Hugging Face Transformers реализован TopPLogitsWarper, где дополнительно используется порог `min_tokens_to_keep` (по умолчанию 1). Это защитная деталь реализации: при стандартных значениях p(0,1] пустое ядро и так не возникает из определения, однако параметр гарантирует корректную работу в граничных случаях.[16]
    • В ряде API параметр `top_p` доступен, тогда как `top_k` может отсутствовать; поддержка параметров и их семантика зависят от конкретной модели и режима работы. Reasoning‑модели, как правило, ограничивают настройку стохастики на уровне API. Например, в актуальной документации OpenAI параметры `temperature` и `top_p` явно поддерживаются только у GPT‑5.2 при `reasoning.effort = none`; запросы к GPT‑5.2 или GPT‑5.1 с иными значениями `reasoning`, а также к более ранним моделям GPT‑5 (`gpt‑5`, `gpt‑5‑mini`, `gpt‑5‑nano`) при передаче этих полей вызывают ошибку. Reasoning‑модели предыдущих поколений (o1, o3) также ограничивают или фиксируют их.[7][17][18] У Anthropic в Claude API при включённом расширенном мышлении (extended thinking) изменение `temperature` и `top_k` запрещено, однако `top_p` разрешён в диапазоне 0.95–1.0; на сторонних платформах (например, Amazon Bedrock) ограничения могут отличаться.[19] Ограничения провайдеров часто меняются от версии к версии; рекомендуется сверяться с актуальной документацией.[8][20]
  • Длинные тексты и повторяемость. В серии экспериментов показано, что nucleus sampling снижает склонность к вырождению (повторы, штампованные фразы) по сравнению с greedy/beam и фиксированным Top‑k, особенно на длинных последовательностях.[1][10]

Современные альтернативы

После публикации nucleus sampling в 2019 году было предложено несколько альтернативных методов стохастического декодирования, развивающих или дополняющих идею Top‑p:

Min‑p сэмплирование

Min‑p сэмплирование (Nguyen et al., 2024) оставляет токены, чья вероятность не ниже pmin×P(x(1)), то есть задаёт порог относительно самого вероятного токена. Принят к устному докладу на ICLR 2025; реализован в ряде популярных фреймворков, включая Hugging Face Transformers[21] и vLLM[22].[23]

Ключевое отличие от Top‑p состоит в типе порога: Top‑p использует абсолютный порог на основе кумулятивной суммы вероятностей, тогда как Min‑p устанавливает относительный порог, масштабируемый от вероятности самого вероятного токена.[23]

Математически алгоритм работает следующим образом: на каждом шаге определяется максимальная вероятность Pmax=P(x(1)x1:i1), затем вычисляется масштабированный порог Pthreshold=pmin×Pmax. В финальный пул попадают только токены, индивидуальная вероятность которых превышает этот порог.[24]

Это обеспечивает адаптивность: если модель уверена в следующем слове (Pmax=0.9), при базовом pmin=0.1 порог составит 0.09, жёстко отсекая шумовые токены. Если же модель неуверена (Pmax=0.1), порог снижается до 0.01, впуская в ядро широкое разнообразие кандидатов.[23]

Известная слабость Top‑p проявляется при высокотемпературном сэмплировании (T>1.0): когда распределение искусственно сглаживается, Top‑p вынужден включать в ядро большое количество низковероятных токенов для достижения заданной кумулятивной суммы, что может приводить к деградации связности.[23] Min‑p лучше справляется с такими условиями. В экспериментах авторов на бенчмарках научных и логических знаний (GPQA) с использованием модели Mistral Large при экстремальной температуре T=3.0 алгоритм Min‑p показал точность 13.84%, тогда как стандартный Top‑p 0.9 дал результат 0.89% — на уровне случайного шума.[24]

При этом в академической среде ведётся дискуссия: некоторые критические работы (например, arXiv:2506.13681) подвергают сомнению универсальность преимуществ Min‑p по всем NLP‑метрикам, указывая на необходимость дальнейшего изучения.[25]

Проще говоря, Min-p сравнивает все варианты не с общей суммой вероятностей, а с самым сильным вариантом на текущем шаге. Поэтому, если модель уверена, он жёстче убирает слабые продолжения, а если не уверена — оставляет больше допустимых вариантов. За счёт этого Min-p может лучше сохранять баланс между связностью и разнообразием, особенно там, где Top-p начинает пропускать слишком много слабых слов.

Locally typical sampling

Locally typical sampling (Meister и соавт., 2023) выбирает токены, чья информационная нагрузка (logP) близка к условной энтропии, опираясь на теоретико‑информационное понятие типичности.[2]

В отличие от Top‑p, который стремится минимизировать размер ядра, выбирая токены с максимальной вероятностью, Locally Typical Sampling решает задачу оптимизации на основе метрики информационного расстояния. Алгоритм вычисляет информационное содержание каждого токена (logP(x)) и измеряет его абсолютное расстояние до условной энтропии H модели. Токены ранжируются не по сырой вероятности, а по степени их «информационной типичности» — близости к ожидаемому информационному содержанию контекста. Токены добавляются в ядро (в порядке возрастания расстояния до энтропии) до достижения порога кумулятивной вероятности.[2][26]

Следствие этого подхода: в состояниях высокой энтропии алгоритм целенаправленно исключает не только шумовой маловероятный хвост, но и излишне высоковероятные слова, которые несут слишком мало информации и делают текст банальным. Это снижает риск дегенеративных зацикливаний и приближает метрики повторяемости текста к показателям, характерным для текстов, написанных человеком.[26]

Tail Free Sampling (TFS)

Tail Free Sampling (TFS) — менее формализованный, но практически интересный подход к выявлению шумового хвоста, основанный на дифференциальном анализе вероятностного пространства. Если Top‑p и Min‑p оперируют вероятностями первого порядка (кумулятивной суммой и базовыми дробями), то TFS анализирует первую и вторую производные отсортированной кривой вероятностей. Метод описан в блоге Трентона Брикена и реализован в ряде inference-движков, хотя не был опубликован в виде рецензированной статьи.[27]

Основной постулат TFS: включение даже одного шумового токена в выборку несёт экспоненциальную угрозу для всей авторегрессионной генерации. Вычисляя вторую производную от значений вероятностей, алгоритм локализует «плато» — участки кривой, где падение вероятностей замедляется и переходит в длинный пологий хвост. Точка этого перегиба становится динамической границей усечения: токены до неё признаются семантически безопасными, а весь хвост удаляется.[27]

Несмотря на математическую элегантность, TFS требует более интенсивных вычислительных затрат на вычисление производных в реальном времени, из‑за чего в массовых коммерческих продуктах он уступает более легковесным алгоритмам.[27]

p‑less sampling

p‑less sampling — метод, полностью избавляющий инженера от необходимости настраивать гиперпараметры усечения.[28] Фундаментальная проблема всех предшествующих методов — от Top‑k и Top‑p до Min‑p — заключается в зависимости от статичных гиперпараметров, значения которых требуют экспертной настройки и могут быть оптимальны для одной задачи (креативное письмо), но неудачны для другой (программирование).[29]

Алгоритм p‑less, укоренённый в теории информации, динамически генерирует уникальный порог усечения на каждом шаге декодирования, анализируя внутреннюю топологию всего распределения вероятностей в реальном времени. Авторы сообщают об устойчивости метода к температурным флуктуациям (temperature robustness): при повышении температуры традиционные методы могут существенно деградировать, тогда как p‑less сохраняет стабильность качества. Кроме того, благодаря отказу от логики кумулятивного сканирования и ренормализации больших ядер, метод, по данным авторов, обеспечивает более высокую вычислительную эффективность на этапе инференса и генерирует более компактные ответы без потери точности на датасетах по математике, логике и креативному письму.[29][28]

η‑сэмплирование

η‑сэмплирование (Hewitt et al., 2022) использует энтропийно‑зависимый порог вероятности, адаптируясь к низкоэнтропийным контекстам, где Top‑p может усекать излишне.[30]

Литература

  • Holtzman, A., Buys, J., Du, L., Forbes, M., & Choi, Y. (2019; опубликовано на ICLR 2020). The Curious Case of Neural Text Degeneration. arXiv:1904.09751.
  • Fan, A., Lewis, M., & Dauphin, Y. (2018). Hierarchical Neural Story Generation. arXiv:1805.04833.
  • Meister, C., Pimentel, T., Wiher, G., & Cotterell, R. (2023). Locally Typical Sampling. arXiv:2202.00666.
  • Ravfogel, S., Goldberg, Y., & Goldberger, J. (2023). Conformal Nucleus Sampling. ACL Findings 2023.
  • Tan, Q. et al. (2024). A Thorough Examination of Decoding Methods in the Era of LLMs. arXiv:2402.06925.
  • Finlayson, M. et al. (2024). Closing the Curious Case of Neural Text Degeneration. arXiv:2310.01693.
  • Chen, S. J. et al. (2025). Decoding Game: On Minimax Optimality of Heuristic Text Generation Strategies. arXiv:2410.03968.
  • Nguyen, M. et al. (2024). Turning Up the Heat: Min-p Sampling for Creative and Coherent LLM Outputs. arXiv:2407.01082.
  • Sen, J. et al. (2025). Advancing Decoding Strategies: Enhancements in Locally Typical Sampling for LLMs. arXiv:2506.05387.
  • Bricken, T. Tail Free Sampling. [32].
  • p‑less Sampling: A Robust Hyperparameter-Free Approach for LLM Decoding. arXiv:2509.23234.

Примечания

  1. 1,00 1,01 1,02 1,03 1,04 1,05 1,06 1,07 1,08 1,09 1,10 Holtzman, A., Buys, J., Du, L., Forbes, M., & Choi, Y. (2019). The Curious Case of Neural Text Degeneration. arXiv:1904.09751. [1]
  2. 2,0 2,1 2,2 Meister, C., Pimentel, T., Wiher, G., & Cotterell, R. (2023). Locally Typical Sampling. TACL, Vol. 11. arXiv:2202.00666. [2]
  3. 3,0 3,1 3,2 Large Language Models Hallucination: A Comprehensive Survey. arXiv:2510.06265. [3]
  4. Finlayson, M. et al. (2024). Closing the Curious Case of Neural Text Degeneration. arXiv:2310.01693. [4]
  5. 5,0 5,1 5,2 5,3 5,4 5,5 5,6 Hugging Face Transformers. Generation strategies (top‑k, top‑p, temperature). [5]
  6. Hugging Face Transformers. generation/utils.py (исходный код). [6]
  7. 7,0 7,1 7,2 7,3 7,4 OpenAI API Reference. top_p — рекомендация «We generally recommend altering this or temperature but not both». [7]
  8. 8,0 8,1 Microsoft Learn (Azure OpenAI). Text/Chat Completions — parameters. [8]
  9. 9,0 9,1 Anthropic API Reference. Messages API — top_p. [9]
  10. 10,0 10,1 10,2 10,3 10,4 10,5 Tan, Q. et al. (2024). A Thorough Examination of Decoding Methods in the Era of LLMs. arXiv:2402.06925. [10]
  11. 11,0 11,1 From Illusion to Insight: A Taxonomic Survey of Hallucination Mitigation Techniques in LLMs. MDPI. [11]
  12. Survey and analysis of hallucinations in large language models: attribution to prompting strategies or model behavior. Frontiers in AI. [12]
  13. Anthropic. API release notes. [13]
  14. Hugging Face. GenerationConfig (top_p default). [14]
  15. Google AI / Vertex AI. Content generation parameters (topP/topK). [15] [16]
  16. Transformers API. TopPLogitsWarper (параметры и поведение, включая `min_tokens_to_keep`). [17]
  17. OpenAI API. Using reasoning models — parameter support. [18]
  18. OpenAI API. Using GPT-5.2. [19]
  19. Anthropic. Building with extended thinking. [20]
  20. Microsoft Learn (Azure AI Foundry). Reasoning models — supported parameters. [21]
  21. Hugging Face Transformers. MinPLogitsWarper. [22]
  22. vLLM. Sampling Parameters — min_p. [23]
  23. 23,0 23,1 23,2 23,3 Nguyen, M. et al. (2024). Turning Up the Heat: Min-p Sampling for Creative and Coherent LLM Outputs. arXiv:2407.01082. [24]
  24. 24,0 24,1 Nguyen, M. et al. Turning Up the Heat: Min-p Sampling for Creative and Coherent LLM Outputs. [25]
  25. Turning Down the Heat: A Critical Analysis of Min-p Sampling in Language Models. arXiv:2506.13681. [26]
  26. 26,0 26,1 Locally Typical Sampling. Transactions of the ACL, MIT Press. [27]
  27. 27,0 27,1 27,2 Bricken, T. Tail Free Sampling. [28]
  28. 28,0 28,1 p‑less Sampling: A Robust Hyperparameter-Free Approach for LLM Decoding. OpenReview. [29]
  29. 29,0 29,1 p‑less Sampling: A Robust Hyperparameter-Free Approach for LLM Decoding. arXiv:2509.23234. [30]
  30. Hewitt, J., Manning, C. D., & Liang, P. (2022). Truncation Sampling as Language Model Desmoothing. Findings of EMNLP 2022. arXiv:2210.15191. [31]

См. также