Qualche tempo fa alcuni modelli di frontiera inciampavano quando si chiedeva loro quante lettere erre ci fossero nella parola inglese strawberry. La risposta “due” suscitava tanto stupore che la fragola è diventata un meme. I modelli migliori ormai lo risolvono e sanno persino compitare la parola per esserne certi, ma resta il fatto che non leggono come noi. Quando vediamo o immaginiamo strawberry, possiamo trattarla come s-t-r-a-w-b-e-r-r-y, indicare ogni lettera e contare. Prima che il modello faccia qualcosa di simile, invece, un altro meccanismo ha già trasformato la stringa in pezzi che possono corrispondere a una parola intera, a un segno d’interpunzione, a una sillaba accidentale o a un frammento che per noi non significa nulla. Questa differenza non spiega da sola tutti i suoi errori di conteggio, ma apre una finestra sullo strano modo in cui le macchine ricevono il linguaggio.
Si chiamano token, un termine che viene dall’inglese antico tācen, segno o marca, parente del tedesco Zeichen, segnale. C’è un’altra vecchia parola per designare una marca di riconoscimento, il greco symbolon, celebre per essere stata applicata a un oggetto spezzato in due che permetteva di riconoscere chi ne possedeva la metà complementare. Un ospite e il suo invitato potevano conservare le due parti di un pezzo e passarle a figli e nipoti che, generazioni dopo e in viaggio, potevano riattivare il patto di ospitalità riconoscendosi quando le due parti combaciavano. Symballein significa appunto “gettare (ballein) insieme (syn)” le parti. Somiglia al token e insieme se ne distingue, perché il symbolon valeva per la sua metà complementare in quanto insieme restituivano una totalità perduta. Il token di un modello, invece, non ha nessuna parte mancante che lo completi. È un pezzo di una segmentazione computazionale capace di combinarsi, secondo il contesto, con qualunque altro statisticamente probabile. I frammenti sono privi di totalità, perché ciò presupporrebbe simbolo, senso e riferimento al mondo, cose tutte del tutto estranee al modello. Il symbolon è una classe di token che rivela due logiche di funzionamento.

