Top-k sampling (RO)

From Systems analysis Wiki
Jump to navigation Jump to search

Eșantionarea Top-k — este o metodă stochastică de decodare utilizată în modelele de limbaj autoregresive, inclusiv în modelele de limbaj de mari dimensiuni (LLM), pentru generarea de text. Scopul său principal este de a limita selecția tokenului următor la un număr fix (k) de candidați cu cea mai mare probabilitate, ceea ce permite evitarea generării de cuvinte puțin probabile și adesea nepotrivite. Această metodă a fost una dintre primele îmbunătățiri ale eșantionării aleatorii simple și a reprezentat mult timp o modalitate populară de îmbunătățire a coerenței textului generat.

Explicație simplă

Eșantionarea Top-k poate fi înțeleasă ca alegerea cuvântului următor nu din toate variantele posibile, ci doar dintr-o listă restrânsă a celor mai probabile.

De exemplu, modelul completează fraza „Astăzi pe stradă a căzut o ploaie torențială…". În dicționarul său există mii de continuări: „ploaie", „vânt", „zăpadă", „aversă" — și undeva departe „cuantic" sau un simbol aleatoriu. Fără restricții, generarea de text este supusă diverselor forme de degradare (text degeneration). Metodele de maximizare (greedy decoding, beam search) produc text plictisitor și repetitiv, în timp ce eșantionarea pură fără trunchiere riscă să ducă la incoerență din cauza selectării de tokeni puțin probabili din „coada nesigură" a distribuției. Top-k combate în primul rând cea de-a doua problemă — prin trunchierea cozii, reduce riscul continuărilor absurde, deși în sine nu elimină repetitivitatea. Top-k spune: „Ia doar k cele mai probabile cuvinte, uită de restul, recalculează probabilitățile în rândul lor și alege unul aleatoriu".

Pe scurt:

  • modelul alcătuiește o listă a celor mai probabile continuări;
  • ia doar primele k variante;
  • alege aleatoriu una dintre ele.

Cu cât k este mai mic, cu atât rezultatul este mai prudent și mai previzibil. Cu cât k este mai mare, cu atât generarea este mai liberă și mai diversificată.

Analogii:

  • Meniul restaurantului: în loc să aleagă aleatoriu din 5.000 de poziții (risc de a obține ceva needibil) sau întotdeauna același fel de mâncare cel mai popular (plictisitor), chelnerul aduce doar top-40 recomandate — alegeți dintr-o listă rezonabilă. Totuși, uneori în partea exclusă a meniului s-ar fi putut afla exact acel fel de mâncare neobișnuit care v-ar fi plăcut — acesta este prețul previzibilității.
  • Lista scurtă a finaliștilor: din 1.000 de candidați pentru un loc de muncă se rețin cele mai bune 40 de CV-uri, după care se susțin interviurile.

Concept și matematică

La fiecare pas al generării de text, un model de limbaj standard produce o distribuție de probabilitate P(x|x1:i1) pe întreg vocabularul V. Eșantionarea Top-k modifică acest proces astfel:

  • Selecția candidaților: Din întregul vocabular se selectează un subset V(k) format din k tokeni cu cele mai mari probabilități.
  • Trunchiere: Logit-urilor (predicțiile brute ale modelului înainte de aplicarea Softmax) tuturor tokenilor care nu au intrat în V(k) li se atribuie valoarea , ceea ce după normalizare duce la o probabilitate strict egală cu 0.
  • Redistribuire (normalizare): Probabilitățile celor k tokeni rămași sunt scalate astfel încât suma lor să fie egală cu 1.
  • Eșantionare: Tokenul următor este ales aleatoriu din această nouă distribuție trunchiată.

Astfel, Top-k introduce un prag rigid după numărul de candidați: cuvintele cu rangul de probabilitate sub k nu vor fi niciodată selectate.

Influența parametrului k

  • k mic (de exemplu, k=510): Face generarea mai conservatoare și mai previzibilă. Modelul alege doar dintr-un set foarte restrâns de cuvinte cu cea mai mare probabilitate. Aceasta crește coerența, dar poate duce la text repetitiv și plictisitor.
  • k mare (de exemplu, k=50100): Crește diversitatea și creativitatea textului, deoarece mai multe variante intră în selecție. Cu toate acestea, crește și riscul includerii unor tokeni mai puțin relevanți sau nepotriviți.
  • Cazuri limită:
    • k=1: Echivalent cu greedy decoding. Modelul alege întotdeauna tokenul cu cea mai mare probabilitate.
    • k = dimensiunea vocabularului: Echivalent cu eșantionarea standard din distribuția completă, fără trunchiere.

Semnificație istorică

Eșantionarea Top-k ca metodă de decodare a fost una dintre primele aplicații de succes în lucrarea Angelei Fan și a colegilor săi (2018) „Hierarchical Neural Story Generation", în care autorii au folosit top-k random sampling (cu k=10) într-un sistem ierarhic de generare de povești și au arătat că o astfel de strategie este semnificativ mai eficientă decât beam search și eșantionarea aleatorie completă, care riscă să introducă cuvinte puțin probabile.

Cu toate acestea, lucrarea cheie care a analizat sistematic problema degradării textului și a arătat că metodele de tip truncation, inclusiv top-k, îmbunătățesc semnificativ calitatea generării, a fost articolul lui Holtzman et al. (2019) „The Curious Case of Neural Text Degeneration". Totodată, autorii au propus top-p (nucleus sampling) ca alternativă mai adaptivă la top-k, demonstrând prin metrica lor HUSE că nucleus sampling oferă rezultate mai bune în rândul strategiilor comparate.

