Intermedio 11 minConfigurazione

Temperatura, top-p, top-k: i parametri

Risposta diretta

Il top-p (nucleus sampling) mantiene solo i token più probabili la cui probabilità cumulata raggiunge p, ad esempio 0,9. Il top-k mantiene un numero fisso di candidati, ad esempio 40. La temperatura regola la casualità del campionamento: quando è vicina a 0, il modello sceglie quasi sempre il token più probabile. Ollama parte con una temperatura di 0,8, top-k 40 e top-p 0,9.

Tre valori ricorrono in tutte le impostazioni di un modello locale: temperatura, top-p e top-k. Questa guida spiega cosa ciascuno rimuove o sposta nell'elenco delle parole possibili, con un esempio numerico, i valori predefiniti di Ollama e di llama.cpp, le raccomandazioni pubblicate dai produttori dei modelli e il modo di applicarle.

Di Mohamed Meguedmi·Agg. 2026-09-29·Testato su Windows, macOS e Linux

#Top-p, top-k, temperatura: la definizione in una tabella

Per ogni parola generata, un modello calcola una probabilità per ogni token del suo vocabolario. I parametri di sampling decidono poi quale estrarre. Top-p e top-k riducono la lista dei candidati; la temperatura modifica la differenza tra probabili e improbabili. Nessuno aggiunge conoscenza al modello: regolano soltanto la varietà e il rischio.

Cosa fa ogni parametro
ParametroSu cosa agisceValore bassoValore altoValore predefinito di Ollama
temperatureDifferenza tra token probabili e improbabiliRisposte più deterministichePiù varietà, più errori0,8
top_pDimensione della lista, definita dalla probabilità cumulataElenco breve, output conservativoElenco ampio, maggiore diversità0,9
top_kNumero massimo di candidatiPochi candidatiTanti candidati40
min_pSoglia relativa alla probabilità massimaFiltraggio leggeroFiltraggio forte0,0 (disattivato)
repeat_penaltyPenalità sui token utilizzati di recentePiù ripetizioniMeno ripetizioni, rischio di stranezze1,0 (disattivato)

Questi valori predefiniti provengono dalla documentazione di riferimento del Modelfile di Ollama. Molti modelli specificano valori propri nel loro file di configurazione, che sostituiscono questi valori predefiniti: da qui l'utilità di leggere la scheda del modello, come vedremo più avanti.

#Come un LLM sceglie la prossima parola

Il kit IA Locale

Il tuo ChatGPT privato e gratuito sulla tua macchina in 1 ora — LM Studio, Ollama, Open WebUI, i tuoi documenti, senza cloud.

  • Spazio online a vita
  • PDF + file
  • Aggiornamenti a vita

Il modello produce, per ogni posizione, una distribuzione di probabilità su tutto il suo vocabolario. Scegliere sempre il token più probabile, una procedura detta decodifica greedy, produce testi piatti, ripetitivi e talvolta bloccati in un ciclo. Si introduce quindi un'estrazione casuale, regolata dai parametri di campionamento. Un seme fisso (seed) rende questa estrazione riproducibile: la documentazione di Ollama precisa che un dato seme produce lo stesso testo per lo stesso prompt.

L'ordine in cui vengono applicati i filtri conta. In llama.cpp, il motore di inferenza GGUF utilizzato in particolare da LM Studio, l'ordine predefinito è: penalità, DRY, top-n sigma, top-k, typical-p, top-p, min-p, XTC e infine la temperatura. In altre parole, top-k e top-p agiscono sulle probabilità originarie e la temperatura serve solo a campionare tra le opzioni rimaste. Molti tutorial affermano il contrario; l'ordine effettivo può variare da un motore all'altro e in llama.cpp si può impostare tramite il parametro --samplers.

i
Ciò che cambia per te
Poiché in llama.cpp la temperatura si applica dopo i filtri, aumentarla non reintroduce token assurdi che top-k o top-p avevano già escluso: ridistribuisce le probabilità tra i candidati rimasti.

#Un esempio numerico: ciò che ogni impostazione conserva

Prendiamo sette candidati per la parola successiva, con le loro probabilità: 0,45 ; 0,25 ; 0,12 ; 0,08 ; 0,05 ; 0,03 ; 0,02. Questa tabella è un calcolo illustrativo, non una misura su un modello reale.

