Un modèle de langage ne lit jamais du texte. Il lit des nombres. La tokenization est le pont entre les mots et les vecteurs — et ce pont change tout.
Imaginez que vous devez ranger une bibliothèque entière dans des cartons de taille fixe. Si vous mettez un livre par carton, vous avez trop de cartons. Si vous découpez chaque page, vous perdez le sens. Le bon compromis : découper en chapitres ou en sections — assez petits pour être gérables, assez grands pour garder du sens. C’est exactement ce que fait un tokenizer.
Avant toute chose, le texte doit être transformé en une séquence d’identifiants entiers. Chaque identifiant pointe vers une entrée d’un vocabulaire. La façon dont on découpe change la taille de ce vocabulaire, la longueur des séquences, et la capacité du modèle à généraliser.
Tapez une phrase, changez de mode, et observez la différence. Le nombre de tokens et la nature des découpes changent radicalement.
BPE (Byte Pair Encoding) commence avec un vocabulaire de caractères, puis fusionne itérativement les paires de tokens les plus fréquentes. Les mots courants restent intacts ; les mots rares sont assemblés à partir de sous-unités réutilisables.
| Étape | Action | Effet |
|---|---|---|
| 0 | Vocabulaire = tous les caractères | Séquences très longues |
| 1…N | Fusionner la paire la plus fréquente | Création progressive de sous-mots |
| Final | Vocabulaire de taille fixée (ex. 50k) | Compromis longueur / couverture |
Avec la bibliothèque tiktoken (utilisée par OpenAI) ou les tokenizers Hugging Face, on obtient le même résultat en quelques lignes.
# Exemple avec tiktoken (tokenizer GPT-4 / GPT-3.5) import tiktoken enc = tiktoken.encoding_for_model("gpt-4") text = "Les transformers ont révolutionné le NLP." tokens = enc.encode(text) print(tokens) # [36494, 59894, 1002, 47736, 294, 350, 46080, 13] print([enc.decode([t]) for t in tokens]) # ['Les', ' transformers', ' ont', ' révolutionné', ' le', ' N', 'LP', '.'] print(f"Nombre de tokens : {len(tokens)}")
Pourquoi « roi – homme + femme ≈ reine » fonctionne : la géométrie des vecteurs de mots.