Encodage par paires d'octets : regarde un modèle découper le texte en tokens

Tape du texte et glisse des caractères aux mots. C'est l'encodage par paires d'octets, la façon exacte dont les modèles de type GPT transforment ce que tu écris en tokens qu'ils lisent.

y26w35

Cette semaine, la machine apprend à lire. Pas le sens, cela viendra plus tard, mais la première étape brute : découper ton texte en tokens. Tout chatbot fait cela avant tout le reste, et cela explique bien des bizarreries, comme le fait qu’il compte mal les lettres ou que certains mots coûtent plus que d’autres.

Le gadget ci-dessous est un tokeniseur par encodage par paires d’octets (BPE), le schéma derrière les modèles de type GPT. Tape du texte et fais glisser le curseur Fusions (ou appuie sur Animer).

Regarde ce qui se passe :

  1. À 0 fusion, chaque caractère est son propre token. « the » fait trois tokens : t, h, e. Le nombre de tokens égale le nombre de caractères.
  2. Chaque fusion trouve la paire adjacente la plus fréquente de ton texte et la soude en un nouveau token. D’abord « t » et « h » deviennent peut-être « th », puis « th » et « e » deviennent « the ».
  3. À mesure que les fusions s’accumulent, les lettres fréquentes grandissent en sous-mots puis en mots entiers, et le nombre de tokens baisse. La liste des fusions est le début d’un vocabulaire.

Pourquoi les modèles lisent des morceaux, pas des lettres ni des mots

Un modèle a besoin d’un vocabulaire fixe de morceaux. Les lettres gardent le vocabulaire minuscule mais rendent les séquences douloureusement longues ; les mots entiers raccourcissent les séquences mais le vocabulaire explose et la moindre faute de frappe devient inconnue. Le BPE fait la part des choses : les mots fréquents deviennent des tokens uniques, tandis que les mots rares ou nouveaux se cassent en morceaux familiers. Voilà pourquoi « the » est un token mais un nom étrange peut en faire cinq.

C’est littéralement la couche d’entrée d’un grand modèle de langage. Avant que le transformer ne pense quoi que ce soit, avant que GPT-3 ou ChatGPT ne prédise son prochain token, le texte est transformé en morceaux exactement comme ceux-ci. C’est aussi pourquoi les modèles sont facturés au token et comptent les tokens, pas les mots : le token est ici la vraie unité du traitement automatique des langues.

Tape ton propre nom, ou un mot long et rare, et regarde en combien de morceaux il se découpe.

Tu as manqué les éditions précédentes ? Entraîne un perceptron, regarde une chaîne de Markov babiller, perds contre le morpion invincible, apprends à un filtre à voir les contours ou regarde un agent apprendre par la récompense.

Fusions apprises
Fais glisser le curseur Fusions (ou appuie sur Animer). À 0 fusion, chaque caractère est un token ; chaque fusion réunit la paire la plus fréquente, donc les lettres grandissent en mots et le nombre de tokens baisse.