Temperature (LLM) (IT)

From Systems analysis Wiki
Jump to navigation Jump to search

Temperatura (ingl. Temperature) nel contesto dei grandi modelli linguistici (LLM) è un iperparametro che controlla il livello di casualità e «creatività» durante la generazione del testo. Regola la «nitidezza» o, al contrario, la «morbidezza» della distribuzione di probabilità del token successivo ad ogni passo di decoding. Manipolando la temperatura è possibile gestire il bilanciamento tra prevedibilità (coerenza) e varietà (creatività) del testo generato.

Spiegazione semplice

Temperatura è un parametro che stabilisce quanto cautamente o, al contrario, liberamente il modello scelga la parola successiva. Un grande modello linguistico quasi mai dispone di una sola continuazione possibile: di solito ad ogni passo esistono diverse opzioni adatte, ognuna con la propria probabilità. La temperatura non influisce sulle conoscenze del modello né su «ciò che esso sa», bensì su come esattamente esso scelga tra queste opzioni durante la generazione.

Con una temperatura bassa il modello si comporta in modo più conservativo. Si «fida» maggiormente delle parole più probabili e si discosta meno dalla continuazione più attesa. Di conseguenza il testo risulta generalmente più uniforme, prevedibile, formalmente corretto e coerente. Questa modalità è utile quando sono importanti la precisione delle formulazioni, la stabilità della risposta, la riproducibilità del risultato e la riduzione al minimo della variabilità superflua. Tuttavia questo approccio ha anche un lato negativo: il testo può diventare troppo standardizzato, piatto, monotono e talvolta eccessivamente «cauto». Con una temperatura troppo bassa il modello può persino cominciare a ripetere all'infinito le stesse costruzioni (cadere in un ciclo), «bloccandosi» sulle continuazioni più probabili ma non sempre appropriate.

Con una temperatura alta il modello si comporta in modo più audace. Ammette più spesso la scelta non solo delle parole più probabili, ma anche di quelle meno ovvie. In questo modo le risposte diventano più varie, vivaci, originali e talvolta più creative. Ciò può essere utile in compiti creativi, nel brainstorming, nella generazione di idee, nei testi letterari o nella ricerca di diverse formulazioni alternative. Ma insieme all'aumento della varietà cresce anche il rischio: il testo può diventare meno coerente, meno preciso e, nei casi estremi, strano, illogico o casuale.

Una comoda intuizione è che la temperatura sia non un regolatore delle conoscenze, ma un regolatore del rischio nella scelta delle parole. Una temperatura bassa costringe il modello a scegliere quasi sempre l'opzione «più sicura». Una temperatura alta gli permette di «rischiare» più spesso e di provare continuazioni meno ovvie.

Un'altra immagine utile: la temperatura può essere paragonata al modo in cui una persona risponde a una domanda. Se è richiesta una risposta ufficiale, precisa e accurata, la persona di solito sceglie le formulazioni più neutrali e attese — questo è simile a una temperatura bassa. Se invece il compito consiste nell'inventare un'idea insolita, una metafora, uno sviluppo narrativo o alcune opzioni non convenzionali, le formulazioni diventano più libere e audaci — questo è simile a una temperatura alta.

La temperatura regola dunque il bilanciamento tra due proprietà della generazione:

  • prevedibilità e stabilità della risposta;
  • varietà e imprevedibilità delle formulazioni.

Quanto più bassa è la temperatura, tanto più il modello si avvicina alla continuazione più probabile e standard. Quanto più alta è la temperatura, tanto maggiore è lo spazio per la variabilità, ma tanto minore è il controllo sulla rigore e sulla coerenza del risultato.

Definizione teorica

Matematicamente, la temperatura (T) viene introdotta come divisore nella funzione softmax, che trasforma i logit di output del modello (ui) in una distribuzione di probabilità (Pi). La formula è la seguente:

Pi(T)=eui/Tjeuj/T

Dove:

  • Pi(T) — la probabilità finale del i-esimo token alla temperatura T.
  • ui — il logit (punteggio non normalizzato) per il i-esimo token, prodotto dal modello.
  • T — il parametro di temperatura (numero strettamente positivo). Ad esempio, nell'API OpenAI per la maggior parte dei modelli il range ammissibile va da 0 a 2.0, dove 0 è il caso speciale di greedy decoding (vedi sotto). In altre librerie (Hugging Face Transformers, llama.cpp) la temperatura può assumere qualsiasi valore positivo.