Quali candidati rimangono, secondo il filtro
FiltroRegolaCandidati conservatiProbabilità coperta
NessunoTutto il vocabolario7100 %
top_k = 3I migliori 3382 %
top_p = 0,9Ci si ferma quando la somma cumulativa raggiunge 0,904 (0,45 + 0,25 + 0,12 + 0,08)90 %
top_p = 0,7Totale di 0,70270 %
min_p = 0,1Conservare i token con una probabilità superiore al 10 % di quella del token più probabile, ossia una soglia di 0,045595 %

Punto da ricordare: top-k mantiene sempre lo stesso numero di candidati, indipendentemente dalla situazione; top-p e min-p si adattano. Quando il modello è molto sicuro (un token a 0,95), top-p potrebbe conservare solo uno o due candidati; quando esita tra dieci parole, ne conserva di più. Per questo motivo top-p è spesso preferito a top-k.

#1. Temperatura: il pulsante della casualità

Prima del campionamento, la temperatura divide i logit del modello. A bassa temperatura, il divario tra i token aumenta: il più probabile prevale nettamente sugli altri. Ad alta temperatura, il divario si riduce. A 0, il modello sceglie sempre il token più probabile e produce output identici a ogni prova, come conferma la documentazione di llama.cpp.

Effetto della temperatura sull'esempio precedente (calcolo illustrativo)
CandidatoProbabilità inizialeT = 0,5T = 1,5
1er45 %70 %34 %
2e25 %22 %23 %
3e12 %5 %14 %
4e8 %2 %11 %
5e à 7eIl 10 % in totale1,3 %17,8 %
0 à 0,3
Estrazione, classificazione, riassunto fedele: vuoi la stessa risposta ogni volta.
0,4 à 0,7
Redazione tecnica, traduzione, supporto: varietà senza deriva.
0,8
Valore predefinito di Ollama e di llama.cpp: conversazione generale.
1 o più
Creatività, brainstorming; maggiore rischio di errori e digressioni.
!
Temperatura 0: non sempre la migliore idea per il codice
Per gli output da sottoporre a parsing (JSON, classificazione), una temperatura bassa è ragionevole. Ma gli sviluppatori dei modelli di ragionamento raccomandano spesso valori più elevati: la scheda di Qwen3.5 indica 0,6 per il codice in modalità ragionamento e 1,0 per le attività generali. Leggi la scheda prima di imporre 0.

#2. Top-p: il filtro adattivo

Top-p, o nucleus sampling, mantiene i token più probabili finché la loro probabilità cumulata raggiunge p. Con 0,9 si scarta la coda che rappresenta il 10 % della probabilità; con 1,0 non si filtra nulla. La documentazione di Ollama ricorda che un valore più alto, ad esempio 0,95, produce un testo più vario, mentre un valore più basso, ad esempio 0,5, produce un testo più mirato e conservativo.

0,5 à 0,7
Molto conservatore: risposte sicure, a volte monotone.
0,9
Valore predefinito di Ollama: taglia la coda senza soffocare la varietà.
0,95
Valore predefinito di llama-server, e valore consigliato da diverse schede dei modelli.
1,0
Filtro disattivato: resta solo la temperatura ad agire.

#3. Top-k: limite fisso

Top-k conserva solo i k token più probabili. La documentazione di Ollama descrive questo parametro come un modo per ridurre la probabilità di generare contenuti senza senso: con un valore più alto (100), le risposte sono più varie; con un valore più basso (10), sono più conservative. Il suo valore predefinito è 40, come in llama.cpp, dove 0 lo disattiva.

Top-k, top-p o min-p: quale usare
FiltroVantaggioLimiteQuando usarlo
top_kSemplice, limita il calcoloIgnora la forma della distribuzione: troppi candidati quando il modello è sicuro, troppo pochi quando esitaGuardrail ampio (da 20 a 100)
top_pSi adatta al livello di confidenza del modelloPuò lasciare passare una coda lunga se la distribuzione è piattaImpostazione principale per la diversità
min_pSoglia relativa alla probabilità massima, stabile anche a temperatura elevataMeno conosciuto, non attivo per impostazione predefinita in OllamaAlternativa a top_p, spesso con temperatura più alta

