Embedding & indexation : la carte du sens
Un ordinateur ne comprend pas les mots — mais il excelle à comparer des nombres. L'embedding fait le pont : il place chaque texte sur une carte où « proche » veut dire « parle de la même chose ».
Le problème : « chercher » ne veut pas dire « chercher des mots »
Nous avons maintenant 120 fiches (chunks) bien découpées. Comment retrouver la bonne quand quelqu'un pose une question ? Le premier réflexe serait la recherche par mots-clés, comme Ctrl+F. Mais elle échoue vite : l'employé demande « Puis-je bosser de chez moi le vendredi ? » alors que le règlement parle de « télétravail ». Aucun mot en commun — et pourtant c'est exactement le bon passage.
Il nous faut une recherche qui compare le sens des phrases, pas leurs lettres. Et pour cela, il faut d'abord donner au sens… une forme que la machine sait manipuler.
Transformer un texte en nombres
Un modèle d'embedding est un programme (un réseau de neurones, entraîné sur d'énormes volumes de texte) qui prend une phrase en entrée et ressort une liste de nombres — un vecteur. Typiquement quelques centaines de nombres, par exemple 384 ou 1536.
Ces nombres n'ont pas de signification individuelle lisible (le 42ᵉ nombre ne veut pas dire « parle de sport »). Ce qui compte, c'est la propriété d'ensemble, apprise pendant l'entraînement du modèle : deux textes de sens proche reçoivent des listes de nombres proches. « Bosser de chez moi » et « télétravail » finissent côte à côte ; « barème des notes de frais » atterrit loin des deux.
Pensez aux coordonnées GPS. « 48.85, 2.35 » ne décrit pas Paris — mais deux points aux coordonnées voisines sont forcément des lieux voisins. L'embedding fait pareil avec les idées : il attribue à chaque texte sa position sur une immense carte du sens, avec des centaines de dimensions au lieu de deux.
Des sens proches, des points proches
Si l'on pouvait dessiner cette carte (en la réduisant à 2 dimensions), on verrait nos 120 chunks se ranger d'eux-mêmes par thème : les passages sur les congés se regroupent dans un coin, ceux sur le télétravail dans un autre, les notes de frais ailleurs. Personne n'a défini ces groupes — ils émergent du sens des textes.
C'est exactement cette carte que vous manipulez dans le playground RAG interactif : chaque point du graphique est un chunk positionné par son embedding.
L'indexation : ranger les vecteurs pour les retrouver vite
Il reste à stocker ces couples (vecteur, texte du chunk, métadonnées) quelque part. C'est le rôle de la base de données vectorielle (Qdrant, Chroma, Pinecone, pgvector…). Sa spécialité : répondre très vite à la question « quels sont les points les plus proches de celui-ci ? ».
Avec 120 chunks, on pourrait comparer un à un. Mais un vrai système en compte des millions. Les bases vectorielles utilisent donc des index : des structures de rangement qui regroupent les points par quartier, pour ne visiter que les quartiers prometteurs au lieu de toute la carte — comme on cherche un livre en allant directement au bon rayon de la bibliothèque plutôt qu'en parcourant toutes les étagères. Le résultat est une recherche quasi instantanée, au prix d'une approximation minime (on parle de recherche « approximate nearest neighbors »).
À retenir : à la fin de cette étape, la phase de préparation est terminée. Chaque morceau de vos documents a sa position sur la carte du sens, rangée dans une base prête à être interrogée. Tout ce qui suit se passe au moment où quelqu'un pose une question.