Les embeddings sont au cœur des modèles modernes d’intelligence artificielle, en particulier dans les moteurs de recherche sémantique, les assistants IA et les systèmes RAG (Retrieval-Augmented Generation). Cet article vous propose une explication claire, sans mathématiques complexes, pour comprendre leur utilité et leur fonctionnement.
🔍 Définition simple des embeddings
Un embedding est une représentation numérique (un vecteur de nombres réels) d’un élément de contenu — mot, phrase, document, image — dans un espace mathématique.
Objectif : placer des contenus similaires proches dans l’espace vectoriel.
🧠 Exemple concret : similarité de documents
Imaginons deux phrases :
- "Le chat dort sur le canapé."
- "Un félin fait la sieste dans le salon."
Un bon embedding placera ces deux phrases proches dans l’espace vectoriel car leur sens est similaire.
À l’inverse :
- "Le moteur de la voiture est cassé."
sera éloigné des deux premières phrases.
📐 Que contient un vecteur d’embedding ?
Un vecteur est une liste de nombres (souvent entre -1 et 1). Exemple d’un vecteur de taille 5 :
[0.12, -0.88, 0.34, 0.02, -0.49]
Les modèles modernes produisent des vecteurs de taille 256, 512, 1536, voire 4096 dimensions.
Chaque dimension capture un aspect du sens ou du contexte.
🧮 Opérations classiques : similarité cosinus
Pour comparer deux vecteurs, on utilise le plus souvent :
- la similarité cosinus : angle entre deux vecteurs
- la distance euclidienne : distance "géométrique"
Formule du cosinus :
cos(A,B) = dot(A,B) / (norm(A) * norm(B))
Valeur entre -1 et 1 ; proche de 1 = très similaires.
🧱 À quoi servent les embeddings dans une app .NET ?
- Indexer des documents pour créer une base vectorielle
- Effectuer des recherches sémantiques rapides
- Servir de base à un moteur RAG (retrieval + LLM)
- Comparer des questions similaires (FAQ, support...)
- Grouper automatiquement des contenus proches
💡 D’où viennent les embeddings ?
Plusieurs fournisseurs proposent des modèles :
- OpenAI (texte-embedding-3-small/large)
- Cohere, Google, Hugging Face, Mistral
- Modèles open-source : E5, GTE, BGE, etc.
Souvent : un appel HTTP vers une API ou un modèle local.
🔧 Générer un embedding en C# avec OpenAI
var client = new OpenAIClient("votre_clef_API");
var input = new[] { "le chat dort sur le canapé" };
var result = await client.Embeddings.CreateAsync(input, model: "text-embedding-3-small");
float[] vector = result.Data[0].Embedding;
//Attention : le vector est une structure plate de float.
🔍 Où et comment les stocker ?
- Bases vectorielles : QDrant, Weaviate, Milvus, Chroma...
- BLOBs binaires : SQLite ou LiteDB (champ binaire + normalisation)
- Fichiers JSON indexés (dans les petits projets)
📌 Résumé
|
Terme
|
Définition simplifiée
|
|
Embedding
|
Représentation vectorielle d’un contenu
|
|
Vecteur
|
Liste de nombres (100 à 4000 dimensions)
|
|
Similarité cosinus
|
Méthode de comparaison entre deux vecteurs
|
|
Base vectorielle
|
Index optimisé pour la recherche par vecteur
|
|
RAG
|
Recherche + génération (LLM)
|
🔚 Conclusion
Comprendre les embeddings, c’est saisir le lien entre des contenus textuels et des représentations mathématiques exploitables. En .NET, cette connaissance ouvre la voie à des recherches intelligentes, des assistants IA ou des moteurs de recommandations puissants.
On notera pour terminer que malgré l'aspect très éthéré du concept tout cela est d'une importance capitale car les vecteurs permettent d'intégrer des données de l'entreprise dans des requêtes LLM : conseil d'achat, aide intelligente à l'utilisation d'une machine, d'un logiciel, assistance technique, recherche de contenu basé sur le sens et non des mots en tant que suites de lettres, etc. Les Embedding représentent le cœur d'un système d'intégration de données vivantes au sein de requêtes effectuées via des LLM aussi bien par des programmes que par des utilisateurs.
Quelque part, les algorithmes comme SOUNDEX sont les (très) lointains ancêtres des vecteurs. L'idée étant de pouvoir comparer des mots malgré les fautes d'orthographe. Les vecteurs permettent eux de comparer le sens des mots et des phrases. L'informatique est passée de l'astuce intelligente à la science-fiction.
Nous ne sommes pas dans le folklore à la mode des IA, mais bien au centre même de ce qui va leur permettre d'entrer partout et de se rendre indispensable...