Top-p sampling (PL)

From Systems analysis Wiki
Jump to navigation Jump to search

Próbkowanie Top‑p, znane również jako próbkowanie jądrowe (ang. Nucleus Sampling), — stochastyczna metoda dekodowania dla autoregresywnych modeli językowych, szeroko stosowana między innymi w dużych modelach językowych (LLM). Metoda została zaproponowana w 2019 roku przez Ariego Holtzmanana i współautorów (preprint arXiv — kwiecień 2019; publikacja na ICLR 2020) jako udoskonalona alternatywa dla stałego próbkowania Top‑k. Jej idea polega na dynamicznym doborze zbioru kandydatów na każdym kroku generacji na podstawie progu skumulowanego prawdopodobieństwa p.[1]

Tło historyczne: problem degeneracji tekstu przez sieci neuronowe

Przed pojawieniem się Top‑p dominującymi strategiami dekodowania były przeszukiwanie zachłanne (greedy search) oraz przeszukiwanie wiązkowe (beam search), oparte na paradygmacie maksymalizacji wiarygodności — wyboru ciągu tokenów o najwyższym łącznym prawdopodobieństwie. Przeszukiwanie zachłanne na każdym kroku lokalnie wybiera token o maksymalnym prawdopodobieństwie, a przeszukiwanie wiązkowe równolegle śledzi kilka hipotez generacji.[1]

Choć metody te były skuteczne w zadaniach zamkniętych (tłumaczenie maszynowe, ekstrakcja danych), przy przejściu do zadań otwartej generacji tekstu (pisanie opowiadań, systemy dialogowe) często prowadziły do neuronowej degeneracji tekstu — degeneracji wyjścia, przy której tekst staje się szablonowy, traci spójność lub zapętla się na powtórzeniach. Zjawisko to zostało szczegółowo opisane przez Holtzmanana i współautorów w pracy The Curious Case of Neural Text Degeneration.[1]

Meister i współautorzy wiążą problem degeneracji z tym, że tekst ludzki dąży do utrzymania zawartości informacyjnej bliskiej oczekiwanej entropii warunkowej, a nie jedynie do maksymalizacji lokalnego prawdopodobieństwa każdego kolejnego tokenu.[2]

Alternatywą stało się czyste stochastyczne próbkowanie (sampling without truncation), przy którym token jest wybierany losowo zgodnie z jego prawdopodobieństwem. Jednak metoda ta zrodziła odwrotny problem: funkcja Softmax nigdy nie przypisuje tokenowi prawdopodobieństwa ściśle równego zeru, dlatego w słowniku złożonym z dziesiątek tysięcy słów zawsze istnieje rozległa strefa tokenów szumowych. Przy czystym próbkowaniu wzrasta ryzyko trafienia w zawodny ogon rozkładu, co może pogarszać spójność generowanego tekstu.[1][3] Konieczność połączenia bogactwa wyboru stochastycznego z niezawodnością ograniczeń deterministycznych doprowadziła do opracowania metod obcinania rozkładu, których flagowym przedstawicielem stało się próbkowanie jądrowe (Top‑p).[1][4]

Proste wyjaśnienie

Próbkowanie Top-p to sposób ograniczenia wyboru następnego tokenu wyłącznie do najbardziej prawdopodobnych wariantów, bez wcześniejszego ustalania ich liczby.

Podczas generowania tekstu model językowy na każdym kroku ocenia wiele możliwych kontynuacji i przypisuje każdej z nich pewne prawdopodobieństwo. Niektóre tokeny okazują się bardzo prawdopodobne, inne — umiarkowanie prawdopodobne, a większość słownika tworzy tak zwany „ogon" rozkładu: warianty o bardzo małym prawdopodobieństwie, które są formalnie dopuszczalne, ale często okazują się przypadkowe, nieodpowiednie lub pogarszają spójność tekstu.

Próbkowanie Top-p odcina ten mało prawdopodobny ogon nie według stałej liczby tokenów, lecz według sumy prawdopodobieństwa. Najpierw wszyscy kandydaci są porządkowani od najbardziej prawdopodobnych do najmniej prawdopodobnych. Następnie wybierany jest minimalny zbiór najlepszych tokenów, których łączne prawdopodobieństwo osiąga zadany próg p — na przykład 0,9 lub 0,95. Po tym kolejny token jest wybierany losowo wyłącznie z tego zbioru, a wszystkie pozostałe warianty są wykluczane.

