En bref
Imaginez un découpeur de viande qui doit préparer des morceaux selon différents critères. L’un coupe selon la fréquence statistique des morceaux dans la cuisine traditionnelle. L’autre choisit les coupes qui rendent les recettes les plus probables. Un troisième part de morceaux trop nombreux et élimine ceux qui apportent peu. Un quatrième oublie complètement la notion de “morceau pré-existant” et travaille au plus fin. La tokenisation des LLM offre exactement ces quatre stratégies — BPE, WordPiece, Unigram LM, SentencePiece — et le choix n’est pas neutre. En arabe ou en yoruba, un même texte peut consommer dix fois plus de tokens qu’en anglais. C’est la conséquence directe d’un choix d’algorithme.
BPE comme point de départ
Si vous n’avez pas lu l’article sur les tokens et la tokenisation, c’est le bon point de départ. Il explique BPE pas-à-pas, le ratio mots/tokens et le problème des nombres.
En résumé : BPE (Byte Pair Encoding) fusionne itérativement les paires de caractères les plus fréquentes dans un corpus d’entraînement. Il part de caractères individuels et monte en complexité. GPT-2, GPT-4 et Mistral l’utilisent dans sa forme originale ou sous le nom tiktoken.
Ce qui suit suppose que vous connaissez ce mécanisme. L’objectif ici est d’explorer ce qui existe au-delà.
WordPiece : maximiser la vraisemblance plutôt que la fréquence
WordPiece est l’algorithme utilisé par BERT, DistilBERT et ALBERT. Il ressemble à BPE en surface — mais son critère de fusion est différent.
BPE fusionne les paires les plus fréquentes. WordPiece fusionne les paires qui maximisent la vraisemblance du corpus d’entraînement. Concrètement, il favorise les fusions qui rendent le corpus plus probable selon un modèle de langage. Cela produit un vocabulaire légèrement différent, plus sensible aux régularités morphologiques.
Un signe distinctif : les sous-mots non-initiaux portent le préfixe ##. Le mot playing devient play + ##ing. Cette convention rend la segmentation lisible et aide le modèle à identifier les frontières de mots.
Le vocabulaire de BERT contient 30 000 tokens. C’est compact par rapport aux tokenizers récents — ce qui a des implications sur la granularité de représentation.
En clair : BPE et WordPiece ressemblent à deux versions du même découpeur. BPE compte les paires les plus fréquentes ; WordPiece pèse à quel point chaque fusion rend tout le corpus plus probable. La différence est subtile mais visible : WordPiece capte mieux les régularités morphologiques (préfixes, suffixes) au prix d’un calcul un peu plus lourd à l’entraînement.
Unigram LM : la logique inverse de BPE
Kudo (2018) propose une approche radicalement différente avec le modèle de langage Unigram. Là où BPE part du bas (caractères) et monte par fusions, Unigram LM part du haut (grand vocabulaire initial) et supprime itérativement.
L’algorithme commence avec un vocabulaire large — souvent plusieurs centaines de milliers de sous-mots candidats. Il évalue la contribution de chaque token à la vraisemblance du corpus. Les tokens qui font le moins baisser cette vraisemblance quand on les supprime sont éliminés en premier. On itère jusqu’à atteindre la taille de vocabulaire cible.
Résultat : plusieurs segmentations d’un même mot sont possibles, avec des probabilités différentes. Lors de l’entraînement, on peut échantillonner parmi ces segmentations — ce qui agit comme une forme de régularisation. Lors de l’inférence, on prend la segmentation la plus probable via l’algorithme de Viterbi.
Ce probabilisme est une différence fondamentale avec BPE : la segmentation n’est pas déterministe, elle reflète une distribution.
SentencePiece : effacer les espaces du problème
BPE et WordPiece supposent que le texte est déjà pré-tokenisé par espaces. En anglais, c’est naturel. En japonais, en chinois ou en thaï, il n’y a pas d’espaces entre les mots. Cette hypothèse devient un biais structurel.
SentencePiece (Kudo 2018) résout ce problème en traitant le texte brut comme une séquence d’octets. Les espaces ne sont pas des délimiteurs — ils deviennent un caractère ordinaire, représenté par le symbole ▁. La phrase “bonjour monde” devient ▁bonjour + ▁monde.
Ce changement en apparence mineur a des conséquences importantes :
- Le tokenizer est agnostique à la langue : japonais, arabe, hindi et swahili passent par le même pipeline sans pré-traitement spécifique.
- La segmentation est reproductible : pas de dépendance aux outils de tokenisation propres à chaque langue.
- Les mêmes algorithmes (BPE ou Unigram LM) tournent en dessous — SentencePiece est une couche d’abstraction, pas un algorithme à part entière.
T5, LLaMA, Mistral et Gemma utilisent tous SentencePiece. C’est devenu le standard de facto pour les modèles multilingues.
En clair : SentencePiece n’est pas un nouvel algorithme — c’est un wrapper qui rend BPE ou Unigram agnostiques à la langue. Sa contribution clé : traiter l’espace comme un caractère ordinaire, pas comme un délimiteur. Conséquence pratique : un même pipeline d’entraînement fonctionne sur du japonais, du chinois, du thaï, du français — sans pré-traitement spécifique par langue.
L’équité multilingue : le problème des dix fois
Voici un fait qui surprend : poser une question en yoruba à un LLM coûte environ dix fois plus cher qu’en anglais, à contenu équivalent. Ce n’est pas une politique tarifaire — c’est une conséquence directe de la tokenisation.
Ahia et al. (2023, ACL) ont mesuré la fertilité des tokenizers sur des textes traduits : le nombre de tokens produits pour le même texte dans différentes langues. Pour l’anglais, un mot correspond souvent à 1-2 tokens. Pour le yoruba ou l’amharique, le même mot peut en générer 5 à 10.
Petrov et al. (2023, NeurIPS) ont étendu cette mesure à plus de 1000 langues et ont montré une corrélation entre fertilité élevée et dégradation des performances. Les langues à forte fertilité ne sont pas seulement plus chères — elles sont aussi moins bien comprises.
Les mécanismes sont plusieurs :
- Coût d’utilisation proportionnel : les fournisseurs facturent au token, pas au mot.
- Fenêtre de contexte réduite : un texte en arabe occupe plus d’espace dans la fenêtre.
- Sous-apprentissage : les modèles voient peu d’exemples dans ces langues pendant l’entraînement, et quand ils en voient, la représentation est fragmentée.
Une réponse partielle consiste à augmenter la taille du vocabulaire. LLaMA 2 avait 32 000 tokens. LLaMA 3 en a 128 000. Gemma monte à 256 000. Un vocabulaire plus grand réduit la fragmentation des langues rares — mais alourdit la couche d’embedding, qui doit stocker un vecteur par token.
En clair : la “fertilité” mesure combien de tokens un mot moyen consomme dans une langue donnée. Anglais : ~1,3 token par mot. Français : ~1,8. Arabe : ~3,5. Yoruba : ~5-10. Cette inégalité n’est pas un détail technique — elle se traduit en facture (les API facturent au token) et en performances (texte fragmenté = représentation moins riche).
Quel tokenizer pour quel besoin
| Contexte | Recommandation | Pourquoi |
|---|---|---|
| Modèle anglo-centré, large communauté outillage | BPE byte-level (tiktoken style GPT-4) | Standard de facto, compatible HuggingFace, performant en anglais. |
| Modèle multilingue avec scripts variés (CJK, arabe, indien) | SentencePiece avec BPE ou Unigram | Agnostique à la langue, pas de pré-traitement spécifique, équité multilingue meilleure. |
| Recherche en régularisation / robustesse | Unigram LM avec sampling de segmentations | Permet de varier les segmentations à l’entraînement, agit comme augmentation de données. |
| Recherche tokenizer-free, robustesse extrême aux fautes | ByT5 ou MegaByte (octets directs) | Pas de vocabulaire à construire, robustesse maximale, mais coût compute 3-7× supérieur. |
| Modèle BERT / encoder spécifique tâches NLP | WordPiece classique | Convention héritée, vocabulaire compact (~30k), suffit pour tâches courtes. |
Tokenizer-free : la question ouverte
Si la tokenisation cause des problèmes, pourquoi ne pas la supprimer ?
C’est l’idée des approches tokenizer-free. ByT5 (Xue et al., Google 2022) opère directement au niveau des octets. Chaque octet est une unité — pas besoin de vocabulaire pré-construit. Avantage : robustesse aux fautes d’orthographe, aux langues peu représentées, aux caractères rares. Le modèle voit les données brutes sans pré-traitement.
Inconvénient majeur : les séquences sont 3 à 7 fois plus longues qu’avec BPE. Les mécanismes d’attention ont un coût quadratique en longueur de séquence — ce surcoût computationnel est significatif.
MegaByte (Yu et al., Meta 2023) propose une architecture hiérarchique pour contourner ce problème : un modèle global traite des “patches” d’octets, un modèle local génère les octets un par un. SpaceByte (2024) affine cette idée pour approcher les performances de BPE sans tokenizer.
Ces approches restent expérimentales. Aucun modèle de production majeur ne les utilise encore. Mais elles montrent que la tokenisation n’est pas une contrainte physique — c’est un choix d’ingénierie, et ce choix peut évoluer.
Ce qu’il faut retenir
- WordPiece (BERT) fusionne les paires qui maximisent la vraisemblance du corpus, pas la fréquence brute. Le préfixe
##marque les sous-mots non-initiaux. - Unigram LM part d’un grand vocabulaire et supprime itérativement, contrairement à BPE qui part de caractères et monte. La segmentation est probabiliste.
- SentencePiece traite les espaces comme des caractères ordinaires, rendant le tokenizer agnostique à la langue. C’est le standard des modèles multilingues récents.
- La fertilité est inégale : yoruba, amharique et d’autres langues à scripts non-latins génèrent jusqu’à 10 fois plus de tokens que l’anglais, avec des conséquences sur le coût, la fenêtre de contexte et les performances.
- Les approches tokenizer-free (ByT5, MegaByte) montrent qu’opérer directement sur les octets est possible, mais le surcoût computationnel reste un obstacle non résolu en production.