Top-p sampling (BG)

From Systems analysis Wiki
Jump to navigation Jump to search

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]
  • Ред на прилагане. В стандартните pipeline-и (например в 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]

На benchmark-ите за синтез на програмен код (HumanEval, MBPP) и решаване на математически задачи (GSM8K) детерминираните методи (Beam Search, Greedy Decoding) показват по-добри резултати в сравнение с подходите на база Top‑p. Dataset-ът 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 благодарение на съчетанието на гъвкавост и управляемост.

  • Типичен диапазон от стойности. На практика често се прилага Failed to parse (syntax error): {\displaystyle p \approx 0.90 ext{–}0.95} . Стойността по подразбиране се различава при доставчиците: при OpenAI `top_p` = 1.0 (съкращаването е фактически изключено), при Anthropic — 0.99, при много модели Google Gemini — 0.95.[13] В библиотеката Hugging Face Transformers рамковата стойност по подразбиране също е 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) запазва токените, чиято вероятност е не по-ниска от pminimesP(x(1)), т.е. задава праг спрямо най-вероятния токен. Прието за устен доклад на ICLR 2025; реализирано в редица популярни фреймворки, включително Hugging Face Transformers[21] и vLLM[22].[23]

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

Математически алгоритъмът работи по следния начин: на всяка стъпка се определя максималната вероятност Pmax=P(x(1)x1:i1), след което се изчислява мащабираният праг Pextthreshold=pminimesPmax. В крайния пул попадат само токените, чиято индивидуална вероятност надхвърля този праг.[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 се справя по-добре при такива условия. В експериментите на авторите на benchmark-ите за научни и логически знания (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 анализира първата и втората производна на наредената крива от вероятности. Методът е описан в блога на Trenton Bricken и е реализиран в редица 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 запазва стабилността на качеството. Освен това, благодарение на отказа от логиката на кумулативното сканиране и пренормирането на големи ядра, методът, по данни на авторите, осигурява по-висока изчислителна ефективност на етапа на инференс и генерира по-компактни отговори без загуба на точност на dataset-ите по математика, логика и творческо писане.[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]

Вижте също

  • Температура
  • Големи езикови модели