Tokenisation
À jour au 2026-09-27
Qu'est-ce que Tokenisation ?
Le choix du tokeniseur fixe silencieusement le vocabulaire effectif d'un modèle, ses performances multilingues et son coût API — et découper les nombres chiffre par chiffre est la raison précise pour laquelle l'arithmétique des LLM reste peu fiable sans données d'entraînement numériques abondantes.
De quoi il s'agit
La tokenisation est le processus de conversion de texte brut en une séquence d'identifiants entiers qu'un LLM peut traiter. Ce n'est pas un détail de prétraitement — elle détermine le vocabulaire effectif du modèle, sa gestion des mots rares, ses performances multilingues, et pilote directement le coût des API.
Le problème central qu'elle résout est de représenter un espace de chaînes ouvert avec une table d'embeddings de taille fixe tout en maintenant des longueurs de séquence gérables. Les modèles au niveau des caractères produisent des séquences très longues; les modèles au niveau des mots échouent sur les tokens hors vocabulaire et les variations morphologiques.
Trois algorithmes dominent : le codage par paires d'octets (BPE, Sennrich 2016) fusionne les paires d'octets les plus fréquentes de manière itérative jusqu'à atteindre la taille de vocabulaire cible — GPT-4 utilise cl100k avec 100 256 tokens. WordPiece (Schuster 2012) maximise la log-vraisemblance du corpus d'entraînement et est utilisé par les modèles de la famille BERT. SentencePiece (Kudo 2018) opère sur l'Unicode brut sans pré-tokenisation, le rendant agnostique à la langue — Llama 3 utilise un vocabulaire SentencePiece de 128 256 tokens. Les tokeniseurs sont entraînés séparément du modèle, puis gelés. Une particularité critique : la plupart des tokeniseurs divisent les nombres chiffre par chiffre (« 2024 » → ['20','24'] ou ['2','0','2','4']), rendant l'arithmétique fragile à moins que le modèle ne voie une quantité abondante de données d'entraînement numériques.
Pourquoi c'est important
- cl100k de GPT-4 (100 256 tokens) vs SentencePiece de Llama 3 (128 256 tokens) ne sont pas interchangeables — mélanger les tokeniseurs produit des comptages de tokens silencieusement erronés et des dépassements de budget.
- La gestion Unicode agnostique à la langue de SentencePiece compte directement pour les déploiements SAP multilingues (DACH, EMEA).
- La particularité de découpage des chiffres (« 2024 » → ['20','24']) est une raison concrète de ne pas faire confiance à l'arithmétique des LLM dans les cas d'usage de reporting financier sans validation.
Points clés
- BPE fusionne les paires d'octets fréquentes ; la table de fusion fait partie de l'artefact du modèle et doit être livrée avec lui.
- GPT-4 cl100k : 100,256 tokens. Llama 3 SentencePiece : 128,256 tokens. Ne jamais supposer que les comptages de tokens sont interchangeables.
- Le code ABAP se tokenise mal dans la plupart des vocabulaires entraînés en anglais — 1 ligne de code ABAP ≈ 8–15 tokens contre 3–5 pour Python.
- Les nombres sont généralement découpés chiffre par chiffre ; demander aux modèles de produire les nombres sous forme de chaînes formatées quand la précision compte.
- Tiktoken (OpenAI) et les tokenizers HuggingFace produisent tous deux des comptages ; toujours utiliser le tokenizer du modèle cible.
- Un tokeniseur est entraîné une fois et figé avec son modèle — changer de famille de modèle (par ex. GPT-4 vers Llama 3) invalide toute estimation de coût en tokens antérieure et exige un nouveau benchmark complet, pas un simple ajustement proportionnel.
- Les noms composés allemands et autres constructions agglutinantes se tokenisent moins efficacement que leurs équivalents anglais sous la plupart des vocabulaires entraînés sur des corpus à dominante anglaise — une mission sur le marché DACH doit benchmarker séparément le trafic en langue allemande, jamais extrapoler à partir d'un test uniquement anglophone.
- Le repli au niveau octet de BPE garantit que toute chaîne d'entrée est tokenisable — rien n'est jamais réellement hors vocabulaire, tout au plus potentiellement très inefficace à encoder.
Termes employés sur cette page
- BPE
- Byte-Pair Encoding : fusionne itérativement les paires d'octets adjacentes les plus fréquentes dans le texte d'entraînement pour construire un vocabulaire de sous-mots.
- Vocabulary
- L'ensemble fixe d'identifiants de tokens avec lequel le modèle a été entraîné ; les entrées hors vocabulaire sont impossibles par construction en BPE — chaque octet est représentable.
- SentencePiece
- La bibliothèque de tokenisation de Google qui entraîne un modèle BPE ou unigram LM directement sur de l'Unicode brut, sans requérir de pré-tokenisation spécifique à la langue.
- cl100k
- Le vocabulaire BPE de 100 256 tokens d'OpenAI utilisé par GPT-4 et les modèles text-embedding-3, implémenté dans la bibliothèque tiktoken.
- Token budget
- Le nombre maximal de tokens (prompt + complétion) qu'un modèle peut traiter en un seul appel ; le dépasser déclenche une erreur de longueur de contexte.
Sources
- Sennrich et al. 2016 — Neural Machine Translation of Rare Words with Subword Units (BPE)
- Kudo & Richardson 2018 — SentencePiece
- OpenAI tiktoken documentation
- OpenAI tokenizer playground
- Meta AI — Llama 3 Model Card
- HuggingFace tokenizers library
- SAP Business AI — official product page
- SAP Generative AI — official product page
- Hugging Face — Tokenizer summary: BPE, WordPiece and SentencePiece compared
- Google — SentencePiece: official repository and documentation
- SAP Help Portal — Generative AI hub in SAP AI Core: model access overview
- SAP Help Portal — Metering and pricing for generative AI on SAP AI Core
Fiche complète réservée aux abonnés. Ce que la fiche complète ajoute : le cadre de décision complet · la comparaison SAP · Snowflake · Databricks · Fabric · les pièges courants et leur correctif · l'aide-mémoire · les schémas d'architecture · les blocs de code · les chiffres à citer.