Qu'est-ce que la tokenization dans les LLMs ?

La tokenization est le processus de découpage du texte en unités élémentaires (tokens) que les LLMs peuvent traiter. Ce mécanisme détermine les coûts d'utilisation, les limites de contexte et la capacité du modèle à traiter différentes langues. Chaque modèle utilise son propre tokenizer.

La tokenization est l'étape qui transforme du texte brut en une séquence de tokens — les unités élémentaires qu'un modèle de langage (LLM) peut manipuler. Un token n'est ni un mot ni un caractère : c'est un fragment de texte dont la taille varie selon l'algorithme de tokenization et la fréquence du mot dans les données d'entraînement.

Comment ça fonctionne

Un tokenizer ne découpe pas le texte au hasard. Il applique un algorithme déterministe qui a été entraîné sur un large corpus de texte. Le principe général : les mots fréquents deviennent un seul token, tandis que les mots rares sont découpés en sous-unités.

Par exemple, le mot "embedding" sera probablement un seul token dans un tokenizer entraîné sur du texte technique anglais. En revanche, le mot "antidisestablishmentarianism" sera découpé en plusieurs sous-tokens. En français, un mot courant comme "données" peut être un seul token, tandis que "désintermédiation" sera segmenté.

Principaux algorithmes

BPE (Byte Pair Encoding). Algorithme le plus répandu, utilisé par les modèles GPT d'OpenAI. Il part de caractères individuels et fusionne itérativement les paires les plus fréquentes jusqu'à atteindre un vocabulaire de taille cible (souvent 50 000 à 100 000 tokens). L'implémentation tiktoken d'OpenAI est une version optimisée de BPE.

WordPiece. Variante développée par Google pour BERT. Similaire à BPE mais utilise la vraisemblance du corpus plutôt que la fréquence brute pour décider des fusions. Préfixe les sous-tokens intermédiaires avec "##" pour indiquer qu'ils ne commencent pas un mot.

SentencePiece. Développé par Google, fonctionne directement sur le texte brut sans pré-tokenization par espaces, ce qui le rend adapté aux langues sans séparation explicite des mots (japonais, chinois). Utilisé par les modèles Llama de Meta et les modèles Mistral.

Byte-level BPE. Variante qui opère sur les octets plutôt que les caractères Unicode, garantissant la capacité à encoder n'importe quel texte, y compris les emojis ou les caractères rares. Utilisé par les modèles Claude d'Anthropic et GPT-4.

Impact sur les coûts

Les fournisseurs de LLMs facturent à l'usage en nombre de tokens (entrée + sortie). Comprendre la tokenization est donc directement lié à la maîtrise des coûts. Quelques repères :

  • En anglais, 1 token correspond en moyenne à 4 caractères ou 0,75 mot.
  • En français, le ratio est moins favorable : environ 1 token pour 3 caractères, car les accents et les mots plus longs consomment plus de tokens.
  • Du code source génère généralement plus de tokens que du texte naturel, en raison des noms de variables, de l'indentation et des caractères spéciaux.

Cette différence a des implications concrètes : un même document traduit en français coûtera 20 à 30 % de tokens de plus que sa version anglaise.

Fenêtre de contexte

Chaque LLM a une fenêtre de contexte (context window) mesurée en tokens — c'est la quantité maximale de texte qu'il peut traiter en une seule fois, prompt inclus. Cette limite est une contrainte directe de l'architecture Transformer sous-jacente. GPT-4 propose jusqu'à 128 000 tokens, Claude jusqu'à 200 000, Gemini 1.5 Pro jusqu'à 2 millions.

Pour les systèmes RAG, la tokenization détermine combien de documents récupérés peuvent tenir dans le contexte, ce qui influence directement la qualité des réponses.

Impact sur les performances multilingues

La tokenization est un facteur méconnu des performances multilingues des LLMs. Un tokenizer entraîné principalement sur de l'anglais aura un vocabulaire optimisé pour cette langue : les mots anglais courants seront des tokens uniques, tandis que les mots d'autres langues seront fragmentés en davantage de sous-tokens. Cela signifie que pour un même budget de tokens, le modèle peut traiter moins de texte en français qu'en anglais, et ses performances tendent à baisser sur les langues sous-représentées.

Les tokenizers récents (comme ceux de Llama 3 ou Mistral) intègrent des données multilingues dès l'entraînement du vocabulaire, améliorant le ratio tokens/mot pour les langues européennes.

Tokenization et prompt engineering

La conscience de la tokenization aide en prompt engineering : des instructions concises et des mots courants consomment moins de tokens. Les espaces en début de ligne, la ponctuation superflue ou les répétitions inutiles augmentent la consommation sans apporter de valeur sémantique. Certaines techniques comme le few-shot prompting doivent arbitrer entre le nombre d'exemples fournis et le budget de tokens restant pour la réponse.

Fait intéressant

Le mot "tokenization" lui-même n'est pas tokenisé de la même façon selon le modèle : GPT-4 le découpe en 3 tokens ("token", "ization"), Llama 3 en 4, et certains tokenizers plus anciens en 5. Cette variation illustre pourquoi un même prompt peut donner des résultats différents selon le modèle, avant même que le réseau de neurones n'intervienne.

Pour aller plus loin

Ces formations pourraient aussi vous intéresser

Prêt à accélérer votre Transformation ?

Nos experts vous accompagnent à chaque étape
de votre parcours Data & IA. Discutons ensemble de vos enjeux et objectifs.