Tokenisation et représentations du texte dans un modèle
Avant de traiter une phrase, un modèle transforme le texte en identifiants issus d’un vocabulaire fini, puis récupère des vecteurs dans une table. Les couches calculent ensuite des représentations dépendantes du contexte : un même identifiant peut produire des états différents selon la phrase. Cela distingue trois questions : combien de tokens coûte un caractère, peut-on remplacer le tokenizer, et les états cachés conviennent-ils à la recherche ?
Les tokens servent à encoder le texte
Un vocabulaire de mots entiers rencontre des mots nouveaux, des variantes orthographiques et des composés ; un découpage en caractères peut allonger fortement les séquences. Les travaux de Sennrich et al. sur les sous-mots représentent les mots rares par de petits fragments réutilisables. Un token peut être un mot, un fragment, un signe de ponctuation ou une suite d’octets. Ses limites dépendent du tokenizer.
BPE apprend des règles de fusion d’unités adjacentes. WordPiece utilise ses propres procédures d’apprentissage du vocabulaire et d’appariement. Unigram attribue des probabilités aux segmentations possibles. Aucun de ces procédés ne constitue une compréhension lexicale du sens. La documentation de Hugging Face les distingue. SentencePiece permet notamment d’entraîner BPE ou Unigram sur des phrases brutes, sans exiger une segmentation préalable par espaces ; voir son article.
Dans un vocabulaire fictif, 重新加载 pourrait devenir 重新 et 加载, ou quatre caractères séparés. Ce n’est pas une prédiction du découpage d’un modèle réel. Une couverture complète des octets permet d’encoder des caractères inconnus, mais cette capacité n’établit pas la compréhension d’une langue. Caractères rares, emoji, mélanges de langues et grands nombres peuvent occuper beaucoup de tokens. Il faut compter avec le tokenizer du modèle, sans ratio fixe entre caractères et tokens.
Des identifiants aux vecteurs
Pour un vocabulaire de taille et une largeur cachée , une matrice entraînable fournit sa ligne pour l’identifiant . Un identifiant est un indice : 20 ne signifie pas deux fois ce que signifie 10.
Supposons un vocabulaire pédagogique BOS=0, 重新=1, 加载=2. Les identifiants [0,1,2] sélectionnent trois lignes. Pour un lot de taille 2, une longueur complétée à 5 et une largeur 4 :
La consultation équivaut à multiplier un vecteur one-hot par la matrice, sans allouer ce grand vecteur. Ce petit programme Python illustre uniquement cette opération :
embedding = [[0.0, 0.1], [0.5, -0.2], [-0.1, 0.8]]
ids = [0, 1, 2, 1]
x = [embedding[i] for i in ids]
assert x[1] == x[3] # Un même identifiant donne le même vecteur initial.
Même si bank porte le même identifiant dans « bank account » et « river bank », ses représentations ultérieures peuvent différer avec le contexte. L’attention décrit une opération qui actualise ces représentations.
L’ordre et les positions valides font partie de l’entrée
Un ensemble non ordonné de vecteurs ne distingue pas « le chat poursuit le chien » de la phrase inverse. Il faut une information de position. Le Transformer original ajoute des vecteurs positionnels à l’entrée ; RoPE effectue des rotations des requêtes et des clés dans l’attention. Ces opérations interviennent à des endroits différents : voir l’architecture Transformer.
Pour réunir des séquences de longueurs 3 et 5, on peut compléter la première jusqu’à 5. Ce remplissage occupe des positions du tenseur, mais ne devrait généralement ni fournir du contenu valide à l’attention ni contribuer aux cibles supervisées. Le masque d’attention et le masque de perte ont des fonctions distinctes. Exclure une position du calcul de perte n’empêche pas les autres de la consulter. Les bibliothèques peuvent traiter séparément causalité, remplissage et indices de position ; il faut respecter les conventions du modèle.
Les modèles conversationnels ajoutent des rôles, des limites de message et des marqueurs de génération. Le comptage doit porter sur l’entrée effectivement sérialisée. La troncature supprime des informations ; augmenter le budget de sortie ne rétablit pas une condition supprimée de l’entrée.
Lire une colonne verticalement : BERT additionne trois vecteurs de même dimension. La première ligne représente le token, la ligne A/B sa phrase et la dernière sa position. Le séparateur répété conserve son embedding de token, mais change de segment et de position. Cette construction est propre à BERT ; les modèles utilisant RoPE introduisent la position ailleurs.
Trois sens du mot embedding
Le plongement de token est le vecteur initial obtenu dans la table. L’état caché contextuel est la sortie d’une position dans une couche. Un vecteur de recherche représente généralement une phrase ou un document après une agrégation définie et un entraînement adapté. Une dimension identique ne rend pas ces objets interchangeables.
Faire la moyenne de [batch,sequence,d] donne [batch,d], mais la recherche dépend encore de l’objectif d’entraînement, de l’agrégation, du masque de remplissage, de la normalisation et du format des requêtes et documents. Deux sorties de dimension 768 ne partagent pas nécessairement un espace pertinent. Voir plongements, rerankers et classifieurs.
Examiner une chaîne d’entrée réelle
Avec un modèle local existant, examiner des exemples publics : phrases équivalentes en chinois et en anglais, code avec des espaces différents, caractère rare, puis la même phrase en texte brut et dans le gabarit conversationnel. Relever les identifiants, fragments lisibles, longueurs, tokens spéciaux et textes décodés. Cet exercice porte sur la représentation, pas sur le classement des capacités.
Observer la normalisation, l’endroit de la troncature, la duplication éventuelle de marqueurs et la cohérence des positions valides après remplissage. Certains tokenizers normalisent le texte : decode(encode(text)) ne restitue donc pas forcément les octets originaux. Poids, tokenizer, configuration des tokens spéciaux et gabarit doivent rester compatibles. Changer seulement le vocabulaire modifie le sens des identifiants, alors que les lignes apprises correspondent toujours aux anciens fragments.
La suite, Encoder, Decoder et Encoder–Decoder, explique notamment quelles positions chaque token peut consulter.
Le cours BPE de Hugging Face construit un tokenizer à partir des fréquences de mots et de paires. Suivre une fusion, puis appliquer les règles à un nouveau mot, rend concrète la différence entre apprendre un vocabulaire et utiliser un tokenizer existant.