Importante: la temperatura influisce sull'output solo nelle modalità con sampling. Nelle modalità senza sampling (greedy decoding, beam search classico) il parametro di temperatura non ha effetto. Ad esempio, in Hugging Face Transformers per il funzionamento della temperatura è necessario abilitare do_sample=True.

Influenza del valore della temperatura

  • T=1 (valore standard): La distribuzione di probabilità rimane invariata. Si tratta del softmax standard che riflette le predizioni originali del modello.
  • T<1 (temperatura bassa, ad esempio 0.20.7): La distribuzione diventa più appuntita o peaked. Le probabilità dei token più probabili aumentano, quelle dei token meno probabili diminuiscono. Questo rende la generazione più deterministica e prevedibile. Il modello sceglie più spesso parole ovvie e ad alta frequenza, il che aumenta la coerenza e la correttezza grammaticale del testo, ma ne riduce la varietà.
  • T>1 (temperatura alta, ad esempio 1.11.5): La distribuzione diventa più morbida o uniforme. La differenza tra le probabilità dei token si attenua, aumentando la possibilità di selezionare token meno probabili (e più «inaspettati»). Questo rende il testo più creativo, vario e imprevedibile, ma aumenta il rischio di generare frasi incoerenti o grammaticalmente errate.

Casi limite

  • T0: Al limite, quando la temperatura tende a zero, la funzione softmax si trasforma in argmax. Il modello sceglierà sempre il token con il logit più alto. Questa modalità è equivalente al greedy decoding ed è completamente deterministica. Porta spesso a testi ripetitivi e standardizzati. Nota: il valore T=0 non può essere inserito direttamente nella formula (divisione per zero); in molte implementazioni viene gestito come una modalità speciale di scelta massimamente conservativa, vicina al greedy decoding. Tuttavia non tutte le hosted API garantiscono la completa determinismo con T=0 — ad esempio, nell'API Anthropic anche con temperatura zero i risultati possono variare leggermente.
  • T: Quando la temperatura tende all'infinito, la distribuzione di probabilità diventa uniforme. Tutti i token nel vocabolario diventano equiprobabili e il modello genera un «flusso di coscienza» casuale, perdendo completamente la coerenza. In pratica l'infinito non è necessario: già con T>2.0 la distribuzione diventa quasi uniforme e il testo si trasforma in un insieme incoerente di token.

Applicazione pratica e raccomandazioni

La scelta corretta della temperatura è fondamentale e dipende dal compito specifico. Gli intervalli indicati di seguito sono euristiche approssimative — i valori ottimali possono variare significativamente in base al modello specifico, al dominio e al compito.

  • Per compiti creativi (scrittura di racconti, poesie, slogan di marketing):
    • Si raccomanda una temperatura più alta (T0.71.2).
    • Questo stimola il modello a generare idee più inaspettate e creative, a utilizzare un lessico vario e a evitare frasi standardizzate.
  • Per compiti che richiedono precisione e accuratezza fattuale (risposta a domande, riassunto, generazione di codice):
    • Si raccomanda una temperatura bassa (T0.00.4).
    • Questo riduce la variabilità e aumenta la riproducibilità del risultato, spingendo il modello ad attenersi alle continuazioni di testo più probabili. Con T=0 la generazione diventa deterministica (con seed fisso e in assenza di altre fonti di casualità), il che è utile per il testing e il debugging, ma può mascherare problemi che si manifestano solo con il sampling. Tuttavia una temperatura bassa di per sé non garantisce la precisione fattuale — se il modello non dispone della conoscenza necessaria, può generare con sicurezza una risposta errata. Per la massima accuratezza fattuale si raccomanda di combinare la temperatura bassa con metodi di ricerca su base di conoscenza (RAG) e un prompting migliorato. Nella documentazione OpenAI per i compiti di estrazione di dati e risposte fattuali è raccomandato T=0.
  • Per compiti di reasoning, matematica e generazione di codice:
    • Di norma si utilizzano temperature più basse, tuttavia il valore ottimale dipende notevolmente dal modello e dal compito specifici.
    • Nota: in alcuni modelli di reasoning (ad esempio la famiglia OpenAI o1/o3) i parametri di sampling possono essere limitati o fissi lato provider. Il chain-of-thought interno richiede una distribuzione stabile, pertanto i provider possono bloccare completamente la modifica della temperatura o accettare valori utente solo in un intervallo ristretto.
  • Per sistemi di dialogo e chatbot:
    • Si raccomanda una temperatura moderata (T0.50.8).
    • Questo permette di trovare un equilibrio: le risposte rimangono coerenti e pertinenti, ma non diventano troppo piatte e monotone.

