Chaque estimation du tableau ci-dessus suppose de la prose anglaise à environ 0,75 mots par token. Ce ratio est pratique pour les calculs rapides, mais c'est un chiffre unique sur une distribution qui s'étend à peu près 3x selon la langue, l'ensemble de caractères et le type de contenu. Si vous budgétisez une fenêtre de 200k ou 1M tokens pour une charge de travail multilingue, la planification au taux anglais sous-estimera régulièrement le compte de tokens réel de 50-200 %. La même fenêtre qui contient 150 000 mots anglais contient seulement 60-80 000 caractères chinois, 40-50 000 lignes de JSON joliment formaté, et quelque part entre 8 000 et 12 000 lignes de Python selon le style.
Commencez par les tokenisateurs eux-mêmes. La famille GPT d'OpenAI utilise cl100k_base pour GPT-4 et GPT-5.x, un encodage pair-par-octet (BPE) entraîné principalement sur du texte web anglais avec environ 100 277 tokens dans le vocabulaire. Claude d'Anthropic utilise son propre tokenisateur BPE avec des fusions comparables mais non identiques — les comptages de tokens entre OpenAI et Claude pour le même passage anglais diffèrent généralement de 1-4 % dans chaque direction. La famille Gemini de Google utilise SentencePiece avec un vocabulaire d'environ 256k tokens, qui compresse les scripts non-latins plus agressivement que cl100k_base. Llama 4 utilise une variante SentencePiece de 128k. La taille du vocabulaire et la distribution d'entraînement déterminent l'efficacité avec laquelle une langue donnée se compresse, et l'écart entre modèles sur le même texte non-anglais peut atteindre 30-40 %.
L'anglais se compresse bien parce que les tokenisateurs BPE voient un texte d'entraînement anglais énorme et fusionnent les sous-chaînes fréquentes ('ing', 'tion', 'the ') en jetons uniques. Le taux anglais empirique est de 0,73-0,78 mots par token sur les tokenisateurs frontier modernes, ou environ 4 caractères par token. Les langues romanes (espagnol, français, italien, portugais) sont légèrement pires — 0,65-0,72 mots par token — parce que l'entraînement BPE penche vers l'anglais. L'allemand court 0,55-0,65 à cause des longs noms composés qui se fragmentent souvent en 2-4 tokens. Le russe et les autres langues en script cyrillique s'exécutent généralement à 0,4-0,55 mots par token. L'arabe, avec des mots morphologiquement riches et un script droite-à-gauche, court souvent à 0,35-0,5.
Les scripts logographiques et syllabiques sont le cas pénalisant. Sur cl100k_base, un caractère chinois typique coûte 1,5-2,5 tokens — ce qui signifie que 100k tokens de chinois contiennent seulement 40 000-65 000 caractères, ou à peu près la longueur d'un seul roman de 200 pages plutôt que l'ensemble de 500 pages que la même fenêtre contient en anglais. Le japonais est légèrement pire que le chinois parce que les kanji, hiragana et katakana tokenisent différemment. Le Hangul coréen court 1,2-1,8 tokens par bloc de syllabe sur cl100k_base. Les tokenisateurs SentencePiece (Gemini, Llama 4) réduisent cela d'environ moitié — Gemini traite un caractère chinois plus près de 0,8-1,2 tokens — ce qui est une vraie raison pour laquelle les équipes exécutant des charges de travail CJK gravitent vers Gemini ou des modèles avec des tokenisateurs similaires.
Le type de contenu compte autant que la langue. Le code est dense en caractères mais pauvre en tokens par rapport au nombre de caractères (approximativement 1 token par 3,5-4,5 caractères), mais lourd en tokens par rapport au nombre de lignes parce que les identifiants, la ponctuation et l'espacement blanc consomment tous des tokens. Une règle pratique : une fenêtre de 200k tokens contient 1 600-2 400 lignes de Python densément commenté, 1 200-1 800 lignes de Java ou C#, 800-1 400 lignes de TypeScript avec JSX, ou 6 000-10 000 lignes de JavaScript minifié. JSON et XML poussent dans l'autre direction — ils sont coûteux en tokens parce que chaque guillemet, accolade et balise est son propre token ou deux. Une fenêtre de 200k tokens contient environ 40-55k lignes de JSON formaté ou 25-35k lignes de XML. Markdown s'assied entre la prose et le code ; la notation mathématique en LaTeX est parmi les pires, s'exécutant à 0,3-0,5 « concepts » par token parce que chaque commande backslash, paire d'accolades et indice fragment fortement.
Exemple travaillé. Une fenêtre contextuelle de 200k tokens contient approximativement : 150 000 mots anglais (environ 500 pages), 100 000-120 000 mots espagnols, 65 000-80 000 caractères chinois sous cl100k_base, 110 000-130 000 caractères chinois sous le tokenisateur Gemini, 8 000-12 000 lignes de Python, 4 000-6 000 lignes de XML, ou 45 000-55 000 lignes de JSON compact. Une fenêtre Gemini 2.5 Pro de 1M tokens contient environ 750 000 mots anglais mais seulement 550 000-650 000 caractères chinois — toujours bien plus que ce que cl100k_base rendrait possible, mais bien court de l'extrapolation naïve anglaise. La règle actuelle pour les charges de travail multilingues est de budgétiser à 1,5-2x le taux de tokens anglais pour les scripts non-latins sur OpenAI et Claude, et à peu près 1,2-1,5x sur Gemini et Llama 4.
Le conseil pratique : ne vous engagez jamais sur une taille de fenêtre basée uniquement sur les comptages de caractères ou les comptages de mots. Exécutez votre contenu réel via le tokenisateur du modèle — bibliothèque tiktoken d'OpenAI pour GPT, point de terminaison count_tokens d'Anthropic pour Claude, API count_tokens de Google pour Gemini — sur un échantillon représentatif de 5-10 documents réels, puis planifiez avec un tampon de sécurité de 20-30 % sur le taux mesuré. Le coût de mal estimer est concret : un flux de travail conçu pour 150k mots anglais qui tourne réellement sur du chinois frappera le cap de fenêtre de 200k au document 1, échouera silencieusement ou tronquera, et livrera des réponses cassées aux utilisateurs. Mesurez d'abord, puis choisissez la fenêtre.