Top-p sampling (IT)

From Systems analysis Wiki
Jump to navigation Jump to search

Campionamento Top‑p, noto anche come campionamento nucleare (in inglese Nucleus Sampling), è un metodo di decodifica stocastica per i modelli linguistici autoregressivi, ampiamente impiegato anche nei modelli linguistici di grandi dimensioni (LLM). Il metodo è stato proposto nel 2019 da Ari Holtzman e coautori (preprint arXiv — aprile 2019; pubblicazione a ICLR 2020) come alternativa migliorata al campionamento Top‑k a valore fisso. L'idea consiste nel selezionare dinamicamente l'insieme dei candidati a ogni passo di generazione in base a una soglia di probabilità cumulativa p.[1]

Contesto storico: il problema della degenerazione neurale del testo

Prima dell'introduzione di Top‑p, le strategie di decodifica dominanti erano la ricerca greedy (greedy search) e la ricerca a fascio (beam search), basate sul paradigma della massimizzazione della verosimiglianza — ovvero la selezione della sequenza di token con la più alta probabilità complessiva. La ricerca greedy seleziona localmente a ogni passo il token con probabilità massima, mentre la ricerca a fascio monitora in parallelo diverse ipotesi di generazione.[1]

Sebbene questi metodi fossero efficaci nei compiti chiusi (traduzione automatica, estrazione di dati), nel passaggio ai compiti di generazione di testo aperta (scrittura di storie, sistemi di dialogo) spesso conducevano alla degenerazione neurale del testo — un deterioramento dell'output in cui il testo diventa schematico, perde coerenza o si blocca in ripetizioni. Questo fenomeno è descritto in dettaglio da Holtzman e coautori nel lavoro The Curious Case of Neural Text Degeneration.[1]

Meister e coautori collegano il problema della degenerazione al fatto che il testo umano tende a mantenere un contenuto informativo vicino all'entropia condizionale attesa, piuttosto che semplicemente massimizzare la probabilità locale di ogni token successivo.[2]

Un'alternativa fu il campionamento stocastico puro (sampling without truncation), in cui il token viene selezionato casualmente in base alla sua probabilità. Tuttavia, questo metodo generò il problema opposto: la funzione Softmax non assegna mai a un token una probabilità strettamente uguale a zero, pertanto in un vocabolario di decine di migliaia di parole esiste sempre un'ampia zona di token rumorosi. Con il campionamento puro aumenta il rischio di ricadere nella coda inaffidabile della distribuzione, il che può deteriorare la coerenza del testo generato.[1][3] La necessità di combinare la ricchezza della selezione stocastica con l'affidabilità dei vincoli deterministici portò allo sviluppo di metodi di troncamento della distribuzione, di cui il campionamento nucleare (Top‑p) è diventato il metodo principale.[1][4]

Spiegazione semplice

Il campionamento Top-p è un modo per limitare la scelta del token successivo ai soli candidati più plausibili, senza fissarne il numero in anticipo.

Durante la generazione del testo, il modello linguistico a ogni passo valuta molte possibili continuazioni e assegna a ciascuna una certa probabilità. Alcuni token risultano molto probabili, altri moderatamente probabili, mentre la maggior parte del vocabolario forma la cosiddetta «coda» della distribuzione: varianti con probabilità molto bassa che sono formalmente ammissibili, ma spesso risultano casuali, fuori luogo o peggiorano la coerenza del testo.

Il campionamento Top-p taglia questa coda a bassa probabilità non in base a un numero fisso di token, ma in base alla probabilità totale. Prima di tutto i candidati vengono ordinati dal più probabile al meno probabile. Poi viene selezionato il sottoinsieme minimo dei token in cima alla lista la cui probabilità complessiva raggiunge la soglia prefissata p — ad esempio 0.9 o 0.95. Dopodiché il token successivo viene scelto casualmente solo da questo sottoinsieme, escludendo tutte le altre varianti.

