Un modello di linguaggio non legge parole ma token, frammenti di testo che possono corrispondere a una parola intera, a metà parola o a un singolo carattere. La frase “The context window” viene suddivisa in 3 token dal tokenizzatore di OpenAI, mentre la sua traduzione italiana “La finestra di contesto” ne richiede 6. Nei testi lunghi, la differenza si stabilizza tra il 15 % e il 23 % in più per l’italiano, e questo si traduce in un doppio costo: in denaro e in spazio occupato nella finestra di contesto.

Cos’è un LLM e come utilizza i token

Un LLM (Large Language Model), il tipo di modello alla base di ChatGPT, Claude, Gemini e dei modelli aperti come Llama o Qwen, è una rete neurale addestrata a prevedere il token successivo di una sequenza. Ogni operazione – dalla risposta in chat al riassunto di un PDF – passa per questo meccanismo: il testo viene suddiviso in token, ogni token viene convertito in un numero, il modello calcola quale numero dovrebbe venire dopo e il risultato viene trasformato nuovamente in testo.

La finestra di contesto (context window) è il numero massimo di token che il modello può considerare in una singola chiamata, includendo istruzioni, conversazione, documenti allegati e la risposta generata. Questa limitazione è fondamentale per determinare:

    • Il costo di una chiamata API.
    • Quanta informazione può essere inserita in una chat prima che il modello inizi a tralasciare parti.
    • Perché una sottoscrizione si esaurisce più rapidamente del previsto.

Metodologia delle misurazioni

Le misurazioni di questa guida sono state effettuate con i tokenizzatori ufficiali di OpenAI e con quelli pubblicati su Hugging Face dai produttori dei modelli aperti. I prezzi e le dimensioni delle finestre provengono dalle pagine ufficiali dei produttori, consultate il 29 ottobre 2026.

Strumenti pratici per visualizzare i token

Il Tokenizer di OpenAI è gratuito, funziona direttamente dal browser e non richiede un account: basta incollare una frase e i token vengono evidenziati uno per uno. Google AI Studio, invece, mostra il conteggio dei token di Gemini mentre si scrive il prompt, ma richiede un account Google.

TL;DR per chi ha cinque minuti

    • Scrivere in italiano costa più: lo stesso testo richiede un 15 % più di token con il tokenizzatore di OpenAI e un 22‑23 % con Llama 3 e Qwen 3.
    • Una finestra di un milione di token è ormai lo standard; Claude 5.5, GPT‑6 e Gemini 4 Argon la offrono tutti, ma oltre una certa soglia OpenAI e xAI raddoppiano il prezzo dell’input.
    • Il output è la parte più costosa: nei modelli di fascia alta un token generato costa cinque volte uno letto.
    • La cache riduce i costi per documenti ripetuti: con Claude Sonnet 5.5, rileggere un testo già memorizzato in cache costa il 5 % del prezzo completo.
    • Una finestra grande non garantisce che il modello sfrutti tutto: le informazioni al centro di un contesto lungo vengono recuperate peggio rispetto a quelle all’inizio e alla fine.

Dettagli sulla tokenizzazione

Un token è la minima unità di testo che un LLM legge e scrive: una sequenza di caratteri a cui il tokenizzatore assegna un numero intero, prelevato da un vocabolario fisso che oggi conta tra 100 000 e 200 000 voci. Le parole comuni in inglese di solito corrispondono a un solo token; le parole rare o straniere vengono suddivise in due, tre o più pezzi.

Esempi pratici con il tokenizzatore o200k_base

Alcuni esempi misurati con o200k_base, il tokenizzatore usato da OpenAI dalla famiglia GPT‑4o in poi, illustrano chiaramente la differenza.

    • “tokenization” → token + ization
    • “tokenizzazione” → token + izzazione
    • “precipitevolissimevolmente” (la parola più lunga dei dizionari italiani) → 7 token: prec, ip, ite, vol, issime, vol, mente
    • Un cognome poco comune richiede 3 token.
    • Un emoji = 1 token.
    • “2026” = 2 token (202 + 6), perché i numeri vengono suddivisi in gruppi di tre cifre.

Dettagli apparentemente minori hanno un impatto: lo spazio prima di una parola fa parte del token (“ context” con spazio è diverso da “context” senza spazio) e le maiuscole/minuscole generano token distinti (“ciao”, “Ciao” e “CIAO” sono tre coppie diverse). Per il modello, le lettere non esistono: esistono solo i numeri associati ai token.

Conversioni approssimative

Google indica nella documentazione di Gemini che un token corrisponde a circa 4 caratteri e che 100 token equivalgono a 60‑80 parole inglesi. Le misurazioni di questa guida confermano questi valori: con o200k_base il testo inglese ha circa 1,48 token per parola, mentre l’italiano ne richiede 1,66. La differenza percentuale è descritta nella sezione successiva.

