Mette in grassetto l'inizio di ogni parola, per scorrere il testo più in fretta.
Tema
Lingua
App
Il contesto in token
~ min di lettura
📋Riepilogo in 30 secondi
Un token è il pezzo di testo che il modello legge e su cui paghi, non una parola: in inglese circa quattro caratteri, in italiano un po’ di più.
La finestra di contesto è il tetto di token di una singola chiamata, e input e output se lo dividono. max_tokens prenota la parte per la risposta.
La conversazione che rimandi a ogni chiamata (senza stato, dalla lezione prima) cresce a ogni turno e consuma finestra: prima o poi la riempie.
Se superi la finestra l’API dà errore; la chat invece taglia o riassume i turni vecchi, ed è il motivo per cui “dimentica” l’inizio delle conversazioni lunghe.
Più token vuol dire più soldi e più lentezza: conta prima di mandare, e passa solo il testo che serve.
Un token è l’unità con cui il modello legge il testo e su cui ti fa pagare.
Non è una parola e non è un carattere: è un pezzo di parola. La finestra
di contesto è quanti token entrano in una singola chiamata, input e output
insieme. Sapere come funzionano queste due cose è quello che separa “gli
mando tutto e vediamo” da un sistema che regge sui costi e non si rompe sui
documenti lunghi.
Il modello non vede lettere né parole intere: vede token, cioè pezzi di
parola. Le parole comuni sono spesso un token solo; quelle lunghe o rare si
spezzano in più pezzi. Numeri, codice, punteggiatura fitta, emoji e lingue
che non usano l’alfabeto latino costano di più a parità di testo.
La regola spannometrica per l’inglese: circa quattro caratteri per token,
ovvero cento token ogni settantacinque parole. L’italiano ne consuma un po’
di più, perché le parole sono più lunghe e gli accenti pesano. “Cane” è un
token; “anticostituzionalmente” ne occupa parecchi. Ogni modello ha il suo
tokenizzatore, quindi il conto esatto cambia da modello a modello.
La finestra è il tetto: quanti token stanno in una chiamata. Input e output
condividono lo stesso budget. max_tokens, che hai visto nella prima
chiamata, prenota lo spazio per la risposta. Se la finestra è 200.000 token e
chiedi 4.000 token di risposta, ne restano circa 196.000 per tutto l’input.
I numeri cambiano spesso. Oggi i modelli vanno da circa cento o duecentomila
token fino a un milione su alcuni. Un milione di token sono circa
settecentocinquantamila parole, diversi libri. Per il valore preciso del
modello che usi, guarda la documentazione del provider: è uno dei parametri
che cambia più spesso.
La finestra non è un tetto per messaggio, è un totale corrente. Dentro ci
stanno quattro cose:
il system prompt, cioè le istruzioni di fondo, oggetto della prossima lezione;
la conversazione intera che rimandi a ogni chiamata (senza stato, come hai visto in Dalle chat alle API);
i documenti che alleghi;
le definizioni degli strumenti, se usi tool use.
La conseguenza pratica è che la conversazione cresce a ogni turno. Ogni
domanda e ogni risposta si aggiungono alla lista che rimandi, e a un certo
punto una chat lunga tocca il soffitto.
Via API, se l’input supera la finestra la chiamata torna con un errore, non
con una risposta troncata. Sta a te tenerti sotto il limite. È una cosa
diversa dal troncamento da max_tokens: quello taglia l’output a metà,
questo rifiuta l’input in partenza.
Nella chat il comportamento è un altro. Il prodotto taglia o riassume i
turni più vecchi per far stare la conversazione nella finestra. È il motivo
per cui una chat molto lunga “si dimentica” quello che avevi scritto
all’inizio: quei turni non sono più nel contesto.
// es. 14 63 -> 14 token in ingresso, 63 in uscita
Da qui, tre mosse per non riempire la finestra senza motivo.
Non buttare dentro tutto. Passa solo il testo rilevante alla domanda: un
documento intero quando ti serve un paragrafo è finestra sprecata e soldi
buttati. Quando i documenti sono troppi per starci, non li impacchetti
tutti, ne selezioni i pezzi giusti, ed è il tema di RAG: dare all’IA i tuoi
documenti.
Sulle conversazioni lunghe, quando ti avvicini al tetto riassumi i turni
vecchi in poche righe e riparti da quel riassunto, invece di rimandare ogni
volta l’intera storia.
Attento alla posizione. Sui contesti molto lunghi i modelli seguono meno
bene la parte centrale rispetto all’inizio e alla fine. Metti le istruzioni
e i dati chiave in cima o in fondo, non sepolti a metà di cento pagine.
Sai quanto testo ci sta e cosa lo riempie. Una delle cose che occupa la
finestra a ogni chiamata sono le istruzioni di fondo, quelle che valgono per
tutta la conversazione. Come si scrivono e dove si mettono è
la prossima lezione.