Ad esempio, se il modello deve continuare la frase «Oggi per strada cadeva una forte…», tra le varianti più probabili potrebbero esserci «pioggia» (0.45), «acquazzone» (0.25), «neve» (0.15) e «vento» (0.10). Con la soglia p=0.90, l'algoritmo somma i token in ordine decrescente di probabilità: 0.45 + 0.25 = 0.70 (meno di 0.90), aggiunge «neve»: 0.70 + 0.15 = 0.85 (ancora meno di 0.90), aggiunge «vento»: 0.85 + 0.10 = 0.95 (soglia superata). Il nucleo è formato da quattro token. Tutte le varianti meno frequenti vengono scartate e le probabilità di quelle rimanenti vengono normalizzate: così la probabilità del token «pioggia» dopo la rinormalizzazione sarà 0.45/0.9547.4%, e il generatore sceglierà il token successivo proprio da questa distribuzione aggiornata.

La differenza principale rispetto a Top‑k sta nel fatto che Top‑k prende sempre un numero fisso delle migliori parole (ad esempio 50), mentre Top‑p non fissa in anticipo il numero di varianti: a volte possono essere 3 parole, a volte 20 — tutto dipende da come si sono distribuite le probabilità in quel preciso passo. Grazie a ciò, il metodo si adatta al contesto e aiuta a tagliare la «coda» dei token a bassa probabilità, rendendo il testo più naturale.

Un altro esempio. Ad esempio, il modello continua la frase «A colazione ha bevuto un caldo…». Tra le continuazioni più probabili potrebbero esserci: «tè» (0.50), «caffè» (0.30), «cioccolato» (0.08), «brodo» (0.04), «kefir» (0.03). Se è impostata la soglia p=0.80, l'algoritmo inizia a sommare le probabilità dall'alto verso il basso: 0.50 per «tè», poi 0.50 + 0.30 = 0.80. La soglia è già raggiunta, quindi il nucleo è composto solo da due token: «tè» e «caffè». Tutte le altre varianti vengono scartate. Dopo la rinormalizzazione la probabilità di «tè» all'interno del nucleo diventa 0.50/0.80=62.5%, mentre la probabilità di «caffè» diventa 0.30/0.80=37.5%. Il token successivo viene scelto solo tra queste due varianti.

In altre parole, il modello prima elimina le continuazioni poco probabili e inadeguate, poi sceglie tra quelle rimaste. Questo lo aiuta a scrivere in modo più chiaro, naturale e senza «rumore» superfluo.

Concetto

L'idea principale di Top‑p è selezionare a ogni passo il minimo insieme di token più probabili la cui probabilità totale non sia inferiore alla soglia prefissata p (il nucleo, in inglese nucleus).

Formalmente, siano x(1),x(2), i token del vocabolario V ordinati in ordine decrescente di probabilità condizionale P(xx1:i1). Il nucleo V(p) è definito come il prefisso più breve di questa sequenza ordinata la cui massa cumulativa raggiunge la soglia:

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

In altri termini, è l'insieme minimale per inclusione dei token più probabili la cui probabilità totale non è inferiore a p.[1]

Dopo la determinazione del nucleo, le probabilità dei token al di fuori di V(p) vengono azzerate, mentre quelle all'interno del nucleo vengono rinormalizzate (divise per la massa cumulativa effettiva p=xV(p)P(xx1:i1), così che la somma risulti uguale a 1). Il token successivo viene campionato da questa distribuzione troncata e rinormalizzata.

Adattamento dinamico

  • Con una distribuzione «acuta» (il modello è sicuro) il nucleo è piccolo: pochi token forniscono già una massa ≥ p, il che aumenta la coerenza. Nel caso limite, se la probabilità del token più probabile supera già p (ad esempio P(x(1))=0.96 con p=0.95), il nucleo si restringe a un singolo token e Top‑p di fatto si trasforma in decodifica greedy (greedy search).
  • Con una distribuzione «piatta» (molte continuazioni plausibili) il nucleo è grande: la scelta si amplia, aumenta la varietà.[1]

