tokenisationtraitement automatique du langage natureltransformateursalgorithmes de sous-motsintelligence artificielle
Encodage par paires d'octets vs tokenisation par morceaux de mots
Byte Pair Encoding et WordPiece sont deux algorithmes de tokenisation de sous-mots largement utilisés qui alimentent les modèles NLP modernes, différant principalement par la façon dont ils fusionnent les jetons pendant l'entraînement et par leurs métriques de notation.
Points forts
BPE effectue des fusions basées uniquement sur le comptage des fréquences, tandis que WordPiece optimise en fonction de la vraisemblance des données d'entraînement.
Les modèles GPT utilisent BPE tandis que BERT et ses variantes s'appuient sur la tokenisation WordPiece.
WordPiece produit généralement des frontières de jetons linguistiquement plus nettes que le BPE basé sur la fréquence.
Les deux méthodes résolvent le problème des mots hors vocabulaire, mais par le biais d'objectifs d'optimisation fondamentalement différents.
Qu'est-ce que Encodage par paires d'octets ?
Un algorithme de tokenisation de sous-mots qui fusionne itérativement les paires de caractères adjacentes les plus fréquentes en nouveaux jetons.
L'algorithme BPE a été initialement développé en 1994 comme algorithme de compression de données avant d'être adapté au traitement automatique du langage naturel par Sennrich et al. en 2016.
L'algorithme commence par un vocabulaire de caractères individuels et fusionne de manière répétée la paire de jetons adjacents la plus fréquente.
GPT-2, GPT-3 et RoBERTa utilisent tous la tokenisation BPE dans le cadre de leurs pipelines de prétraitement.
BPE utilise le comptage des fréquences pour déterminer les paires de jetons à fusionner, ce qui en fait un système purement basé sur les données, sans modèle de langage.
L'algorithme peut générer des mots hors vocabulaire en les décomposant en unités de sous-mots connues, améliorant ainsi la gestion des termes rares.
Qu'est-ce que Tokenisation de WordPiece ?
Une méthode de tokenisation en sous-mots qui fusionne les tokens en fonction de la maximisation de la vraisemblance plutôt que de la fréquence brute.
WordPiece a été initialement développé par Google pour les systèmes de recherche vocale japonais et coréen avant d'être adopté pour la recherche textuelle.
L'algorithme sélectionne les fusions qui maximisent la vraisemblance des données d'entraînement plutôt que de simplement compter les fréquences.
BERT, DistilBERT et ALBERT utilisent tous la tokenisation WordPiece, généralement avec un vocabulaire de 30 522 tokens.
WordPiece initialise souvent son vocabulaire pour inclure tous les caractères individuels avant de commencer le processus de fusion.
Cette méthode tend à produire moins de jetons au niveau des caractères pour les mots courants par rapport à BPE, ce qui améliore l'efficacité.
Tableau comparatif
Fonctionnalité
Encodage par paires d'octets
Tokenisation de WordPiece
Critère de fusion
Fréquence des paires adjacentes
Probabilité des données d'entraînement
Principaux cas d'utilisation
Série GPT, RoBERTa, CLIP
BERT, DistilBERT, ALBERT
Initialisation du vocabulaire
caractères ou octets individuels
Personnages individuels
Gestion des mots rares
Se divise en unités de sous-mots fréquentes
Segmentation basée sur la probabilité
Vitesse d'entraînement
Généralement plus rapide grâce à un simple comptage
Légèrement plus lent en raison du calcul de vraisemblance
Style de sortie des jetons
Souvent plus granulaire
Souvent plus consolidé pour les mots courants
Développement original
1994 pour la compression ; 2016 pour le traitement automatique du langage naturel (TALN).
L'équipe de reconnaissance vocale de Google
Comparaison détaillée
Philosophie de l'algorithme de base
BPE aborde la tokenisation comme un problème de compression, en fusionnant de manière gloutonne les paires les plus fréquentes dans le corpus d'entraînement. Cette approche simple, basée sur la fréquence, est intuitive et relativement rapide à calculer. WordPiece adopte une perspective plus probabiliste, en cherchant la fusion qui rendrait les données d'entraînement les plus probables sous l'hypothèse d'un modèle de langue unigramme. Ce changement subtil de perspective induit des frontières de tokens différentes, notamment pour les langues morphologiquement riches.
Limites des jetons et propriétés linguistiques
Puisque BPE se base uniquement sur la fréquence, il arrive qu'il divise les mots à des endroits linguistiquement inadaptés si ces divisions correspondent à des schémas courants dans les données. L'approche de WordPiece, basée sur la vraisemblance, tend à mieux respecter les frontières morphémiques, produisant des tokens plus proches des unités sémantiques. Pour l'anglais, les deux méthodes donnent des résultats similaires, mais la différence s'accentue dans les langues à la morphologie plus riche, comme l'allemand ou le turc.
Mise en œuvre et verrouillage de l'écosystème
Le choix entre ces tokeniseurs dépend souvent de l'architecture du modèle utilisé plutôt que d'une préférence marquée pour l'algorithme lui-même. La famille GPT d'OpenAI s'est standardisée sur BPE ; par conséquent, toute personne affinant ou déployant ces modèles hérite de ce schéma de tokenisation. L'écosystème BERT de Google a imposé WordPiece comme le choix de facto pour les modèles Transformer composés uniquement d'encodeurs. Cette forte présence de l'écosystème fait que les praticiens changent rarement de tokeniseur indépendamment de l'architecture du modèle.
Gestion des cas particuliers
Les deux algorithmes rencontrent des difficultés avec certains cas particuliers, mais de manières différentes. BPE peut être sensible aux espaces et à la ponctuation, produisant parfois des jetons inattendus lorsque la mise en forme varie. WordPiece ajoute généralement un préfixe spécial (comme ## dans BERT) pour indiquer les sous-mots de continuation, ce qui rend la reconstruction du texte original plus explicite, mais introduit également des artefacts de tokenisation que les modèles suivants doivent apprendre à gérer.
Variantes modernes et évolution
Ces dernières années ont été marquées par une évolution significative de ces deux algorithmes. SentencePiece offre un cadre unifié permettant d'implémenter la tokenisation BPE, WordPiece ou par modèle de langage unigramme au sein d'une seule bibliothèque. Le BPE au niveau octet (utilisé dans GPT-2) opère sur des octets bruts plutôt que sur des caractères Unicode, éliminant ainsi tout problème de token inconnu. Parallèlement, des approches plus récentes, telles que le dropout de BPE, introduisent de la stochasticité lors de l'entraînement afin d'améliorer la robustesse. Ces développements démontrent que, si BPE et WordPiece demeurent fondamentaux, le domaine continue de progresser.
Avantages et inconvénients
Encodage par paires d'octets
Avantages
+Simple et intuitif à comprendre
+Entraînement rapide avec un minimum de calculs
+Fonctionne bien avec les entrées au niveau octet
+Largement présent dans les bibliothèques modernes
+Gère tout texte Unicode
Contenu
−Peut se diviser à des frontières linguistiquement étranges
−Sensible au biais de fréquence du corpus d'entraînement
−Aucun modèle de langage explicite pendant l'entraînement
−Peut sur-segmenter les termes techniques rares
−La gestion des espaces blancs peut être incohérente.
Tokenisation de WordPiece
Avantages
+Meilleure adéquation avec les limites des morphèmes
+Optimisation explicite basée sur la vraisemblance
+Marqueurs de continuation clairs avec préfixe ##
+Outils matures dans TensorFlow et Hugging Face
+Efficace pour les mots courants dans les données d'entraînement
Contenu
−Étroitement lié à l'écosystème BERT
−Calcul d'entraînement légèrement plus lent
−Les préfixes ajoutent de la complexité à la tokenisation
−Moins de flexibilité pour les données non textuelles comme le code
−Le vocabulaire peut se retrouver surchargé de préfixes rares.
Idées reçues courantes
Mythe
BPE et WordPiece produisent toujours des tokenisations différentes pour un même texte.
Réalité
Pour de nombreux mots anglais courants, les deux algorithmes aboutissent à des segmentations identiques ou quasi identiques. Les différences s'accentuent avec les mots rares, les termes morphologiquement complexes et les langues aux structures flexionnelles plus riches que l'anglais.
Mythe
WordPiece utilise un réseau neuronal lors de la tokenisation.
Réalité
Malgré son utilisation dans les modèles neuronaux, WordPiece est entièrement non neuronal. Le calcul de la vraisemblance repose sur de simples statistiques de fréquence des unigrammes, et non sur une quelconque représentation neuronale apprise. Le « modèle de langage » de WordPiece est simplement une table de fréquences, et non un transformateur ou un réseau récurrent.
Mythe
BPE ne peut pas gérer les langues ayant de grands jeux de caractères comme le chinois.
Réalité
Le BPE au niveau octet résout précisément ce problème en opérant sur des octets UTF-8 bruts plutôt que sur des caractères. Cela signifie qu'il peut représenter n'importe quel texte Unicode sans jamais rencontrer de caractère inconnu, même si cela peut nécessiter davantage de jetons pour les scripts comportant des milliers de caractères.
Mythe
Le choix du tokenizer a un impact significatif sur les performances du modèle pour les tâches en aval.
Réalité
Bien que la tokenisation soit importante, l'architecture du modèle et la taille des données d'entraînement ont généralement une importance bien plus grande que le choix du tokenizer. Des études ont montré que BPE et WordPiece offrent des performances comparables toutes choses égales par ailleurs, les différences étant généralement faibles et dépendantes de la tâche.
Mythe
WordPiece a été inventé spécifiquement pour BERT.
Réalité
WordPiece est antérieur à BERT de plusieurs années. Google l'a initialement développé pour la recherche vocale en japonais et en coréen au début des années 2010, puis l'a adapté à la traduction automatique neuronale avant même son intégration à BERT. Son association avec BERT est forte, car ce dernier a contribué à sa notoriété dans la communauté de recherche en traitement automatique du langage naturel (TALN).
Mythe
La taille du vocabulaire BPE n'a pas d'importance tant qu'il est suffisamment grand.
Réalité
La taille du vocabulaire influe considérablement sur les performances du modèle et son efficacité de calcul. Un vocabulaire trop restreint entraîne un gaspillage de ressources pour les longues séquences de jetons. À l'inverse, un vocabulaire trop étendu rend les matrices d'intégration difficiles à manipuler et les jetons rares sont mal représentés. La plupart des praticiens optimisent soigneusement cet hyperparamètre, en se basant généralement sur une valeur comprise entre 30 000 et 50 000 jetons.
Questions fréquemment posées
Quelle est la principale différence entre BPE et WordPiece ?
La différence fondamentale réside dans la manière dont ils déterminent les paires de jetons à fusionner lors de l'entraînement. BPE compte simplement la fréquence d'apparition des paires et fusionne la paire la plus fréquente. WordPiece, quant à lui, calcule la fusion qui maximiserait la vraisemblance des données d'entraînement selon un modèle unigramme. Ainsi, BPE est uniquement basé sur la fréquence, tandis que WordPiece intègre un critère probabiliste qui tend à produire des frontières linguistiquement plus pertinentes.
Pourquoi GPT utilise BPE alors que BERT utilise WordPiece ?
Ces choix reflètent les différences entre les groupes de recherche et leurs contextes historiques respectifs, plutôt qu'une nécessité technique impérieuse. L'équipe GPT d'OpenAI a hérité de BPE de travaux antérieurs sur la compression au niveau octet et l'a jugé efficace pour son approche de modélisation générative du langage. L'équipe BERT de Google avait déjà développé WordPiece pour ses systèmes de reconnaissance vocale et de traduction ; elle a donc naturellement utilisé ses outils existants. Les deux méthodes fonctionnent suffisamment bien pour qu'aucun des deux groupes n'ait ressenti le besoin d'en changer.
Est-ce que BPE et WordPiece peuvent gérer les langues qui n'utilisent pas d'espaces entre les mots ?
Oui, les deux algorithmes fonctionnent correctement sans espaces, même s'ils peuvent produire des segmentations moins intuitives. Comme ils opèrent tous deux sur des séquences de caractères ou d'octets, l'absence d'espaces ne les empêche pas de fonctionner. Cependant, les langues comme le thaï, le chinois ou le japonais bénéficient souvent d'une pré-segmentation ou d'un prétraitement spécialisé, car une fusion purement statistique peut ne pas correspondre à l'intuition des locuteurs natifs quant aux frontières des mots.
Comment choisir entre BPE et WordPiece pour un nouveau projet ?
En pratique, le choix est rarement indépendant de l'architecture du modèle. Pour l'ajustement fin de GPT-2, GPT-3 ou RoBERTa, l'utilisation du tokenizer BPE est impérative pour garantir la compatibilité. Pour les modèles basés sur BERT, WordPiece est requis. Lors d'un développement à partir de zéro, il est important de noter que BPE est légèrement plus simple à implémenter et à déboguer, tandis que WordPiece peut offrir des segmentations linguistiques légèrement plus nettes. Des bibliothèques modernes comme SentencePiece permettent d'expérimenter facilement avec les deux.
Quelle taille de vocabulaire dois-je utiliser avec BPE ou WordPiece ?
La plupart des modèles de traitement automatique du langage naturel (TALN) modernes utilisent entre 30 000 et 50 000 tokens, les valeurs par défaut les plus courantes étant 32 000 et 50 000. Un vocabulaire plus restreint impose un découpage plus fréquent en sous-mots, ce qui augmente la longueur des séquences mais améliore la gestion des termes rares. À l'inverse, un vocabulaire plus étendu réduit la longueur des séquences, mais nécessite des matrices d'embeddings plus grandes et peut rencontrer des difficultés avec les tokens très rares. Le choix optimal dépend de la langue, de la taille du corpus et des ressources de calcul disponibles.
Ces analyseurs de caractères peuvent-ils gérer les émojis, le code ou d'autres textes non standard ?
Le traitement binaire des données (BPE) au niveau octet gère ces cas de manière robuste car il opère sur des octets bruts plutôt que sur des jeux de caractères prédéfinis. Le BPE standard et WordPiece peuvent rencontrer des difficultés avec les caractères Unicode rares, à moins que leur vocabulaire initial ne les inclue explicitement. La plupart des implémentations en production utilisent désormais le traitement binaire des données ou une couverture Unicode étendue afin d'éviter les problèmes de jetons inconnus dans les textes des réseaux sociaux, le code source et les contenus multilingues.
Qu'est-ce que SentencePiece et quel est son lien avec BPE et WordPiece ?
SentencePiece est une bibliothèque de tokenisation open source de Google qui unifie plusieurs algorithmes de segmentation en sous-mots, notamment BPE, WordPiece et la tokenisation par modèle de langage unigramme. Elle gère la pré-tokenisation, la normalisation et l'apprentissage du vocabulaire au sein d'un seul outil. Plutôt qu'un algorithme distinct, il s'agit d'un framework flexible permettant de choisir et de configurer la stratégie de tokenisation la plus adaptée à vos besoins grâce à des interfaces cohérentes.
Les modèles BPE et WordPiece ont-ils encore une importance avec les grands modèles de langage modernes ?
Absolument. Malgré l'envergure considérable de modèles comme GPT-4, Claude et Gemini, ils reposent tous fondamentalement sur la tokenisation en sous-mots. L'algorithme spécifique peut varier, et certains modèles plus récents expérimentent des approches alternatives, mais le défi principal que représente la représentation de textes de longueur variable dans des espaces lexicaux de taille fixe demeure universel. La compréhension de BPE et de WordPiece permet de saisir intuitivement le fonctionnement du langage dans ces modèles.
Pourquoi les erreurs de tokenisation provoquent-elles un comportement aussi déroutant dans les modèles de langage ?
La tokenisation intervient avant même que le réseau neuronal ne traite le texte ; par conséquent, toute particularité dans la segmentation des chaînes de caractères est intégrée à la représentation d'entrée du modèle. Les modèles peuvent également être exploités via des artefacts de tokenisation, où des chaînes spécialement conçues contournent les filtres de sécurité grâce à une tokenisation inattendue. C'est pourquoi une conception robuste de la tokenisation est cruciale pour la fiabilité et la sécurité des modèles.
Existe-t-il un moyen de visualiser comment BPE ou WordPiece tokenise un texte spécifique ?
Oui, la plupart des bibliothèques NLP modernes proposent des outils pour cela. La bibliothèque Hugging Face Transformers inclut les méthodes `tokenizer.decode` et `tokenizer.convert_ids_to_tokens` qui montrent précisément comment le texte est segmenté. Il existe également des outils de visualisation en ligne permettant de saisir du texte et de voir les limites des tokens mises en évidence. Ces outils sont précieux pour déboguer les comportements inattendus du modèle et comprendre pourquoi certaines entrées perturbent le système.
En quoi le BPE-dropout diffère-t-il du BPE standard ?
L'algorithme BPE-dropout, introduit en 2020, ignore aléatoirement certaines opérations de fusion lors de l'entraînement, avec une certaine probabilité. Ceci génère plusieurs tokenisations valides pour un même mot, ce qui constitue une forme d'augmentation de données. Le modèle ainsi obtenu est plus robuste aux variations de tokenisation et offre généralement de meilleures performances pour les tâches en aval, notamment avec des données d'entraînement limitées. Il s'agit d'une amélioration simple mais efficace de l'algorithme BPE classique.
Puis-je combiner les tokenisations BPE et WordPiece dans le même pipeline ?
Techniquement possible, mais déconseillé en pratique. Les différents tokenizers produisent des identifiants de tokens et des correspondances de vocabulaire incompatibles ; les combiner nécessiterait donc des couches d'alignement complexes ou des étapes de re-tokenisation qui dégradent généralement les performances. Si vous devez combiner des modèles utilisant des tokenizers différents, l'approche standard consiste à réentraîner ou adapter l'un pour qu'il corresponde à l'autre, ou à utiliser un tokenizer unifié comme SentencePiece pour tous les composants dès le départ.
Verdict
Choisissez BPE lorsque vous travaillez avec des modèles de type GPT ou lorsque vous avez besoin d'une tokenisation simple et rapide capable de gérer des textes variés, y compris du code et des données multilingues. Optez pour WordPiece si vous utilisez des architectures basées sur BERT ou si vous souhaitez des limites de tokens plus proches des morphèmes linguistiques. Pour la plupart des utilisateurs, le choix se fait en fonction du modèle pré-entraîné sélectionné.