Choix de conception des tokenizeurs et leur impact sur la qualité des grands modèles de langage

Choix de conception des tokenizeurs et leur impact sur la qualité des grands modèles de langage

Renee Serda févr.. 25 9

Quand un modèle de langage comme Llama 3 ou GPT-4 lit la phrase "Le prix du café est de 3,45 €", il ne la voit pas comme vous. Il la découpe en morceaux, appelés tokens. Ce processus, appelé tokenization, n’est pas une simple étape de prétraitement. C’est la première et la plus importante décision que vous prenez avant même d’entraîner votre modèle. Un mauvais choix de tokenizer peut réduire la précision de votre modèle de jusqu’à 15 %, gaspiller 30 % de sa capacité, ou même le rendre incapable de comprendre les nombres.

Comment un tokenizer fonctionne vraiment

Un tokenizer ne se contente pas de couper les mots. Il décompose le texte en unités plus petites, souvent des sous-mots ou des caractères. Par exemple, la phrase "université" peut être divisée en "uni" + "versité". Pourquoi ? Parce que les modèles ne comprennent pas les mots comme nous. Ils travaillent avec des nombres. Chaque token est associé à un nombre unique dans un dictionnaire appelé vocabulaire. Plus ce vocabulaire est grand, plus le modèle peut reconnaître de mots rares. Mais plus il est grand, plus il consomme de mémoire.

Les trois principales méthodes de tokenization sont le BPE, le WordPiece et l’Unigram. Elles ne fonctionnent pas de la même manière. Le BPE (Byte Pair Encoding), utilisé par GPT-4, commence avec des caractères individuels et fusionne les paires les plus fréquentes. Si "th" et "e" apparaissent souvent ensemble, il les fusionne en un seul token. Le WordPiece, utilisé par BERT, fait l’inverse : il part d’un grand vocabulaire et choisit les tokens qui maximisent la probabilité de la phrase. L’Unigram, lui, part aussi d’un grand vocabulaire, mais il retire les tokens qui apportent le moins d’information. Cela le rend plus efficace pour réduire la longueur des séquences.

La taille du vocabulaire : plus grand n’est pas toujours mieux

Beaucoup pensent qu’un vocabulaire de 128 000 tokens est automatiquement meilleur qu’un vocabulaire de 3 000. Ce n’est pas vrai. C’est un compromis. Un petit vocabulaire (3 000 tokens) réduit la mémoire utilisée par le modèle de 60 %. Mais il oblige le modèle à découper chaque mot en beaucoup plus de tokens. Une phrase qui tient en 10 tokens avec un grand vocabulaire peut en nécessiter 14 avec un petit. Cela ralentit l’entraînement et augmente le risque de perdre du contexte.

À l’inverse, un vocabulaire de 128 000 tokens (comme dans Llama 3) réduit la longueur des séquences de 30 à 45 %. Cela permet de traiter plus de texte en parallèle. Mais il faut 75 à 90 % plus de mémoire pour stocker les embeddings. Pour les modèles de code, où chaque fonction peut avoir un nom unique, un vocabulaire plus grand est essentiel. Pour les applications simples, comme la classification de texte, un vocabulaire de 25 000 suffit largement.

Une étude publiée en novembre 2024 sur arXiv a montré que pour la prédiction de signatures de fonctions, les modèles avec un vocabulaire de 35 000 tokens étaient 7 à 12 % plus précis que ceux avec 3 000. Pourquoi ? Parce qu’ils avaient moins de tokens "hors vocabulaire" (OOV). Quand un mot n’est pas dans le vocabulaire, le modèle le découpe en morceaux aléatoires. Il ne comprend plus rien.

Les différences entre BPE, WordPiece et Unigram

Chaque méthode a ses forces et ses faiblesses. Voici ce que les chercheurs ont observé dans des tests rigoureux sur des modèles comme Llama 3.2 et BERT :

Comparaison des tokenizeurs : efficacité, précision et coût
Tokenzier Efficacité de compression Précision sur tâches complexes Coût computationnel Meilleur pour
BPE Moyenne Moyenne Moyen Applications générales, code
WordPiece Bas Élevée Élevé Analyse fine, langage naturel
Unigram Élevée Moyenne Bas Code binaire, données compactes