Confronto con altri metodi di decodifica

Top‑p vs. Top‑k

  • Top‑k seleziona sempre da un numero fisso k dei token più probabili. Nelle distribuzioni «acute» questo può aggiungere varianti a bassa probabilità superflue «per riempire il numero», mentre in quelle «piatte» può al contrario escludere continuazioni ragionevoli non rientrate nella top‑k.
  • Top‑p adatta la dimensione dell'insieme di candidati in base ai dati del passo corrente, rendendo il comportamento più flessibile e stabile su diversi tipi di distribuzioni.[1]
  • In pratica, Top‑k e Top‑p possono essere applicati simultaneamente. In questo caso si seleziona prima la top‑k dei token, e poi all'interno di questo insieme ristretto si cerca il nucleo con soglia p. L'ordine preciso e la motivazione dipendono dall'implementazione, ma tale combinazione è documentata come pratica comune.[5]

In parole semplici, Top-k decide in anticipo quante varianti mantenere, mentre Top-p valuta la situazione e ne mantiene tante quante ne servono nel dato contesto. Per questo Top-p è generalmente più flessibile, mentre Top-k è più semplice e prevedibile.

Top‑p vs. Temperatura

  • La temperatura (temperature) ridistribuisce l'intera forma della distribuzione (rendendola più acuta o più uniforme), ma non tronca i token: anche le varianti a bassa probabilità mantengono una possibilità non nulla.[5]
  • Top‑p introduce un troncamento rigido della coda della distribuzione — i token a bassa probabilità vengono completamente esclusi dal campionamento, il che aiuta a prevenire continuazioni palesemente fuori luogo.[1]
  • Ordine di applicazione. Nelle pipeline standard (ad esempio in Hugging Face Transformers) la temperatura viene applicata prima ai logit (modifica la forma della distribuzione), poi può essere applicato Top‑k, e solo successivamente Top‑p (troncamento della coda). Questo spiega perché il «doppio effetto» sia difficile da controllare: la modifica della temperatura cambia la stessa massa cumulativa su cui poi opera Top‑p.[5]

In parole semplici, la temperatura cambia quanto liberamente il modello sceglie le parole, mentre Top-p decide quali varianti possono essere scelte. Pertanto la temperatura influisce sul grado di casualità, mentre Top-p determina fino a che punto il modello può spingersi verso continuazioni meno probabili.

Ordine delle operazioni nell'implementazione di Hugging Face Transformers

L'ordine di applicazione dei processori di campionamento dipende dalla libreria specifica. In Hugging Face Transformers (a partire dalla versione v4.x), per la tripletta di parametri discussa, i processori di logit vengono aggiunti per impostazione predefinita nella seguente sequenza:[5][6]

  1. Scalatura della temperatura dei logit. Il logit di ogni token viene diviso per il valore della temperatura prima dell'esponenziazione della funzione Softmax. La temperatura modifica la forma della distribuzione, preparandola per il filtraggio successivo.
  2. Filtro Top‑k (se configurato): tronca il vocabolario a un numero fisso di candidati.
  3. Filtro Top‑p: il troncamento cumulativo viene applicato al pool di token già ristretto.
  4. Rinormalizzazione delle probabilità rimanenti e campionamento stocastico.

In pratica è diffusa la combinazione di una temperatura moderata (0.7) con un nucleo Top‑p ampio (0.95) e un limite Top‑k (50): la temperatura fornisce la variabilità di base, Top‑k funge da salvaguardia grossolana, mentre Top‑p esegue la regolazione fine dipendente dal contesto.[5]

