Definizione
La tokenization è il processo di conversione di testo grezzo in una sequenza di token, le unità discrete che un LLM può elaborare. Ogni token corrisponde a un ID numerico nel vocabolario del modello.
I token non corrispondono necessariamente a parole: possono essere parole intere (“the”), parti di parole (“un” + “believable”), singoli caratteri, o sequenze speciali.
Algoritmi principali
Byte-Pair Encoding (BPE): iterativamente unisce le coppie di byte/caratteri più frequenti nel corpus di training. Usato da GPT, Llama.
WordPiece: simile a BPE ma ottimizza per likelihood del language model. Usato da BERT.
SentencePiece: implementazione che include BPE e Unigram, opera direttamente sui byte senza pre-tokenization. Usato da T5, Llama.
Tiktoken: implementazione BPE di OpenAI, ottimizzata per velocità. Usata da GPT-3.5/4.
Perché è importante
Costi: le API LLM fatturano per token. Un testo inefficientemente tokenizzato costa di più.
Context window: i modelli hanno limiti di token (4K-128K+). La tokenization determina quanto testo entra nel contesto.
Performance multilingue: tokenizer addestrati prevalentemente su inglese possono produrre più token per lo stesso contenuto in altre lingue, aumentando costi e riducendo il contesto effettivo.
Considerazioni pratiche
Rapporto token/parola: in inglese, ~0.75 token per parola (una parola = ~1.33 token). In italiano e altre lingue, spesso peggiore (1.5-2 token/parola).
Tool di verifica: OpenAI Tokenizer, tiktoken (Python) per contare token prima di chiamate API.
Token speciali: <|endoftext|>, <|im_start|>, etc. Riservati per segnali di controllo, non generabili direttamente.
Fraintendimenti comuni
”1 token = 1 parola”
No. In media ~0.75 token/parola in inglese, ma varia. Parole rare o lunghe vengono spezzate in più token. “Tokenization” stesso può essere 2-3 token.
”I tokenizer sono tutti uguali”
No. GPT-4 e Llama hanno tokenizer diversi con vocabolari diversi. Lo stesso testo produce sequenze di token differenti e di lunghezza diversa.
”Il conteggio caratteri approssima i token”
Molto approssimativo. Una regola empirica è ~4 caratteri/token in inglese, ma varia significativamente per lingua e contenuto.
Termini correlati
- LLM: modelli che richiedono tokenization dell’input
- Embeddings: rappresentazioni vettoriali dei token
- Transformer: architettura che processa sequenze di token
Fonti
- Sennrich, R. et al. (2015). Neural Machine Translation of Rare Words with Subword Units. ACL
- OpenAI Tokenizer
- Hugging Face Tokenizers Library