Home/ Wiki/ AI/ Token e Tokenizzazione

Token e Tokenizzazione

I modelli non leggono parole: leggono token. Capire cosa sono spiega i limiti di contesto, il conto che paghi e metà dei comportamenti strani dei modelli.

Conversione del testo in token e dati numerici
Indice dei contenuti
Aggiornato: Aprile 2026 9 min di lettura

Cos'è un token

Un token è l'unità minima di testo che un modello di linguaggio elabora, e non coincide con la parola: può essere una parola intera, un pezzo di parola, un carattere o perfino un byte. Il modello non legge come leggiamo noi: converte tutto in una sequenza di numeri interi, ognuno associato a una voce di un vocabolario deciso in partenza. Questa è la spiegazione di molte cose che sembrano assurde, tipo un modello che sbaglia a contare le lettere di una parola.

Punti chiave

  • Il token è l'unità minima di testo elaborata da un LLM: può essere una parola, una sotto-parola o un singolo carattere.
  • La tokenizzazione converte il testo grezzo in numeri interi; gli algoritmi più diffusi sono BPE, WordPiece e SentencePiece.
  • La context window definisce quanti token (input + output) il modello può gestire in una singola richiesta.
  • Le API fatturano per token: l'italiano consuma circa il 30% di token in più dell'inglese, con impatto diretto sui costi.
  • Conoscere il conteggio dei token è una competenza pratica per ottimizzare prompt, prestazioni e budget.
Esempio di tokenizzazione

Frase: "L'intelligenza artificiale è straordinaria"

Token: ["L", "'", "intellig", "enza", " artificial", "e", " è", " straordin", "aria"]

Una frase di 5 parole produce 9 token. In italiano e nelle lingue con molte parole composte, il rapporto token/parola è tipicamente 1.5-2x.

La tokenizzazione è il processo che converte il testo grezzo in questa sequenza di token. È il primo passo di qualsiasi pipeline NLP basata su Transformer e influenza direttamente prestazioni, costi e limiti del modello. Comprenderne il funzionamento aiuta a capire perché due testi della stessa lunghezza in caratteri possono avere costi e tempi di elaborazione molto diversi.

Byte Pair Encoding (BPE)

Il BPE (Byte Pair Encoding) è l'algoritmo di tokenizzazione più usato nei LLM moderni, inclusi GPT-4, Claude e Llama. Il principio è elegante: si parte da un vocabolario di singoli caratteri (o byte) e si fondono iterativamente le coppie di simboli più frequenti nel corpus di training.

  1. Si parte dal vocabolario di base (es. tutti i byte ASCII + Unicode).
  2. Si conta la frequenza di ogni coppia adiacente nel corpus.
  3. Si fonde la coppia più frequente in un nuovo simbolo (es. "t" + "h" diventa "th").
  4. Si ripete finché il vocabolario raggiunge la dimensione desiderata (tipicamente 32K-100K token).

Il risultato è che le parole comuni diventano un token solo («the», «and», «che») mentre quelle rare vengono spezzate in pezzi. Così si tiene insieme l'efficienza sui testi normali e la capacità di rappresentare qualsiasi cosa. La variante byte-level BPE, usata da GPT-4 e da Claude, lavora sui byte UTF-8 invece che sui caratteri: nulla resta fuori dal vocabolario, ed emoji, ideogrammi e caratteri rari passano sempre, al prezzo di più token. È anche il motivo per cui l'italiano costa più dell'inglese: le nostre parole vengono spezzettate di più.

WordPiece e SentencePiece

WordPiece, usato da BERT e modelli Google, è simile a BPE ma usa una metrica probabilistica (likelihood) invece della frequenza grezza per scegliere le fusioni. I sotto-token non iniziali sono marcati con il prefisso "##" (es. "playing" diventa ["play", "##ing"]).

SentencePiece è un framework che implementa sia BPE che un modello unigram. La sua caratteristica distintiva è che opera direttamente sul testo grezzo senza pre-tokenizzazione basata su spazi, rendendolo ideale per lingue senza separatori espliciti (cinese, giapponese) e per un trattamento uniforme multilingue. Il modello unigram, in particolare, parte da un vocabolario ampio e rimuove progressivamente i token meno utili, scegliendo la segmentazione più probabile per ogni testo: un approccio statisticamente più robusto rispetto alle semplici fusioni gerarchiche del BPE.