Na przykład, jeśli model kontynuuje zdanie „Dzisiaj na ulicy padał silny…\", wśród najbardziej prawdopodobnych wariantów mogą znaleźć się „deszcz" (0,45), „ulewa" (0,25), „śnieg" (0,15) i „wiatr" (0,10). Przy progu p=0.90 algorytm sumuje tokeny według malejącego prawdopodobieństwa: 0,45 + 0,25 = 0,70 (mniej niż 0,90), dodaje „śnieg": 0,70 + 0,15 = 0,85 (nadal mniej niż 0,90), dodaje „wiatr": 0,85 + 0,10 = 0,95 (próg przekroczony). Jądro zostało uformowane z czterech tokenów. Wszystkie rzadsze warianty są odrzucane, a prawdopodobieństwa pozostałych są normalizowane: tak oto prawdopodobieństwo tokenu „deszcz" po renormalizacji wyniesie 0.45/0.9547.4%, a generator wybierze następny token właśnie z tego zaktualizowanego rozkładu.

Główna różnica w stosunku do Top‑k polega na tym, że Top‑k zawsze bierze stałą liczbę najlepszych słów (na przykład 50), podczas gdy Top‑p nie ustala liczby wariantów z góry: czasem może to być 3 słowa, czasem 20 — wszystko zależy od tego, jak rozkładają się prawdopodobieństwa na danym kroku. Dzięki temu metoda dostosowuje się do kontekstu i pomaga odcinać „ogon" mało prawdopodobnych tokenów, czyniąc tekst bardziej naturalnym.

Jeszcze jeden przykład. Na przykład model kontynuuje zdanie „Na śniadanie wypił gorący…\". Wśród najbardziej prawdopodobnych kontynuacji mogą być: „herbatę" (0,50), „kawę" (0,30), „kakao" (0,08), „bulion" (0,04), „kefir" (0,03). Jeśli zadany jest próg p=0.80, algorytm zaczyna sumować prawdopodobieństwa od góry: 0,50 dla „herbaty", następnie 0,50 + 0,30 = 0,80. Próg został już osiągnięty, a więc jądro składa się tylko z dwóch tokenów: „herbata" i „kawa". Wszystkie pozostałe warianty są odrzucane. Po renormalizacji prawdopodobieństwo „herbaty" wewnątrz jądra wynosi 0.50/0.80=62.5%, a prawdopodobieństwo „kawy" — 0.30/0.80=37.5%. Następny token jest wybierany wyłącznie spośród tych dwóch wariantów.

Innymi słowy, model najpierw usuwa mało prawdopodobne i nieudane kontynuacje, a następnie wybiera spośród pozostałych. Pomaga mu to pisać bardziej zrozumiale, naturalnie i bez zbędnego „szumu".

Koncepcja

Podstawowa idea Top‑p polega na tym, by na każdym kroku wybierać najmniejszy zbiór najbardziej prawdopodobnych tokenów, których łączne prawdopodobieństwo jest nie mniejsze niż zadany próg p (jądro, ang. nucleus).

Formalnie, niech x(1),x(2), — tokeny słownika V posortowane według malejącego prawdopodobieństwa warunkowego P(xx1:i1). Wówczas jądro V(p) jest definiowane jako najkrótszy prefiks tej uporządkowanej sekwencji, którego skumulowana masa osiąga próg:

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

Innymi słowy, jest to najmniejszy ze względu na inkluzję zbiór najbardziej prawdopodobnych tokenów, których łączne prawdopodobieństwo jest nie mniejsze niż p.[1]

Po wyznaczeniu jądra prawdopodobieństwa tokenów poza V(p) są zerowane, a wewnątrz jądra — renormalizowane (dzielone przez faktyczną skumulowaną masę p=xV(p)P(xx1:i1), tak że suma wynosi 1). Następny token jest próbkowany z tego obciętego i renormalizowanego rozkładu.