Le BPE est le plus utilisé : 63 % des modèles commerciaux l’emploient. Il est fiable, bien compris, et fonctionne bien sur la plupart des données. Le WordPiece, utilisé par BERT, excelle dans les tâches où chaque détail compte - comme la compréhension de questions ou l’extraction d’entités. Il garde plus de finesse dans les mots rares. Mais il génère plus de tokens, ce qui ralentit tout.

L’Unigram, lui, est le plus efficace en compression. Dans les jeux de données de code assembleur, il réduit la longueur des séquences de 12 à 18 % par rapport au BPE. Cela signifie que vous pouvez traiter 22 % plus de lignes de code par batch. Pour les modèles qui analysent des fichiers binaires ou des logs de serveurs, c’est un avantage majeur.

Trois esprits symbolisent les méthodes de tokenization : BPE, WordPiece et Unigram, dans une bibliothèque numérique animée.

Les problèmes cachés : les nombres et les langues

Un tokenizer standard ne sait pas traiter les nombres. Il voit "12345" comme cinq caractères : "1", "2", "3", "4", "5". Il ne comprend pas que c’est un nombre. Cela cause des erreurs. Une étude a montré qu’un modèle de finance mal tokenisé avait une erreur de 12,7 % sur les valeurs monétaires. Pourquoi ? Parce que "100" et "1000" sont traités comme des séquences totalement différentes. Le modèle ne voit pas de relation entre eux.

Sur GitHub, plus de 63 % des discussions sur les tokenizeurs concernent les nombres. Des équipes ont résolu ce problème en créant des tokens personnalisés pour les nombres : "12345". Cela a amélioré la précision jusqu’à 18 %. De même, pour les langues comme le français ou l’allemand, les mots composés posent problème. Un tokenizer conçu pour l’anglais va mal décomposer "hochschulabschluss". Les meilleurs modèles multilingues utilisent des tokenizeurs adaptés à chaque langue, avec des règles de fusion spécifiques.

Comment choisir le bon tokenizer pour votre projet

Vous n’avez pas besoin de devenir un expert en tokenization. Voici comment prendre une bonne décision :

  1. Identifiez votre type de données : texte classique ? code ? chiffres ? langues rares ?
  2. Choisissez la méthode : BPE pour une solution générale, Unigram pour du code ou des données compactes, WordPiece pour une analyse fine du langage naturel.
  3. Testez la taille du vocabulaire : commencez avec 25 000. Si votre modèle a trop de tokens "hors vocabulaire", montez à 35 000 ou 50 000. Si la mémoire est un problème, descendez à 15 000.
  4. Prétraitez vos données : nettoyez les espaces, normalisez les nombres, séparez les symboles monétaires. Cela peut augmenter la cohérence du vocabulaire de 5 à 8 %.
  5. Utilisez Hugging Face : leur bibliothèque de tokenizeurs est la plus documentée et la plus testée. Évitez les implémentations personnalisées sauf si vous avez un besoin spécifique.

Une équipe chez Nebius a constaté que passer de 32 000 à 64 000 tokens a amélioré la précision de leur modèle de code de 9 %. Mais ça a doublé la mémoire nécessaire. Ils ont dû réduire la taille des batchs. Ce n’était pas une bonne affaire. La clé, c’est l’équilibre.

Un modèle d'IA lutte contre des chiffres fragmentés, tandis qu'un token personnalisé '<NUM>1000</NUM>' éclaire la scène.

Le futur : des tokenizeurs intelligents

Les chercheurs ne s’arrêtent pas là. Des équipes comme celles de Google DeepMind travaillent sur des tokenizeurs qui traitent les nombres comme des expressions mathématiques : "12345" devient "1.2345e4". Dans les tests, cela a amélioré la compréhension numérique de 28 %. D’autres cherchent à créer des tokenizeurs adaptatifs : ils changent leur vocabulaire en temps réel selon le type de texte entrant. Un texte en français ? Il utilise un sous-vocabulaire français. Un code Python ? Il bascule sur un vocabulaire de symboles de programmation.