In parole semplici, il modello prima rende la scelta più o meno «libera» tramite la temperatura, poi se necessario limita il numero di candidati tramite Top-k, e infine rimuove le varianti troppo deboli tramite Top-p. Questo ordine aiuta prima a impostare il carattere generale della scelta, e poi a eliminare il superfluo.

Raccomandazione: regolare un parametro alla volta

I provider di modelli raccomandano, al momento di regolare lo stile di generazione, di modificare o temperature o top_p, ma non entrambi contemporaneamente. Questa raccomandazione è contenuta nella documentazione ufficiale di OpenAI, Azure OpenAI e Anthropic.[7][8][9]

Giustificazione pratica: entrambi i parametri influenzano la forma della distribuzione di probabilità (la temperatura modifica la pendenza della curva, mentre Top‑p stabilisce il punto di troncamento), quindi la loro modifica simultanea rende difficile la diagnosi — è impossibile determinare quale parametro abbia causato il miglioramento o il peggioramento dell'output. Inoltre, con valori estremamente bassi di entrambi i parametri (ad esempio Temperature ≈ 0 e Top‑p ≈ 0.01), il nucleo in pratica si restringe a un solo token, trasformando di fatto il campionamento in una ricerca greedy.[7]

Alcuni modelli di reasoning limitano ulteriormente la configurazione di questi parametri a livello di API, rendendo la questione della loro modifica congiunta irrilevante per tali modelli (cfr. sezione «Compatibilità con librerie e API»).[7]

Una euristica ingegneristica comune: per compiti che richiedono alta riproducibilità — usare una temperatura bassa (fino a zero); per compiti creativi — mantenere la temperatura al livello base (1.0) e regolare la variabilità tramite il parametro Top‑p, oppure fissare Top‑p a 1.0 e variare la temperatura. Le raccomandazioni specifiche possono differire tra i provider.[7][9]

Influenza sulla fattualità e sulle allucinazioni

La scelta della strategia di decodifica può influenzare non solo lo stile del testo generato, ma anche la frequenza e il tipo di errori fattuali. Il fenomeno delle allucinazioni — la generazione sicura di informazioni false o contraddittorie rispetto al contesto — è uno dei problemi centrali dell'IA generativa. Le ricerche empiriche mostrano che l'effetto delle strategie di campionamento sulle allucinazioni dipende dal compito, dal modello e dalla specifica configurazione dei parametri.[3][10]

Meccanismo di generazione degli errori nel campionamento stocastico

Con valori elevati di Top‑p (ad esempio 0.95), il modello forma un nucleo che copre il 95% della massa di probabilità. In stati ad alta entropia (ad esempio quando si tenta di rispondere a un fatto poco conosciuto), questo nucleo può includere centinaia di token a bassa probabilità. Il campionamento stocastico in tali condizioni può estrarre un token grammaticalmente corretto ma semanticamente non collegato alla verità fattuale. Una volta nel contesto, tale token può influenzare i passi successivi della generazione, poiché il modello continua a generare tenendo conto di tutti i token precedenti, inclusi quelli erronei.[3][1]

Dicotomia tra compiti aperti e chiusi

Esperimenti su larga scala rivelano una dipendenza della qualità della generazione dal tipo di compito. Nei compiti di scrittura di saggi o nei sistemi di dialogo, i metodi stocastici (Top‑p, Temperature) rimangono i più efficaci, mentre in domini strettamente deterministici possono essere significativamente inferiori agli approcci deterministici.[10]

Sui benchmark di sintesi del codice sorgente (HumanEval, MBPP) e di risoluzione di problemi matematici (GSM8K), i metodi deterministici (Beam Search, Greedy Decoding) mostrano risultati migliori rispetto agli approcci basati su Top‑p. Il dataset GSM8K, che comprende 8.500 problemi matematici che richiedono da 2 a 8 passi di calcolo, illustra la vulnerabilità della selezione stocastica in tali compiti: l'iniezione di casualità attraverso la distribuzione troncata di Top‑p può interrompere la catena di ragionamento del modello (Chain‑of‑Thought) in qualsiasi dei passi intermedi. Tan e coautori sottolineano che l'efficacia del metodo di decodifica dipende fortemente dal compito specifico (task‑dependent).[10]

