The Pulse
Tokenizers v1 di Hugging Face codifica il testo fino a 30 volte più velocemente
Secondo Hugging Face, la versione candidata al rilascio di Tokenizers v1 codifica il testo da tre a 30 volte più velocemente rispetto a v0.23 su un Apple M4 Max. La nuova implementazione mantiene invariati gli ID dei token, sostituendo la s

AI.info Team ·
Tokenizers v1 di Hugging Face codifica il testo da tre a 30 volte più velocemente rispetto alla precedente versione v0.23 nei test a thread singolo su un Apple M4 Max, secondo i benchmark pubblicati il 21 settembre 2026. Il miglioramento maggiore riguarda il tokenizer GPT-2, mentre T5-base si colloca all’estremo inferiore dell’intervallo.
La versione candidata al rilascio mantiene gli stessi ID dei token, lo stesso vocabolario, gli stessi ranghi di fusione e la stessa interfaccia pubblica di codifica di v0.23. Le applicazioni possono quindi usare l’implementazione più veloce senza modificare le sequenze di token inviate a un modello. Hugging Face afferma che il benchmark copre dieci famiglie di modelli e misura documenti distinti, anziché codificare ripetutamente un unico documento già presente nella cache.
Trenta volte più veloce senza cambiare gli input dei modelli
La tokenizzazione converte il testo negli ID numerici interi utilizzati da un modello linguistico. Secondo Hugging Face, questa fase può diventare un collo di bottiglia quando i team addestrano i modelli su dataset molto grandi, gestiscono molte richieste contemporanee o elaborano ripetutamente input lunghi. Un tokenizer lento può lasciare in attesa un acceleratore che altrimenti sarebbe occupato, mentre la CPU prepara i dati.
Nei test dell’azienda, Tokenizers v1 raggiunge il 76% della scalabilità lineare con otto worker. Il risultato deriva da diverse modifiche al processo di codifica, non da un nuovo formato di tokenizzazione. La libreria continua a supportare più famiglie di tokenizer, tra cui byte pair encoding, WordPiece e Unigram.
Risultato misurato: Hugging Face segnala una codifica a thread singolo da tre a 30 volte più veloce rispetto a v0.23 su un Apple M4 Max, con ID dei token in output identici.
Meno lavoro con le regex e meno allocazioni ripetute
Otto delle dieci famiglie di modelli misurate usano il byte pair encoding, o BPE. Nel precedente processo, un’espressione regolare suddivide il testo in pre-token prima che l’algoritmo di fusione combini coppie di byte adiacenti in base ai ranghi appresi.
Per gli schemi supportati, Tokenizers v1 sostituisce il lavoro svolto dalle regex generiche con un componente scritto appositamente, chiamato bitcannon. Questo componente usa operazioni booleane su flussi di bit e istruzioni SIMD, che gli consentono di esaminare 64 byte per operazione su registro. I tokenizer i cui schemi non rientrano tra quelli supportati continuano a usare il processo basato sulle regex, perciò i miglioramenti dichiarati variano a seconda del modello.
La nuova implementazione aggiunge anche una cache delle parole locale a ciascun thread. Quando un pre-token ricompare, la libreria può riutilizzare i suoi ID dei token già calcolati, anziché eseguire una seconda volta il processo di fusione. Hugging Face avverte che la cache è più utile quando gli input contengono pre-token ripetuti e che, con testi molto vari, la ricerca nella cache può aggiungere lavoro senza offrire grandi benefici.
Un nuovo ciclo di fusione basato su memoria riutilizzabile
Il ciclo di fusione BPE ora usa memoria temporanea fornita dal chiamante, anziché effettuare un’allocazione per ogni operazione. Memorizza i simboli in un array lineare e collega i simboli adiacenti tramite le loro posizioni, così una fusione può aggiornare gli indici invece di spostare i dati. Le coppie candidate vengono compattate in valori a 64 bit, in modo che l’implementazione possa confrontare le priorità di fusione come numeri interi.
L’elaborazione in batch riduce un’altra fonte di lavoro aggiuntivo. Invece di chiamare lo stadio del modello una volta per ogni pre-token, v1 può elaborare un batch di intervalli di pre-token con una sola chiamata al modello. Il parallelismo nativo assegna a ogni worker un proprio buffer temporaneo e una propria area per la cache delle parole, eliminando l’unico lock che prima costringeva le codifiche simultanee a contendersi lo stato condiviso.
La versione è ancora candidata al rilascio
Hugging Face ha pubblicato la versione candidata di v1 per Rust tramite crates.io. Gli sviluppatori possono installarla con cargo add tokenizers --pre; le applicazioni che hanno bisogno soltanto della codifica possono disabilitare la funzionalità di training predefinita e installare il percorso di codifica senza la sua dipendenza da C++.
Le misurazioni pubblicate riguardano il crate Rust. Hugging Face afferma che i suoi binding Python usano la stessa implementazione, ma comportano un costo aggiuntivo per ogni chiamata che il benchmark non include. L’articolo afferma inoltre che altre famiglie di modelli passeranno al nuovo ciclo di fusione prima della versione 1.0.0 e che sono previsti lavori successivi per la libreria Transformers e altri progetti basati su Tokenizers.
Il cambiamento immediato ha una portata più limitata rispetto a una nuova architettura di modello, ma è più pratico per i sistemi che elaborano testo su larga scala: lo stesso input produce gli stessi ID, mentre la CPU impiega meno tempo a suddividerlo, allocare memoria e fonderne le parti. La versione candidata al rilascio resta quella disponibile per i test e l’azienda non ha ancora dichiarato completo il pacchetto 1.0.0.
Leggi il benchmark e il rapporto sull’implementazione di Hugging Face.