Chapitre 03 · Embeddings · 10 min
L'espace du sens
Des mots dans un espace géométrique. Roi − Homme + Femme = Reine, et autres miracles vectoriels.
Une équation qui ne devrait pas marcher
Considère cette opération :
roi − homme + femme ≈ reine
C'est une équation arithmétique, comme 5 − 2 + 4 = 7. Sauf qu'elle porte sur des mots.
Et elle marche. Pas parce qu'on a programmé "roi" et "reine" pour qu'ils se ressemblent. Mais parce qu'on a transformé chaque mot en une liste de nombres — un vecteur — et que l'algèbre du sens y devient l'algèbre tout court.
C'est l'idée la plus contre-intuitive des LLMs, et la plus puissante.
Du token à la position
Au chapitre précédent, on a vu que le texte devient une suite de token IDs — des entiers comme 5234 ou 91. Mais un entier nu n'a aucune structure. Le token 5234 n'est ni "proche" ni "loin" du token 5235. Ils sont juste numérotés.
Pour qu'un modèle puisse calculer avec des mots, il faut une représentation plus riche. La solution : associer à chaque token un vecteur d'environ 768, 1024, ou 4096 nombres réels. C'est ce qu'on appelle un embedding.
Au début de l'entraînement, ces vecteurs sont aléatoires. Petit à petit, à force de prédire des millions de mots suivants, le modèle apprend à les arranger pour que des mots de sens proche aient des vecteurs proches.
Personne n'a écrit cette règle. Elle émerge de la tâche de prédiction.
Pourquoi ça marche
Réfléchis à ce que ça signifie de bien prédire le mot après "Le roi a dit à sa…". Les bonnes réponses sont fille, femme, mère, reine — pas moteur ni algorithme. Un modèle qui prédit bien ces continuations doit savoir que ces mots sont remplaçables dans ce contexte.
La façon la plus économique de mémoriser cette équivalence, quand tu as des milliards de paramètres et des milliards de phrases, c'est de regrouper "fille", "femme", "mère", "reine" dans la même région de l'espace vectoriel. Le gradient pousse dans cette direction à chaque itération, sans qu'aucun humain n'ait besoin d'étiqueter quoi que ce soit.
Les embeddings ne sont pas conçus. Ils sont la trace géométrique de la tâche de prédiction.
Manipule l'espace
L'espace ci-dessous est une caricature à deux dimensions — les vrais embeddings en ont des centaines. Mais les propriétés essentielles sont là : les clusters sémantiques, le voisinage, l'arithmétique vectorielle.
Chaque point est un mot projeté dans un espace de sens. Les voisins partagent un thème — pas une orthographe. La flèche montre l'arithmétique vectorielle qui rend possible Roi − Homme + Femme = Reine.
Trois choses à remarquer :
- Les clusters apparaissent sans qu'on les ait nommés. Survole
chatet tu verraschien,souris,lion. Survolejoieet tu verrasamour,peur,tristesse. Les catégories n'existent pas dans la donnée — elles existent dans la géométrie. - Certaines directions ont un sens. Le vecteur qui mène de
hommeàfemmeest à peu près le même que celui qui mène deroiàreine, ou depèreàmère. C'est cette régularité qui fait fonctionner l'arithmétique. - Les distances sont relatives, pas absolues. Que
chatsoit à distance 0.32 dechienn'a aucun sens en soi. Ce qui compte, c'est qu'il soit plus proche dechienque depainou decolère.
L'illusion 2D
Dans les vrais modèles, un embedding a typiquement entre 768 et 4096 dimensions. Pourquoi autant ?
Parce qu'à 2D, on est obligé de faire des compromis. chat doit être proche de chien (animaux domestiques), de souris (mammifères), de tigre (félins), de oiseau (animal). Toutes ces "proximités" tirent dans des directions différentes — et à 2D, elles entrent en conflit.
À 768 dimensions, chaque facette du sens peut avoir sa propre direction. Le mot chat peut être proche de chien selon l'axe "animal de compagnie", proche de tigre selon l'axe "félin", proche de souris selon l'axe "petit mammifère". L'espace est assez vaste pour que toutes ces relations cohabitent sans s'écraser.
Les humains pensent qu'on ne peut pas visualiser 768 dimensions. Les embeddings n'en demandent pas tant : ils s'en servent juste pour ranger leurs catégories sans collision.
Mesurer la proximité : la similarité cosinus
Quand on dit que deux mots sont "proches" dans l'espace des embeddings, comment le mesure-t-on concrètement ? Pas avec la distance euclidienne classique. Avec la similarité cosinus.
L'idée : on regarde l'angle entre les deux vecteurs, pas leur longueur. Deux vecteurs qui pointent dans la même direction ont une similarité cosinus de 1, peu importe leur amplitude. Deux vecteurs orthogonaux donnent 0. Deux vecteurs opposés, −1.
cos(u, v) = (u · v) / (||u|| × ||v||)
Pourquoi cette mesure plutôt qu'une autre ? Parce que la norme d'un embedding (sa longueur) varie pour des raisons sans rapport avec le sens — fréquence du mot, profondeur de la couche. La direction, elle, encode le sens. La similarité cosinus isole ce qui compte.
C'est aussi cette mesure qui motorise toute la recherche sémantique moderne : les bases de données vectorielles (Pinecone, pgvector, Chroma…) indexent des millions de vecteurs et trouvent les plus proches d'une requête en un clin d'œil. On y revient au chapitre 10 (RAG).
Conséquences
Cette représentation géométrique a des effets surprenants :
- Les fautes d'orthographe sont robustes.
bonjouretbonjuront des embeddings très proches, donc le modèle les "comprend" presque pareil — alors qu'au niveau des tokens, ils sont totalement différents. - Les biais s'incrustent. Si dans le corpus d'entraînement,
infirmierapparaît plus souvent au féminin etmédecinau masculin, l'arithmétique des embeddings va le refléter. medecin − homme + femme peut donner infirmière. Beaucoup de travail va vers la correction de ces biais — on en reparlera au chapitre 8. - Tout devient calculable. Une fois que le sens est devenu un vecteur, on peut additionner, projeter, mesurer des angles. C'est exactement ce que fait le mécanisme suivant.
La suite
Ton mot est devenu un vecteur. Le mot d'à côté aussi. Et celui d'avant. Comment, à partir de cette séquence de vecteurs, le modèle décide-t-il que dans "Le médecin a renvoyé l'infirmière chez **elle**…", le pronom elle renvoie à l'infirmière et pas au médecin ?
Réponse au chapitre suivant : l'attention, le mécanisme qui laisse chaque token regarder tous les autres avant de décider qui il est.
Mis à jour le