Metodi per contrastare le allucinazioni a livello di decodifica

Per contrastare gli effetti allucinatori provocati dal campionamento stocastico sono stati sviluppati metodi di aumentazione avanzata della decodifica:

  • Decodifica per contrasto (Contrastive Decoding, DoLa) — ottimizza il divario nella log-verosimiglianza tra il modello principale e un modello ausiliario più piccolo, fungendo da filtro di affidabilità.[10]
  • SH2 (Self‑Highlighted Hesitation) — fa «esitare» artificialmente il decoder quando lavora con token a bassa confidenza.[11]
  • Proiezione orientata delle attivazioni (SEA) — sopprime i segnali allucinatori a livello delle rappresentazioni vettoriali.[11]

Al contempo, i moderni modelli con un allineamento di qualità (alignment) possiedono una comprensione più profonda della fattualità, il che riduce l'entropia delle loro distribuzioni interne e li rende meno soggetti al degrado fattuale anche con valori elevati di Top‑p.[10][12]

Applicazione pratica e raccomandazioni

Top‑p è ampiamente utilizzato nei moderni LLM grazie alla combinazione di flessibilità e controllabilità.

  • Intervallo di valori tipico. In pratica si utilizza spesso p0.900.95. Il valore predefinito varia tra i provider: OpenAI ha `top_p` = 1.0 (il troncamento è di fatto disabilitato), Anthropic — 0.99, molti modelli Google Gemini — 0.95.[13] Nella libreria Hugging Face Transformers il valore predefinito del framework è anch'esso 1.0, sebbene singoli modelli possano sovrascriverlo nel proprio `generation_config.json`.[14] Pertanto, 0.9–0.95 è un intervallo pratico raccomandato comune, ma non uno standard universale predefinito.[5][15]
    • Valori vicini a 1.0 (ad esempio 0.98–0.99) aumentano la varietà: nel nucleo entrano più token.
    • Valori bassi (ad esempio 0.80–0.90) aumentano il determinismo e la «sobrietà» dell'output.
    • Con p=1 il troncamento per Top‑p scompare: la selezione avviene su tutto il vocabolario (tenendo conto della temperatura e degli altri filtri di decodifica, se attivi).[5]
  • Compatibilità con librerie e API.
    • In Hugging Face Transformers è implementato TopPLogitsWarper, dove viene utilizzata anche la soglia `min_tokens_to_keep` (per impostazione predefinita 1). Questo è un dettaglio di protezione dell'implementazione: con i valori standard p(0,1], un nucleo vuoto non si forma comunque per definizione, ma il parametro garantisce il corretto funzionamento nei casi limite.[16]
    • In alcuni API il parametro `top_p` è disponibile, mentre `top_k` può essere assente; il supporto dei parametri e la loro semantica dipendono dal modello specifico e dalla modalità operativa. I modelli di reasoning di norma limitano la configurazione della stocastica a livello di API. Ad esempio, nella documentazione attuale di OpenAI i parametri `temperature` e `top_p` sono esplicitamente supportati solo per GPT‑5.2 con `reasoning.effort = none`; le richieste a GPT‑5.2 o GPT‑5.1 con altri valori di `reasoning`, nonché ai modelli GPT‑5 precedenti (`gpt‑5`, `gpt‑5‑mini`, `gpt‑5‑nano`) con questi campi passati generano un errore. I modelli di reasoning delle generazioni precedenti (o1, o3) li limitano o li fissano anch'essi.[7][17][18] In Anthropic, nelle API Claude con il ragionamento esteso attivato (extended thinking), la modifica di `temperature` e `top_k` è vietata, ma `top_p` è consentito nell'intervallo 0.95–1.0; sulle piattaforme di terze parti (ad esempio Amazon Bedrock) i limiti possono differire.[19] I limiti dei provider cambiano spesso da versione a versione; si raccomanda di consultare la documentazione aggiornata.[8][20]
  • Testi lunghi e ripetibilità. In una serie di esperimenti è stato dimostrato che il nucleus sampling riduce la tendenza alla degenerazione (ripetizioni, frasi stereotipate) rispetto a greedy/beam e a Top‑k fisso, specialmente su sequenze lunghe.[1][10]

