Explorateur de tokenisation BPE

Un modèle de langue ne voit jamais vos lettres. Il voit des tokens, déterminés par un vocabulaire figé bien avant votre saisie. Collez un texte et regardez ce vocabulaire le découper.

Chargement de la simulation interactive...

Le vocabulaire appartient à quelqu'un d'autre, et il est déjà terminé 🖖

La liste de fusions utilisée par cette page a été construite avant votre arrivée, à partir de la prose anglaise de ce site, et rien de ce que vous tapez ne la modifie. Ce n'est pas un raccourci : c'est ce qu'est un tokeniseur. Le vocabulaire est arrêté avant même que l'entraînement d'un modèle ne commence, et il ne peut pas s'élargir pour vous : un mot que ce corpus n'a jamais contenu n'a pas d'entrée propre, aussi banal soit-il pour vous. Tapez un nom propre, un terme technique ou un mot d'une autre langue et regardez-le arriver en morceaux.

L'espace fait partie du token 🖖

Un token qui commence un mot emporte avec lui l'espace qui le précède, affiché ici sous la forme ␣. Ainsi « the » en début de ligne et le même mot précédé d'un espace au milieu d'une ligne sont deux entrées distinctes du vocabulaire, et un modèle doit apprendre les deux. C'est pourquoi remettre en forme un paragraphe peut changer son nombre de tokens sans changer une seule lettre, et pourquoi un texte collé avec des espaces doubles ou des indentations coûte plus cher qu'il n'y paraît.

Le modèle ne voit pas les lettres à l'intérieur d'un token 🖖

Un token parvient au modèle sous la forme d'un seul nombre. Ici « strawberry » devient ▁stra · w · ber · ry : quatre nombres, et les trois r du mot tombent dans trois d'entre eux différents. Demander combien de r il contient oblige le modèle à regarder à l'intérieur de morceaux qu'il ne reçoit qu'entiers. Il répond souvent juste malgré tout, pour avoir lu la réponse quelque part. C'est de la mémoire, pas du comptage, et c'est ce qui rend l'échec si étrange lorsqu'il survient.

Problème entièrement résolu

  1. Compression quand soixante-huit caractères deviennent treize jetons 5 étapes

    Soixante-huit caractères deviennent treize tokens. Calculez la compression, puis ce que ces cinq caractères par token valent réellement pour un modèle.

    1. Les deux décomptes constituent toute la mesure : caractères en entrée, tokens en sortie.

    2. Leur ratio est un peu supérieur à cinq, ce qui est typique de l'anglais avec le codage par paires d'octets — les mots courants subsistent sous forme de tokens uniques et les mots rares se fragmentent.

    3. La comparaison qui importe est celle avec l'alternative. Un modèle au niveau des octets lit ce même texte comme 68 tokens, soit plus de cinq fois la longueur de séquence.

    4. La matrice d’attention contient n² entrées : multiplier la longueur par 5,23 multiplie donc cette partie du calcul par 27. Dans le reste du réseau, le coût varie linéairement avec n et se trouve divisé par 5,23. La composante qui l’emporte dépend de la longueur du contexte ; l’attention ne devient prépondérante qu’au-delà de quelques milliers de jetons.

    5. Les treize tokens ici sont tous distincts, ce qui indique que le texte est court et varié — il n'y a pas de répétition que les fusions puissent exploiter au-delà de ce que le vocabulaire encode déjà.

    Réponse

    L’outil affiche 13 jetons pour 68 caractères, soit 5,23 caractères par jeton. C’est cette compression qui justifie la tokenisation et en fait un enjeu majeur : à longueur de contexte égale, elle détermine si le modèle peut traiter cinq pages de texte ou une seule. Elle explique aussi pourquoi un même modèle coûte moins cher en anglais que dans les langues pour lesquelles son vocabulaire n’a pas été conçu. Les regroupements ont été appris sur un corpus ; une écriture qui y est peu représentée tend donc à se fragmenter jusqu’au niveau des octets, avec un surcoût linéaire dans tout le réseau et quadratique dans le mécanisme d’attention. Collez un texte dans une autre langue et observez la baisse du rapport.

Parcours

Comment un LLM choisit le mot suivant

Mène à token-embeddings le vocabulaire — l'ensemble figé d'entrées auxquelles tout ce qui suit peut attacher une probabilité.

Références (2)

Exemples de problèmes

  • Prose anglaise - 68 caractères deviennent 13 tokens. Les mots fréquents comme « of » et « a » restent entiers, tandis que « quickly » se coupe après « quick ».
  • La même phrase, en allemand - 69 caractères — un de plus que la phrase anglaise — deviennent 36 tokens. Le vocabulaire a été entraîné sur de l'anglais, et l'allemand le paie.
  • Mots rares et longs - 52 caractères deviennent 23 tokens. « strawberry » arrive en quatre morceaux, si bien que le modèle ne voit jamais ses trois r séparés.
  • Chiffres et dates - 50 caractères deviennent 31 tokens. Les chiffres sont coupés selon les paires présentes dans le corpus, et c'est pourquoi le calcul sur les grands nombres résiste à un modèle.
  • Anglais, petit vocabulaire - La même phrase anglaise que dans le premier exemple, avec 200 fusions au lieu de 3000 : 33 tokens au lieu de 13.