Qu’est-ce qu’un embedding ?
Un embedding transforme une donnée (texte, image, audio) en un vecteur numérique — une liste de nombres à virgule flottante — qui capture le sens sémantique de cette donnée. Concrètement, le texte est d’abord découpé en token avant d’être traité par le modèle, qui produit un vecteur dense en sortie. Deux textes ayant un sens proche auront des vecteurs proches dans l’espace, même si les mots utilisés sont différents.
Par exemple, les phrases “Le chat dort sur le canapé” et “Le félin sommeille sur le sofa” produiront des embeddings très similaires, car leur sens est quasi identique.
Comment fonctionnent les embeddings ?
Le processus de vectorisation
Un modèle d’embedding prend un texte en entrée et produit un vecteur de dimension fixe en sortie. Les dimensions courantes vont de 384 à 3072 selon le modèle :
- text-embedding-3-small (OpenAI) : 1536 dimensions
- text-embedding-3-large (OpenAI) : 3072 dimensions
- multilingual-e5-large : 1024 dimensions
- BGE-M3 : 1024 dimensions
La similarité cosinus
Pour comparer deux embeddings, on utilise la similarité cosinus : une mesure de l’angle entre deux vecteurs. Un score de 1 signifie une correspondance sémantique parfaite, 0 une absence totale de relation.
similarité = cos(θ) = (A · B) / (||A|| × ||B||)
Cette opération est rapide à calculer, ce qui permet de chercher parmi des millions de vecteurs en quelques millisecondes.
Cas d’usage des embeddings
Recherche sémantique
Au lieu de chercher des mots-clés exacts, la recherche sémantique compare le sens de la requête avec le sens des documents. Un utilisateur cherchant “comment réduire mes dépenses” trouvera aussi les documents parlant d‘“optimisation budgétaire” ou d‘“économies mensuelles”.
RAG (Retrieval-Augmented Generation)
Les embeddings sont le pilier du RAG :
- Indexation : chaque document est découpé en chunks puis vectorisé
- Recherche : la question de l’utilisateur est vectorisée et comparée aux chunks
- Génération : les chunks les plus pertinents sont injectés dans le prompt du LLM
Classification et clustering
Les embeddings permettent de regrouper automatiquement des textes par thème sans labels prédéfinis. On les utilise pour la catégorisation de tickets support, la détection de doublons ou l’analyse de sentiment.
Recommandation
En vectorisant les contenus et les préférences utilisateur, on peut calculer des recommandations basées sur la proximité sémantique plutôt que sur de simples règles.
Bonnes pratiques
- Choisir le bon modèle : un modèle multilingue performant est essentiel pour le français. Si les modèles génériques ne suffisent pas pour votre domaine, envisagez le fine-tuning pour adapter les représentations vectorielles à votre vocabulaire métier. Testez sur vos données réelles avant de choisir.
- Découper intelligemment : la taille des chunks influence directement la qualité. Trop courts, ils perdent le contexte ; trop longs, ils diluent le signal.
- Normaliser les vecteurs : la plupart des bases vectorielles fonctionnent mieux avec des vecteurs normalisés.
- Stocker dans un vector store : utilisez une base de données vectorielle (Pinecone, Qdrant, ChromaDB, pgvector) pour des recherches performantes à grande échelle.
Limites à connaître
Les embeddings capturent le sens général mais peuvent échouer sur les nuances fines, le sarcasme ou les termes très techniques absents des données d’entraînement du modèle. Des embeddings de mauvaise qualité peuvent aussi contribuer à l’hallucination dans un pipeline RAG : si les passages retrouvés sont hors sujet, le LLM risque de générer des réponses incorrectes. La qualité dépend directement du modèle utilisé et de son adéquation avec votre domaine.
Termes associés
Questions fréquentes
Quelle est la différence entre un embedding et un token ?
Un token est une unité de texte découpée (mot, sous-mot ou caractère) utilisée en entrée du modèle. Un embedding est la représentation vectorielle numérique de ce token ou d'un ensemble de tokens, capturant son sens dans un espace mathématique.
Quel modèle d'embedding choisir ?
Pour le français, les modèles multilingues comme multilingual-e5-large, BGE-M3 ou text-embedding-3-large d'OpenAI offrent d'excellentes performances. Le choix dépend du cas d'usage : taille du vecteur, vitesse d'inférence et qualité sur votre domaine spécifique.
Peut-on visualiser des embeddings ?
Oui, en utilisant des techniques de réduction de dimensions comme t-SNE ou UMAP. Ces méthodes projettent les vecteurs haute dimension en 2D ou 3D, permettant de visualiser les clusters sémantiques et de vérifier la qualité des embeddings.
Pourquoi les embeddings sont-ils essentiels pour le RAG ?
Dans un pipeline RAG, les embeddings permettent de transformer vos documents et la requête de l'utilisateur en vecteurs comparables. Sans eux, il serait impossible de retrouver les passages sémantiquement pertinents à injecter dans le prompt du LLM, ce qui réduirait le système à une simple recherche par mots-clés, bien moins précise.