Tokenization

[tokenaisèishon]

Il processo che spezza un testo in 'token' (le unità che gli LLM usano). Cambia totalmente come il modello vede il tuo testo.

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.