Per la query «top p vs top k»: usa top-p come impostazione principale, mantieni top-k come misura di protezione e non modificare entrambi nella stessa prova, altrimenti non saprai quale abbia prodotto la differenza.

#Valori predefiniti e raccomandazioni dei fornitori

I valori predefiniti di un motore sono un compromesso generico. Gli editori dei modelli pubblicano spesso valori adatti ai propri modelli, che possono discostarsi da quelli predefiniti. Ecco cosa raccomanda la scheda di Qwen3.5 per i suoi modelli, da confrontare con i valori predefiniti di Ollama (temperatura 0,8, top-p 0,9, top-k 40).

Impostazioni raccomandate nella pagina di Qwen3.5-9B su Hugging Face
ModalitàTemperaturatop_ptop_kpresence_penalty
Ragionamento, compiti generali1,00,95201,5
Ragionamento, codice preciso0,60,95200,0
Senza ragionamento, compiti generali0,70,8201,5

Questi valori valgono per questa famiglia di modelli, non per tutti. Le schede di altri editori riportano valori diversi: cerca la sezione sui parametri di campionamento consigliati nella scheda Hugging Face o nella pagina del modello nella libreria Ollama. La scheda di Qwen precisa anche che il supporto di questi parametri varia in base al motore di inferenza.

#Penalità: ripetizione, frequenza, presenza

I modelli locali, soprattutto quelli piccoli o fortemente quantizzati, a volte ripetono in continuazione le stesse frasi. Le penalità sono il rimedio, ma i loro valori predefiniti sono spesso poco conosciuti. In Ollama, repeat_penalty vale 1,0 per impostazione predefinita, quindi la penalità è disattivata; la documentazione indica 1,5 come esempio di un valore che penalizza più fortemente. Il valore 1,1 spesso citato è una scelta da fare, non un valore predefinito.

repeat_penalty
Penalizza i token visti di recente; repeat_last_n (64 per impostazione predefinita) definisce la finestra considerata.
frequency_penalty
Penalità proporzionale al numero di occorrenze, per le generazioni lunghe.
presence_penalty
Penalità applicata non appena un token è comparso, per incoraggiare un vocabolario più vario; Qwen raccomanda 1,5 in diverse sue modalità, con il rischio di mescolare le lingue se il valore è troppo alto.
→
Aumentare le penalità a piccoli incrementi
Una penalità forte spinge il modello verso parole rare o inaspettate. Aumenta repeat_penalty con incrementi da 0,05 a 0,1 e fermati non appena scompaiono le ripetizioni cicliche.

#Applicare questi parametri in Ollama

Esistono due metodi: un Modelfile, che assegna valori a un modello denominato, o il campo options di una richiesta API, che accetta gli stessi parametri del Modelfile. Il Modelfile è adatto all'uso quotidiano, l'API a un programma.

Modelfile: un modello personalizzato
FROM llama3.2
PARAMETER temperature 0.3
PARAMETER top_p 0.9
PARAMETER top_k 40
Creare e poi avviare questo modello
ollama create llama-precis -f ./Modelfile
ollama run llama-precis
Stessa impostazione in una richiesta API
curl http://localhost:11434/api/generate -d '{"model":"llama3.2","prompt":"Résume en une phrase : ...","stream":false,"options":{"temperature":0.3,"top_p":0.9}}'

Per approfondire i Modelfile (prompt di sistema, contesto, template), consulta la guida di personalizzazione. Per LM Studio e Jan, gli stessi parametri si impostano nel pannello di configurazione del modello.

#Modelli di ragionamento: non regolare tutto con la temperatura

I modelli di ragionamento producono una traccia di riflessione prima della risposta. Su Ollama, questi modelli espongono un campo di riflessione separato e i comandi disponibili variano in base al modello: la documentazione invita a interrogare l'API show per conoscere i valori accettati e il valore predefinito. Per gpt-oss, ad esempio, i livelli sono low, medium e high, con medium come valore predefinito.

