Token AI: cosa sono davvero e perché la stessa frase costa più in italiano

Scrivi a un assistente AI: "Buongiorno, vorrei riorganizzare l'archivio dei contratti". Per te sono otto parole. Per il modello sono molti più pezzi, e il numero di pezzi decide tre cose molto concrete: quanto spazio occupa la tua richiesta nella memoria del modello, quanto ci mette a rispondere e, se usi un servizio a pagamento, quanto spendi. Quei pezzi si chiamano token, e capirli toglie di mezzo un sacco di misteri: perché le chat lunghe peggiorano, perché i limiti si misurano in "migliaia di token" e non in pagine, perché la stessa frase tradotta in inglese costa meno.

In questa guida vediamo cos'è un token, come il testo viene spezzato (senza formule), perché l'italiano ne consuma di più e come misurarlo da soli in due minuti.

Cos'è un token, in parole semplici

Un modello linguistico non legge lettere e non legge parole: legge token, cioè frammenti di testo. Un token può essere una parola intera ("casa"), un pezzo di parola ("riorganiz" + "zare"), una singola lettera, uno spazio, un segno di punteggiatura. Non esiste una regola uniforme: dipende da come quel modello è stato costruito.

Prima di arrivare al modello, il tuo testo passa da un programma chiamato tokenizzatore. Il suo lavoro è semplice da descrivere: prende la stringa che hai scritto e la trasforma in una sequenza di numeri, uno per ogni token, pescando da un elenco fisso (il vocabolario) che il modello conosce. Il modello lavora solo su quei numeri. Quando risponde, fa l'operazione inversa: produce un token alla volta, e il tokenizzatore li riconverte in testo leggibile.

Il vocabolario ha dimensioni che dipendono dal modello: per fare un ordine di grandezza, quello di GPT-2, un modello storico, conteneva poco più di cinquantamila token. I modelli moderni ne hanno di più, ma il principio è lo stesso: un elenco chiuso di pezzi, da cui si pesca per comporre qualunque testo.

Perché non parole intere, e perché non lettere

Viene naturale chiedersi perché non si usino direttamente le parole. La documentazione di Hugging Face sulla tokenizzazione spiega bene il compromesso, e conviene ripercorrerlo perché è il "perché" di tutto il resto.

Se usi parole intere, il vocabolario esplode: "amo", "amavo", "amerò", "amerebbero" sono tutte voci diverse, e ogni lingua ne ha centinaia di migliaia. Peggio: qualunque parola mai vista (un nome nuovo, un errore di battitura, un termine tecnico) non ha posto nell'elenco, e il modello non sa cosa farne.

Se usi singole lettere, il vocabolario è minuscolo e non c'è parola impossibile, ma ogni frase diventa lunghissima e ogni lettera, da sola, dice pochissimo. Il modello dovrebbe faticare molto di più per ricostruire il significato.

La soluzione adottata dai modelli moderni sta in mezzo: i token "subword", pezzi di parola. Le parole molto comuni restano intere, quelle rare vengono scomposte in frammenti più piccoli, e con un elenco di dimensioni gestibili si riesce a scrivere qualunque cosa, anche parole mai viste, perché al limite si ricade su pezzi molto corti.

Come si decide quali pezzi tenere

Uno dei metodi più diffusi si chiama BPE (byte pair encoding) e l'idea è quasi ingenua. Si parte da un testo enorme scomposto in singoli caratteri. Poi si cerca la coppia di pezzi vicini che compare più spesso e la si fonde in un pezzo solo. Si ripete. Dopo migliaia di fusioni, le sequenze frequenti ("zione", "mente", " che") sono diventate token a sé, mentre quelle rare restano spezzate.

Conseguenza che a prima vista sfugge: il vocabolario riflette i testi su cui è stato costruito. Se quei testi sono in maggioranza inglesi, i pezzi più "convenienti" saranno quelli dell'inglese. Ed eccoci all'italiano.

Perché l'italiano costa di più

Una frase in inglese, in un tokenizzatore pensato soprattutto per l'inglese, viene coperta da pochi pezzi lunghi. La stessa frase in italiano contiene sequenze (le desinenze, gli apostrofi, le parole composte con accento) che nel vocabolario sono meno frequenti, quindi vengono spezzate in più frammenti. Più frammenti significano più token per dire la stessa cosa.