Dynamiczna adaptacja

  • Przy „ostrym" rozkładzie (model jest pewny) jądro jest małe: kilka tokenów daje już masę ≥ p, co zwiększa spójność. W przypadku granicznym, gdy prawdopodobieństwo najbardziej prawdopodobnego tokenu już przekracza p (na przykład P(x(1))=0.96 przy p=0.95), jądro zwęża się do jednego tokenu i Top‑p staje się faktycznie dekodowaniem zachłannym (greedy search).
  • Przy „płaskim" rozkładzie (wiele prawdopodobnych kontynuacji) jądro jest duże: wybór się poszerza, rośnie różnorodność.[1]

Porównanie z innymi metodami dekodowania

Top‑p vs. Top‑k

  • Top‑k zawsze wybiera spośród stałej liczby k najbardziej prawdopodobnych tokenów. W „ostrych" rozkładach może to dodawać zbędne mało prawdopodobne warianty „dla liczby", a w „płaskich" — odwrotnie, odcinać rozsądne kontynuacje, które nie trafiły do top‑k.
  • Top‑p dostosowuje rozmiar zbioru kandydatów do danych danego kroku, co czyni zachowanie bardziej elastycznym i stabilnym przy różnych typach rozkładów.[1]
  • W praktyce Top‑k i Top‑p mogą być stosowane jednocześnie. W takim przypadku najpierw wybierana jest czołówka top‑k tokenów, a następnie wewnątrz tego ograniczonego zbioru poszukiwane jest jądro o progu p. Dokładna kolejność i uzasadnienie zależą od implementacji, jednak taka kombinacja jest udokumentowana jako powszechna praktyka.[5]

Mówiąc prościej, Top-k z góry decyduje, ile wariantów zostawić, a Top-p patrzy na sytuację i zostawia tyle, ile potrzeba w danym kontekście. Dlatego Top-p jest zazwyczaj bardziej elastyczny, a Top-k — prostszy i bardziej przewidywalny.

Top‑p vs. Temperatura

  • Temperatura (temperature) przekształca całą formę rozkładu (czyni go bardziej ostrym lub łagodnym), ale nie obcina tokenów: nawet mało prawdopodobne warianty zachowują niezerową szansę.[5]
  • Top‑p wprowadza twarde obcięcie ogona rozkładu — tokeny o niskim prawdopodobieństwie są całkowicie wykluczane z próbkowania, co pomaga zapobiegać wyraźnie nieodpowiednim kontynuacjom.[1]
  • Kolejność stosowania. W standardowych pipeline'ach (na przykład w Hugging Face Transformers) najpierw do logitów stosowana jest temperatura (zmienia się forma rozkładu), następnie może być stosowany Top‑k, i dopiero potem Top‑p (obcięcie ogona). To wyjaśnia, dlaczego „podwójne oddziaływanie" jest trudne do kontrolowania: zmiana temperatury zmienia samą skumulowaną masę, z którą następnie pracuje Top‑p.[5]

Mówiąc prościej, temperatura zmienia, jak swobodnie model wybiera słowa, a Top-p decyduje, jakie warianty w ogóle można wybierać. Dlatego temperatura wpływa na stopień losowości, a Top-p — na to, jak daleko model może się zapuszczać w mniej prawdopodobne kontynuacje.

Kolejność operacji w implementacji Hugging Face Transformers

Kolejność stosowania procesorów próbkowania zależy od konkretnej biblioteki. W Hugging Face Transformers (począwszy od v4.x) dla omawianej trójki parametrów procesory logitów są domyślnie dodawane w następującej kolejności:[5][6]

  1. Skalowanie logitów temperaturą. Logit każdego tokenu jest dzielony przez wartość temperatury przed eksponencjowaniem funkcji Softmax. Temperatura modyfikuje formę rozkładu, przygotowując go do późniejszego filtrowania.
  2. Filtr Top‑k (jeśli skonfigurowany): przycina słownik do stałej liczby pretendentów.
  3. Filtr Top‑p: do już zawężonej puli tokenów stosowane jest obcięcie skumulowane.
  4. Renormalizacja pozostałych prawdopodobieństw i stochastyczne próbkowanie.

W praktyce powszechna jest kombinacja umiarkowanej temperatury (0,7) z szerokim jądrem Top‑p (0,95) i limitem Top‑k (50): temperatura zapewnia podstawową wariacyjność, Top‑k działa jako gruby bezpiecznik, a Top‑p wykonuje kontekstowo zależne dostrojenie.[5]