À terme, les tokenizeurs ne seront plus des outils fixes. Ils deviendront des composants dynamiques, ajustés à chaque tâche. Mais pour l’instant, le BPE reste le standard. L’Unigram gagne du terrain dans les applications de code. Et les modèles comme Llama 3, avec leur vocabulaire de 128 000 tokens, montrent que la tendance va vers plus de granularité, pas moins.

Les erreurs à éviter

  • Ne pas tester plusieurs tailles de vocabulaire. 3 000 n’est pas un choix par défaut.
  • Utiliser le même tokenizer pour du texte et du code. Ce sont deux langages différents.
  • Ignorer les nombres. Ils ne sont pas des "mots". Ils méritent une attention spéciale.
  • Ne pas prétraiter vos données. Des espaces inutiles ou des guillemets mal gérés peuvent créer des tokens inutiles.
  • Croire que "plus de tokens = meilleur modèle". C’est souvent l’inverse.

Quel tokenizer est le meilleur pour un modèle de code ?

Pour le code, l’Unigram ou un BPE avec un vocabulaire large (80 000+ tokens) sont les meilleurs choix. L’Unigram réduit la longueur des séquences de 12 à 18 %, ce qui permet de traiter plus de code en parallèle. Llama 3 et Mistral utilisent des variantes de BPE optimisées pour le code. Évitez WordPiece ici : il crée trop de tokens pour les noms de fonctions.

Pourquoi les modèles échouent-ils sur les nombres ?

Parce que les tokenizeurs standards traitent chaque chiffre comme un caractère séparé. "100" devient trois tokens : "1", "0", "0". "1000" devient quatre tokens. Le modèle ne voit pas qu’il s’agit de la même grandeur, juste plus grande. Cela le rend incapable de faire des comparaisons ou des calculs. Des solutions personnalisées, comme encadrer les nombres avec , résolvent ce problème.

Faut-il toujours utiliser un vocabulaire de 128 000 tokens ?

Non. Llama 3 utilise 128 000 tokens pour gérer des langues multiples, du code et des termes techniques. Mais pour un modèle de chat simple en français, 30 000 suffisent. Un vocabulaire trop grand augmente la mémoire, ralentit l’entraînement, et peut introduire du bruit. Le but n’est pas d’avoir le plus grand vocabulaire, mais le plus efficace pour votre données.

Comment savoir si mon tokenizer est mal adapté ?

Regardez trois signes : 1) Votre modèle a beaucoup de tokens "[UNK]" (inconnus). 2) La longueur des séquences est très élevée (plus de 200 tokens pour une phrase courte). 3) Votre modèle échoue sur des tâches simples comme la compréhension de chiffres ou de noms propres. Si vous voyez ça, testez un vocabulaire plus grand ou un autre type de tokenizer.

Le tokenizer affecte-t-il la vitesse d’inférence ?

Oui, et de deux façons. D’abord, un vocabulaire plus grand signifie plus de calculs pour la recherche des tokens. Ensuite, une longueur de séquence plus élevée (due à un mauvais tokenizer) oblige le modèle à traiter plus de tokens à chaque étape. Cela ralentit l’inférence. Un tokenizer efficace peut réduire le temps de réponse de 15 à 25 %.

