Principes de base
Que sont les embeddings ?
Un embedding transforme un texte en vecteur de nombres représentant son sens, ce qui rend possible la recherche par sens plutôt que par formulation exacte. Comment la similarité se mesure, et pourquoi les embeddings de modèles différents ne se mélangent pas.
Toutes les explications · Dernière vérification:
Une liste de nombres qui tient lieu de sens
Un modèle d’embedding lit un fragment de texte — un mot, une phrase, un paragraphe, parfois un document entier — et produit un vecteur de longueur fixe : une liste ordonnée de nombres, généralement longue de centaines ou de milliers d’éléments. Ce vecteur n’est pas un résumé lisible par une personne ; c’est une position dans un espace mathématique appris par le modèle pendant l’entraînement, organisé pour que les textes de sens proche se retrouvent près les uns des autres.
Ce qui se retrouve proche, c’est le sens, pas l’orthographe
Deux phrases qui ne partagent presque aucun mot mais signifient à peu près la même chose peuvent produire des vecteurs proches, parce que le modèle d’embedding a appris des associations entre concepts pendant l’entraînement, pas seulement quelles lettres apparaissent. À l’inverse, deux phrases partageant beaucoup de mots mais de sens différent peuvent se retrouver très éloignées. C’est la différence essentielle entre une recherche fondée sur les embeddings et une correspondance par mots-clés exacts.
La proximité se calcule, elle ne s’estime pas à l’œil
Une fois le texte représenté sous forme de vecteurs, comparer le sens devient un problème de géométrie : un score de similarité calculé entre deux vecteurs, le plus souvent selon qu’ils pointent dans la même direction. Chercher dans une grande collection revient à calculer ce score entre un vecteur de requête et chaque vecteur stocké, puis à renvoyer les correspondances les plus proches — la même opération, que la collection contienne cent entrées ou cent millions.
Les embeddings de modèles différents ne se mélangent pas
Comme le vocabulaire d’un tokenizer, l’espace vectoriel d’un modèle d’embedding est propre à ce modèle et à son entraînement. Un vecteur produit par un modèle d’embedding ne se compare pas utilement à un vecteur produit par un autre modèle, même si les deux vecteurs ont le même nombre de dimensions. Changer de modèle d’embedding signifie ré-encoder tout ce qui est déjà stocké, pas seulement le nouveau contenu à partir de ce moment.
Un modèle d’embedding ne fait pas le même travail qu’un modèle de langage
Un modèle de langage génère du texte, token après token, à partir d’un prompt. Un modèle d’embedding ne génère rien : il transforme un texte en vecteur, puis s’arrête là. Certains systèmes utilisent le même modèle de base pour les deux tâches, d’autres deux modèles entièrement distincts ; dans les deux cas, le vecteur produit par une étape d’embedding n’est pas lui-même une réponse, seulement quelque chose qu’une étape de recherche ou de rapprochement peut comparer.
Où cela se retrouve en pratique
Les embeddings sont ce qui rend possible la génération augmentée par récupération — voir qu’est-ce que le RAG pour comprendre comment la récupération s’articule avec un modèle de langage — mais la même technique sous-tend aussi la recherche sémantique dans des tickets de support ou de la documentation, le rapprochement de conversations passées similaires, la déduplication de contenus quasi identiques, et le regroupement d’éléments liés sans que personne n’étiquette de catégories à la main.
Questions fréquentes
- Un embedding est-il la même chose qu’un token ?
- Non. Un token est une unité de texte discrète qu’un modèle de langage lit ou écrit une à la fois. Un embedding est un vecteur continu représentant le sens d’un texte plus long, produit par une étape séparée qui ne génère rien.
- Puis-je comparer des embeddings produits par deux modèles différents ?
- Pas de façon utile. Chaque modèle d’embedding définit son propre espace vectoriel pendant l’entraînement, si bien qu’une distance signifiant « très similaire » dans l’espace d’un modèle n’a aucun sens défini dans l’espace d’un autre modèle, même avec des vecteurs de même longueur.
- Un vecteur d’embedding plus grand signifie-t-il une meilleure recherche ?
- Pas à lui seul. Plus de dimensions peuvent capturer plus de nuances, mais la qualité dépend de ce sur quoi le modèle a été entraîné et de son adéquation avec votre contenu, pas seulement du nombre de dimensions.
- Peut-on retrouver le texte original à partir d’un embedding ?
- Une récupération exacte est généralement impraticable, mais un embedding reste directement dérivé de votre contenu et peut laisser fuiter des informations pertinentes sur celui-ci lors de certaines attaques. Traitez les embeddings stockés d’un texte sensible avec le même soin que le texte lui-même, pas comme s’ils étaient déjà anonymisés.
Essayez plutôt que de lire
Les fonctions de mémoire et de packs de contexte de ClawAI génèrent les embeddings localement via Ollama et les stockent dans une base vectorielle pour la recherche par similarité, plutôt que d’envoyer votre contenu à une API d’embedding externe à cette fin.