Dans notre article RAG classique vs RAG par raisonnement, on a croisé un mot un peu mystérieux : embedding. C'est la brique qui permet à une IA de chercher « par le sens » plutôt que « par les mots exacts ». Aujourd'hui, on prend le temps de bien comprendre cette brique — parce qu'elle est partout : recherche, RAG, recommandation, classement… et qu'un mauvais choix d'embedding peut faire couler tout un projet.
1C'est quoi un embedding ?
Un ordinateur ne comprend pas les mots. Il comprend les nombres. Un embedding (« plongement » en français, mais tout le monde dit embedding) est une façon de transformer un texte — un mot, une phrase, un paragraphe — en une longue liste de nombres : un vecteur.
Une représentation d'un texte sous forme de vecteur (une liste de nombres, par exemple 1024 valeurs) calculée par un modèle d'IA, de telle sorte que deux textes proches par le sens donnent deux vecteurs proches dans l'espace.
La magie tient dans une seule idée : la proximité géométrique = proximité de sens. Les phrases « le chat dort sur le canapé » et « un félin se repose sur le sofa » n'ont quasiment aucun mot en commun, mais elles parlent de la même chose. Un bon modèle d'embedding leur donnera deux vecteurs très proches.
Pour mesurer cette « proximité », on n'utilise pas une règle mais un petit calcul, le plus souvent la similarité cosinus : un score entre -1 et 1, où 1 signifie « sens quasi identique » et 0 « sans rapport ». C'est cousin de la recherche fuzzy qu'on a vue ailleurs — sauf qu'ici on rapproche par le sens, pas par l'orthographe.
"Quel temps fait-il ?" → [0.021, -0.118, 0.337, ... ] (1024 nombres)
"Va-t-il pleuvoir ?" → [0.038, -0.092, 0.301, ... ] ← vecteur proche
"Recette de la tarte Tatin" → [-0.412, 0.255, -0.067, ... ] ← vecteur éloigné
Quelques mots de vocabulaire qui reviendront tout le temps :
- Dimension : le nombre de valeurs dans le vecteur (souvent 384, 768, 1024, 1536 ou 3072). Plus c'est grand, plus le modèle peut capturer de nuances… mais plus ça coûte cher à stocker et à comparer.
- Fenêtre de contexte : la longueur maximale de texte que le modèle peut « avaler » d'un coup (de 512 jusqu'à 32 000 tokens selon les modèles).
- Base vectorielle : la base de données spécialisée qui stocke les vecteurs et retrouve très vite les plus proches (pgvector, Qdrant, Milvus, Weaviate…).
2Les grandes familles de modèles
Tous les embeddings ne se ressemblent pas. Voici les types que vous croiserez, du plus courant au plus spécialisé.
🔹 Les embeddings denses (le standard)
C'est le cas par défaut : un seul vecteur « plein », où presque toutes les valeurs comptent. Il capture le sens global d'un texte. 99 % des projets démarrent ici. Exemples : OpenAI text-embedding-3, Gemini Embedding, Qwen3-Embedding, mistral-embed.
🔸 Les embeddings creux (sparse)
Ici, le vecteur est immense mais presque vide : seules quelques positions correspondant à des mots-clés précis sont actives. C'est l'héritier moderne de la recherche par mots-clés (BM25), version apprise par IA (ex. SPLADE). Très fort pour retrouver un terme exact : un code produit, un nom propre, une référence. On le combine souvent avec du dense, c'est la fameuse recherche hybride.
🔻 Les multi-vecteurs (style ColBERT)
Au lieu d'un seul vecteur par document, on en garde un par mot (ou presque). La comparaison est beaucoup plus fine — donc plus précise — mais aussi plus lourde à stocker. Réservé aux cas où la précision prime sur le coût.
🪆 Les embeddings « Matriochka » (MRL)
Astuce devenue incontournable : le modèle range l'information par ordre d'importance dans le vecteur. Vous pouvez donc tronquer un vecteur de 3072 à 256 dimensions et garder l'essentiel — comme des poupées russes. Résultat : vous divisez vos coûts de stockage par 10 en ne perdant qu'un peu de précision. OpenAI text-embedding-3, Gemini et Codestral Embed le proposent nativement.
🖼️ Les modèles multimodaux
La grande nouveauté de 2025-2026 : des modèles qui placent texte, images, PDF — parfois audio et vidéo — dans le même espace vectoriel. On peut alors chercher une image avec une phrase, ou retrouver un graphique dans un PDF. Exemples : Cohere Embed v4, Gemini Embedding, Jina v4.
🎯 Les modèles spécialisés
Certains modèles sont entraînés pour un domaine précis et y écrasent les généralistes : le code (Codestral Embed de Mistral, Voyage Code 3), le juridique (voyage-law), ou une langue particulière. Si votre métier est pointu, un modèle dédié vaut souvent mieux qu'un gros généraliste.
Dense pour le sens général, creux pour les termes exacts, multi-vecteurs pour la précision maximale, Matriochka pour économiser, multimodal pour les images/PDF, spécialisé pour un métier. La plupart des projets commencent avec un dense multilingue et ajoutent du creux (hybride) si besoin.
3Les cas d'usage
Une fois que vos textes sont devenus des vecteurs, beaucoup de choses deviennent possibles. Les plus fréquentes :
- Recherche sémantique — trouver les documents qui parlent du même sujet, même avec des mots différents. La base de tout moteur de recherche « intelligent ».
- RAG (génération augmentée) — donner à un LLM les bons extraits de vos documents avant qu'il réponde. L'embedding est l'étape de récupération. (Voir le Guide RAG.)
- Classification — ranger automatiquement des textes dans des catégories (spam / pas spam, type de ticket, sentiment d'un avis…).
- Regroupement (clustering) — laisser l'IA découvrir toute seule les grands thèmes d'un corpus, sans catégories prédéfinies.
- Recommandation — « les articles qui ressemblent à celui-ci » : on recommande les vecteurs voisins.
- Détection de doublons — repérer deux contenus quasi identiques (avis copiés, fiches en double).
- Détection d'anomalies — un texte dont le vecteur est isolé de tous les autres est probablement bizarre (fraude, erreur, contenu hors sujet).
- Reranking — après une première récupération large, reclasser finement les résultats pour ne garder que les meilleurs.
Le pipeline RAG d'ExploDev indexe déjà 943 documents avec le modèle bge-m3, combiné à de la recherche par mots-clés et à un graphe de connaissances. C'est exactement de la recherche sémantique « maison » — la preuve que c'est accessible sans cloud.
4Où héberger ses embeddings ?
Deux grandes voies. Le choix dépend surtout de votre volume, de votre budget, et de votre sensibilité aux données.
☁️ Voie 1 — L'API (le modèle tourne chez un fournisseur)
Vous envoyez votre texte, on vous renvoie le vecteur. Zéro infrastructure à gérer. C'est le chemin le plus rapide pour démarrer.
- Pour : aucune machine à entretenir, mises à jour automatiques, démarrage en quelques minutes.
- Contre : coût à l'usage qui grimpe avec le volume, vos textes partent chez un tiers (attention RGPD), dépendance au fournisseur.
- Acteurs : OpenAI, Google (Gemini), Cohere, Voyage AI, et Mistral côté européen.
🖥️ Voie 2 — L'auto-hébergement (le modèle tourne chez vous)
Vous faites tourner un modèle open-source sur votre propre serveur. Plus d'effort au départ, mais vous gardez la maîtrise et le coût marginal tend vers zéro.
- Pour : vos données ne sortent jamais, coût fixe et prévisible, idéal pour la souveraineté et les gros volumes.
- Contre : il faut une machine (souvent un GPU pour les gros modèles) et un peu de savoir-faire.
- Outils :
Ollama(le plus simple pour débuter en local),sentence-transformers(Python),Text Embeddings Inference(TEI) de Hugging Face, ouvLLM/SGLangpour la production à grande échelle.
# Générer des embeddings en local avec Ollama, en deux lignes
ollama pull bge-m3
curl http://localhost:11434/api/embeddings -d '{
"model": "bge-m3",
"prompt": "Le chat dort sur le canapé"
}'
Le modèle qui vectorise vos documents doit être exactement le même que celui qui vectorise les questions. Si vous changez de modèle, il faut tout réindexer. Choisissez donc en pensant aussi au long terme.
Et où ranger tous ces vecteurs ? Dans une base vectorielle. Pour rester simple et souverain : pgvector (une extension de PostgreSQL, parfait si vous avez déjà une base) ou Qdrant. Pour de très gros volumes : Milvus ou Weaviate. En cloud clé en main : Pinecone.
5Guide de choix des modèles
Voici un panorama des modèles de référence début 2026. Les scores viennent du benchmark MTEB (Massive Text Embedding Benchmark), la référence pour comparer les embeddings.
| Modèle | Type | Dimensions | Licence | Point fort |
|---|---|---|---|---|
| Gemini Embedding (Google) | API | 3072 (réductible) | Propriétaire | En tête du MTEB anglais, très fort en multilingue et multimodal |
| Qwen3-Embedding (Alibaba) | Open-source | jusqu'à 4096 | Apache 2.0 | Meilleur open-source ; existe en 8B / 4B / 0,6B ; excellent sur texte long |
| BGE-M3 (BAAI) | Open-source | 1024 | MIT | Hybride (dense+creux+multi-vecteurs), multilingue, léger — le choix d'ExploDev |
| OpenAI text-embedding-3 | API | 1536 / 3072 (MRL) | Propriétaire | Valeur sûre, bien documenté, versions small (économique) et large |
| Cohere Embed v4 | API | variable | Propriétaire | Multimodal (texte + images + PDF), supporte int8/binaire pour réduire les coûts |
| Voyage (3.x) | API | 1024+ | Propriétaire | Très bons modèles domaine (code, juridique, finance) |
| mistral-embed (Mistral) | API | 1024 | Propriétaire (🇪🇺) | Option européenne, contexte 8k, simple à intégrer |
| Codestral Embed (Mistral) | API | jusqu'à 3072 (MRL) | Propriétaire (🇪🇺) | Spécialisé code, devance les concurrents sur le code |
| llama-embed-nemotron-8B (NVIDIA) | Open-source | 4096 | Open-weights | État de l'art multilingue / cross-lingual |
| Jina v4 | Open-source | variable | Apache 2.0 | Bon rapport qualité/taille, multimodal |
| Nomic Embed | Open-source | 768 | Apache 2.0 | Entièrement reproductible, léger, données d'entraînement ouvertes |
Les scores MTEB sont auto-déclarés par les fournisseurs et il existe deux versions du benchmark (v1 et v2) qui ne se comparent pas directement. Un classement est un point de départ, jamais une vérité absolue : le seul vrai test, c'est sur vos propres données.
Le bon modèle selon votre profil
Aucune infra, intégration en quelques lignes, coût négligeable à faible volume. On démarre, on valide l'idée, on optimise plus tard.
Soit l'API d'un acteur européen, soit BGE-M3 / Qwen3 sur vos serveurs pour que rien ne sorte de chez vous.
Tournent sur une machine modeste via Ollama. BGE-M3 fait dense + creux d'un coup. C'est l'approche ExploDev.
Le top open-source, mais gourmand : prévoyez un GPU avec assez de VRAM. À servir via vLLM ou TEI.
Les modèles spécialisés code battent largement les généralistes pour retrouver des fonctions, des bugs, des exemples.
Indispensable si vos contenus mêlent texte, graphiques et images dans un même espace de recherche.
La checklist en 7 questions
Avant de figer votre choix, posez-vous ces questions dans l'ordre :
- Qualité — le modèle retrouve-t-il bien les bons documents sur vos données ? (testez !)
- Langue — gère-t-il le français et vos autres langues ? Tous les modèles ne sont pas multilingues.
- Longueur — vos textes sont-ils longs ? Vérifiez la fenêtre de contexte.
- Dimensions — petites dimensions = stockage et recherche moins chers. Le MRL aide beaucoup.
- Coût — à l'usage (API) ou en matériel (local) ? Estimez votre volume mensuel.
- Latence — temps de réponse acceptable pour votre usage (temps réel vs traitement par lot) ?
- Licence & données — usage commercial autorisé ? Vos données peuvent-elles sortir ?
Ne cherchez pas « LE meilleur modèle » dans l'absolu — il change tous les trois mois. Investissez plutôt dans un petit pipeline d'évaluation sur vos propres exemples : vous pourrez alors tester n'importe quel nouveau modèle en quelques minutes le jour où il sort.
En résumé
Un embedding transforme du texte en vecteur pour que l'IA puisse comparer par le sens. C'est la fondation de la recherche sémantique, du RAG, de la classification et bien plus.
Il existe plusieurs familles (dense, creux, multi-vecteurs, Matriochka, multimodal, spécialisé), deux façons d'héberger (API simple mais payante à l'usage, ou auto-hébergé souverain mais plus technique), et une foule de modèles dont les leaders bougent constamment.
La bonne stratégie n'est pas de courir après le score du moment, mais de partir simple — un bon dense multilingue comme BGE-M3 ou une API — de mesurer sur vos données, puis de monter en sophistication uniquement là où ça rapporte vraiment.
Sources
- MTEB — Massive Text Embedding Benchmark, leaderboard Hugging Face (versions v1 et v2).
- Classements MTEB 2026 — Awesome Agents, Ailog RAG, Milvus Blog (comparatifs janvier–avril 2026).
- Alibaba — famille Qwen3-Embedding (8B / 4B / 0,6B, Apache 2.0).
- BAAI — BGE-M3, modèle hybride dense + creux + multi-vecteurs.
- Mistral AI — documentation mistral-embed et Codestral Embed (embeddings de code, MRL, int8).
- NVIDIA — llama-embed-nemotron-8B, rapport technique (MMTEB, octobre 2025).
- OpenAI, Google (Gemini), Cohere, Voyage AI, Jina, Nomic — documentations officielles.
- Outils d'hébergement : Ollama, Hugging Face Text Embeddings Inference, vLLM, SGLang, sentence-transformers.