Il meccanismo BPE (Byte Pair Encoding)

Quasi tutti i tokenizzatori moderni derivano dal Byte Pair Encoding (BPE), un algoritmo di compressione introdotto da Philip Gage nel 1994 e adattato al linguaggio da Rico Sennrich e colleghi nel 2016 per la traduzione automatica di parole rare. Il processo è semplice:

    • Si parte da un vocabolario minimo (i 256 byte possibili).
    • Si conta quale coppia di simboli adiacenti appare più spesso nel testo di addestramento.
    • Si fonde quella coppia in un nuovo simbolo.
    • Si ripete l’operazione migliaia di volte finché il vocabolario non raggiunge la dimensione prefissata.

Il risultato dipende completamente dal corpus usato per l’addestramento. Se il corpus è prevalentemente inglese, le fusioni favoriranno sequenze inglesi (“ the”, “ context”, “ window” diventano un unico token), mentre parole italiane come “finestra” rimarranno suddivise in “ fines” + “tra”. Lo stesso vale per sigle mediche o termini specialistici, che verranno tokenizzati secondo la frequenza nel dataset di partenza.

Dimensioni dei vocabolari

I vocabolari dei tokenizzatori sono cresciuti notevolmente negli ultimi anni. Ecco alcune dimensioni rilevanti, lette direttamente dai file dei tokenizzatori:

    • cl100k_base (GPT‑4 e GPT‑3.5) = 100 277 voci.
    • o200k_base = 200 019 voci.
    • Llama 3 (Meta) = 128 256 voci.
    • Qwen 3 (Alibaba) = 151 669 voci.
    • DeepSeek‑V3 = 128 815 voci.
    • Mistral Nemo = 131 072 voci.

Un vocabolario più ampio consente di rappresentare più parole intere non inglesi e più caratteri di alfabeti diversi, riducendo il numero di token necessario per lo stesso testo. Tuttavia, il modello deve gestire una matrice di embedding più grande, il che implica maggiori costi di calcolo e memoria.

Pre‑tokenizzazione e tokenizzazione a livello di byte

Prima della fase di fusione BPE, la maggior parte dei tokenizzatori esegue una pre‑tokenizzazione: un’espressione regolare divide il testo in parole, numeri, spazi e segni di punteggiatura. Il BPE opera solo all’interno di questi blocchi, perciò un token quasi mai attraversa il confine tra due parole e i numeri vengono raggruppati in gruppi di tre cifre.

I tokenizzatori “byte‑level”, come quelli di OpenAI e Llama, operano sui byte UTF‑8 anziché sui caratteri, garantendo che qualsiasi testo, in qualsiasi alfabeto, possa essere codificato, anche nel caso peggiore di una codifica byte per byte.

Risorse didattiche

Per chi desidera approfondire il funzionamento interno, Andrej Karpathy (ex direttore AI di Tesla e co‑fondatore di OpenAI) ha realizzato una lezione di oltre due ore in cui costruisce da zero un tokenizzatore BPE in Python. Il video è disponibile su YouTube.

Perché l’italiano richiede più token

L’italiano costa più token dell’inglese perché i tokenizzatori sono addestrati principalmente su corpora anglofoni. Di conseguenza, le sequenze di caratteri tipiche dell’italiano non vengono fuse con la stessa frequenza, portando a una tokenizzazione più frammentata. Inoltre, l’italiano ha una morfologia più ricca, con molte forme verbali e aggettivali composte, che aumentano il numero di suddivisioni necessarie.

Implicazioni economiche

Le differenze di token influiscono direttamente sui costi delle API. In modelli di fascia alta, il prezzo per token di input è di solito inferiore a quello per token di output (generato). Poiché l’italiano richiede più token di input, la spesa totale per una stessa richiesta è maggiore. Inoltre, se la finestra di contesto è limitata, occorre ridurre il contenuto o suddividerlo in più chiamate, aumentando ulteriormente i costi.

Strategie per ottimizzare l’uso dei token

Per contenere i costi e massimizzare l’efficacia dei LLM, è utile adottare alcune pratiche:

    • Riassumere o pre‑processare i testi lunghi prima di inviarli al modello.
    • Usare la cache dove possibile, specialmente per documenti PDF o manuali consultati più volte.
    • Limitare la lunghezza delle risposte, chiedendo risposte concise quando il contesto è ampio.
    • Monitorare il consumo di token tramite gli strumenti di conteggio offerti da OpenAI o Google AI Studio.
    • Scegliere modelli con vocabolari più ampi se si lavora frequentemente con lingue diverse dall’inglese.

Seguendo queste linee guida, è possibile ridurre l’impatto economico della tokenizzazione e sfruttare al meglio le capacità dei LLM, indipendentemente dalla lingua di partenza.