Dev & Code il y a 3 hAjouter aux favoris
Marcel Roed publie *GigaToken*, un tokenizer pour modèles de langage qui revendique un gain d'environ trois ordres de grandeur sur les implémentations de référence. Retour sur ce qui a été optimisé.
Vous pré-entraînez un modèle de langage, ou vous devez encoder un jeu de données de plusieurs téra-octets de texte pour un fine-tuning. Le tokenizer - cette brique qui transforme du texte brut en identifiants numériques - est souvent le goulet d'étranglement invisible : sur les implémentations de référence, il peut consommer autant de temps que le forward pass du modèle lui-même sur des corpus massifs.
GigaToken, publié par Marcel Roed sur GitHub, revendique ~1000× l'implémentation de référence sur les tokenizers BPE (Byte-Pair Encoding) usuels. C'est un chiffre à prendre au sérieux : même à un ordre de grandeur près, ça change ce qui est possible sur une seule machine.
Un tokenizer BPE fait trois choses :
t + h → th, puis th + e → the) selon un vocabulaire pré-appris.Les gains massifs viennent de plusieurs leviers, cumulés :
tokenizers en version pure Python, ou le premier tiktoken) parcourent une liste de règles à chaque étape. Les implémentations optimisées (comme tiktoken en Rust) utilisent un arbre de fusion pré-calculé et une queue de priorité pour ne traiter que les paires actives. GigaToken pousse la logique plus loin.Les tokenizers ne sont pas glamour. Ils passent inaperçus dans les papiers, et la plupart des gens supposent qu'ils tournent en O(gratuit). Mais quand on parle de préparer des corpus d'entraînement à l'échelle de plusieurs milliers de milliards de tokens (comme Llama 3, DeepSeek V3, etc.), même un facteur 10× sur le tokenizer se traduit en semaines de compute épargnées.
Cas concrets où le gain compte :
Un tokenizer plus rapide ne remplace pas un tokenizer correct. Les points à vérifier avant d'adopter :
L'écosystème LLM open source est en train de faire mûrir sa couche « plumbing » - après les serveurs d'inference (vLLM, TGI, llama.cpp), après les frameworks d'entraînement (Megatron, DeepSpeed), c'est le tour des briques data d'être re-écrites au niveau performance. GigaToken s'inscrit dans ce mouvement, aux côtés de tiktoken-rs, arrow-rs et les rewrites systématiques en Rust ou C++ de ce qui tournait avant en Python.
À retenir
Article produit par intelligence artificielle, relu sous contrôle éditorial humain.