Nota: nella documentazione dell'API OpenAI si raccomanda di modificare o temperature, o top_p, ma non entrambi i parametri contemporaneamente — altrimenti il comportamento diventa difficile da prevedere. Negli esempi di riferimento dell'API OpenAI come valore predefinito compare di solito T=1.0.

Confronto con Top-k e Top-p

La temperatura, a differenza dei metodi di troncamento come Top-k e Top-p (nucleus sampling), funziona in modo diverso:

  • La temperatura ridistribuisce le probabilità tra tutti i token nel vocabolario, ma non ne esclude nessuno. Anche con una temperatura molto bassa i token poco probabili mantengono una possibilità minima ma non nulla di essere selezionati.
  • Top-k e Top-p introducono un troncamento rigido, escludendo completamente i token che non rientrano nel nucleo di campionamento. Tale troncamento riduce il rischio di selezionare token dalla coda della distribuzione, ma è di per sé un'euristica approssimativa e può scartare continuazioni plausibili con probabilità «vera» non nulla.

In pratica questi parametri vengono spesso utilizzati congiuntamente. Ad esempio, si può impostare una temperatura moderata (ad esempio T=0.8) per lo stile generale e aggiungere Top-p (ad esempio p=0.9) per tagliare la «coda» della distribuzione e ridurre il rischio di errori grossolani. Con una temperatura molto bassa (T0) Top-p perde praticamente di senso, poiché la distribuzione ha già di per sé un solo picco significativo.

Interazione della temperatura con altri parametri di decoding

La temperatura quasi mai viene utilizzata in isolamento. In pratica viene combinata con altri iperparametri per una regolazione fine del bilanciamento «creatività ↔ affidabilità».

Ordine tipico di applicazione dei parametri

Nelle implementazioni di sampling più diffuse (in particolare Hugging Face Transformers) i parametri vengono generalmente applicati nel seguente ordine:

  1. Il modello produce logit grezzi (ui).
  2. Vengono applicati penalità per le ripetizioni (repetition / frequency / presence penalty) — modifica dei logit in base ai token già generati.
  3. La temperatura scala i logit: ui/T.
  4. Viene applicato il softmax → si ottiene una nuova distribuzione di probabilità.
  5. Troncamento (truncation): prima Top-k (se specificato), poi Top-p o Min-p.
  6. Dal «nucleo» rimanente avviene il campionamento casuale (sampling).

In questo schema tipico la temperatura modifica la forma della distribuzione dopo l'applicazione delle penalità per le ripetizioni, ma prima del softmax e del filtraggio. Pertanto la stessa top_p=0.9 con T=0.2 e con T=1.5 produce dimensioni del «nucleo» completamente diverse. Le penalità e la temperatura interagiscono in modo non lineare — questo è importante da tenere a mente nella selezione dei parametri. L'ordine interno di applicazione nelle hosted API (OpenAI, Anthropic) non è documentato pubblicamente a questo livello di dettaglio.

Top-p (nucleus sampling) e Min-p

Min-p (minimum probability sampling) è un metodo di troncamento relativamente recente che imposta una soglia minima di probabilità rispetto al token più probabile (di solito 0.05–0.1). A differenza di Top-p, taglia i token tramite una soglia relativa (ancorata alla probabilità del token migliore, non a una massa cumulativa fissa), il che è particolarmente efficace con temperature alte (>0.8): impedisce la selezione di token del tutto inadeguati senza una perdita significativa di varietà. Min-p è supportato da diversi popolari inference stack open-source, tra cui vLLM e llama.cpp.

Repetition / Frequency / Presence penalty

Frequency_penalty e presence_penalty (API OpenAI) riducono la probabilità di ripetere token già comparsi. Possono compensare uno degli svantaggi della temperatura bassa — la tendenza alla standardizzazione e ai cicli.

