Un modèle de langage ne lit pas des mots

Les tokens sont l'unité réelle avec laquelle un LLM travaille. Comprendre ce découpage change la façon d'écrire ses prompts.

J’ai longtemps cru qu’un modèle de langage lisait des phrases, mot après mot, comme moi. En réalité il lit des tokens, des fragments produits par un tokeniseur. Parfois un mot entier, parfois un bout de mot, parfois un simple espace.

Pourquoi découper ainsi

Un vocabulaire contenant tous les mots possibles serait gigantesque et plein de trous : mots rares, fautes de frappe, langues étrangères, néologismes. Les tokeniseurs modernes (BPE, byte-pair encoding) découpent plutôt le texte en morceaux réutilisables. Avec un vocabulaire fini, le modèle peut alors composer n’importe quel texte.

Le mot « anticonstitutionnellement » coûte plusieurs tokens. Le mot « le », un seul.

Pourquoi cela compte en pratique

Le prix et la fenêtre de contexte se comptent en tokens, jamais en mots. Une règle approximative pour le français : environ un token pour trois quarts de mot.

Le modèle perçoit aussi le texte à travers cette grille. Lui demander de compter les lettres d’un mot reste étonnamment difficile : il ne voit pas des lettres, il voit des fragments déjà agrégés.

"apprendre"     ->  ["app", "rendre"]          (2 tokens)
"à voix haute"  ->  ["à", " voix", " haute"]   (3 tokens)

Le déclic

Comprendre les tokens a modifié ma façon d’écrire mes prompts. Je ne m’adresse pas à un lecteur, mais à une machine entraînée à prédire le prochain fragment. La conséquence est concrète : ce que je place en début de contexte et la façon dont je formule comptent autant que le fond.