Non è un'impressione. Un lavoro presentato a NeurIPS 2023 (Language Model Tokenizers Introduce Unfairness Between Languages, Petrov e colleghi) ha misurato il fenomeno su molte lingue: a parità di contenuto, la lunghezza in token può differire fino a 15 volte tra lingue diverse, e il divario resta anche nei tokenizzatori progettati per essere multilingue. Il caso peggiore riguarda lingue con poche risorse in rete e alfabeti diversi dal latino; l'italiano, ben rappresentato nei testi di addestramento, sta in una zona molto più favorevole, ma il consumo in più rispetto all'inglese si vede comunque. Non c'è un numero valido per sempre: dipende dal modello e dal testo, quindi la prova che ti proponiamo in fondo vale più di qualunque cifra.

Per te, che usi l'AI per lavorare, le conseguenze sono tre:

  1. Il costo. I servizi con pagamento a consumo fatturano per token, in ingresso e in uscita. A parità di contenuto, un testo in italiano può costare un po' di più di uno in inglese.
  2. La memoria. La finestra di contesto si misura in token, non in parole. Un documento italiano riempie la finestra più in fretta del suo equivalente inglese. (Per capire cosa succede quando la finestra si riempie, c'è la guida sulla finestra di contesto.)
  3. La velocità. Il modello produce un token alla volta: più token in uscita vuol dire una risposta più lenta.

Il numero non è lo stesso per tutti i modelli

Un errore comune è pensare che "un token" sia una misura universale, come il grammo. Non lo è: ogni famiglia di modelli ha il suo tokenizzatore, e anche tra versioni dello stesso fornitore può cambiare. La documentazione di Anthropic sul conteggio dei token, ad esempio, avverte che i conteggi vanno rifatti sul modello che userai davvero, perché le versioni più recenti usano un tokenizzatore diverso che per lo stesso testo produce un numero di token sensibilmente maggiore. Anche quel conteggio è una stima, con piccole differenze rispetto al consumo effettivo.

Regola pratica: quando fai un preventivo di costi o controlli se un documento ci sta nella finestra, non usare la regola "una parola vale più o meno un token". Misura sul modello giusto. Se usi le API, esiste un endpoint apposito per contare i token prima di inviare la richiesta, e nella documentazione Anthropic è indicato come gratuito (con limiti di richieste al minuto).

Cosa cambia nel modo di usare l'AI

Capire i token non serve per fare i pignoli: serve per decidere meglio.

Scrivi prompt asciutti. Premesse lunghe, ripetizioni e formule di cortesia consumano spazio che potrebbe servire al compito. Non si tratta di essere bruschi: si tratta di togliere ciò che non cambia la risposta.

Fai attenzione a ciò che incolli. Una tabella o un PDF copiato male (con numeri, simboli, righe spezzate) può costare più token del testo discorsivo equivalente, perché i numeri lunghi e i simboli vengono spesso spezzati in molti pezzi.

Spiega i "difetti strani" con i token. Il modello ha difficoltà a contare le lettere in una parola o a invertirla: non vede le lettere, vede i pezzi. Non è stupidità, è il modo in cui il testo gli arriva. Lo stesso vale per certi errori su numeri e calcoli lunghi.

Non tradurre tutto in inglese per principio. Può far risparmiare token, ma ti costa tempo e a volte qualità. Ha senso solo quando il volume è alto e il compito non dipende da sfumature della lingua; per l'uso personale, scrivi nella lingua in cui pensi.

Prova subito

Ti servono due minuti e un tokenizzatore online (ad esempio tiktokenizer, quello citato anche nella dispensa del Livello 0).

  1. Scrivi una frase di tua scelta in italiano, di venti o trenta parole: un paragrafo di una tua email va benissimo.
  2. Annota il numero di token che ti mostra lo strumento e come ha spezzato le parole: sono più lunghe o più corte di quanto ti aspettavi?
  3. Traduci la stessa frase in inglese e rifai il conteggio. Calcola il rapporto tra i due numeri.
  4. Incolla ora una riga di numeri (un IBAN fittizio, una tabella di cifre) e guarda quanti pezzi produce.

Se vuoi dare un peso economico al risultato, moltiplica la differenza per il prezzo per milione di token riportato dal listino del servizio che usi: scoprirai che per un uso occasionale è irrilevante, e per un'automazione che gira mille volte al giorno no.

Per il quadro completo (predizione del prossimo token, finestra di contesto, casualità) il punto di riferimento è il capitolo Cos'è un LLM della dispensa del Livello 0. Per andare alla fonte, la guida di Hugging Face alla tokenizzazione e il paper di Petrov e colleghi sono i testi su cui si basa questo articolo.