Cos'è un token
Un modello linguistico non vede mai lettere o parole. Prima che qualsiasi testo lo raggiunga, un tokenizer taglia il testo in frammenti presi da un vocabolario fisso e sostituisce ogni frammento con il rispettivo numero all'interno di quel vocabolario. Il modello legge una sequenza di quei numeri e scrive anche la sua risposta in numeri, che il tokenizer trasforma nuovamente in testo.
How2437␣do466␣I314␣reset13259␣my616␣password9206?30Oggi i vocabolari contengono da decine di migliaia a qualche centinaio di migliaia di voci. Le parole frequenti ottengono una propria voce, di solito con lo spazio precedente annesso. Le parole meno frequenti vengono composte da frammenti più piccoli: il nome di un prodotto insolito potrebbe diventare quattro o cinque token.
Come vengono costruiti i tokenizer: byte-pair encoding
La maggior parte dei tokenizer attuali utilizza una forma di byte-pair encoding (BPE), adattata per i modelli linguistici da Sennrich, Haddow e Birch. Il vocabolario viene appreso da un ampio campione di testo prima che il modello stesso venga addestrato:
- Partire dalle unità più piccole: singoli caratteri o i 256 byte possibili.
- Contare ogni coppia di unità adiacenti nel campione e trovare la coppia più frequente.
- Unire tale coppia in una nuova unità e aggiungerla al vocabolario.
- Ripetere finché il vocabolario non raggiunge la dimensione desiderata.
Il vocabolario finisce per dedicare le proprie voci a tutto ciò che era comune in quel campione. Le versioni a livello di byte partono dai byte anziché dai caratteri, in modo che qualsiasi input — qualsiasi lingua, emoji o simbolo isolato — possa comunque essere codificato, solo in modo meno efficiente quando è insolito.
- Il campione contiene molte volte “walking”, “talking” e “making”. Inizialmente, ognuna viene suddivisa in caratteri:
w a l k i n g. iseguita danè la coppia più frequente, quindi diventa un'unica unità:w a l k in g.- Ora
inseguita dagè la coppia più frequente:w a l k ing. - Dopo decine di migliaia di unioni, è probabile che una parola frequente come “walking” diventi un singolo token, mentre una rara come “unwalkable” sia ancora formata da più parti.
Perché lo stesso testo produce conteggi diversi
| Tipo di testo | Comportamento tipico |
|---|---|
| Inglese di uso quotidiano | Circa 4 caratteri, o ¾ di parola, per token |
| Numeri, ID e date | Suddivisi in brevi frammenti: 2024-03-17 può richiedere cinque o più token |
| Codice e JSON | Parentesi, virgolette e indentazione consumano tutti token |
| Altre lingue | Spesso più token per lo stesso significato; uno studio del 2023 ha misurato differenze fino a 15 volte per lo stesso testo tradotto |
| Nomi rari e gergo | Suddivisi in diversi frammenti di sotto-parole |
Ogni famiglia di modelli addestra il proprio tokenizer, quindi un documento che corrisponde a 1.000 token per un modello potrebbe essere di 1.150 per un altro. Qualsiasi conteggio effettuato con un tokenizer diverso, o stimato dal numero di caratteri, è un'approssimazione.
Perché è importante per l'addestramento
- Costo. L'addestramento è fatturato per token elaborato, e l'utilizzo per token di input e di output.
- Limiti. La finestra di contesto e il limite di addestramento per esempio sono calcolati in token, non in messaggi o parole.
- Debolezze insolite. Un modello vede “strawberry” come alcuni token, non come dieci lettere, motivo per cui contare le lettere o invertire una parola gli risulta sorprendentemente difficile.
Errori comuni
- Considerare un token come una parola quando si stimano costi o limiti.
- Presumere che un conteggio effettuato per un modello sia valido per un altro.
- Pianificare il budget per dati non in inglese utilizzando i rapporti caratteri-per-token della lingua inglese.
- Dimenticare che anche la formattazione — JSON, markup, ID lunghi — consuma token.
Riferimenti e letture di approfondimento
Le fonti esterne si aprono in una nuova scheda.
- 01Neural Machine Translation of Rare Words with Subword UnitsSennrich, Haddow & Birch, 2016 · arXiv · arxiv.orgL'articolo che ha introdotto la tokenizzazione BPE nell'NLP.
- 02Byte-Pair Encoding tokenizationHugging Face LLM Course · huggingface.coL'addestramento BPE spiegato passo dopo passo, con codice.
- 03Language Model Tokenizers Introduce Unfairness Between LanguagesPetrov et al., 2023 · arXiv · arxiv.orgQuanto costa in più lo stesso contenuto in alcune lingue.
- 04openai/tiktokenOpenAI · GitHub · github.comUn tokenizer BPE ampiamente utilizzato che è possibile eseguire per contare i token in autonomia.
- 05Understand and count tokensGemini API docs · ai.google.devLa spiegazione di un altro provider sui token e su come contarli.