La tokenisation du texte est l'étape fondamentale qui transforme le langage humain en données numériques pour les réseaux de neurones. Ce processus décompose le texte en tokens, qui reçoivent des identifiants numériques, avant d'être convertis en vecteurs. Découvrez comment la tokenisation influence le fonctionnement et la compréhension des modèles d'intelligence artificielle.
La tokenisation du texte est l'étape essentielle qui permet à un réseau de neurones de transformer le langage humain en données numériques exploitables. Contrairement à la lecture humaine, une intelligence artificielle ne comprend pas directement les mots, espaces et signes de ponctuation. Elle doit d'abord convertir le texte en une forme mathématiquement traitable, et c'est précisément ce rôle que joue la tokenisation au tout début du traitement d'une requête.
En simplifiant, le processus suit cette chaîne : le texte initial est découpé en segments appelés tokens, chacun reçoit un identifiant numérique, puis ces nombres sont transformés en vecteurs. Ces vecteurs servent ensuite d'entrée aux couches du réseau de neurones. Ainsi, on passe du texte à une suite : texte → tokens → IDs → vecteurs → calculs du réseau.
La tokenisation du texte consiste à fragmenter une chaîne en éléments séparés que le modèle peut manipuler. Ces éléments peuvent être des mots entiers, des parties de mots, des symboles, des chiffres ou de la ponctuation.
Par exemple, le mot " tokenisation " paraît indivisible à l'humain, mais un tokeniseur peut le conserver en un seul token ou le séparer en plusieurs segments. Il en va de même pour les noms propres, termes techniques, mots rares ou expressions dans différentes langues.
La raison est simple : le réseau de neurones ne peut pas effectuer de calculs directement sur les lettres ou les mots. Comme le processeur ne manipule que des chiffres, il faut d'abord convertir le texte en format numérique. La tokenisation sert d'interface entre le langage humain et le modèle mathématique.
La tokenisation ne se limite pas à découper une phrase selon les espaces. Prenons cette phrase :
Le réseau de neurones comprend du texte.
Un découpage par espaces donnerait trois mots. Mais un tokeniseur réel pourrait distinguer davantage d'éléments : une partie d'un mot long, un signe de ponctuation isolé ou plusieurs fragments d'un seul mot. Le résultat dépend de l'algorithme et du dictionnaire employés.
Un token n'est donc pas forcément synonyme de mot. Un mot court et courant correspond parfois à un seul token, mais un mot long ou rare en occupera plusieurs. À l'inverse, un signe de ponctuation, une suite de chiffres ou un fragment de mot peut constituer un token à part entière.
C'est pourquoi deux phrases avec le même nombre de mots peuvent différer largement par leur nombre de tokens. Un même texte en russe et en anglais n'occupera pas forcément le même espace en tokens.
Pour approfondir le sujet, découvrez l'article dédié : Comprendre les tokens dans les réseaux de neurones : fonctionnement et importance.
Le tokeniseur reçoit la chaîne initiale et la segmente selon son propre dictionnaire. Les frontières des tokens ne coïncident pas toujours avec celles des mots : parfois c'est un mot entier, parfois une partie seulement, ou même un seul caractère.
Prenons une phrase simple :
Le réseau de neurones analyse le texte.
À l'œil humain, il s'agit de cinq mots et d'un point. Mais pour le tokeniseur, cela peut donner :
Ceci est une illustration : le découpage réel dépend du tokeniseur. Un modèle peut garder " réseau de neurones " entier, un autre le fragmenter.
Les espaces jouent également un rôle. Dans certains systèmes, le token inclut l'espace précédent. Ainsi, une même séquence de lettres peut être représentée différemment selon sa position dans la phrase.
Ce principe permet d'éviter de stocker toutes les formes possibles d'un mot. Au lieu de millions de combinaisons, le modèle assemble les mots rares ou complexes à partir de fragments plus universels.
Plus une séquence apparaît fréquemment dans les données d'entraînement, plus il est probable qu'elle ait son token dédié. Les mots communs ou leurs terminaisons sont donc généralement codés de façon compacte.
À l'inverse, un mot rare ou long (terme technique, nom propre, mot composé) risque de ne pas figurer dans le dictionnaire et sera alors découpé en fragments connus.
Par exemple, le mot imaginaire :
microarchitecture
pourrait être segmenté ainsi :
Si même ces fragments font défaut, le découpage sera encore plus fin.
Les différences sont d'autant plus marquées entre langues. Un tokeniseur optimisé pour l'anglais code le texte anglais plus efficacement que le texte russe ou japonais, ce qui influe sur l'espace occupé dans la fenêtre de contexte du modèle.
Des symboles inhabituels, emojis, suites de chiffres ou de code peuvent aussi être scindés de façon imprévisible : un identifiant long ou une combinaison aléatoire de lettres peut occuper bien plus de tokens qu'une phrase ordinaire.
Le tokeniseur est un algorithme associé à un dictionnaire de données qui définit la transformation du texte en tokens. Son cœur est le dictionnaire, qui fait correspondre à chaque token autorisé un identifiant numérique unique.
Exemple simplifié d'un dictionnaire :
Les chiffres sont fictifs. Chaque modèle possède son propre dictionnaire et ses identifiants.
Quand l'utilisateur soumet une requête, le tokeniseur cherche les éléments correspondants et forme une séquence. Si le mot complet est absent, il assemble des composants plus petits. Ainsi, tout texte peut être représenté à l'aide d'un ensemble fini de tokens connus du modèle.
La taille et la construction du dictionnaire influent fortement sur la compacité du codage, la gestion des langues et le nombre de tokens nécessaires pour les mots rares. C'est pourquoi la tokenisation est un pilier de l'architecture des modèles de langage.
L'un des procédés les plus utilisés pour la tokenisation est le Byte Pair Encoding (BPE). Initialement conçu pour la compression de données, il sert aujourd'hui à créer les dictionnaires des modèles de langage.
Le principe de BPE : repérer les séquences fréquentes et les fusionner en éléments plus grands. Ainsi, le tokeniseur stocke les mots ou fragments courants, et assemble les mots rares à partir de tokens plus courts.
Un dictionnaire ne contenant que des mots entiers serait immense : il faudrait stocker toutes les formes du mot " réseau de neurones ", y compris au pluriel, avec différents suffixes, ainsi que des termes nouveaux ou des noms de marque. Impossible à maintenir efficacement.
À l'inverse, découper le texte uniquement en caractères génère des séquences trop longues. BPE trouve l'équilibre entre ces extrêmes.
Imaginons que les mots suivants soient fréquents :
Le premier passage du BPE considère chaque lettre séparément, puis compte les paires les plus fréquentes. Si " ne " apparaît souvent, il devient un nouvel élément. On poursuit ainsi :
Au final, " neur " ou " neuro " devient un token, car on le retrouve dans de nombreux mots.
Inutile donc de stocker " réseau de neurones ", " neuronal " ou " neuro-interface " en entier : le tokeniseur utilise le fragment commun, et complète avec d'autres tokens.
Ce procédé permet de coder les constructions fréquentes de façon compacte, tandis que les mots rares sont découpés en plus petits fragments. Le modèle n'est pas limité à un vocabulaire figé de mots classiques.
Le BPE n'implique pas que toutes les architectures modernes utilisent exactement le même schéma. Il existe des variantes : unités de base, taille du dictionnaire, règles de fusion, gestion des espaces ou des symboles spéciaux diffèrent selon les modèles.
Ainsi, une même phrase peut générer un nombre de tokens différent selon la méthode et le vocabulaire du tokeniseur.
L'objectif reste commun : représenter la diversité du langage avec un nombre fini d'éléments. Une fois identifiés, chaque token reçoit un identifiant numérique transmis à la suite du réseau.
Après la tokenisation, le modèle reçoit une séquence d'éléments, non de mots. Mais même ces tokens ne peuvent pas être transmis tels quels à la machine. Ils doivent d'abord être associés à un identifiant numérique.
Chaque token du dictionnaire possède un numéro unique. Par exemple, une phrase comme :
réseau de neurones comprend le texte
peut se transformer en :
Puis en identifiants :
Ces valeurs sont fictives et dépendent du dictionnaire du tokeniseur.
L'ID agit comme un numéro de ligne dans une base de données : il identifie l'élément, mais n'indique rien de son sens.
L'ID numérique ne renseigne pas sur la signification du token. Si " chat " vaut 500 et " chien " 9000, cela ne veut pas dire que " chien " est 18 fois plus important que " chat " : ces chiffres ne servent qu'à l'identification.
La prochaine étape consiste à associer à chaque ID un vecteur de nombres appelé embedding.
Pour chaque token, le modèle stocke une représentation numérique composée de nombreux éléments. À la place d'un simple ID :
le réseau reçoit un vecteur comme :
Les modèles de langage réels utilisent des vecteurs de centaines de dimensions.
Ce n'est plus un numéro d'ordre. Pendant l'apprentissage, les paramètres du modèle s'ajustent pour que ces représentations vectorielles reflètent les relations entre éléments du langage. Les tokens employés dans des contextes similaires voient leurs vecteurs partager certains traits.
Il ne faut pas croire pour autant qu'une coordonnée du vecteur signifie littéralement " animal ", " objet " ou " émotion positive ". Le sens est distribué sur l'ensemble des paramètres et prend sa valeur dans le contexte du modèle.
À ces vecteurs s'ajoutent des informations de position pour tenir compte de l'ordre des tokens, car l'agencement des mots modifie le sens.
La transformation complète s'effectue ainsi : texte → tokenisation → tokens → IDs numériques → vecteurs → traitement par le réseau.
Par exemple, une phrase saisie par l'utilisateur est découpée par le tokeniseur, chaque segment recevant un numéro. Ces numéros servent à obtenir les vecteurs correspondants, que le modèle analyse pour détecter les liens entre tokens et leur contexte.
C'est à ce stade que le langage humain se convertit en données mathématiques exploitables par l'IA.
La tokenisation n'attribue pas elle-même le sens au texte, mais elle détermine sous quelle forme il sera traité. Plus une phrase se découpe en tokens familiers, plus elle occupe peu de place dans la fenêtre de contexte et plus le modèle gère facilement la séquence.
Pour l'humain, " chat ", " chaton ", " petit chat " sont liés. Le tokeniseur, lui, peut les découper différemment : un mot en un token, un autre en deux, un troisième en plusieurs fragments. La relation entre ces éléments sera analysée ensuite par le réseau dans leur contexte.
Le phénomène est particulièrement visible avec les termes rares : un mot courant, appris lors de la construction du dictionnaire, sera souvent un token large. Un nom technique, une formule chimique ou un néologisme seront morcelés en de nombreux éléments.
Exemple :
Le modèle peut traiter un mot rare, mais la séquence occupera plus d'espace et comportera davantage de tokens.
Cela vaut aussi pour les pseudos, adresses web, numéros de série, séquences aléatoires ou code. Une chaîne courte pour l'humain peut devenir une longue suite de tokens pour le modèle.
La langue du texte a aussi son importance. Le dictionnaire du tokeniseur dépend des données d'entraînement : si les fragments anglais y sont présents en gros blocs, mais les séquences russes plus fragmentées, alors le texte russe nécessitera plus de tokens pour la même information.
La différence est cruciale sur de longs documents. La fenêtre de contexte du modèle se mesure en tokens, non en pages ou en mots. Deux textes identiques en longueur peuvent occuper des contextes différents.
Mais la tokenisation ne suffit pas à saisir le sens. Après conversion en tokens, la machine analyse l'ensemble de la séquence et les liens internes. Par exemple, " clé " peut désigner un outil, une source d'eau ou un code d'accès : le tokeniseur n'en décide pas, il segmente simplement le texte. Le contexte permet ensuite au modèle d'attribuer le sens approprié.
En résumé, la compréhension du texte par l'IA commence par la tokenisation, mais ne s'y limite pas. Le tokeniseur traduit le langage en données manipulables, puis le modèle traite le contexte et les relations entre tokens.
La tokenisation du texte est la première étape pour transformer le langage en données traitables par un réseau de neurones. Le texte est segmenté en tokens, chaque token reçoit un ID numérique, qui est ensuite converti en vecteur pour alimenter le modèle dans ses calculs.
Un token n'est pas nécessairement un mot : il peut s'agir d'un mot entier, d'un fragment, d'un symbole ou d'un signe de ponctuation. Le nombre total de tokens dépend donc de la longueur du texte, de la langue, du vocabulaire utilisé et du tokeniseur choisi.
Des algorithmes comme Byte Pair Encoding aident à trouver un équilibre entre un dictionnaire trop volumineux et une fragmentation excessive. Les séquences fréquentes deviennent de grands tokens, les mots rares sont assemblés à partir de petits fragments.
Le chemin du texte dans le modèle peut donc se résumer ainsi : langage humain → tokeniseur → tokens → IDs numériques → vecteurs → réseau de neurones.
Comprendre ce processus permet d'expliquer pourquoi ChatGPT et d'autres modèles mesurent le contexte en tokens, pourquoi des textes de même longueur peuvent occuper des espaces différents, et comment une phrase ordinaire devient une suite de nombres exploitables mathématiquement.