Alternative moderne

Dopo la pubblicazione del nucleus sampling nel 2019 sono stati proposti diversi metodi alternativi di decodifica stocastica che sviluppano o integrano l'idea di Top‑p:

Campionamento Min‑p

Il campionamento Min‑p (Nguyen et al., 2024) mantiene i token la cui probabilità non è inferiore a pmin×P(x(1)), ovvero imposta una soglia relativa al token più probabile. Accettato per presentazione orale a ICLR 2025; implementato in diversi framework popolari, tra cui Hugging Face Transformers[21] e vLLM[22].[23]

La differenza chiave rispetto a Top‑p consiste nel tipo di soglia: Top‑p utilizza una soglia assoluta basata sulla somma cumulativa delle probabilità, mentre Min‑p stabilisce una soglia relativa, scalata dalla probabilità del token più probabile.[23]

Matematicamente l'algoritmo funziona come segue: a ogni passo viene determinata la probabilità massima Pmax=P(x(1)x1:i1), quindi viene calcolata la soglia scalata Pthreshold=pmin×Pmax. Nel pool finale entrano solo i token la cui probabilità individuale supera questa soglia.[24]

Ciò garantisce adattività: se il modello è sicuro della parola successiva (Pmax=0.9), con un valore base di pmin=0.1 la soglia sarà 0.09, escludendo rigidamente i token rumorosi. Se invece il modello è incerto (Pmax=0.1), la soglia scende a 0.01, ammettendo nel nucleo un'ampia varietà di candidati.[23]

Una debolezza nota di Top‑p si manifesta con il campionamento ad alta temperatura (T>1.0): quando la distribuzione viene artificialmente appiattita, Top‑p è costretto a includere nel nucleo un grande numero di token a bassa probabilità per raggiungere la somma cumulativa prefissata, il che può portare al degrado della coerenza.[23] Min‑p gestisce meglio tali condizioni. Negli esperimenti degli autori sui benchmark di conoscenza scientifica e logica (GPQA) con il modello Mistral Large a temperatura estrema T=3.0, l'algoritmo Min‑p ha mostrato un'accuratezza del 13.84%, mentre il Top‑p standard a 0.9 ha dato un risultato dello 0.89% — al livello del rumore casuale.[24]

Nel frattempo, in ambito accademico è in corso un dibattito: alcuni lavori critici (ad esempio arXiv:2506.13681) mettono in dubbio l'universalità dei vantaggi di Min‑p su tutte le metriche NLP, evidenziando la necessità di ulteriori studi.[25]

In parole semplici, Min-p confronta tutte le varianti non con la somma complessiva delle probabilità, ma con la variante più forte al passo corrente. Pertanto, se il modello è sicuro, elimina più rigidamente le continuazioni deboli, mentre se è incerto lascia più varianti ammissibili. Grazie a ciò, Min-p può mantenere meglio l'equilibrio tra coerenza e varietà, specialmente dove Top-p inizia a lasciar passare troppe parole deboli.

Locally typical sampling

Il locally typical sampling (Meister et al., 2023) seleziona i token il cui carico informativo (logP) è vicino all'entropia condizionale, basandosi sul concetto teorico-informativo di tipicità.[2]