Per ridurre i lanci inutili su una domanda semplice, agisci prima su questo livello di riflessione, quando esiste, piuttosto che sulla temperatura. La temperatura, invece, deve seguire la documentazione del modello: un ragionamento troppo freddo può bloccarsi, un ragionamento troppo caldo può dispersi.

#Preset iniziali per tipo di utilizzo

Valori di partenza da adattare, esclusi i modelli con raccomandazioni specifiche
UsoTemperaturatop_pAltri parametri
Estrazione, classificazione, JSON0 à 0,20,9Formato rigoroso richiesto nel prompt
Riassunto fedele0,2 à 0,30,9repeat_penalty leggermente superiore a 1
Conversazione generale0,7 à 0,80,9Impostazioni predefinite del motore
Scrittura, idee0,8 à 1,00,95presence_penalty moderata
Narrativa, creatività1,00,95Controllare le digressioni

Questi preset sono punti di partenza, non misurazioni. Modifica un parametro alla volta, esegui di nuovo tre volte lo stesso prompt e confronta: se i tre tentativi danno la stessa risposta mentre ti aspetti varietà, la temperatura è troppo bassa oppure il seed è fisso.

#Sintomi e impostazioni da provare

Il modello ripete la stessa frase
Attiva repeat_penalty con un valore intorno a 1,1 o presence_penalty, oppure accorcia la generazione con num_predict.
Risposte piatte e generiche
Aumenta la temperatura di uno scatto (da 0,7 a 0,9) o allenta il vincolo di top_p.
Il modello inventa fatti
Abbassa la temperatura, ma tieni presente che non basta: vedi la guida sulle allucinazioni.
JSON rotto
Temperatura bassa e formato richiesto esplicitamente; usa la modalità di output strutturato di Ollama quando è disponibile.
Mescolanza di lingue o parole strane
Diminuisci presence_penalty o repeat_penalty, o aumenta leggermente la quantizzazione del modello.
Domande frequenti su top-p, top-k e temperatura
Che cos'è il top-p in un LLM?+
Il top-p è un filtro che conserva solo i token più probabili la cui somma delle probabilità raggiunge la soglia p, ad esempio 0,9. Il resto viene escluso prima del campionamento. A differenza del top-k, il numero di candidati varia: pochi se il modello è sicuro, di più se esita.
Qual è la differenza tra top-p e top-k?+
Il top-k mantiene sempre un numero fisso di candidati, ad esempio 40, indipendentemente dalla situazione. Il top-p mantiene un numero variabile di candidati, in base alla probabilità cumulata. Il top-p si adatta quindi meglio al grado di sicurezza del modello; il top-k funge da semplice salvaguardia contro i token molto improbabili.
È necessario regolare temperatura e top-p contemporaneamente?+
È meglio modificare un solo parametro alla volta per capirne l'effetto. In pratica, lascia top-p e top-k ai loro valori predefiniti o a quelli indicati nella scheda del modello e regola la temperatura. Se modifichi più impostazioni contemporaneamente, non saprai quale abbia prodotto la differenza.
Quale temperatura per il codice?+
Per un modello senza ragionamento, un valore basso (da 0 a 0,2) dà output riproducibili. Per un modello con ragionamento, segui la scheda del produttore: quella di Qwen3.5 raccomanda 0,6 per ottenere codice preciso in modalità ragionamento. Fai delle prove sui tuoi casi e verifica che il codice compili o superi i tuoi test.
Quali sono i valori predefiniti in Ollama?+
La documentazione del Modelfile indica una temperatura di 0,8, un top-k di 40, un top-p di 0,9, un min-p di 0,0 (disattivato) e una penalità di ripetizione di 1,0 (disattivata). Un modello può contenere i propri valori e sostituire quelli indicati; ollama show --modelfile permette di visualizzarli.
Che cosa è min-p e serve usarlo?+
Il min-p elimina i token la cui probabilità è inferiore a una frazione di quella del miglior candidato: con un valore di 0,05 e una probabilità di 0,9 per il miglior token, la soglia è 0,045. Il min-p è un'alternativa al top-p ed è disattivato per impostazione predefinita in Ollama. Usalo solo se la scheda del modello lo raccomanda.
Questa guida ti è stata utile?

Un feedback, un errore, una precisazione? Facci sapere, così la guida migliora per tutti.