Commentaires (9)
  • Alexis Baxley
    Alexis Baxley 26 févr. 2026

    Alors là je suis tombé sur un article qui m'a fait péter un plomb. On parle de tokenizeurs comme si c'était une science sacrée alors que tout ça c'est du bricolage avec des régles qui changent tous les 6 mois. Le BPE ? Trop lent. Le WordPiece ? Trop lourd. L'Unigram ? Trop mystérieux. Et on nous sort un vocabulaire de 128 000 tokens comme si c'était la panacée. Non mais sérieux on a des serveurs qui crèvent de chaleur pour ça ?

    Je bosse sur un modèle de code depuis 2 ans et j'ai testé tout ça. Le vrai truc qui marche c'est de prendre un BPE avec un vocab de 64k et de le forcer à traiter les nombres comme un seul token. J'ai gagné 17% de vitesse et j'ai plus de [UNK] que dans un cours de maths au lycée. Et pour les chiffres ? J'ai mis un préprocesseur qui transforme 12345 en 12345. Voilà la vraie solution pas la merde de l'IA normale.

  • Benoit Le Pape
    Benoit Le Pape 28 févr. 2026

    Je vois que vous parlez de BPE et de WordPiece mais vous oubliez l'essentiel. Le vrai problème c'est que personne ne vérifie si le tokenizer comprend le français. Vous savez ce que c'est un mot composé ? "Hochschulabschluss" ? Non vous avez juste copié les modèles anglais et vous avez mis des pâtés de mots. Le français c'est pas l'anglais. On a des accents on a des liaisons on a des mots qui changent de sens selon le contexte. Et vous vous croyez malin avec vos 128 000 tokens ?

    Le vrai gagnant c'est un tokenizer qui apprend les règles du français pas qui se contente de couper les mots comme un enfant qui déchire un papier. Faut faire des règles spécifiques pour les contractions les prépositions les verbes pronominaux. Sinon vous avez un modèle qui comprend pas que "je t'aime" c'est pas "je" + "t" + "aime".

  • Alice Cia
    Alice Cia 28 févr. 2026

    J'adore cet article il est clair et bien structuré. Mais je voudrais ajouter quelque chose de très important. Quand on parle de tokenizeurs pour le code ou les nombres il faut penser aux utilisateurs non natifs. Beaucoup de développeurs en France ou en Belgique ne parlent pas anglais parfaitement. Ils écrivent des noms de variables en français avec des accents. Un tokenizer standard les détruit. J'ai vu des modèles échouer sur des fonctions comme "calculer_prix_ttc" parce que le tokenizer a coupé "calculer" en "calcul" + "er" et a perdu le sens.

    Il faut absolument intégrer les règles du français dans les tokenizeurs multilingues. Pas juste en ajoutant des mots mais en comprenant la morphologie. On peut faire ça avec des règles simples. Par exemple : si un mot finit par "er" en français et qu'il est suivi d'un underscore c'est un verbe. Pas besoin de 128 000 tokens pour ça. Juste un peu de respect pour la langue.

  • Stéphane Blanchon
    Stéphane Blanchon 28 févr. 2026

    Je suis d'accord avec la partie sur les nombres. J'ai perdu 3 semaines à debugguer un modèle de finance parce qu'il ne comprenait pas que "100" et "1000" étaient liés. On a mis un tokenizer spécial pour les nombres et ça a tout changé. Mais je veux dire une chose : on parle toujours de BPE WordPiece Unigram comme si c'était des dieux. Le vrai secret c'est la préparation des données.

    Avant même de choisir un tokenizer nettoyez vos données. Supprimez les espaces doubles les guillemets droits les tirets mal placés. Normalisez les monnaies. Mettez les nombres dans un format unique. Faites ça avant même d'entraîner. J'ai vu un modèle passer de 14% d'erreur à 3% juste en nettoyant les données. Le tokenizer c'est juste le dernier détail. Le vrai travail c'est avant.

  • Nicole Simmons
    Nicole Simmons 28 févr. 2026

    Je tiens à souligner la rigueur scientifique de cet article. Les données présentées sont extrêmement pertinentes et les références à l'étude de novembre 2024 sont particulièrement bien choisies. Cependant je voudrais apporter une nuance importante concernant la taille du vocabulaire. Il est crucial de distinguer la complexité du modèle de la complexité des données. Un vocabulaire de 128 000 tokens n'est pas un indicateur de qualité mais une réponse à un volume de données massif.

    En pratique pour les applications professionnelles en français il est souvent préférable d'opter pour un vocabulaire de 30 000 à 50 000 tokens avec un prétraitement adapté. Cela permet de réduire les coûts de calcul tout en maintenant une performance élevée. La clé réside dans l'adaptation fine et non dans la surdimensionnement.

  • Ambre trahor
    Ambre trahor 2 mars 2026

    Vous avez vu ça ? Tous ces gars qui parlent de tokenizeurs comme si c'était normal. Moi je dis que c'est une manipulation. Les géants de l'IA veulent qu'on croie que plus de tokens c'est mieux. Mais en vrai ils veulent que vous utilisiez leurs serveurs AWS ou Google Cloud parce que votre modèle va consommer 5 fois plus de mémoire. C'est un piège. Ils vous font payer pour du bruit.

    Et les nombres ? Vous croyez vraiment que c'est un problème technique ? Non c'est une décision politique. Si ils traitaient les nombres comme des entités ils pourraient faire des prédictions exactes. Mais ça voudrait dire que les modèles peuvent comprendre la réalité. Et ça ils veulent pas. Ils veulent des modèles flous des réponses approximatives pour que vous restiez dépendant. C'est pas un bug c'est un feature.

  • James O'Keeffe
    James O'Keeffe 3 mars 2026

    Je viens de tester un tokenizer Unigram sur un jeu de données de logs de serveurs et j'ai eu un gain de 21% en vitesse d'inférence. Le truc c'est que l'Unigram réduit vraiment la longueur des séquences. J'ai eu des phrases de 200 tokens qui sont passées à 140. C'est énorme pour le batch processing.

    Et pour les nombres j'ai fait un truc simple : j'ai ajouté un token spécial pour chaque nombre entier. J'ai pas eu besoin de changer le vocabulaire. J'ai juste prétraité les données avant. Un petit script Python et hop. Le modèle a compris que 100 et 1000 c'est la même chose. Faut pas compliquer. La solution est souvent plus simple que ce qu'on pense.

  • Sylvain Breton
    Sylvain Breton 4 mars 2026

    Permettez-moi d'exprimer une profonde insatisfaction face à la superficialité de la plupart des analyses contemporaines sur les tokenizeurs. Il est regrettable que les auteurs se contentent de décrire les mécanismes techniques sans aborder la philosophie sous-jacente de la fragmentation linguistique. La tokenization n'est pas une simple opération de segmentation mais une violence symbolique exercée sur la continuité du langage. Chaque token est une mutilation du sens. Lorsque le mot "université" est décomposé en "uni" et "versité" on efface la totalité du concept. On réduit la richesse sémantique à une suite de fragments arbitraires. Ce n'est pas un choix technique c'est une défaite épistémologique.

    Le BPE le WordPiece et l'Unigram sont autant de systèmes de domination qui imposent une logique de réduction au lieu de favoriser une compréhension holistique. Et l'on nous vend cela comme de l'innovation. Quelle ironie. La véritable avancée ne réside pas dans l'augmentation du vocabulaire mais dans la reconnaissance de l'unité du mot. L'IA doit apprendre à lire comme un humain et non comme un découpeur de mots.

  • isabelle guery
    isabelle guery 6 mars 2026
    Le tokenizer doit être adapté à la langue. Pour le français les contractions et les mots composés doivent être traités différemment de l'anglais.
