Tokenisation (NLP)
La tokénisation dans le contexte des grands modèles de langage (LLM) est un processus fondamental de prétraitement qui consiste à diviser une séquence de texte en unités plus petites et gérables appelées tokens. Ces tokens sont ensuite convertis en identifiants numériques que le modèle peut traiter. La tokénisation est une première étape cruciale car elle influence directement la performance, l'efficacité, l'équité et la qualité de la compréhension du langage par le modèle.
Concepts fondamentaux
Token
Un token est une unité de texte discrète traitée par un modèle de langage. Selon la méthode de tokénisation choisie, un token peut représenter :
- Un mot entier (par exemple, « chat »).
- Une partie de mot ou un sous-mot (par exemple, « pré- », « -vis- », « -ion »).
- Un caractère unique (par exemple, « a », « b », « c »).
- Un octet (dans le cas de la tokénisation au niveau de l'octet, ou byte-level).
Chaque token unique se voit attribuer un numéro d'index spécifique provenant du vocabulaire du tokéniseur.
Vocabulaire du tokéniseur
Le vocabulaire est l'ensemble complet de tous les tokens possibles qu'un modèle peut reconnaître. La taille du vocabulaire est un hyperparamètre important :
- Un grand vocabulaire permet de représenter plus de mots entiers, ce qui améliore la compréhension et réduit la longueur des séquences, mais augmente la taille du modèle et la complexité de l'entraînement.
- Un petit vocabulaire est plus compact, mais nécessite de diviser les mots rares ou complexes en un plus grand nombre de sous-mots, ce qui peut allonger les séquences et compliquer la capture de la sémantique.
La taille du vocabulaire varie considérablement d'un modèle à l'autre : d'environ 50 000 tokens pour GPT-2 à plus de 100 000 pour les modèles modernes tels que GPT-4 (100 277) et LLaMA-3 (128 000).
Principales méthodes de tokénisation
Il existe trois principaux niveaux de granularité pour la tokénisation.
1. Tokénisation au niveau du mot (Word-level)
- Principe : Le texte est divisé en mots individuels en fonction des délimiteurs (espaces, signes de ponctuation).
- Avantages : Intuitive ; les séquences de tokens sont plus courtes, ce qui réduit la charge de calcul.
- Inconvénients :
- Problème des mots hors vocabulaire (Out-of-Vocabulary, OOV) : Le modèle ne peut pas traiter les mots qui ne figuraient pas dans le vocabulaire d'entraînement, ainsi que les fautes de frappe et les nouveaux mots.
- Grande taille du vocabulaire : Il est nécessaire de stocker tous les mots uniques, ce qui est particulièrement problématique pour les langues à morphologie riche.
2. Tokénisation au niveau du caractère (Character-level)
- Principe : Le texte est divisé en caractères individuels.
- Avantages :
- Pas de problème OOV : Tout mot peut être représenté comme une séquence de caractères.
- Vocabulaire de petite taille : Limité à la taille de l'alphabet et des caractères spéciaux.
- Inconvénients :
- Séquences longues : Le texte est converti en séquences de tokens très longues, ce qui augmente considérablement les coûts de calcul.
- Perte de sémantique : Il est plus difficile pour le modèle de saisir le sens, car il opère sur des caractères individuels plutôt que sur des mots entiers.
3. Tokénisation en sous-mots (Subword Tokenization)
Il s'agit d'une approche intermédiaire et la plus populaire aujourd'hui, qui combine les avantages des méthodes précédentes.
- Principe : Les mots fréquemment utilisés restent des tokens entiers, tandis que les mots rares ou inconnus sont divisés en parties plus petites et significatives (les sous-mots).
- Avantages :
- Traite efficacement les mots OOV et les variations morphologiques.
- Taille de vocabulaire contrôlable.
- Capture la structure morphologique des mots.
- Principaux algorithmes :
- Byte Pair Encoding (BPE) : Un algorithme itératif qui commence avec un ensemble de caractères et fusionne progressivement les paires les plus fréquentes pour créer de nouveaux tokens. Il est utilisé dans les modèles GPT. Le Byte-level BPE, utilisé dans GPT-2 et RoBERTa, traite les mots comme des séquences d'octets, ce qui résout complètement le problème des OOV.
- WordPiece : Un algorithme similaire à BPE, mais qui choisit de fusionner les paires qui maximisent la vraisemblance des données d'entraînement. Il est utilisé dans les modèles BERT.
- Unigram LM : Contrairement à BPE/WordPiece, cette méthode part d'un grand ensemble de sous-mots et le réduit progressivement en supprimant les tokens qui affectent le moins la probabilité globale du corpus. Cela permet de créer plusieurs tokénisations probables pour un même mot (régularisation par sous-mots).
- Bibliothèque SentencePiece : Une bibliothèque de Google qui implémente BPE et Unigram LM et traite le texte comme un flux continu de caractères, la rendant universelle pour les langues sans séparateurs de mots explicites (comme le chinois). Elle est utilisée dans les modèles LLaMA et T5.
Tokénisation dans les LLM multimodaux
Dans les modèles multimodaux, qui ne traitent pas uniquement du texte, la tokénisation s'étend à d'autres types de données :
- Tokénisation visuelle : Les images sont décomposées en petites parcelles (appelées patches, par exemple de 16x16 pixels), qui sont ensuite converties en vecteurs-tokens, de manière similaire aux tokens textuels.
- Tokénisation audio : Les signaux audio continus sont transformés en une séquence de tokens discrets représentant de courts fragments de son.
- Approche unifiée (TEAL) : Un concept où les données de toute modalité sont d'abord tokénisées à l'aide d'un tokéniseur approprié, puis leurs embeddings (plongements) sont traités dans un espace commun unifié.
Problèmes et limitations
Malgré son importance, la tokénisation est à l'origine de nombreux problèmes dans le fonctionnement des LLM :
- Incohérence et sensibilité : De légères modifications dans les données d'entrée (faute de frappe, casse, espace final) peuvent radicalement changer la tokénisation, entraînant un comportement imprévisible du modèle.
- Problèmes multilingues : Un vocabulaire unique pour de nombreuses langues se révèle souvent inefficace pour les langues à faibles ressources ou à morphologie riche, ce qui produit des séquences de tokens excessivement longues.
- Impact sur le raisonnement : Une segmentation illogique des nombres (par exemple, « 25,000 » en « 25 », « , », « 000 ») ou des symboles complique l'exécution de tâches arithmétiques et symboliques.
- Tokens-glitch (Glitch Tokens) : Des tokens anormaux ou rares issus des données d'entraînement (par exemple, des noms d'utilisateur de Reddit) qui peuvent provoquer un comportement imprévisible ou malveillant du modèle.
Évolutions et perspectives d'avenir
La recherche dans le domaine de la tokénisation progresse activement dans les directions suivantes :
- Modèles sans tokéniseur : Le développement de modèles (CANINE, ByT5) fonctionnant directement au niveau des octets ou des caractères, afin d'éliminer complètement l'étape de tokénisation explicite et les problèmes qui y sont associés.
- Tokénisation adaptative et apprenable : La création de tokéniseurs capables de s'adapter dynamiquement à la langue, au domaine ou même au texte d'entrée spécifique, ou qui sont entraînés conjointement avec le modèle principal.
- Approches d'inspiration cognitive : Le développement de méthodes inspirées des sciences cognitives sur le traitement du langage humain (par exemple, le « Principe du moindre effort ») pour créer des tokénisations plus pertinentes sur le plan sémantique.
Liens
- Vue d'ensemble de la tokénisation dans le cours sur les LLM de Hugging Face
- Documentation sur la tokénisation par Mistral AI
Bibliographie
- Schuster, M.; Nakajima, K. (2012). Japanese and Korean Voice Search. PDF.
- Sennrich, R.; Haddow, B.; Birch, A. (2016). Neural Machine Translation of Rare Words with Subword Units. arXiv:1508.07909.
- Kudo, T.; Richardson, J. (2018). SentencePiece: A Simple and Language-Independent Subword Tokenizer and Detokenizer for Neural Text Processing. arXiv:1808.06226.
- Kudo, T. (2018). Subword Regularization: Improving Neural Network Translation Models with Multiple Subword Candidates. arXiv:1804.10959.
- Song, X. et al. (2021). Fast WordPiece Tokenization. ACL-Anthology.
- Mielke, S. J.; Dalmia, S.; Cotterell, R. (2021). A Brief History of Open-Vocabulary Modeling and Tokenization in NLP. arXiv:2112.10508.
- Xue, J. et al. (2022). ByT5: Towards a Token-Free Future with Pre-trained Byte-to-Byte Models. arXiv:2105.13626.
- Clark, J. H. et al. (2022). CANINE: Pre-Training an Efficient Tokenization-Free Encoder for Language Representation. arXiv:2103.06874.
- Limisiewicz, T.; Balhar, J.; Mareček, D. (2023). Tokenization Impacts Multilingual Language Modeling. arXiv:2305.17179.
- Pourmostafa Roshan Sharami, J.; Shterionov, D.; Spronck, P. (2023). A Systematic Analysis of Vocabulary and BPE Settings for Optimal Fine-Tuning of NMT. arXiv:2303.00722.
- Batsuren, K. et al. (2024). Evaluating Subword Tokenization: Alien Subword Composition and OOV Generalization Challenge. arXiv:2404.13292.
- Chai, Y. et al. (2024). Tokenization Falling Short: On Subword Robustness in Large Language Models. arXiv:2406.11687.