Come funziona la tokenizzazione?

Come funziona la tokenizzazione? Dovete sapere che la tokenizzazione è folle ed è un miracolo che i modelli linguistici imparino qualcosa.
Questa citazione (non mia) riassume bene come funziona la tokenizzazione, uno degli aspetti più importanti dei modelli linguistici di grandi dimensioni. Ogni interazione con un LLM inizia e termina con la tokenizzazione ed è il processo in cui i pezzi di testo vengono convertiti in numeri affinché gli LLM possano eseguire calcoli su di essi (o viceversa).
Un approccio semplice consiste nel mappare ogni carattere al numero intero che rappresenta la sua posizione nell’elenco Unicode dei caratteri. Tuttavia, questo metodo presenta diversi problemi:
1. Anche a lettere molto comuni come “e” viene assegnato un token, indipendentemente dal loro contesto. Ciò porta ad avere finestre di contesto molto lunghe, cioè con tanti token.
2. Si traduce in un numero molto elevato di token possibili e, di conseguenza, in una grande rete neurale in cui la maggior parte degli incorporamenti di token sono sottoaddestrati.
La soluzione consiste nell’aggregare le combinazioni di caratteri che ricorrono frequentemente nei propri token. Ad esempio, il tokenizzatore GPT-4 trasforma la frase “Ecco un gelato” in soli cinque token: ‘E’, ‘cco’, ‘ un’, ‘ gel’, ‘ato’ (si noti come lo spazio faccia parte dei 2 token).
L’algoritmo di codifica Byte-Pair è uno dei metodi più famosi per fare il tokenizer: viene addestrato su un ampio corpus di testo per trovare una codifica che raggiunga l’equilibrio tra efficienza e prestazioni. Per questo motivo, più il testo è grande più si tende a convergere verso 4 caratteri per token.

Tuttavia, anche questo approccio porta a problemi noti degli LLM:
1. Gli LLM sono terribili nelle operazioni aritmetiche di base. Il tokenizer non assegna semplicemente i token ai numeri da 0 a 9 ma, nel tentativo di essere efficiente, assegna token univoci anche a molti altri numeri interi. Ad esempio, assegna un token univoco ai primi 512 numeri interi, ma anche a tutti i numeri interi dal 1930 al 2019, perché si tratta di annualità che compaiono frequentemente nei dati di addestramento. Di conseguenza, quando si tenta di fare calcoli, l’LLM deve prima districare questi compiti che non hanno senso da un punto di vista matematico.
2. Gli LLM sono terribili nell’ortografia. Il fatto che il modello o1 non sia in grado di determinare quante ‘r’ ci siano in ‘fragola’ è famoso su Internet. La tokenizzazione è probabilmente uno dei motivi. Il modello non “vede” le singole lettere, il che rende molto difficile (se non impossibile) contarle.
Conclusioni:
I problemi con i linguaggi sottorappresentati, i linguaggi matematici o più in generale i formati di input/output specifici possono spesso essere ricondotti a problemi di tokenizzazione.
Per questo motivo è importante sapere e capire che ChatGPT è uno strumento fantastico, ma non risolverà tutti i vostri problemi!