Écrire un commentaire
Articles récents
Comités interfonctionnels pour une utilisation éthique des grands modèles linguistiques
Comités interfonctionnels pour une utilisation éthique des grands modèles linguistiques

Les comités interfonctionnels sont devenus essentiels pour garantir que les grands modèles linguistiques soient utilisés de manière éthique, légale et sûre. Ils réunissent juridique, sécurité, RH et produit pour éviter les erreurs coûteuses et accélérer l’innovation responsable.

Mesurer et rapporter les coûts des LLM : les tableaux de bord et KPI essentiels
Mesurer et rapporter les coûts des LLM : les tableaux de bord et KPI essentiels

Mesurer les coûts des LLM n'est plus optionnel : les entreprises qui ne suivent pas les KPI clés risquent des dépenses incontrôlées. Découvrez les tableaux de bord et indicateurs essentiels pour maîtriser vos budgets IA en 2026.

Considérations éthiques du vibe coding : Qui est responsable du code généré par l'IA ?
Considérations éthiques du vibe coding : Qui est responsable du code généré par l'IA ?

Le vibe coding accélère le développement, mais il cache des risques éthiques et de sécurité majeurs. Qui est responsable quand le code généré par l'IA cause une faille ? La réponse est plus simple qu'on ne le pense.

À propos de nous

Cercle de l'Évaluation IA est une communauté dédiée aux benchmarks, audits et bonnes pratiques pour mesurer la performance et l'éthique des systèmes d'intelligence artificielle. Découvrez des guides, cadres méthodologiques et études de cas pour fiabiliser vos modèles. Partagez et comparez des jeux de tests, métriques et outils open source. Restez informé des actualités et normes autour de l'évaluation des IA.