Typical sampling e Mirostat

Typical sampling (Meister et al., 2023) seleziona token la cui probabilità è vicina all'entropia «attesa» del contesto. Mirostat (v2) adatta dinamicamente i parametri di troncamento affinché la perplexity target rimanga costante — questo è utile per testi lunghi dove la stabilità dello stile è critica.

Esempi illustrativi di configurazione

Di seguito sono riportate configurazioni indicative per vari tipi di compiti. Questi valori non costituiscono raccomandazioni di uso generale — i parametri ottimali dipendono dal modello specifico, dal compito e dall'inference stack.

Compito Temperatura Possibile combinazione Logica
Factual Q&A, riassunto 0.0–0.3 T + top_p=0.9 Minimizzazione della variabilità casuale
Generazione di codice, matematica 0.1–0.4 T + repetition_penalty Stabilità + evitare cicli
Dialoghi / chatbot 0.6–0.85 T + top_p=0.92 o min_p=0.1 Equilibrio tra naturalezza e coerenza
Creatività (racconti, marketing) 0.75–1.1 T + min_p=0.07–0.1 Varietà con filtraggio della coda
Long-form / agenti 0.5–0.8 Mirostat o T + frequency_penalty Controllo di lunghezza e coerenza

Consiglio generale: è preferibile non modificare contemporaneamente in modo significativo temperature e top_p. Di solito è più conveniente fissare uno dei parametri di troncamento e gestire la creatività tramite la temperatura — questo rende il comportamento del modello più prevedibile.

Caratteristica dei moderni modelli allineati: nei modelli fortemente allineati (che hanno subito RLHF / Constitutional AI / RLAIF) l'effetto della temperatura alta è attenuato rispetto ai modelli base — il modello genera meno spesso testo incoerente anche con T=1.2. I valori ottimali specifici possono cambiare con l'uscita di nuove generazioni di modelli; le raccomandazioni riportate sopra sono aggiornate al 2025–2026.

Vedi anche

  • Grandi modelli linguistici

Bibliografia

  • Holtzman, A. et al. (2020). The Curious Case of Neural Text Degeneration. arXiv:1904.09751.
  • Caccia, M. et al. (2018). Language GANs Falling Short. arXiv:1811.02549.
  • Fan, A. et al. (2018). Hierarchical Neural Story Generation. arXiv:1805.04833.
  • Meister, C. et al. (2023). Locally Typical Sampling. arXiv:2202.00666.
  • Hewitt, J.; Manning, C.; Liang, P. (2022). Truncation Sampling as Language Model Desmoothing. arXiv:2210.15191.
  • Su, Y.; Collier, N. (2022). Contrastive Search Is What You Need for Neural Text Generation. arXiv:2210.14140.
  • O'Brien, S.; Lewis, M. (2023). Contrastive Decoding Improves Reasoning in Large Language Models. arXiv:2309.09117.
  • Finlayson, M. et al. (2023). Closing the Curious Case of Neural Text Degeneration. arXiv:2310.01693.
  • Shi, C. et al. (2024). A Thorough Examination of Decoding Methods in the Era of Large Language Models. arXiv:2402.06925.
  • Ravfogel, S. et al. (2023). Conformal Nucleus Sampling. arXiv:2305.02633.
  • Sen, J. et al. (2025). Advancing Decoding Strategies: Enhancements in Locally Typical Sampling for LLMs. arXiv:2506.05387.
  • Basu, S. et al. (2021). Mirostat: A Perplexity-Controlled Neural Text Decoding Algorithm. arXiv:2007.14966.
  • Nguyen, M. N. et al. (2025). Turning Up the Heat: Min-p Sampling for Diverse and High-Quality Text Generation. arXiv:2407.01082.
  • Renze, M.; Guven, E. (2024). The Effect of Sampling Temperature on Problem Solving in Large Language Models. arXiv:2402.05201.
  • Zhang, S. et al. (2024). EDT: Improving Large Language Models' Generation by Entropy-based Dynamic Temperature Sampling. arXiv:2403.14541.
  • Li, L. et al. (2025). Exploring the Impact of Temperature on Large Language Models: Hot or Cold?. arXiv:2506.07295.