Les meilleurs modèles d'embeddings FR
Pour du français, BGE-M3 est le point de départ le plus sûr : multilingue, 8 192 tokens de contexte, licence MIT, disponible dans Ollama. Qwen3-Embedding et EmbeddingGemma sont les alternatives récentes à tester. Les modèles centrés sur l'anglais (nomic-embed-text, mxbai-embed-large, all-MiniLM) sont à éviter pour du français. Le choix final se valide sur vos propres documents.
Un modèle d'embedding transforme chaque texte en vecteur : c'est lui qui décide que « CDD » et « contrat à durée déterminée » sont voisins. Pour le français, le benchmark MTEB-French mesure 22 points de retrieval d'écart entre BGE-M3 et all-MiniLM-L12-v2. Cette page classe les modèles ouverts utilisables en local, cite les mesures publiées et leurs limites, puis traite ce qui coûte cher en production : préfixes, troncature, dimensions, stockage, réindexation.
#Ce qu'est un modèle d'embedding, et pourquoi le français le complique
Un modèle d'embedding est un réseau de neurones qui convertit un texte (une phrase, un paragraphe, un chunk) en un vecteur de nombres, de 384 à 4 096 dimensions selon les modèles. Deux textes de sens proche donnent des vecteurs proches, que l'on mesure le plus souvent par la similarité cosinus. C'est ce qui permet à un RAG de retrouver un passage sur le « contrat à durée déterminée » quand l'utilisateur écrit « CDD », sans aucun mot en commun. Le même modèle doit encoder les questions et les documents, comme le rappelle la documentation d'Ollama ; changer de modèle oblige donc à réindexer tout le corpus. Pour choisir, trois questions suffisent : le modèle a-t-il été entraîné sur le français, son contexte couvre-t-il vos chunks, sa licence autorise-t-elle votre usage ?
Le français ajoute ses propres difficultés : accents, élisions (« l'employeur »), sigles juridiques, anglicismes techniques mêlés au texte. L'écart entre modèles est net. Dans le benchmark MTEB-French, le score de retrieval va de 0,43 pour all-MiniLM-L12-v2 à 0,65 pour BGE-M3, soit 22 points d'écart sur le même jeu de questions.
#Les cinq critères qui départagent vraiment les modèles
Tes documents, ton IA : un RAG local fiable sur tes PDF, notes et mails — sans rien envoyer dans le cloud.
- Espace en ligne à vie
- PDF + fichiers
- Mises à jour à vie
- Langues d'entraînement
- BGE-M3 et Qwen3-Embedding annoncent plus de 100 langues, multilingual-e5-large 94. Les fiches de nomic-embed-text-v1.5 et de mxbai-embed-large-v1, très téléchargés dans Ollama, sont étiquetées English.
- Contexte maximal
- 512 tokens pour multilingual-e5-large, Solon et mxbai-embed-large ; 2 048 pour EmbeddingGemma ; 8 192 pour BGE-M3 ; 32 000 pour Qwen3-Embedding et Granite R2. Un chunk plus long est tronqué, pas refusé.
- Dimensions et stockage
- De 384 à 4 096 dimensions, soit 4 octets par dimension et par vecteur en float32 (calcul plus bas).
- Licence
- MIT pour BGE-M3, multilingual-e5-large et Solon ; Apache 2.0 pour Qwen3-Embedding, Granite R2, nomic et mxbai ; conditions Gemma pour EmbeddingGemma ; CC BY-NC 4.0 (non commercial) pour jina-clip-v2.
- Préfixes et instructions
- Certains modèles exigent un préfixe devant chaque texte (« query: » et « passage: » pour E5, même en français). L'oublier dégrade le retrieval sans erreur.
#Le classement 2026 pour le français : neuf modèles comparés
Ce classement est éditorial, pas un test maison : il croise couverture du français, benchmarks publiés et disponibilité en local. Les poids viennent de la bibliothèque Ollama quand le modèle y figure, sinon du float32 estimé par l'étude MTEB-French.
| Modèle | Dimensions / contexte | Licence | Poids | Ce que disent les sources sur le français |
|---|---|---|---|---|
| BGE-M3 (BAAI) | 1 024 / 8 192 | MIT | 1,2 Go (Ollama) | Retrieval MTEB-French 0,65. Dense, sparse et multi-vecteurs. Point de départ recommandé. |
| Qwen3-Embedding 0,6B / 4B / 8B | 1 024 / 2 560 / 4 096 ; 32 000 | Apache 2.0 | 639 Mo / 2,5 Go / 4,7 Go (Ollama) | Plus de 100 langues. MTEB multilingue selon Qwen : 64,33 / 69,45 / 70,58. |
| EmbeddingGemma 300M (Google) | 768 (512, 256, 128) / 2 048 | Gemma | 622 Mo (Ollama) | Plus de 100 langues. MTEB multilingue v2 : 61,15 selon Google. |
| multilingual-e5-large | 1 024 / 512 | MIT | 2,24 Go (float32) | Retrieval MTEB-French 0,59. Préfixes obligatoires. |
| Solon-embeddings-large-0.1 | 1 024 / 512 | MIT | 2,24 Go (float32) | Modèle français publié par Ordalie Technologies. Retrieval MTEB-French 0,63. |
| Granite Embedding 311M Multilingual R2 (IBM) | 768 / 32 768 | Apache 2.0 | 311 M paramètres | Français parmi les 52 langues renforcées. 65,2 en retrieval MTEB multilingue selon IBM ; pas de mesure française indépendante consultée. |
| nomic-embed-text v1.5 | 768 / 8 192 (2 048 sous Ollama) | Apache 2.0 | 274 Mo (Ollama) | Fiche étiquetée anglais. À réserver aux corpus anglais. |
| mxbai-embed-large-v1 | contexte 512 | Apache 2.0 | 670 Mo (Ollama) | Fiche étiquetée anglais. À réserver aux corpus anglais. |
| all-MiniLM-L12-v2 | 384 | Apache 2.0 | 33 M paramètres | Retrieval MTEB-French 0,43. Prototype CPU uniquement. |
BGE-M3 reste le meilleur défaut : son retrieval français est publié, son contexte de 8 192 tokens évite la plupart des découpages forcés, et il fournit aussi les poids lexicaux utiles à une recherche hybride. Qwen3-Embedding est le candidat quand une carte graphique est disponible : sa version 8B était en tête du classement multilingue MTEB à sa sortie, le 5 juin 2025, selon Qwen, mais ses 4 096 dimensions pèsent sur le stockage. EmbeddingGemma vise les machines modestes.
Solon, souvent présenté comme le spécialiste du français juridique et administratif, ne l'emporte sur aucun des trois jeux de retrieval de l'étude MTEB-French : il égale BGE-M3 sur la convention collective Syntec et reste derrière sur les articles de loi (BSARD) et les questions scolaires (Alloprof).
#Ce que disent les benchmarks français, et ce qu'ils ne disent pas
La référence publiée est MTEB-French (Ciancone et al., mai 2024) : 18 jeux de données, 8 catégories de tâches, 51 modèles comparés. Les auteurs concluent que les grands modèles multilingues pré-entraînés sur la similarité de phrases se comportent exceptionnellement bien. Voici le retrieval (NDCG@10) sur trois jeux : articles de loi en français (BSARD), convention collective Syntec, questions scolaires d'Alloprof.
| Modèle | Retrieval moyen | Droit (BSARD) | Convention Syntec | Alloprof |
|---|---|---|---|---|
| text-embedding-3-large (API OpenAI) | 0,73 | 0,73 | 0,87 | 0,60 |
| mistral-embed (API Mistral) | 0,68 | 0,68 | 0,79 | 0,57 |
| BGE-M3 | 0,65 | 0,60 | 0,85 | 0,49 |
| Solon-embeddings-large-0.1 | 0,63 | 0,58 | 0,85 | 0,47 |
| multilingual-e5-large | 0,59 | 0,59 | 0,81 | 0,38 |
| multilingual-e5-small | 0,52 | 0,52 | 0,76 | 0,27 |
| paraphrase-multilingual-MiniLM-L12-v2 | 0,44 | 0,38 | 0,66 | 0,27 |
| all-MiniLM-L12-v2 | 0,43 | 0,34 | 0,61 | 0,33 |
Trois limites empêchent d'en faire un classement définitif. L'étude date de 2024 : elle ne contient ni Qwen3-Embedding (juin 2025), ni EmbeddingGemma (septembre 2025), ni Granite R2, et aucune mesure française comparable de ces modèles n'a été consultée pour cette page. Les corpus (articles de loi, convention collective, questions scolaires) ne ressemblent pas forcément aux vôtres. Enfin, les scores multilingues publiés par les éditeurs sont auto-déclarés et mêlent toutes les langues.
#Quel modèle pour quel cas : tableau de décision
| Votre situation | Modèle à tester en premier | Pourquoi | Point de vigilance |
|---|---|---|---|
| Corpus français ou français + anglais, machine correcte | BGE-M3 | Retrieval français de 0,65, au niveau des meilleurs modèles ouverts de l'étude | 1,2 Go dans Ollama ; aucun préfixe |
| Juridique, administratif, RH | BGE-M3, puis Solon en comparaison | BGE-M3 égale ou dépasse Solon sur les trois jeux français de l'étude | Un modèle sans jeu de test juridique interne reste un pari |
| Machine modeste ou CPU seul | EmbeddingGemma 300M, ou multilingual-e5-small | 622 Mo dans Ollama ; conçu par Google pour portables et mobiles | Contexte de 2 048 tokens : chunks courts |
| Carte graphique disponible, qualité maximale | Qwen3-Embedding-4B ou 8B | 32 000 tokens, dimensions ajustables, plus de 100 langues | 2 560 et 4 096 dimensions : stockage et limites d'index |
| Chunks longs, documents structurés | BGE-M3, Qwen3-Embedding ou Granite R2 | 8 192 à 32 768 tokens de contexte | Un chunk très long dilue le sens |
| Usage commercial, audit de licence | BGE-M3, multilingual-e5-large, Solon, Qwen3-Embedding, Granite R2 | MIT ou Apache 2.0 | Relire les conditions Gemma ; jina-clip-v2 est non commercial |
#Embedding d'entreprise sur mesure : modèle ouvert, fine-tuning ou API
« Sur mesure » ne veut pas dire entraîner son propre modèle dès le départ. L'ordre qui évite de gaspiller du temps : un modèle ouvert générique, un chunking soigné, une recherche hybride et un reranker ; puis une mesure du recall sur vos vraies questions ; puis, seulement si les échecs persistent et tiennent au vocabulaire métier (références internes, sigles maison), un fine-tuning.
Philipp Schmid a affiné en juin 2024 le modèle bge-base-en-v1.5 sur 6 300 paires question-passage tirées de documents financiers : le score de retrieval a gagné environ 7,4 % sur son jeu de test, avec un entraînement de trois minutes sur une carte graphique grand public. C'est un cas anglais, sur un seul corpus, avec des paires générées par un LLM : un ordre de grandeur, pas une promesse. BAAI documente aussi l'affinage de BGE-M3.
| Option | Quand la choisir | Limites |
|---|---|---|
| Modèle ouvert générique en local (BGE-M3, Qwen3-Embedding) | Point de départ par défaut ; les textes restent sur votre réseau ; licence MIT ou Apache | Vocabulaire métier non appris ; à évaluer sur vos documents |
| Fine-tuning d'un modèle ouvert | Recall bloqué malgré hybride et reranker ; plusieurs milliers de paires question-passage | Corpus à réencoder ; modèle à versionner comme un logiciel ; risque de surajustement |
| API d'embeddings (Mistral, OpenAI) | Pas de GPU, volume modéré ; text-embedding-3-large et mistral-embed sont en tête de l'étude MTEB-French de 2024 | Les textes quittent votre réseau ; le modèle peut changer côté fournisseur ; coût récurrent |
#Embedding multimodal : chercher dans des images et des pages de documents
Un modèle d'embedding multimodal place texte et images dans le même espace vectoriel. On peut alors retrouver une photo à partir d'une phrase, ou une page de PDF scannée sans passer par l'OCR. Les modèles de la bibliothèque Ollama consultés pour cette page (BGE-M3, Qwen3-Embedding, EmbeddingGemma, nomic-embed-text, mxbai-embed-large) acceptent uniquement du texte : les modèles multimodaux ci-dessous s'utilisent via Hugging Face (Sentence-Transformers ou Transformers).
| Modèle | Entrées | Licence | À savoir |
|---|---|---|---|
| Qwen3-VL-Embedding 2B / 8B | Texte, images, captures d'écran, vidéo | Apache 2.0 | 32 000 tokens ; 2 048 et 4 096 dimensions ; dimensions ajustables |
| jina-clip-v2 | Texte et images ; 94 langues | CC BY-NC 4.0 | Non commercial : à écarter pour un produit ou un service payant sans accord de l'éditeur |
| ColPali v1.3 | Pages de documents en image, multi-vecteurs | MIT (fiche) | Fiche étiquetée anglais ; des vecteurs multiples par page changent le stockage |
Un modèle multimodal n'est pas meilleur sur du texte pur. Dans les tableaux publiés par Qwen, Qwen3-VL-Embedding-2B obtient 63,87 sur MTEB multilingue, contre 64,33 pour Qwen3-Embedding-0.6B, un modèle texte plus de trois fois plus petit. Pour des PDF dont le contenu utile est du texte, convertissez-les en texte propre (Docling ou un OCR) et gardez un embedding texte. Réservez le multimodal aux corpus visuels : schémas, plans, captures, diapositives.
#Gérer ses embeddings : préfixes, troncature, stockage et réindexation
Un RAG se dégrade souvent dans ces détails plus que dans le choix du modèle. Premier détail : chaque famille de modèles attend un format d'entrée différent pour les questions et pour les documents.
| Modèle | Devant la question | Devant le document |
|---|---|---|
| BGE-M3 | Rien | Rien |
| multilingual-e5-large | query: | passage: (obligatoire, même en français) |
| Solon-embeddings-large-0.1 | query : | Rien |
| nomic-embed-text v1.5 | search_query: | search_document: |
| mxbai-embed-large-v1 | Represent this sentence for searching relevant passages: | Rien |
| Qwen3-Embedding | Instruct: {tâche en une phrase}, saut de ligne, Query: {question} | Rien |
| EmbeddingGemma | task: search result | query: {question} | title: {titre ou none} | text: {contenu} |
Avec Ollama, l'exemple officiel de mxbai-embed-large place le préfixe directement dans le texte envoyé : ajoutez-le vous-même dans votre code. Qwen indique que les instructions apportent en général 1 à 5 % de mieux, et recommande de les rédiger en anglais même pour un corpus multilingue.
#Le piège d'Ollama : la troncature silencieuse
Le point d'accès /api/embed d'Ollama a un paramètre truncate dont la valeur par défaut est true : une entrée qui dépasse la fenêtre de contexte du modèle est coupée sans erreur. Avec mxbai-embed-large (512 tokens dans Ollama), un chunk de 700 tokens est indexé sans sa fin, et personne ne le voit. Le contexte d'Ollama peut aussi différer de la fiche d'origine : 2K pour nomic-embed-text, contre 8 192 annoncés par Nomic. Passez truncate à false pendant les tests : une erreur vaut mieux qu'un texte tronqué.
#Dimensions, stockage et limites d'index
Le stockage se calcule simplement : nombre de chunks × dimensions × 4 octets en float32, hors index. Pour un million de chunks, les vecteurs seuls occupent :
| Dimensions | Exemple de modèle | Stockage |
|---|---|---|
| 256 | EmbeddingGemma ou Qwen3 réduits (Matryoshka) | 1,0 Go |
| 384 | all-MiniLM-L12-v2 | 1,5 Go |
| 768 | EmbeddingGemma, Granite R2, nomic | 3,1 Go |
| 1 024 | BGE-M3, multilingual-e5-large, Qwen3-0.6B | 4,1 Go |
| 2 560 | Qwen3-Embedding-4B | 10,2 Go |
| 4 096 | Qwen3-Embedding-8B | 16,4 Go |
Les bases imposent aussi des plafonds. Avec pgvector, un index porte sur des vecteurs de 2 000 dimensions au maximum, ou 4 000 en demi-précision (halfvec) : les 4 096 dimensions de Qwen3-Embedding-8B dépassent même cette limite. La parade est de tronquer les vecteurs, ce que permettent les modèles entraînés en Matryoshka (Qwen3-Embedding, EmbeddingGemma, nomic v1.5), puis de les renormaliser, comme le précise Google pour EmbeddingGemma. L'API /api/embed d'Ollama accepte un paramètre dimensions, à réserver à ces modèles.
#Versionner et réindexer
- Métadonnées à conserver
- Nom exact du modèle, révision, dimension, gabarit de préfixe, paramètres de chunking, date d'indexation. Sans elles, personne ne sait pourquoi le retrieval a changé.
- Changement de modèle
- Réencodez tout le corpus dans une nouvelle collection, évaluez-la, puis basculez. Ne mélangez jamais deux modèles dans la même collection.
- Normalisation
- Ollama renvoie des vecteurs normalisés en L2 : utilisez la même métrique (cosinus ou produit scalaire) partout.
#Utiliser un modèle en pratique et le tester sur vos documents
Ne retenez que l'ordre des deux scores : le premier doit dépasser nettement le second. Pour comparer sérieusement deux ou trois candidats, la procédure suivante remplace tous les classements publiés.
- 01Constituer un jeu de test réelRassemblez 50 à 100 questions posées par de vrais utilisateurs (support, tickets, questions fréquentes) et notez pour chacune le chunk qui contient la réponse. Des questions inventées par un LLM flattent les résultats.
- 02Encoder avec chaque modèle candidatEncodez les chunks puis les questions en respectant le tableau des préfixes, la même longueur de chunk et la même dimension de stockage pour tous les candidats.
- 03Mesurer le recall@5Pour chaque question, vérifiez si le bon chunk figure parmi les cinq premiers résultats. Le script ci-dessous fait ce calcul.
- 04Trancher avec un critère de coûtGardez le modèle le moins lourd dont le recall@5 reste à un ou deux points du meilleur : un modèle huit fois plus gros se paie en stockage et en temps à chaque réindexation.
- Sentence Transformers : les embeddings en local
- Stratégies de chunking : la taille des chunks face au contexte du modèle
- Recherche hybride BM25 + vectoriel
- Ajouter un reranker avant de fine-tuner
- pgvector : limites de dimensions et index
- Ragas : évaluer son RAG avec des chiffres
- Source : fiche officielle de BGE-M3 (BAAI)
- Source : MTEB-French, étude de Ciancone et al. (2024)
- Source : documentation des embeddings d'Ollama
- Source : fiche de Qwen3-Embedding
- Source : fiche d'EmbeddingGemma (Google)
Quel est le meilleur modèle d'embedding pour le français ?+
Peut-on utiliser nomic-embed-text ou mxbai-embed-large en français ?+
Existe-t-il un modèle bge-m4 ?+
Faut-il réindexer quand on change de modèle d'embedding ?+
Un modèle d'embedding multimodal remplace-t-il un modèle texte ?+
Faut-il un embedding d'entreprise sur mesure ?+
Un retour, une erreur, une précision ? Faites-nous signe, ça améliore le guide pour tout le monde.