AlgoritmoUsato daVocabolario tipico
BPEGPT-4, Claude, Llama50K-100K
WordPieceBERT, DistilBERT30K
SentencePiece (Unigram)T5, mBART, XLNet32K-250K

Context window

La context window (finestra di contesto) è il numero massimo di token che un modello può elaborare in una singola richiesta, includendo sia l'input (prompt) che l'output (risposta). È il limite fisico della "memoria di lavoro" del modello.

Le finestre di contesto sono cresciute molto in fretta:

  • GPT-3 (2020): 4.096 token (~3.000 parole)
  • GPT-4 (2023): 8K / 32K / 128K token
  • Claude (2024-2026): fino a 200K token (~150.000 parole, un intero libro)
  • Gemini 1.5: fino a 1M+ token

Nonostante finestre più grandi, le prestazioni del modello tendono a degradare per informazioni posizionate nel "centro" di contesti molto lunghi (fenomeno "lost in the middle"). Per questo la RAG resta fondamentale: recupera solo i frammenti più rilevanti invece di inserire tutto nel contesto. Inoltre, riempire la finestra fino al limite aumenta latenza e costi: in pratica conviene mantenere il contesto snello e ben strutturato, posizionando le informazioni più importanti all'inizio e alla fine del prompt.

Contare i token

Contare i token prima di mandare le richieste serve a non avere sorprese in bolletta. Gli strumenti:

  • tiktoken (Python, libreria OpenAI): tiktoken.encoding_for_model("gpt-4") per il conteggio esatto dei token GPT.
  • Tokenizer di Hugging Face: AutoTokenizer.from_pretrained("meta-llama/Llama-3") per modelli open source.
  • Tool online: platform.openai.com/tokenizer per test rapidi.

Regola empirica per l'italiano: 1 token corrisponde mediamente a 3-4 caratteri o circa 0.6 parole. Un testo di 1.000 parole produce circa 1.500-1.800 token. Per l'inglese il rapporto è più favorevole: ~0.75 parole per token.

Token e costi API

Le API dei LLM fatturano per token elaborati, distinguendo tra input token (il prompt) e output token (la risposta generata). Gli output token costano tipicamente 3-5x in più degli input:

ModelloInput (per 1M token)Output (per 1M token)
GPT-4o$2.50$10.00
Claude Sonnet$3.00$15.00
Llama 3 70B (hosting)$0.50-1.00$0.50-1.00

Per ottimizzare i costi: riduci il prompt al minimo necessario, usa modelli più piccoli per task semplici, implementa caching delle risposte per query ripetitive e sfrutta il batching delle richieste. Molti provider offrono anche il prompt caching, che abbatte il costo delle porzioni di prompt ripetute (come istruzioni di sistema o documenti di riferimento) fino al 90%: una leva preziosa per chatbot e applicazioni con contesti fissi e ricorrenti.

Implicazioni per il prompt engineering

La tokenizzazione ha conseguenze pratiche su come si scrivono i prompt:

  • Lunghezza del contesto: il prompt di sistema + la conversazione + la risposta attesa devono rientrare nella context window. Un prompt di sistema lungo riduce lo spazio per conversazione e risposta.
  • Parole rare e lingue non inglesi: richiedono più token per la stessa quantità di informazione. Un prompt in italiano costa ~30% in più dello stesso contenuto in inglese.
  • Codice e formattazione: spazi, indentazione e sintassi consumano token. Il codice minimizzato usa meno token ma è meno leggibile per il modello.
  • Numeri: i numeri vengono tokenizzati cifra per cifra o in gruppi irregolari, rendendo i LLM notoriamente deboli in aritmetica.
  • Output strutturato: richiedere JSON o formati strutturati consuma più token di output rispetto al testo libero, aumentando i costi.

Capire i token è la cosa che separa chi usa i modelli a sensazione da chi sa perché una richiesta costa dieci volte l'altra. Il passo successivo è come i token diventano significato: sta in Embedding e Vector Database.

Vuoi imparare ad applicarlo davvero?

Scopri i corsi e la formazione di Federico Boggia su AI, dati e digitale.

Vai ai corsi
Federico BoggiaRispondo io, in giornata

Ciao! Dimmi che ti serve: un corso online, una giornata in aula a Livorno o la formazione per la tua azienda.

Scrivimi su WhatsApp