A differenza di Top‑p, che mira a minimizzare la dimensione del nucleo scegliendo i token con probabilità massima, il Locally Typical Sampling risolve un problema di ottimizzazione basato su una metrica di distanza informativa. L'algoritmo calcola il contenuto informativo di ogni token (logP(x)) e misura la sua distanza assoluta dall'entropia condizionale H del modello. I token vengono classificati non per probabilità grezza, ma per il loro grado di «tipicità informativa» — vicinanza al contenuto informativo atteso del contesto. I token vengono aggiunti al nucleo (in ordine crescente di distanza dall'entropia) fino al raggiungimento della soglia di probabilità cumulativa.[2][26]

Conseguenza di questo approccio: in stati ad alta entropia, l'algoritmo esclude intenzionalmente non solo la coda rumorosa a bassa probabilità, ma anche le parole eccessivamente probabili che trasmettono troppo poca informazione e rendono il testo banale. Ciò riduce il rischio di degenerazioni cicliche e avvicina le metriche di ripetibilità del testo ai valori caratteristici dei testi scritti da esseri umani.[26]

Tail Free Sampling (TFS)

Il Tail Free Sampling (TFS) è un approccio meno formalizzato ma praticamente interessante per l'identificazione della coda rumorosa, basato sull'analisi differenziale dello spazio di probabilità. Se Top‑p e Min‑p operano sulle probabilità di primo ordine (somma cumulativa e frazioni di base), TFS analizza la prima e la seconda derivata della curva di probabilità ordinata. Il metodo è descritto nel blog di Trenton Bricken ed è implementato in alcuni motori di inferenza, sebbene non sia stato pubblicato come articolo sottoposto a revisione paritaria.[27]

Il postulato principale di TFS: l'inclusione anche di un solo token rumoroso nel campionamento rappresenta una minaccia esponenziale per l'intera generazione autoregressiva. Calcolando la seconda derivata dei valori di probabilità, l'algoritmo individua i «plateau» — aree della curva in cui la caduta delle probabilità rallenta e si trasforma in una lunga coda piatta. Il punto di questa inflessione diventa il confine dinamico di troncamento: i token prima di esso sono considerati semanticamente sicuri, mentre l'intera coda viene rimossa.[27]

Nonostante l'eleganza matematica, TFS richiede costi computazionali più intensi per il calcolo delle derivate in tempo reale, per cui nei prodotti commerciali di massa cede il passo ad algoritmi più leggeri.[27]

p‑less sampling

p‑less sampling — un metodo che libera completamente l'ingegnere dalla necessità di regolare gli iperparametri di troncamento.[28] Il problema fondamentale di tutti i metodi precedenti — da Top‑k e Top‑p fino a Min‑p — consiste nella dipendenza da iperparametri statici, i cui valori richiedono una regolazione esperta e possono essere ottimali per un compito (scrittura creativa) ma inadatti per un altro (programmazione).[29]

L'algoritmo p‑less, radicato nella teoria dell'informazione, genera dinamicamente una soglia di troncamento unica a ogni passo di decodifica, analizzando in tempo reale la topologia interna dell'intera distribuzione di probabilità. Gli autori riferiscono di una robustezza del metodo alle fluttuazioni di temperatura (temperature robustness): all'aumentare della temperatura i metodi tradizionali possono degradarsi significativamente, mentre p‑less mantiene una qualità stabile. Inoltre, rinunciando alla logica di scansione cumulativa e di rinormalizzazione di nuclei ampi, il metodo, secondo i dati degli autori, fornisce una maggiore efficienza computazionale nella fase di inferenza e genera risposte più compatte senza perdita di accuratezza sui dataset di matematica, logica e scrittura creativa.[29][28]

η‑campionamento

L'η‑campionamento (Hewitt et al., 2022) utilizza una soglia di probabilità dipendente dall'entropia, adattandosi ai contesti a bassa entropia in cui Top‑p può troncare eccessivamente.[30]

Vedi anche

  • Temperatura
  • Modelli linguistici di grandi dimensioni

Letteratura

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

Note

  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]