Mówiąc prościej, model najpierw czyni wybór mniej lub bardziej „swobodnym" za pomocą temperatury, następnie w razie potrzeby ogranicza liczbę kandydatów przez Top-k, a potem usuwa zbyt słabe warianty przez Top-p. Taka kolejność pomaga najpierw ustawić ogólny charakter wyboru, a potem odciąć zbędne elementy.

Zalecenie: dostrajanie jednego parametru naraz

Dostawcy modeli zalecają, aby przy dostosowywaniu stylu generacji zmieniać albo temperature, albo top_p, ale nie oba jednocześnie. Zalecenie to zawarte jest w oficjalnej dokumentacji OpenAI, Azure OpenAI i Anthropic.[7][8][9]

Uzasadnienie praktyczne: oba parametry wpływają na kształt rozkładu prawdopodobieństwa (temperatura zmienia stromość krzywej, a Top‑p ustala punkt odcięcia), dlatego jednoczesna ich zmiana utrudnia diagnostykę — nie można określić, który dokładnie parametr doprowadził do poprawy lub pogorszenia wyjścia. Ponadto przy ekstremalnie niskich wartościach obu parametrów (na przykład Temperature ≈ 0 i Top‑p ≈ 0,01) jądro w praktyce zwęża się do jednego tokenu, co faktycznie zamienia próbkowanie w przeszukiwanie zachłanne.[7]