Un token è, dunque, una marca discreta che può stare al posto di qualcos’altro. Nell’inglese corrente è un gettone, come quello del metrò di una volta o quello del casinò, un disco il cui valore dipende dal sistema in cui circola. All’inizio del Novecento Charles Sanders Peirce distinse fra tipo e token, di modo che la parola “il” è un tipo, una forma astratta, e ogni “il” stampato in questa pagina è un token, un’istanza concreta di quella forma. In informatica si chiama token l’unità discreta di una sequenza trasformata per poterci operare. I token dei modelli linguistici non devono per forza coincidere con le unità che noi riconosciamo nella lingua. Né lettere, né parole, né tanto meno morfemi, e ancor meno unità di senso. Non sono nemmeno pezzi minimi, perché potrebbero essere divisi ancora. Sono i pezzi che un tokenizzatore ha incluso nel vocabolario per rappresentare il testo.
Questa idea che il mondo sia fatto di pezzi che si ricombinano ci accompagna da tempo e porta l’aria antica di Leucippo e Democrito, che nel V secolo a. C. immaginarono che tutto ciò che esiste si componga di atomi, letteralmente ciò che non si può tagliare, in movimento nel vuoto. Il poeta romano Lucrezio, nel De rerum natura (I secolo a. C.), trovò per quell’intuizione un’ottima metafora costruita come un gioco di parole. In latino elementa significava tanto le lettere dell’alfabeto quanto gli elementi della materia. Così come poche lettere combinate formano parole diverse, pochi tipi di atomi riordinati compongono il nostro intero universo. L’alfabeto divenne modello del cosmo. Ventun secoli dopo, un modello linguistico porta l’idea all’estremo costruendo tutto ciò che dice con un inventario chiuso di pezzi ricombinabili, i suoi token.
L’idea di continuità è rassicurante, ma la scrittura alfabetica conserva sempre visibile il livello della lettera, mentre i gettoni del modello no. Ricordiamo che la parola come unità separata da spazi, quella che vediamo leggendo, è un’invenzione tarda. Greci e romani scrivevano in scriptio continua, senza separazione fra le parole, sicché leggere significava dipanare quel filo continuo segmentando il flusso. Gli spazi fra le parole comparvero con i monaci irlandesi e poi anglosassoni dell’alto Medioevo, che imparavano il latino come lingua straniera e avevano bisogno di far risaltare i confini lessicali per capire meglio. Il modello, molto a modo suo, inventa un’altra geografia del testo attraverso un’altra operazione di segmentazione.
Ha senso. Se il modello lavorasse con parole intere, gli servirebbe un vocabolario gigantesco. “Casa”, “case”, “casetta” e “casette” conterebbero come unità indipendenti, così come ogni coniugazione verbale, ogni nome proprio, ogni tecnicismo e ogni parola appena inventata. Peggio ancora, qualsiasi parola che non fosse nel vocabolario sarebbe un problema. L’alternativa opposta sarebbe tagliare il testo in caratteri singoli. Questo risolve il problema del vocabolario e bastano poche centinaia o migliaia di segni per scrivere praticamente qualsiasi cosa, ma con sequenze molto più lunghe. Il modello dovrebbe ricostruire ogni volta le combinazioni di lettere che compaiono insieme di continuo, facendo lievitare il costo del calcolo e sprecando capacità nell’apprendere regolarità troppo elementari. I token sublessicali sono la via di mezzo, perché permettono di rappresentare qualsiasi parola con un vocabolario relativamente piccolo, conservando però unite le sequenze frequenti, come un equilibrista fra la dimensione del vocabolario e la lunghezza del testo. Come ci siamo arrivati?
Nel 1949 un gesuita italiano, Roberto Busa, si propose di indicizzare ogni parola dell’opera completa di Tommaso d’Aquino, circa undici milioni di parole di latino. Per riuscirci ottenne l’appoggio di Thomas J. Watson, il leggendario presidente di IBM, in un’impresa che sembrava smisurata per le macchine di allora. Busa avrebbe raccontato poi che, sapendo che Watson aveva davanti un rapporto negativo, entrò alla riunione con un cartello trovato in portineria che riportava il motto di IBM, “il difficile lo facciamo subito; l’impossibile richiede un po’ più di tempo”, e lo sventolò al momento giusto. Watson aveva un incarico impossibile e Busa poteva aspettare. Accettò, e l’Index Thomisticus richiese più di trent’anni. Girò su milioni di schede perforate ed è l’atto fondativo della linguistica computazionale e delle scienze umane digitali. La vecchia distinzione fra tipo e token, forma astratta e occorrenza concreta, risultava naturale, dato che contare i token rispetto ai tipi dava una misura della ricchezza di un vocabolario. Per decenni tokenizzare è stato legato alla parola, finché i modelli linguistici non hanno tagliato pezzi più piccoli.
Una delle tecniche principali si chiama byte-pair encoding. Un programmatore, Philip Gage, la pubblicò nel 1994 su una rivista per sviluppatori, The C Users Journal, come metodo di compressione dei dati. L’idea era percorrere un file, trovare la coppia di simboli contigui che si ripeteva di più, sostituirne le occorrenze con un simbolo nuovo, registrare l’equivalenza e ripetere il procedimento. Ogni giro inventava un’abbreviazione per una combinazione frequente e il file si rimpiccioliva. Due decenni più tardi, a Edimburgo, una delle capitali mondiali della traduzione automatica, emerse un problema diverso. Mentre tre ricercatori che costruivano traduttori con reti neurali erano alle prese con le parole rare o sconosciute che inceppavano i sistemi, si resero conto che una versione del vecchio trucco di compressione di Gage serviva a costruire un vocabolario di sottoparole. Se invece di comprimere conserviamo le abbreviazioni via via che compaiono, otteniamo un catalogo di frammenti di parola che le copre tutte, perché anche quelle rare si compongono di pezzi noti.
Il programma con cui lo realizzarono, subword-nmt, finì nelle mani di mezzo mondo. Il procedimento parte dalle lettere sciolte e fonde via via le coppie più frequenti in gettoni sempre più grandi, guidato soltanto dalla frequenza. Il risultato è un vocabolario in cui le parole comuni sono un gettone solo e quelle rare si spezzano in pezzi che non seguono nessuna logica di senso, ma solo di statistica. “Cane” può essere un token intero; una parola infrequente o tecnica si scheggia in tre o quattro frammenti che separatamente non significano nulla. Un gettone equivale, in media, a circa tre quarti di parola in inglese e a parecchio meno nelle lingue di scrittura non latina. Poiché si frammentano di più, costano di più da elaborare, creando una disuguaglianza silenziosa.
Il salto a molti dei grandi modelli arrivò con le varianti di BPE applicate ai byte. Per GPT-2, nel 2019, Alec Radford e la sua squadra sostituirono le lettere con byte grezzi, così che con un vocabolario di base di appena 256 pezzi il modello può scrivere qualsiasi cosa, in qualsiasi lingua o alfabeto, senza imbattersi mai in una parola che non conosce, e poi le sequenze di byte più frequenti si combinano in token più grandi, evitando il costo di elaborare tutto byte per byte. Quel tokenizzatore ebbe un’influenza enorme. Economico e completo allo stesso tempo è un’offerta difficile da rifiutare, ed è per questo che, con tutti i suoi difetti, le varianti di tokenizzazione sublessicale restano in uso.
Torniamo alla fragola. Quando il modello legge strawberry vede due o tre token, qualcosa come “str”, “aw”, “berry”. Chiedergli di contare le erre è come chiedere a chi legge con un colpo d’occhio quanti tratti d’inchiostro ci siano. Compitare smette di essere un compito semplice, e chi si fa beffe della goffaggine del modello che risponde “due” si perde la parte più interessante. Per un certo tempo è parso che tutto il problema stesse nel fatto che il modello contava male perché la tokenizzazione gli nascondeva i caratteri. La ricerca recente, però, suggerisce che siano coinvolte anche l’operazione stessa del contare e le proprietà dell’architettura. La tokenizzazione cambia la griglia con cui il testo entra nel sistema, ma non determina da sola ciò che il sistema sarà capace di ricostruire dopo.
Il problema si fa più serio quando compaiono i numeri e i loro tagli capricciosi. “380” può entrare come un token solo e “381” spezzarsi in “38” e “1”, sicché invece di una fila pulita di cifre il modello vede un mosaico irregolare. Perciò non somma né moltiplica cifra per cifra. Deve imparare regolarità numeriche a partire da rappresentazioni i cui confini obbediscono a criteri che non sono stati pensati per l’aritmetica. La tokenizzazione è, per questo, uno dei fattori che possono rendere difficile il calcolo simbolico, benché non basti da sola a spiegare gli errori aritmetici dei modelli. Alcuni tokenizzatori moderni introducono regole speciali per le cifre proprio per rendere più regolare questa parte del paesaggio.
Non mancano i fantasmi. Nel 2023 uno studio si imbatté nei “token stregati”, il più celebre dei quali chiamato SolidGoldMagikarp, che era il nome di un utente di un forum di Reddit ed era rimasto nel vocabolario del tokenizzatore pur non comparendo quasi nei dati di addestramento. Quando si chiedeva al modello di ripetere quel gettone, il sistema delirava, insultava, cambiava argomento o affermava di essere vivo, come se si fosse calpestata una mattonella smossa della lingua. Erano segni che il modello aveva nel proprio alfabeto e non aveva mai imparato a leggere.
Abbiamo già visto che non è l’unico modo di farlo. Il campo stesso ne diffida. Ci sono modelli che lavorano direttamente con lettere o con byte grezzi, senza alcun vocabolario, come CANINE o ByT5. Hanno il vantaggio di sfuggire alla cecità della fragola, perché compitano e contano senza sforzo, al costo di calcolo che abbiamo già menzionato. Per questo CANINE, ad esempio, comprime la catena di caratteri prima degli strati costosi. La linea di frontiera cerca il meglio dei due mondi. Il Byte Latent Transformer, che Meta ha presentato alla fine del 2024, non usa gettoni fissi. Raggruppa i byte in “toppe” la cui dimensione si regola da sé, più lunghe dove il testo è prevedibile e più corte dove si fa denso, secondo l’incertezza del modello stesso su ciò che viene, in modo da spendere calcolo dove serve davvero. Con questa strategia ha eguagliato i modelli a sottoparole su larga scala ed è già cominciato a comparire nelle librerie aperte. Con tutto ciò, il token di frequenza continua a regnare nei modelli di produzione, ma gli indizi che si tratti di una tappa si accumulano. La fragola, la disuguaglianza che le diverse tokenizzazioni introducono fra le lingue e fenomeni strani come i cosiddetti token stregati non hanno un’unica causa, eppure tutti ricordano che il modo di tagliare il testo non è una decisione innocente. Forse fra qualche anno guarderemo il token di oggi come oggi guardiamo la scriptio continua.
Ferdinand de Saussure definì il segno come l’unione di un significante, l’immagine della parola, e di un significato, il concetto, legati da una convenzione arbitraria. Il token sta, in un certo senso, ancora più in basso. Entrando nel modello diventa una rappresentazione numerica appresa e, strato dopo strato, le sue relazioni con altre rappresentazioni permettono di costruire regolarità sintattiche, semantiche e concettuali che non erano contenute nel taglio iniziale. Il modello comincia lavorando con divisioni del testo che nessun parlante sceglierebbe e finisce per scrivere, citare, argomentare e a volte perfino commuoverci. Le erre di strawberry sono il marchio di un formato di lettura che non è il nostro. Capire che cosa può e che cosa non può la macchina comincia col sapere che guarda con altri occhi.