// CLUBIC — INTELLIGENZA ARTIFICIALE
Un token, qu’est-ce que c’est et pourquoi les IA en ont-elles besoin ?
Omniprésent dès qu’on parle d’IA générative, le token sert à découper ce que les modèles traitent, mais aussi à mesurer leur capacité et leur consommation. Une petite unité sur laquelle repose une bonne partie de leur fonctionnement.
Modèle capable de traiter jusqu’à 200 000 tokens à la fois, tarif de quelques dollars par million de tokens, consommation de tokens en entrée ou en sortie… Si vous vous êtes déjà intéressé un tant soit peu au fonctionnement de ChatGPT, Claude, Gemini ou d’autres modèles d’intelligence artificielle générative, vous avez forcément déjà croisé ce terme à un moment ou à un autre. Et pour cause, le token constitue l’une des unités fondamentales sur lesquelles reposent les grands modèles de langage. Vous voilà bien avancé, n’est-ce pas ? Non. Alors concrètement, un token, c’est quoi ?
Quand on parle de modèle de langage, un token correspond à une unité dans laquelle les données sont découpées avant d’être traitées. Pour du texte, il peut s’agir d’un mot entier, d’une partie de mot, d’un signe de ponctuation, voire de quelques caractères, espaces compris.
À titre d’exemple, une phrase toute simple comme « Windows installe une mise à jour et fait planter les PC. » n’est donc pas nécessairement découpée comme nous le ferions spontanément, à savoir :
Le résultat dépend du tokenizer utilisé, c’est-à-dire de l’outil chargé de segmenter le texte. Chaque modèle, ou famille de modèles, s’appuie sur un tokenizer donné, si bien qu’une même phrase ne sera pas forcément décomposée de la même manière par deux IA différentes. Il faut donc oublier l’équivalence « un token = un mot ». Pour vous donner un ordre de grandeur, chez OpenAI, Google et Anthropic, il faut compter environ quatre caractères par token, soit trois quarts d’un mot en anglais. En anglais, oui, car la langue utilisée influence elle aussi la manière dont le texte est découpé.
Si vous avez bien suivi, la logique voudrait donc qu’un mot long soit découpé en davantage de tokens qu’un mot court. Sauf que non. Ou du moins, pas forcément. Un mot long mais très courant peut tout à fait n’être représenté que par deux tokens, quand un terme plus court, mais rare ou inhabituel, en nécessitera quatre.
Pourquoi ? Parce que, malgré les estimations citées plus haut, le tokenizer ne se fie pas à la longueur des mots. Il s’appuie sur un vocabulaire, c’est-à-dire un ensemble fini d’unités qu’il sait reconnaître.
Dans les méthodes de tokenisation courantes, ce vocabulaire privilégie notamment les séquences fréquemment rencontrées dans les données : plus une suite de caractères revient souvent, plus elle a de chances d’exister comme une unité à part entière. Une terminaison très courante comme « ing » en anglais aura ainsi plus de chances de figurer telle quelle dans ce vocabulaire, ce qui permet au tokenizer de la réutiliser dans une multitude de mots, là où il devra généralement représenter une séquence plus rare à l’aide de plusieurs tokens.
Un joyeux casse-tête, qui n’est en fait qu’une affaire de compromis. Si le modèle devait uniquement travailler à partir de mots entiers, le vocabulaire du tokenizer devrait alors prévoir une entrée pour chaque terme, mais également pour ses différentes formes, les noms propres, les néologismes ou les fautes de frappe. Il enflerait à une vitesse folle. À l’inverse, le faire travailler caractère par caractère produirait des séquences beaucoup trop longues à traiter. Avec les tokens, on coupe donc la poire en deux.
Une fois le texte découpé, le tokenizer passe la main au modèle. On parle alors de tokens d’entrée (input tokens) pour désigner tout ce qu’il reçoit et doit traiter. Votre prompt en fait évidemment partie, mais le compteur peut aussi inclure les échanges précédents, des instructions, le contenu d’un document, en bref tout ce qui compose le contexte transmis au modèle.