De exemplu, în demonstrațiile timpurii și recomandările pentru GPT-2 se folosea pe scară largă valoarea `top_k=40` (menționată în codul OpenAI ca „generally a good value"), ceea ce ajuta la generarea de texte lungi și coerente.

Comparație cu alte metode de decodare

Top-k vs. Top-p

Top-k a fost în mare parte completat, iar în unele sarcini înlocuit de o metodă mai avansată — eșantionarea Top-p (nucleus).

  • Principalul dezavantaj al Top-k este non-adaptivitatea sa. Valoarea fixă k nu ține cont de forma distribuției de probabilitate:
    • Când distribuția este ascuțită (modelul este sigur de câteva tokeni), Top-k poate extinde artificial selecția, incluzând candidați puțin probabili.
    • Când distribuția este plată (modelul nu este sigur și mulți tokeni au probabilități similare), Top-k poate exclude prematur multe variante adecvate.
    • În plus, Top-k trunchiază rigid „coada" distribuției (tail truncation), din cauza căreia tokenii contextual relevanți, dar rari, pot fi pierduți — metoda sacrifică creativitatea potențială în favoarea coerenței.
  • Top-p, dimpotrivă, adaptează dinamic dimensiunea selecției, alegând tokeni pe baza probabilității lor cumulative. Aceasta îl face mai flexibil și mai robust.
  • În practică, ambele metode sunt adesea utilizate împreună ca filtre secvențiale: unul limitează grosier numărul de candidați, celălalt restrânge dinamic selecția în funcție de încrederea modelului. Ordinea exactă a aplicării lor depinde de implementarea framework-ului specific.

Top-k vs. Temperatură

  • Temperatura modifică forma întregii distribuții de probabilitate, dar nu trunchiază tokenii. Ea influențează probabilitățile relative ale tuturor candidaților.
  • Top-k introduce o trunchiere rigidă, excluzând complet tokenii aflați în afara top-k.

În practică, Top-k poate fi utilizat împreună cu temperatura și Top-p. Ordinea exactă de aplicare a filtrelor depinde de framework: de exemplu, în Hugging Face Transformers, pipeline-ul arată ca Temperatură → Top-k → Top-p, adică temperatura scalează mai întâi logit-urile (l=l/au), apoi Top-k trunchiază „coada" lungă a tokenilor irelevanți, iar după aceea Top-p restrânge dinamic selecția în funcție de încrederea modelului. Totodată, pașii individuali pot fi omisi în funcție de setări: dacă top_k=0, pasul Top-k nu se aplică; dacă top_p=1.0, pasul Top-p nu se aplică.

Aplicare practică

Deși Top-p este o metodă mai adaptivă și este adesea utilizată ca metodă de bază pentru generarea deschisă de text, nu există o metodă de decodare universal superioară — alegerea optimă depinde de sarcină, model și priorități (calitate, viteză, robustețe). Top-k rămâne un parametru larg suportat în toate framework-urile principale (Hugging Face Transformers, vLLM etc.) și este utilizat activ atât independent, cât și în combinație cu alte metode.

  • Valori tipice: În practică se folosesc frecvent valori k de ordinul zecilor de tokeni (de exemplu, 10, 40, 50), dar optimul depinde de model și de sarcină.
  • Recomandări: Pentru generarea deschisă de text se preferă adesea Top-p. Dacă se utilizează Top-k, acesta ar trebui combinat cu o temperatură moderată și valoarea k ar trebui aleasă cu atenție în funcție de sarcina concretă. Top-k este de asemenea util ca „siguranță" suplimentară la temperaturi ridicate.
  • Notă: În framework-uri, Top-k poate fi combinat cu Repetition Penalty (penalizarea repetițiilor) și parametrul no_repeat_ngram_size pentru a preveni blocarea modelului în aceleași cuvinte din lista top-k.

Bibliografie

Lucrări fundamentale

  • Fan, A. et al. (2018). Hierarchical Neural Story Generation. ACL Anthology. arXiv:1805.04833.
  • Holtzman, A. et al. (2019). The Curious Case of Neural Text Degeneration. arXiv:1904.09751 (ICLR 2020).
  • Finlayson, M. et al. (2024). Closing the Curious Case of Neural Text Degeneration. OpenReview:dONpC9GL1o (ICLR 2024).

Lectură suplimentară

  • Meister, C. et al. (2022). Locally Typical Sampling. arXiv:2202.00666 (TACL 2023).
  • Su, Y.; Lan, T.; Wang, Y.; Yogatama, D.; Kong, L.; Collier, N. (2022). A Contrastive Framework for Neural Text Generation. arXiv:2202.06417 (NeurIPS 2022).
  • O'Brien, S.; Lewis, M. (2023). Contrastive Decoding Improves Reasoning in Large Language Models. arXiv:2309.09117.
  • Shi, C. et al. (2024). A Thorough Examination of Decoding Methods in the Era of Large Language Models. ACL Anthology. arXiv:2402.06925.
  • Ravfogel, S.; Goldberg, Y.; Goldberger, J. (2023). Conformal Nucleus Sampling. arXiv:2305.02633.
  • Chen, S. J. et al. (2024). Decoding Game: On Minimax Optimality of Heuristic Text Generation Strategies. arXiv:2410.03968 (ICLR 2025).
  • Sen, J. et al. (2025). Advancing Decoding Strategies: Enhancements in Locally Typical Sampling for LLMs. arXiv:2506.05387.

Vezi și

  • Modele de limbaj de mari dimensiuni