Byte-pair encodingL'encodage par paires d'octets

TRA6008 S2 · in classS2 · en classe

Learning the pieces by counting

Which pieces should a subword vocabulary contain? Choosing them by hand would be rule-writing all over again. The standard method, byte-pair encoding, learns them from a corpus corpuscorpus corporacorpus A collection of written texts, speech recordings or transcribed language assembled for analysis or use in language technology (plural: corpora).Ensemble de textes écrits, d'enregistrements de parole ou de langue transcrite réuni pour l'analyse ou pour les technologies langagières. with a procedure simple enough to state in three steps (Sennrich et al., 2016):

  1. Split the whole corpus into single characters. These are the first tokens.
  2. Count every pair of adjacent tokens, and merge the most frequent pair into one new token, everywhere it occurs.
  3. Repeat step 2 until the vocabulary reaches the size you chose.

Learned once, applied forever

Frequent words quickly get their own token (the is one of the first) and rarer ones stay in a few pieces. Length counts as well as frequency: every merge joins two neighbours, so a long word needs many of them before it is whole again, and a short word of the same frequency gets there sooner. Frequent endings and stems, -ing, -tion, get a token too, because they recur across thousands of words.

The counting happens once and produces a list of merges. That list is then applied unchanged to every text the model ever reads, including yours.

Two panels. Left, headed once, before the model is trained: a very large corpus feeds byte-pair encoding, which produces a numbered merge list, r plus e, then i plus o, then io plus n, then re plus p, with the note that the list is learned from counts and then frozen, and that the model is trained on its output. Right, headed every time, on any text: your sentence enters, the same list is applied in order, and the tokens Token, ization and shapes come out with their IDs. A dashed arrow runs from the merge list to the applying step, and a note says the list is never relearned, so the split a model gets is decided before it exists.
Figure 6. Byte-pair encoding runs twice over in two different senses: once as learning, on a corpus, and then as a lookup applied unchanged to everything the model reads.
Written in English. The French version was automatically generated and I have not revised it. Rédigé en anglais. La version française a été générée automatiquement et je ne l'ai pas révisée. Updated 9 September 2026

Apprendre les morceaux en comptant

Quels morceaux un vocabulaire sous-lexical doit-il contenir ? Les choisir à la main reviendrait à écrire des règles, encore une fois. La méthode standard, l’encodage par paires d’octets, les apprend d’un corpus corpuscorpus corporacorpus A collection of written texts, speech recordings or transcribed language assembled for analysis or use in language technology (plural: corpora).Ensemble de textes écrits, d'enregistrements de parole ou de langue transcrite réuni pour l'analyse ou pour les technologies langagières. avec une procédure assez simple pour tenir en trois étapes (Sennrich et al., 2016) :

  1. Découper tout le corpus en caractères isolés. Ce sont les premiers jetons.
  2. Compter chaque paire de jetons voisins, et fusionner la paire la plus fréquente en un nouveau jeton, partout où elle apparaît.
  3. Répéter l’étape 2 jusqu’à ce que le vocabulaire atteigne la taille choisie.

Appris une fois, appliqué pour toujours

Les mots fréquents obtiennent vite leur propre jeton (le est l’un des premiers) et les plus rares restent en quelques morceaux. La longueur compte aussi, en plus de la fréquence : chaque fusion joint deux voisins, un long mot a donc besoin de nombreuses fusions avant d’être entier de nouveau, et un mot court de même fréquence y arrive plus tôt. Les terminaisons et les radicaux fréquents, -ion, -ment, obtiennent aussi un jeton, parce qu’ils reviennent dans des milliers de mots.

Le comptage n’a lieu qu’une fois et produit une liste de fusions. Cette liste est ensuite appliquée sans changement à tous les textes que le modèle lira, y compris les vôtres.

Deux panneaux. À gauche, intitulé une fois, avant l'entraînement du modèle : un très grand corpus alimente l'encodage par paires d'octets, qui produit une liste de fusions numérotée, r plus e, puis i plus o, puis io plus n, puis re plus p, avec la note que la liste est apprise par comptage puis figée, et que le modèle est entraîné dessus. À droite, intitulé chaque fois, sur n'importe quel texte : votre phrase entre, la même liste est appliquée dans l'ordre, et les jetons Token, ization et shapes en sortent avec leurs identifiants. Une flèche en pointillé va de la liste de fusions à l'étape d'application, et une note dit que la liste n'est jamais réapprise, si bien que le découpage qu'un modèle reçoit est décidé avant qu'il existe.
Figure 6. L'encodage par paires d'octets tourne deux fois en deux sens différents : une fois comme apprentissage, sur un corpus, puis comme consultation appliquée sans changement à tout ce que le modèle lit.
Written in English. The French version was automatically generated and I have not revised it. Rédigé en anglais. La version française a été générée automatiquement et je ne l'ai pas révisée. Mise à jour 10 septembre 2026

Sources

  • Jurafsky, D., & Martin, J. H. (2026). Speech and Language Processing: An Introduction to Natural Language Processing, Computational Linguistics, and Speech Recognition with Language Models. Online draft, 3rd edition. https://web.stanford.edu/~jurafsky/slp3/
  • Sennrich, R., Haddow, B., & Birch, A. (2016). Neural Machine Translation of Rare Words with Subword Units. Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers). https://doi.org/10.18653/v1/P16-1162

Sources

  • Jurafsky, D., & Martin, J. H. (2026). Speech and Language Processing: An Introduction to Natural Language Processing, Computational Linguistics, and Speech Recognition with Language Models. Online draft, 3rd edition. https://web.stanford.edu/~jurafsky/slp3/
  • Sennrich, R., Haddow, B., & Birch, A. (2016). Neural Machine Translation of Rare Words with Subword Units. Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers). https://doi.org/10.18653/v1/P16-1162

Spotted an error? Une erreur ?

Language, content, a broken link: e-mail me what you saw and I will fix it. Langue, contenu, lien brisé : écrivez-moi ce que vous avez vu et je corrige.

ayla.rigouts.terryn@umontreal.ca

Please mention the page: Mentionnez la page :