La tokenization è il processo di spezzare il testo in unità elementari chiamate token, che è quello che l'LLM legge davvero. Non legge parole, non legge caratteri: legge token.
Esempio: la frase "ChatGPT è incredibile!" potrebbe diventare:
- "Chat" + "GPT" + " è" + " incred" + "ibile" + "!" → 6 token.
Algoritmi di tokenizzazione comuni:
- BPE (Byte Pair Encoding): usato da GPT. Spezza basandosi sulle sequenze di caratteri più frequenti.
- WordPiece: usato da BERT.
- SentencePiece: usato da Llama, Mistral, Gemini. Lavora a livello di byte, indipendente dallo spazio.
Perché ti interessa?
- Lingue diverse: l'italiano e altre lingue non-inglesi sono tipicamente "meno efficienti" in tokenization. La stessa frase in italiano usa 30-50% di token in più rispetto all'inglese. Costa di più.
- Caratteri speciali: emoji, ideogrammi, simboli, caratteri rari = molti token. Una singola emoji può essere 3-5 token.
- Numeri: i numeri lunghi (date, numeri di telefono) si tokenizzano in modo strano. È uno dei motivi per cui gli LLM sono meno bravi con la matematica precisa.
- Capacità del modello: il context window è in token, non in parole. Sapere quanti token fai è importante per documenti lunghi.
Tool utile: il tokenizer di OpenAI (platform.openai.com/tokenizer) ti fa vedere come una frase viene tokenizzata. Provalo con testo italiano e con testo inglese: la differenza si vede.