Niektóre modele reasoning dodatkowo ograniczają dostrajanie tych parametrów na poziomie API, co sprawia, że kwestia ich jednoczesnej zmiany staje się nieaktualna dla takich modeli (zob. sekcję „Zgodność z bibliotekami i API").[7]

Rozpowszechniona heurystyka inżynierska: dla zadań wymagających wysokiej odtwarzalności — stosować niską temperaturę (aż do zera); dla zadań kreatywnych — pozostawiać temperaturę na poziomie bazowym (1,0) i regulować wariacyjność parametrem Top‑p, albo ustalić Top‑p na 1,0 i zmieniać temperaturę. Konkretne zalecenia mogą różnić się u poszczególnych dostawców.[7][9]

Wpływ na faktyczność i halucynacje

Wybór strategii dekodowania może wpływać nie tylko na stylistykę generowanego tekstu, ale także na częstotliwość i typ błędów faktycznych. Zjawisko halucynacji — pewnej generacji fałszywych lub sprzecznych z kontekstem informacji — jest jednym z centralnych problemów generatywnej AI. Badania empiryczne pokazują, że efekt strategii próbkowania na halucynacje zależy od zadania, modelu i konkretnych ustawień parametrów.[3][10]

Mechanizm powstawania błędów przy stochastycznym próbkowaniu

Przy wysokich wartościach Top‑p (na przykład 0,95) model tworzy jądro obejmujące 95% masy prawdopodobieństwa. W stanach wysokiej entropii (na przykład przy próbie odpowiedzi na mało znany fakt) jądro to może zawierać setki tokenów o niskim prawdopodobieństwie. Stochastyczne próbkowanie w takich warunkach może wyciągnąć token gramatycznie poprawny, ale semantycznie niepowiązany z prawdą faktyczną. Znalazłszy się w kontekście, taki token może wpłynąć na kolejne kroki generacji, ponieważ model kontynuuje generację z uwzględnieniem wszystkich poprzednich tokenów, w tym błędnych.[3][1]

Dychotomia zadań otwartych i zamkniętych

Zakrojone na szeroką skalę eksperymenty ujawniają zależność jakości generacji od typu zadania. W zadaniach pisania esejów lub systemach dialogowych metody stochastyczne (Top‑p, Temperature) pozostają liderami, podczas gdy w ściśle deterministycznych domenach mogą znacznie ustępować podejściom deterministycznym.[10]

Na benchmarkach syntezy kodu programistycznego (HumanEval, MBPP) i rozwiązywania zadań matematycznych (GSM8K) metody deterministyczne (Beam Search, Greedy Decoding) pokazują lepsze wyniki w porównaniu z podejściami opartymi na Top‑p. Dataset GSM8K, zawierający 8,5 tysiąca zadań matematycznych wymagających od 2 do 8 kroków obliczeń, ilustruje podatność stochastycznego wyboru w takich zadaniach: wprowadzenie losowości przez obcięty rozkład Top‑p może zaburzyć łańcuch rozumowania modelu (Chain‑of‑Thought) na dowolnym z kroków pośrednich. Tan i współautorzy podkreślają, że efektywność metody dekodowania silnie zależy od konkretnego zadania (task‑dependent).[10]

Metody zwalczania halucynacji na poziomie dekodowania

Do walki z efektami halucynacyjnymi wywołanymi stochastycznym próbkowaniem opracowano metody zaawansowanej augmentacji dekodowania:

  • Dekodowanie kontrastywne (Contrastive Decoding, DoLa) — optymalizuje różnicę w logarytmicznej wiarygodności między modelem głównym a mniejszym modelem pomocniczym, pełniąc rolę filtra wiarygodności.[10]
  • SH2 (Self‑Highlighted Hesitation) — sztucznie zmusza dekoder do „wahania się" przy pracy z tokenami o niskiej pewności.[11]
  • Ukierunkowane rzutowanie aktywacji (SEA) — tłumi sygnały halucynacyjne na poziomie reprezentacji wektorowych.[11]

Jednocześnie nowoczesne modele z wysokiej jakości wyrównaniem (alignment) posiadają głębsze rozumienie faktografii, co obniża entropię ich wewnętrznych rozkładów i czyni je mniej podatnymi na degradację faktów nawet przy wysokich wartościach Top‑p.[10][12]

Zastosowanie praktyczne i zalecenia

Top‑p jest szeroko stosowany we współczesnych LLM dzięki połączeniu elastyczności i sterowalności.

  • Typowy zakres wartości. W praktyce często stosuje się Failed to parse (syntax error): {\displaystyle p \approx 0.90 ext{–}0.95} . Domyślna wartość różni się u poszczególnych dostawców: u OpenAI `top_p` = 1,0 (obcięcie jest faktycznie wyłączone), u Anthropic — 0,99, u wielu modeli Google Gemini — 0,95.[13] W bibliotece Hugging Face Transformers domyślna wartość frameworka wynosi również 1,0, choć poszczególne modele mogą ją nadpisywać w swoim `generation_config.json`.[14] Zatem 0,9–0,95 to powszechny zalecany zakres praktyczny, ale nie powszechny standard domyślny.[5][15]
    • Wartości bliskie 1,0 (na przykład 0,98–0,99) zwiększają różnorodność: do jądra trafia więcej tokenów.
    • Małe wartości (na przykład 0,80–0,90) zwiększają deterministyczność i „powściągliwość" wyjścia.
    • Przy p=1 obcięcie przez Top‑p znika: wybór odbywa się z całego słownika (z uwzględnieniem temperatury i innych filtrów dekodowania, jeśli są włączone).[5]
  • Zgodność z bibliotekami i API.
    • W Hugging Face Transformers zaimplementowany jest TopPLogitsWarper, gdzie dodatkowo używany jest próg `min_tokens_to_keep` (domyślnie 1). Jest to szczegół implementacyjny o charakterze ochronnym: przy standardowych wartościach p(0,1] puste jądro i tak nie powstaje z definicji, jednak parametr gwarantuje poprawne działanie w przypadkach granicznych.[16]
    • W niektórych API parametr `top_p` jest dostępny, podczas gdy `top_k` może być nieobecny; obsługa parametrów i ich semantyka zależą od konkretnego modelu i trybu pracy. Modele reasoning z reguły ograniczają dostrajanie stochastyczności na poziomie API. Na przykład w aktualnej dokumentacji OpenAI parametry `temperature` i `top_p` są jawnie obsługiwane tylko przez GPT‑5.2 przy `reasoning.effort = none`; żądania do GPT‑5.2 lub GPT‑5.1 z innymi wartościami `reasoning`, a także do wcześniejszych modeli GPT‑5 (`gpt‑5`, `gpt‑5‑mini`, `gpt‑5‑nano`) przy przekazywaniu tych pól powodują błąd. Modele reasoning poprzednich generacji (o1, o3) również ograniczają lub ustalają je.[7][17][18] U Anthropic w Claude API przy włączonym rozszerzonym myśleniu (extended thinking) zmiana `temperature` i `top_k` jest zabroniona, jednak `top_p` jest dozwolony w zakresie 0,95–1,0; na platformach zewnętrznych (na przykład Amazon Bedrock) ograniczenia mogą się różnić.[19] Ograniczenia dostawców często zmieniają się wraz z kolejnymi wersjami; zaleca się sprawdzanie aktualnej dokumentacji.[8][20]
  • Długie teksty i powtarzalność. W serii eksperymentów wykazano, że nucleus sampling zmniejsza skłonność do degeneracji (powtórzenia, szablonowe frazy) w porównaniu z greedy/beam i stałym Top‑k, szczególnie w przypadku długich sekwencji.[1][10]

Współczesne alternatywy

Po publikacji nucleus sampling w 2019 roku zaproponowano kilka alternatywnych metod stochastycznego dekodowania, rozwijających lub uzupełniających ideę Top‑p:

Próbkowanie Min‑p

Próbkowanie Min‑p (Nguyen et al., 2024) pozostawia tokeny, których prawdopodobieństwo nie jest niższe niż pminimesP(x(1)), to znaczy ustawia próg względem najbardziej prawdopodobnego tokenu. Przyjęty do prezentacji ustnej na ICLR 2025; zaimplementowany w szeregu popularnych frameworków, w tym Hugging Face Transformers[21] i vLLM[22].[23]

Kluczowa różnica w stosunku do Top‑p polega na typie progu: Top‑p używa absolutnego progu opartego na skumulowanej sumie prawdopodobieństw, podczas gdy Min‑p ustanawia względny próg skalowany od prawdopodobieństwa najbardziej prawdopodobnego tokenu.[23]

Mathematycznie algorytm działa następująco: na każdym kroku wyznaczane jest maksymalne prawdopodobieństwo Pmax=P(x(1)x1:i1), następnie obliczany jest skalowany próg Pextthreshold=pminimesPmax. Do końcowej puli trafiają tylko tokeny, których indywidualne prawdopodobieństwo przekracza ten próg.[24]

Zapewnia to adaptacyjność: jeśli model jest pewny co do następnego słowa (Pmax=0.9), przy bazowym pmin=0.1 próg wynosi 0,09, ostro odcinając tokeny szumowe. Jeśli zaś model jest niepewny (Pmax=0.1), próg spada do 0,01, wpuszczając do jądra szerokie spektrum kandydatów.[23]

Znana słabość Top‑p ujawnia się przy próbkowaniu w wysokiej temperaturze (T>1.0): gdy rozkład jest sztucznie wygładzany, Top‑p jest zmuszony włączać do jądra dużą liczbę tokenów o niskim prawdopodobieństwie, aby osiągnąć zadaną sumę skumulowaną, co może prowadzić do degradacji spójności.[23] Min‑p lepiej radzi sobie w takich warunkach. W eksperymentach autorów na benchmarkach wiedzy naukowej i logicznej (GPQA) z użyciem modelu Mistral Large przy ekstremalnej temperaturze T=3.0 algorytm Min‑p osiągnął dokładność 13,84%, podczas gdy standardowy Top‑p 0,9 dał wynik 0,89% — na poziomie przypadkowego szumu.[24]

Jednocześnie w środowisku akademickim toczy się dyskusja: niektóre prace krytyczne (na przykład arXiv:2506.13681) poddają w wątpliwość uniwersalność przewag Min‑p na wszystkich metrykach NLP, wskazując na konieczność dalszych badań.[25]

Mówiąc prościej, Min-p porównuje wszystkie warianty nie z łączną sumą prawdopodobieństw, lecz z najsilniejszym wariantem na bieżącym kroku. Dlatego jeśli model jest pewny, ostrzej usuwa słabe kontynuacje, a jeśli niepewny — pozostawia więcej dopuszczalnych wariantów. Dzięki temu Min-p może lepiej zachowywać równowagę między spójnością a różnorodnością, szczególnie tam, gdzie Top-p zaczyna przepuszczać zbyt wiele słabych słów.

Locally typical sampling

Locally typical sampling (Meister i współautorzy, 2023) wybiera tokeny, których ładunek informacyjny (logP) jest bliski entropii warunkowej, opierając się na teorioformacyjnym pojęciu typowości.[2]

W odróżnieniu od Top‑p, który dąży do minimalizacji rozmiaru jądra, wybierając tokeny o maksymalnym prawdopodobieństwie, Locally Typical Sampling rozwiązuje zadanie optymalizacyjne oparte na metryce odległości informacyjnej. Algorytm oblicza zawartość informacyjną każdego tokenu (logP(x)) i mierzy jego bezwzględną odległość do entropii warunkowej H modelu. Tokeny są rangowane nie według surowego prawdopodobieństwa, lecz według stopnia ich „informacyjnej typowości" — bliskości do oczekiwanej zawartości informacyjnej kontekstu. Tokeny są dodawane do jądra (w kolejności rosnącej odległości do entropii) aż do osiągnięcia progu skumulowanego prawdopodobieństwa.[2][26]

Konsekwencją tego podejścia jest to, że w stanach wysokiej entropii algorytm celowo wyklucza nie tylko szumowy ogon o niskim prawdopodobieństwie, ale również słowa o nadmiernie wysokim prawdopodobieństwie, które niosą zbyt mało informacji i czynią tekst banalnym. Zmniejsza to ryzyko degeneracyjnych zapętleń i przybliża metryki powtarzalności tekstu do wskaźników charakterystycznych dla tekstów pisanych przez człowieka.[26]

Tail Free Sampling (TFS)

Tail Free Sampling (TFS) — mniej sformalizowane, ale praktycznie interesujące podejście do identyfikacji szumowego ogona, oparte na różniczkowej analizie przestrzeni prawdopodobieństwa. Podczas gdy Top‑p i Min‑p operują prawdopodobieństwami pierwszego rzędu (sumą skumulowaną i podstawowymi ułamkami), TFS analizuje pierwszą i drugą pochodną posortowanej krzywej prawdopodobieństw. Metoda została opisana na blogu Trentona Brickena i zaimplementowana w szeregu silników inferencyjnych, choć nie została opublikowana w formie recenzowanego artykułu.[27]

Główny postulat TFS: włączenie nawet jednego tokenu szumowego do próbki niesie wykładnicze zagrożenie dla całej generacji autoregresywnej. Obliczając drugą pochodną wartości prawdopodobieństw, algorytm lokalizuje „plateau" — odcinki krzywej, gdzie spadek prawdopodobieństw zwalnia i przechodzi w długi łagodny ogon. Punkt tego przegięcia staje się dynamiczną granicą obcięcia: tokeny przed nim są uznawane za semantycznie bezpieczne, a cały ogon jest usuwany.[27]

Pomimo matematycznej elegancji, TFS wymaga bardziej intensywnych nakładów obliczeniowych na obliczanie pochodnych w czasie rzeczywistym, z powodu czego w masowych produktach komercyjnych ustępuje lżejszym algorytmom.[27]

p‑less sampling

p‑less sampling — metoda całkowicie zwalniająca inżyniera z konieczności dostrajania hiperparametrów obcięcia.[28] Fundamentalny problem wszystkich poprzednich metod — od Top‑k i Top‑p po Min‑p — polega na zależności od statycznych hiperparametrów, których wartości wymagają eksperckiego dostrojenia i mogą być optymalne dla jednego zadania (pisanie kreatywne), ale nieodpowiednie dla innego (programowanie).[29]

Algorytm p‑less, zakorzeniony w teorii informacji, dynamicznie generuje unikalny próg obcięcia na każdym kroku dekodowania, analizując wewnętrzną topologię całego rozkładu prawdopodobieństwa w czasie rzeczywistym. Autorzy informują o odporności metody na fluktuacje temperatury (temperature robustness): przy wzroście temperatury tradycyjne metody mogą istotnie degradować, podczas gdy p‑less zachowuje stabilność jakości. Ponadto, dzięki rezygnacji z logiki skumulowanego skanowania i renormalizacji dużych jąder, metoda — według danych autorów — zapewnia wyższą efektywność obliczeniową na etapie inferencji i generuje bardziej zwięzłe odpowiedzi bez utraty dokładności na datasetach z matematyki, logiki i pisania kreatywnego.[29][28]

η‑próbkowanie

η‑próbkowanie (Hewitt et al., 2022) używa zależnego od entropii progu prawdopodobieństwa, dostosowując się do kontekstów niskoentropynych, gdzie Top‑p może obcinać nadmiernie.[30]

Literatura

  • Holtzman, A., Buys, J., Du, L., Forbes, M., & Choi, Y. (2019; opublikowano na 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.

Przypisy

  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]

Zobacz też

  • Temperatura
  • Duże modele językowe