Subword (Tokenisation en Sous-Mots)
| Propriete | Detail |
|---|---|
| Categorie | Methode de tokenisation NLP |
| Principe | Compromis entre tokenisation par mots et par caracteres |
| Algorithmes | BPE, WordPiece, Unigram (SentencePiece) |
| Avantage cle | Vocabulaire de taille fixe + capacite a representer tout texte |
| Standard depuis | 2016 (Sennrich et al., BPE pour la traduction) |
Pourquoi les subwords sont necessaires
La tokenisation en subwords resout un dilemme fondamental du traitement du langage. La tokenisation par mots produit un vocabulaire enorme (des millions de mots dans un corpus reel) et ne peut pas representer les mots inconnus (out-of-vocabulary, OOV). La tokenisation par caracteres produit un vocabulaire minuscule mais des sequences tres longues, rendant l’apprentissage de semantique au niveau du caractere extremement difficile.
La tokenisation en subwords est le compromis optimal. Elle produit un vocabulaire de taille maitrisee (typiquement 32K a 256K tokens), peut representer n’importe quel texte (en decomposant les mots inconnus en parties connues), et maintient des sequences de longueur raisonnable (les mots courants sont des tokens uniques).
L’intuition linguistique derriere les subwords est que de nombreux mots partagent des racines, prefixes et suffixes communs. « Jouer », « joueur », « jouable », « rejouer » partagent la racine « jou ». Un tokenizer en subwords apprend a identifier ces regularites statistiquement, meme s’il n’a pas de connaissances morphologiques explicites.
Comment les subwords sont construits
Les trois algorithmes principaux de construction de subwords sont le BPE (Byte Pair Encoding), WordPiece et Unigram. Tous partent du meme principe : identifier les sequences de caracteres les plus utiles pour representer le corpus d’entrainement de maniere compacte.
BPE (approche bottom-up)
BPE commence avec les caracteres individuels et fusionne iterativement les paires adjacentes les plus frequentes. Apres 1000 fusions, le vocabulaire contient les 256 bytes de base plus 1000 merges. Apres 50 000 fusions, le vocabulaire est assez riche pour tokeniser efficacement la plupart des textes. C’est l’algorithme utilise par GPT, Claude et Llama 3.
WordPiece (approche bottom-up avec vraisemblance)
WordPiece ressemble au BPE mais choisit les fusions qui maximisent la vraisemblance du corpus plutot que les frequences brutes. Les sous-mots de continuation sont prefixes par « ## » (par exemple, « playing » -> « play » + « ##ing »). C’est l’algorithme utilise par BERT et DistilBERT.
Unigram (approche top-down)
Unigram commence avec un vocabulaire tres large et supprime iterativement les tokens les moins utiles. Il utilise un modele probabiliste pour trouver la segmentation optimale de chaque mot. Implemente dans SentencePiece, il est utilise par T5 et Gemini.
Exemples concrets de tokenisation en subwords
Pour illustrer concretement, voici comment differents textes sont tokenises en subwords par un tokenizer BPE typique (style GPT-4).
Le mot « bonjour » est suffisamment frequent pour etre un token unique : [« bonjour »]. Le mot « anticonstitutionnellement » est rare et decompose : [« anti », « constit », « ution », « nell », « ement »]. Le mot anglais « unhappiness » pourrait devenir : [« un », « happiness »] ou [« un », « happ », « iness »]. Un terme technique comme « transformerisation » serait decompose : [« transform », « er », « isation »].
Les chiffres sont generalement tokenises individuellement ou par petits groupes : « 2026 » peut devenir [« 20 », « 26 »] ou [« 202 », « 6 »] selon le tokenizer. Les URLs et les chemins de fichiers sont souvent tres fragmentes car ce ne sont pas des sequences de langage naturel.
Proprietes des subwords
Couverture complete
Avec un tokenizer en subwords (surtout en byte-level BPE), tout texte est representable. Les mots inconnus sont simplement decomposes en parties plus petites, jusqu’aux caracteres individuels ou bytes si necessaire. Il n’y a jamais de token « inconnu » (UNK) en pratique.
Vocabulaire de taille fixe
Le vocabulaire a une taille predeterminee (par exemple, 128K tokens). Cela rend la matrice d’embedding et la couche de sortie du modele de taille fixe, ce qui est necessaire pour l’architecture du reseau de neurones.
Partage morphologique
Les mots qui partagent des morphemes communs (prefixes, suffixes, racines) partagent aussi des subwords. « Joueur » et « jouable » partagent probablement le subword « jou ». Cela permet au modele de generaliser : un mot jamais vu contenant « jou » beneficie des connaissances accumulees sur d’autres mots avec ce subword.
Efficacite variable selon la langue
Les subwords sont plus efficaces pour les langues bien representees dans le corpus d’entrainement du tokenizer. L’anglais, dominant dans les donnees d’entrainement, beneficie de tokens longs et efficaces. Les langues sous-representees sont tokenisees en fragments plus petits et plus nombreux, consommant plus de fenetre de contexte.
Subwords vs morphologie linguistique
Les subwords appris par BPE ne correspondent pas necessairement aux morphemes linguistiques (les plus petites unites de sens). BPE est un algorithme statistique qui optimise la couverture du corpus, pas la decomposition morphologique. Le mot « unhappiness » pourrait etre decoupe en « un » + « happiness » (morphologiquement correct) ou en « unhapp » + « iness » (statistiquement optimal mais morphologiquement incorrect).
Des recherches explorent des tokenizers morphologiquement informes qui combinent les avantages statistiques du BPE avec des connaissances morphologiques explicites. Morfessor (Smit et al.) est un exemple classique de tokenisation morphologique, mais il n’est pas utilise dans les LLMs actuels. En pratique, les tokenizers purement statistiques fonctionnent remarquablement bien car les regularites morphologiques emergent naturellement des regularites statistiques.
Impact sur les performances des modeles
La granularite de la tokenisation en subwords affecte directement les performances du modele. Des subwords trop petits (trop de decomposition) allongent les sequences, augmentant le cout computationnel et rendant les dependances a longue distance plus difficiles a capturer. Des subwords trop grands (vocabulaire tres large) produisent des tokens rares avec des embeddings mal entraines.
L’optimal depend de la taille du modele et du corpus d’entrainement. Les modeles plus grands et mieux entraines beneficient de vocabulaires plus grands car ils ont suffisamment de donnees pour bien entrainer chaque token. C’est pourquoi la tendance va vers des vocabulaires croissants : GPT-2 utilisait 50K tokens, Llama 3 utilise 128K, et Gemini utilise 256K.
Pour les taches de code, la tokenisation en subwords est particulierement critique. Les noms de variables en camelCase ou snake_case, les chemins de fichiers, les URLs et les syntaxes de programmation sont souvent mal tokenises par des tokenizers entraines principalement sur du langage naturel. Les vocabulaires recents incluent des tokens specifiques au code pour ameliorer l’efficacite.
Alternatives aux subwords
Tokenisation byte-level pure
Des architectures comme ByT5 et MegaByte operent directement sur les bytes individuels, sans aucun vocabulaire appris. L’avantage est l’universalite totale et l’elimination du tokenizer. L’inconvenient est la longueur des sequences (4 a 6 fois plus longues) et le cout computationnel associe. Des optimisations architecturales (patches de bytes, hierarchies de Transformers) reduisent ce cout.
Tokenisation a granularite variable
Des approches recentes adaptent dynamiquement la granularite de tokenisation au contexte. Les parties de texte predictibles sont tokenisees grossierement (gros tokens), tandis que les parties surprenantes sont tokenisees finement (petits tokens). Cela optimise l’allocation du « budget de tokens » en concentrant la resolution la ou elle est necessaire.
Questions frequentes
Qu’est-ce qu’un subword en IA ?
Un subword (sous-mot) est une unite de texte de taille variable, entre le caractere et le mot complet, utilisee comme token par les LLMs. Les mots frequents sont des tokens entiers, les mots rares sont decomposes en plusieurs subwords connus. Par exemple, « transformer » peut etre un token unique, tandis que « transformerisable » serait decoupe en « transform » + « er » + « isable ».
Pourquoi ne pas simplement tokeniser par mots ?
La tokenisation par mots cree un vocabulaire gigantesque (millions de mots), ne peut pas representer les mots inconnus ou les neologismes, et est inefficace pour les langues agglutinantes. Les subwords resolvent tous ces problemes : vocabulaire de taille fixe, representation universelle, et efficacite multilingue.
Les subwords correspondent-ils aux morphemes ?
Pas toujours. Les algorithmes de tokenisation en subwords (BPE, Unigram) sont purement statistiques et ne connaissent pas la morphologie. La decomposition « un » + « happiness » est morphologiquement correcte, mais « unhapp » + « iness » est aussi possible. En pratique, les regularites morphologiques emergent souvent des regularites statistiques.
Comment savoir combien de subwords un mot produit ?
Utilisez le tokenizer du modele specifique. Chaque modele a son propre tokenizer. Un mot comme « developpement » peut etre 1 token avec GPT-4o mais 3 tokens avec un modele a vocabulaire plus petit. Les outils en ligne (Tokenizer Playground, tiktokenizer) visualisent la decomposition.
Les subwords vont-ils disparaitre au profit du byte-level ?
Des recherches actives explorent les architectures byte-level (ByT5, MegaByte) qui eliminent le tokenizer. Cependant, en 2026, les subwords restent le standard universel car les architectures byte-level produisent des sequences beaucoup plus longues, ce qui augmente le cout computationnel. Les approches hybrides sont un compromis prometteur.