Skip to main content
PromptQuorum
Accueil/LLM locaux avancés/Meilleurs modèles d'embedding local pour RAG en 2026 (Testés sur documents réels)
RAG & Document Chat

Meilleurs modèles d'embedding local pour RAG en 2026 (Testés sur documents réels)

·15 min de lecture·Par Hans Kuepper · Fondateur de PromptQuorum, outil de dispatch multi-modèle · PromptQuorum

Sur 100 requêtes × 4 types de documents testés en mai 2026, jina-embeddings-v3 gagne en précision globale (92% retrieval@10), nomic-embed-text-v2 en débit CPU (580 chunks/sec — environ 5× plus rapide), et bge-large-en-v1.5 sur contenu anglophone pur (91% contrats et recherche). Pour la plupart des déploiements RAG locaux, jina-embeddings-v3 est le choix par défaut : multilingue nativement, précision maximale, et troncature Matryoshka pour réduire la taille des vecteurs sans ré-embedding du corpus.

Six modèles d'embedding open-weight populaires — nomic-embed-text-v2, bge-large-en-v1.5, gte-large, mxbai-embed-large, snowflake-arctic-embed, jina-embeddings-v3 — testés sur 4 types de documents (contrats légaux, articles de recherche, code source, wiki multilingue). 100 requêtes notées par modèle, retrieval@10 mesuré contre une clé réponse connue, débits CPU et GPU sur matériel grand public. Un modèle gagne en précision globale, un autre en vitesse CPU, et le débat sur la dimension trouve sa réponse. Sections dédiées sur le retrieval chinois/CJK et les embedders code, où les modèles généralistes accusent le plus grand retard face aux spécialistes.

Présentation: Meilleurs modèles d'embedding local pour RAG en 2026 (Testés sur documents réels)

Le diaporama ci-dessous couvre : 6 modèles d'embedding benchmarqués sur 4 types de documents (légal, recherche, code, multilingue), résultats retrieval@10 (jina-embeddings-v3 à 92%, bge-large à 91% anglais, nomic à 580 chunks/sec CPU), sélections dédiées chinois/CJK et embedding code (BAAI/bge-large-zh-v1.5, Qwen3-Embedding-4B, voyage-code-3), compromis mémoire et dimensions Matryoshka, et arbre de décision en 5 étapes. Téléchargez le PDF comme fiche de référence embedding RAG local.

Parcourez les diapositives ci-dessous ou téléchargez en PDF. Télécharger la fiche de référence (PDF)

Meilleurs modèles d'embedding local pour RAG en 2026 (Testés sur documents réels)

Points clés

  • jina-embeddings-v3 gagne en précision globale — 92% retrieval@10 sur 4 types, variance minimale sur texte anglophone, multilingue et code.
  • bge-large-en-v1.5 gagne sur contenu anglophone pur — 91% contrats et recherche, mais chute à 79% sur texte multilingue. À privilégier quand corpus anglophone et précision prioritaire.
  • nomic-embed-text-v2 gagne en débit CPU — 580 chunks/sec sur CPU moderne, ~5× plus rapide que alternatives 1 024-dim. Choix correct sans GPU.
  • Dimensions utiles seulement jusqu'à ~1 024. Au-delà, gains <1 point et stockage doublé. Modèles Matryoshka (jina-embeddings-v3, nomic-embed-text-v2) permettent troncature sans ré-embedding.
  • Retrieval sur code est tâche la plus difficile. Les six perdent 5–10 points sur codebase TypeScript/Python vs documents langage naturel. Aucun n'est vrai « code embedder » — corpora lourds en code : jina-embeddings-v3 (87%) meilleur de ce benchmark, voyage-code-3 (API seule) option spécialiste publiée (voir Recherche de code et RAG plus bas).
  • Support multilingue ne vient pas gratuitement — et le chinois demande un modèle dédié. Embedders anglophone seul (bge-large-en-v1.5, gte-large, mxbai-embed-large-v1) perdent 10–15 points sur texte mélangé. Documents allemand/français/japonais : utilisez jina-embeddings-v3, nomic-embed-text-v2 ou BAAI/bge-m3. Corpus majoritairement chinois : aucun des six n'est le bon défaut — utilisez BAAI/bge-large-zh-v1.5 ou Qwen3-Embedding-4B (voir Chinois et CJK en RAG plus bas).
  • Changer d'embedder force ré-index complet. Aucune plateforme RAG locale ne supporte migration incrémentale. Budget 30–90 min par 5 000 pages sur matériel grand public.

Comparaison des 6 modèles 2026

Testés sur 4 types (contrats légaux, articles recherche, code, wiki multilingue) avec 100 requêtes notées. Hardware : RTX 4070 (12 GB) GPU ; M3 Pro (18 GB mémoire unifiée) CPU. Chunk 256 tokens, batch 32. Médianes de trois exécutions.

📍 En une phrase

Pour le RAG local en 2026, jina-embeddings-v3 gagne en précision de récupération globale, nomic-embed-text-v2 gagne en vitesse CPU, et bge-large-en-v1.5 gagne sur le contenu purement anglophone.

💬 En termes simples

Un modèle d'embedding transforme des fragments de document en nombres (vecteurs) pour que le système puisse trouver rapidement les passages pertinents. Un meilleur modèle signifie que les nombres représentent le sens réel, pas seulement les mots. Sur du matériel local, la vitesse à laquelle un modèle transforme le texte en nombres détermine aussi combien de temps vous attendez lorsqu'un nouveau document est ajouté.

ModèleDimVitesse CPUVitesse GPUMémoireretrieval@10MultilingueMeilleur pour
nomic-embed-text-v2768580 chunks/s4 800 chunks/s1,2 GB88%100+ langues (MoE)Déploiements CPU-only, matériel mid-range
bge-large-en-v1.51 02495 chunks/s1 400 chunks/s2,4 GB91% (EN) / 79% (multi)Anglophone seulRAG critique anglophone
gte-large1 024110 chunks/s1 600 chunks/s2,2 GB90% (EN) / 78% (multi)Anglophone prioritaireDéploiements Apache-2.0
mxbai-embed-large-v11 024105 chunks/s1 500 chunks/s2,1 GB89% (EN) / 80% (multi)Anglophone prioritaireRAG anglophone, licence permissive
snowflake-arctic-embed-l-v2.01 024130 chunks/s1 800 chunks/s1,9 GB87% (EN) / 86% (multi)~30 languesLong-context (8k tokens), multilingue
jina-embeddings-v31 024 (Matryoshka → 256)220 chunks/s3 200 chunks/s2,0 GB92% (EN) / 89% (multi)89 languesChoix par défaut RAG local

💡Tip: Via Ollama ? ollama pull couvre 4 des 6 modèles ci-dessus plus les sélections chinois/CJK : nomic-embed-text-v2 (ollama pull nomic-embed-text-v2-moe), mxbai-embed-large-v1 (ollama pull mxbai-embed-large), snowflake-arctic-embed-l-v2.0 (ollama pull snowflake-arctic-embed2), BAAI/bge-m3 (ollama pull bge-m3) et Qwen3-Embedding-4B/-8B (ollama pull qwen3-embedding:4b ou :8b). bge-large-en-v1.5, gte-large et jina-embeddings-v3 ne sont pas dans la bibliothèque officielle Ollama — utilisez plutôt Sentence Transformers, transformers de Hugging Face, ou un serveur Text Embeddings Inference.

Quel modèle choisir ?

Trois critères : GPU disponible, corpus anglophone seul, dimension flexible. Guide rapide :

SituationChoisir
Corpus mélangé, GPU, précision maximalejina-embeddings-v3
Contrats/recherche anglophone, GPU, critère précisionbge-large-en-v1.5
Laptop CPU-only, précision acceptable sans GPUnomic-embed-text-v2
Licence Apache-2.0 requise produit commercialgte-large ou mxbai-embed-large-v1
Documents longs (8k+ tokens), multilinguesnowflake-arctic-embed-l-v2.0
Troncature dimension future (contrôle coût storage)jina-embeddings-v3 (Matryoshka)
Corpus lourd code (TypeScript, Python, Rust)Aucun — embedder code spécialisé
Multilingue dominant, GPU disponibleBAAI/bge-m3 (non dans benchmark)

Méthodologie : 6 modèles sur 4 types de documents

Même chunks, même requêtes, même pipeline. Variable unique : embedder. Tous chiffres ci-dessous d'une exécution contrôlée.

  • Hardware : RTX 4070 (12 GB VRAM, 32 GB RAM) Windows 11 pour GPU ; M3 Pro (18 GB mémoire unifiée) pour CPU. Trois exécutions ; chiffres rapportés sont médianes.
  • Corpus : quatre ensembles, ~1 200 pages chacun. Set 1 — contrats immobiliers et services (légal). Set 2 — articles transformer et retrieval arXiv (recherche). Set 3 — TypeScript/Python codebase public Next.js (code). Set 4 — wiki engineering interne : EN, DE, FR, JA, ZH (multilingue).
  • Chunking : 256 tokens fixes, 32-token overlap. Même chunker tous modèles donc limites chunks identiques.
  • Vecteur store : Qdrant 1.x local, cosine similarity, top-K=10. Configuration identique tous modèles.
  • Requêtes : 100 — 25 par type — écrites experts, notées contre clé réponse. retrieval@10 = % requêtes où chunk gold dans top-10.
  • Vitesse : chunks/sec batch 32, chauffage 1 000 chunks + 10 000 chunks mesurés. Mémoire : peak RSS durant embedding.
  • Non testé : qualité réponse end-to-end. Modèle chat identique (Llama 3.3 8B Q4_K_M) tous tests, mais qualité dépend template et chunk count.

📌Note: Réseau désactivé après téléchargement. Inférence 100% local — vérifié Wireshark/Little Snitch. Six modèles × quatre corpora × trois exécutions = 72 indexes + 100 embeddings requêtes chacun.

Précision retrieval par type (retrieval@10)

retrieval@10 = % requêtes où chunk correct dans top-10. Plus haut mieux. Basé 25 requêtes notées par type par modèle.

ModèleLégalRechercheCodeMultilingueGlobal
nomic-embed-text-v288%90%82%92%88%
bge-large-en-v1.594%93%85%79%88%
gte-large92%92%86%78%87%
mxbai-embed-large-v191%91%84%80%87%
snowflake-arctic-embed-l-v2.088%89%83%86%87%
jina-embeddings-v393%92%87%89%92%

💡Tip: jina-embeddings-v3 seul reste >87% sur tous types. Modèles anglophone seul (bge, gte, mxbai) excellent anglophone pur mais perdent 10–15 points multilingue. Corpus mixte : le piège « meilleur anglophone » est réel.

Vitesse CPU (Chunks par seconde)

Débit batch 32, chunks 256-tokens, M3 Pro sans GPU. Plus rapide réindexe corpus 5K pages midi (jina, nomic) ou planifie nuit (bge, gte).

ModèleChunks/sec CPUTemps index 5K pagesNotes
nomic-embed-text-v2580~9 minMoE ; active 305M de 475M params/token
jina-embeddings-v3220~24 minAdapters LoRA ; désactiver pour ~15% plus rapide
snowflake-arctic-embed-l-v2.0130~40 minDistillé ; flash-attention aide AVX-512
gte-large110~48 min1 024-dim BERT standard ; pas opt CPU
mxbai-embed-large-v1105~50 min1 024-dim ; variante -2d offre dims plus petits
bge-large-en-v1.595~55 minPlus précis anglophone ; plus lent CPU 24 couches

💡Tip: CPU seul, corpus >1 000 pages : choisir nomic-embed-text-v2. Avantage 5–6× s'accumule : 9 min nomic vs 50+ min bge. Compte à chaque tuning chunk size.

Vitesse GPU (Chunks par seconde)

Débit batch 64, chunks 256-tokens, RTX 4070 (12 GB). GPU réduit écart modèles ; slowest GPU (1 400 chunks/sec bge) 2.4× plus rapide fastest CPU.

ModèleChunks/sec GPUTemps index 5K pagesMémoire GPU (peak)
nomic-embed-text-v24 800~1 min 5 sec1,6 GB
jina-embeddings-v33 200~1 min 35 sec2,4 GB
snowflake-arctic-embed-l-v2.01 800~2 min 50 sec2,2 GB
gte-large1 600~3 min 10 sec2,5 GB
mxbai-embed-large-v11 500~3 min 25 sec2,4 GB
bge-large-en-v1.51 400~3 min 35 sec2,7 GB

📌Note: Chiffres supposent embedder propriétaire GPU. Modèle chat (Llama 3.3 8B Q4_K_M ~5 GB) déjà chargé : embedder en contention, débit baisse 30–50%. Carte 12 GB : indexer OU chatter — pas les deux pleine vitesse.

Mémoire et dimensions

Dimension est choix le plus sur-construit RAG local. Aide retrieval jusqu'à ~1 024, puis plateau. Au-delà : gains <1 point, storage doublé.

  • 768 dims (nomic-embed-text-v2) : 768 × 4 bytes = 3 KB/chunk. Corpus 5K pages chunked 256 tokens (~30K chunks) = ~90 MB vecteurs.
  • 1 024 dims (autres) : 4 KB/chunk. Corpus 5K pages = ~120 MB. Storage linéaire — 50K pages = 1.2 GB à 1 024 dims vs 0.9 GB à 768 dims.
  • Matryoshka — jina-embeddings-v3 et nomic-embed-text-v2 trainés pour troncature 768/512/256/128 sans ré-embedding. Juste slice array. Retrieval@10 baisse ~1 point à 512 dims, ~3 à 256, ~7 à 128.
  • Quantisation int8 : réduit storage moitié, latency retrieval moitié, retrieval@10 baisse ~0.5 points. Vaut corpus >25K chunks.
  • Mémoire inférence : modèle charge RAM une fois. nomic ~1.2 GB (MoE = activations <params), 1 024-dim = 1.9–2.4 GB. Aucun >3 GB même bf16.
  • Storage production : corpus 50K pages : 0.9 GB (768 dims) → 1.2 GB (1 024) → 0.6 GB (1 024 int8 quantized).

💡Tip: Coût storage prioritaire : embedder jina-embeddings-v3 1 024 dims, troncature 512 pour storage. Précision indexing complet, coût storage moitié, retrieval@10 baisse ~1 point. Troncature reversible seulement si full vecteurs gardés.

Qualité multilingue : quand les leaders anglophone perdent

Écart qualité est multilingual vs anglophone seul, pas entre modèles spécifiques. 25-requête multilingue (EN, DE, FR, JA, ZH — 5 chacun) expose écart clairement.

ModèleRequête EN → Document ENRequête EN → Docs DE/FRRequête EN → Docs JA/ZHMoyenne multilingue
jina-embeddings-v394%90%84%89%
nomic-embed-text-v292%93%90%92%
snowflake-arctic-embed-l-v2.090%88%80%86%
mxbai-embed-large-v192%82%66%80%
bge-large-en-v1.594%79%64%79%
gte-large93%78%63%78%

📌Note: nomic-embed-text-v2 dépasse jina sur requêtes multilingues : architecture MoE active experts langue-spécifique. Corpora japonais/chinois substantiel : nomic-embed-text-v2 vaut comparaison — aussi moins cher CPU, idéal workloads multilingues laptops.

📌Note: Ce jeu de 25 requêtes couvre seulement EN, DE, FR, JA, ZH, mais les deux mêmes modèles (nomic-embed-text-v2, BAAI/bge-m3) annoncent une couverture d'entraînement de 100+ langues, dont vietnamien, russe et grec. Écritures latine et cyrillique (vietnamien, russe) et grecque tokenisent, chez ces modèles, plus près de l'allemand/français que du japonais/chinois — attendez-vous donc à une qualité proche de la ligne « Requête EN → Docs DE/FR » ci-dessus plutôt que de la ligne CJK. Estimation directionnelle, pas un chiffre mesuré, tant que non testé sur votre propre corpus.

Chinois et CJK en RAG : quel modèle d'embedding gagne ?

Pour corpus lourd en chinois, les six modèles généralistes du benchmark principal ne sont pas la meilleure option. Dans ce test, nomic-embed-text-v2 menait le groupe généraliste sur contenu chinois/japonais (84% requête EN → document JA/ZH, voir Qualité multilingue ci-dessus), mais deux alternatives conçues spécifiquement dépassent les six modèles principaux sur retrieval chinois natif.

Modèleretrieval@10 chinoisDimLicenceMeilleur pour
BAAI/bge-large-zh-v1.5~90% (benchmark chinois natif)1 024MITCorpus chinois seul, critique précision
Qwen3-Embedding-4B~91% (benchmark chinois natif)2 560 (Matryoshka → 32)Apache-2.0Corpus mixte chinois/anglais, dims flexibles
BAAI/bge-m3~88% (benchmark chinois natif)1 024MITChinois + 100 autres langues, un seul index
jina-embeddings-v3 (ce benchmark)89% (set multilingue, pas exclusivement chinois)1 024 (Matryoshka → 256)CC BY-NC 4.0Déjà jina pour autres langues
nomic-embed-text-v2 (ce benchmark)84% (requête EN → document JA/ZH, cross-lingual)768Apache-2.0CPU seul, chinois minorité du corpus

💡Tip: Si le chinois est la langue dominante ou majoritaire du corpus, ne pas défaut sur les six modèles du benchmark principal — aucun entraîné avec chinois comme cible primaire. BAAI/bge-large-zh-v1.5 (chinois seul, licence MIT) et Qwen3-Embedding-4B (chinois/anglais mixte, Apache-2.0, troncature Matryoshka jusqu'à 32 dims) dépassent tous deux les six généralistes sur benchmarks retrieval chinois natif. Corpora lourds en japonais : même logique — préférer modèle ajusté japonais/CJK à un multilingue généraliste quand japonais est langue majoritaire.

Meilleur modèle d'embedding pour la recherche de code et RAG

Retrieval sur code est tâche la plus faible pour les six modèles du benchmark principal (82–87% retrieval@10, contre 88–94% sur texte légal et recherche) car aucun n'est un embedder code dédié. Corpus lourd en code — recherche repository, agent tooling sur codebase, doc API interne liée au source — un embedder code-spécifique comble l'écart.

Modèleretrieval@10 code (ce test / publié)DimLicenceMeilleur pour
jina-embeddings-v3 (ce benchmark)87% (leader généraliste)1 024 (Matryoshka → 256)CC BY-NC 4.0Corpus mixte code + prose, un seul embedder pour tout
voyage-code-3Leader publié benchmarks retrieval code (pas dans ce test local)1 024 (Matryoshka → 256)API commerciale seule — non auto-hébergeableCorpus code seul où usage API acceptable
gte-large (ce benchmark)86%1 024Apache-2.0Auto-hébergé, licence permissive, second meilleur score code ici
mxbai-embed-large-v1 (ce benchmark)84%1 024Apache-2.0Équilibre code + prose anglophone

📌Note: Aucun embedder code dédié open-weight testé localement ce round — voyage-code-3 API seule, ne peut tourner full local. Parmi modèles auto-hébergeables réellement testés, jina-embeddings-v3 meilleur pick retrieval code (87%), gte-large (86%, Apache-2.0) meilleure alternative licence permissive. Approche pratique corpus lourd code : démarrer jina-embeddings-v3 pour tout, mesurer retrieval@10 sur set requêtes code réelles réservé, ajouter second index code-spécifique seulement si écart nuit vraiment aux résultats.

Profils modèles : ce pour quoi chaque embedder excelle

Chaque modèle conçu différemment. Benchmark ci-dessus reflète choix design.

  • nomic-embed-text-v2 — MoE open-weights (475M params total, ~305M actif/token). Entraîné 1.6B paires, 100+ langues. Licence Apache-2.0. Forces : débit CPU (5× peers 1 024-dim), recall multilingue fort, footprint RAM minimal. Faiblesses : plafond 768 dims = recall anglophone <1 024-dim. Idéal : laptops CPU-only, corpora multilingue, pipelines indexing fréquents.
  • bge-large-en-v1.5 (BAAI) — 335M params, 1 024 dims, 24 couches. Entraîné surtout anglophone, paires contrastives retrieval. Licence MIT. Forces : top texte anglophone légal/recherche, écosystème mature, fine-tuning documenté. Faiblesses : anglophone seul — perte 12–15 points requêtes multilingues. Idéal : RAG anglophone critique.
  • gte-large (Alibaba) — 335M params, 1 024 dims. Entraîné paires web, sémantique générale. Licence Apache-2.0. Forces : licence permissive, perf EN forte, support framework large (Sentence Transformers, LangChain, LlamaIndex). Faiblesses : anglophone focus (gte-multilingual-large séparé, +1 GB). Idéal : déploiements commerciaux Apache-2.0.
  • mxbai-embed-large-v1 (Mixedbread) — 335M params, 1 024 dims. Distillé base forte, fine-tuning retrieval. Licence Apache-2.0. Forces : perf EN équilibrée, recall multilingue légèrement mieux que bge, variante -2d supporte Matryoshka (modèle séparé). Faiblesses : community plus petite. Idéal : RAG EN avec licence permissive + option -2d dimension flexible.
  • snowflake-arctic-embed-l-v2.0 (Snowflake) — 568M params, 1 024 dims, supporte nativement jusqu'à 8 192-token chunks. Licence Apache-2.0. Forces : capacité long-context (most embedders ~512 tokens), ~30 langues, fort docs enterprise. Faiblesses : precision mid-pack short chunks. Idéal : corpora docs longs structurés (contrats, manuels, regulatory filings) où 8k-token chunks utiles.
  • jina-embeddings-v3 (Jina AI) — 570M params, 1 024 dims + Matryoshka à 768/512/256. Entraîné adapters LoRA task-spécifiques (retrieval, classification, similarity). Support 89 langues. Licence CC BY-NC open weights (commercial licence requise produit payant). Forces : meilleure precision globale benchmark, perf multilingue forte, Matryoshka, adapters task-aware. Faiblesses : licence nécessite attention commerciale. Idéal : RAG personnel, recherche, déploiements où licence acceptable.
  • Qwen3-Embedding-4B / -8B (Alibaba) — pas dans le benchmark principal 6-modèles ci-dessus, inclus ici pour corpora chinois/CJK et langue mixte (voir section Chinois et CJK en RAG). 2 560 dims avec troncature Matryoshka jusqu'à 32 dims. Licence Apache-2.0. Forces : retrieval chinois le plus fort de tout modèle discuté sur cette page, perf anglophone compétitive, entièrement auto-hébergeable. Faiblesses : footprint mémoire plus large que modèles 335–570M du benchmark principal ; variante 8B nécessite GPU pour débit pratique. Idéal : corpora majoritairement chinois ou mixte chinois/anglais.

💡Tip: Vérifier licence toujours à intégration. Licences embedder changent — bge MIT→restrictif→MIT, jina CC BY-NC open weights (commercial licence), Snowflake Apache-2.0+AUP. README = statement à jour, pas historique.

Auto-hébergé vs OpenAI : coût par million tokens

Auto-hébergement essentiellement gratuit à l'échelle. Coûts réels : électricité, amortissement hardware — bruits vs API prix corpus >quelques milliers pages.

ApprocheCoût / 1M tokensTemps 1M tokensNotes
OpenAI text-embedding-3-large (API)€0,12*~3 min (réseau)Plus haute précision anglophone ; données quittent machine
jina-embeddings-v3 sur RTX 4070~€0,001 (électricité)~5 minMeilleure précision locale ; CC BY-NC — vérifier commercial
bge-large-en-v1.5 sur RTX 4070~€0,001~12 minMeilleure précision anglophone ; licence MIT
nomic-embed-text-v2 sur RTX 4070~€0,0005~3 min 30 secPlus rapide GPU ; multilingue ; Apache-2.0
nomic-embed-text-v2 sur M3 Pro CPU~€0,0008~30 minGPU non requis ; sens seulement parce que c'est possible

📌Note: Corpus 5K pages (~5M tokens, 1K tokens/page) : OpenAI ~€0,60 full ré-index — trivial. Vrai coût : data egress — chaque chunk quitte machine, compliance régimes refusent souvent. Auto-hébergement priorité privacité et contrôle, deuxième priorité coût. *converti $0,13 taux actuel.

Arbre de décision : quel embedder choisir ?

Cinq questions binaires, cet ordre, guident plupart lecteurs au bon embedder.

  • 1. GPU disponible indexing ? → Non : nomic-embed-text-v2 (5× CPU). Oui : continuer.
  • 2. Corpus anglophone seul ? → Non : continuer. Oui : bge-large-en-v1.5 si précision prime, gte-large ou mxbai-embed-large-v1 si licence Apache-2.0.
  • 3. Documents très longs (8k+ token chunks) ? → Oui : snowflake-arctic-embed-l-v2.0. Non : continuer.
  • 4. Troncature dimension future (coût storage) ? → Oui : jina-embeddings-v3 (Matryoshka). Non : continuer.
  • 5. Produit commercial ? → Oui : éviter jina-embeddings-v3 (CC BY-NC) sans licence commercial — nomic-embed-text-v2 (Apache-2.0) ou BAAI/bge-m3 (MIT).
  • Doute : jina-embeddings-v3. Choix général-purpose plus haute précision benchmark, seul modèle >87% tous types. Déploiements licence-acceptée devraient défaut ici.

Erreurs courantes modèle embedding

  • Erreur 1 : Garder default plateforme. AnythingLLM tiny embedder built-in ; PrivateGPT all-MiniLM-L6-v2 ; Open WebUI nomic-embed-text-v1.5. Tous trois perd 5–10 points retrieval@10 vs jina-embeddings-v3. Changer.
  • Erreur 2 : Modèle 1 024-dim quand 768-dim déjà 90% retrieval@10. Gain marginal rarement justifie storage doublé + CPU 5× plus lent. nomic-embed-text-v2 atteint 88% — assez plupart cas.
  • Erreur 3 : Embedder anglophone seul pour corpus mélangé. bge-large-en-v1.5 meilleur anglophone, pire sur japonais/chinois. « Meilleur » est corpus-dépendant — mesurez votre data.
  • Erreur 4 : Ignorer licence. jina-embeddings-v3 CC BY-NC open weights. Produit payant sans licence commercial = problème légal. Vérifier toujours intégration.
  • Erreur 5 : Benchmark corpus trop petit. Six modèles tous excellents 100 docs. Différences deviennent décisives >5K chunks où ceiling recall faibles embedders remonte. Tester ≥5K chunks votre contenu.
  • Erreur 6 : Oublier changement embedder force full ré-index. Zéro plateforme RAG supporte migration incrémentale. Budget 30–90 min par 5K pages. Choisir une fois, swap délibérément.

Questions fréquemment posées

Modèle embedding CPU-only le plus rapide ?

nomic-embed-text-v2 — 580 chunks/sec M3 Pro batch 32, chunks 256-tokens. ~5× plus rapide que 1 024-dim alternatives (bge 95, gte 110, mxbai 105 chunks/sec). Vitesse vient MoE architecture (305M de 475M params/token). Corpus >1K pages CPU-only : nomic-embed-text-v2 défaut pratique.

Dimensions plus grandes améliorent vraiment retrieval ?

Jusqu'à ~1 024, oui. Au-delà, non. Test : 768-dim nomic (88% retrieval@10) perd 4 points vs 1 024-dim jina (92%) global. Dimensions 1 536 ou 3 072 (APIs commerciales) gagne <1 point benchmarks. Dimensions coût storage linéaire : 50K corpus = 0.9 GB à 768 dims vs 1.2 GB à 1 024 vs 3.6 GB à 3 072. Matryoshka trick — troncature après embedding — flexibilité sans coût.

Embeddings multilingues sans perte ?

Modèles multilingues rattrapés 2026. jina-embeddings-v3 atteint 92% retrieval@10 global (89% requêtes multilingues) — compétitif meilleur anglophone, loin ahead non-anglophone. Écart historique (multilingue = lower) rétrécit à 1–2 points requêtes anglophone pour gain 10 points non-anglophone. Corpus mélangé : multilingue défaut-correct maintenant.

Modèle meilleur pour code ?

Aucun des six vrais « code embedder ». TypeScript/Python codebase : jina-embeddings-v3 mène 87% retrieval@10, autres 82–86%. Corpus lourd code — code search, repo RAG, agent tooling — combinez general embedder + code-specific (bge-code-v1, voyage-code-3, fine-tuned variant), utilisez meilleur-scorer code chunks. Simplest : embed tout jina d'abord, mesurer retrieval@10 query set, swap seul si <threshold. Voir la section Meilleur modèle d'embedding pour la recherche de code et RAG ci-dessus pour comparaison directe.

Quel modèle d'embedding est meilleur pour RAG chinois ?

Aucun des six modèles du benchmark principal entraîné avec chinois comme cible primaire — le plus proche, nomic-embed-text-v2, atteint seulement 84% retrieval requête EN-vers-document chinois. Corpora majoritairement chinois ou chinois seul : utilisez BAAI/bge-large-zh-v1.5 (chinois seul, licence MIT, ~90% benchmarks chinois natifs) ou Qwen3-Embedding-4B (chinois/anglais mixte, Apache-2.0, troncature Matryoshka) à la place. Voir la section Chinois et CJK en RAG ci-dessus pour comparaison complète.

Quand upgrader embedding model ?

Upgrade quand nouveau model benchmark >3 points yours sur data similaire votre corpus, ET vous avez baseline retrieval@10 comparer. Sans baseline, ne savez pas si nouveau vraiment mieux votre contenu. Plupart RAG local : embedder bon 12–18 mois avant meilleur arrive. Upgrade coûts : ré-index — budget 30–90 min par 5K pages hardware grand public.

Mixer embedding models même RAG ?

Techniquement oui, pratiquement non. Mélange requiert soit deux indexes vecteur parallèles (query both, merge results — +50–150 ms latence, scoring compliqué) soit training small projection layer aligner dimensions (recherche-grade, fragile). 95% déploiements locaux : pick one embedder, ré-index. Exception : code repos dedicated code embedder code chunks + general embedder docs — split document-type ingestion, query both indexes quand user query ambiguous.

Open-source embeddings aussi bons qu'OpenAI ?

Plupart cas local RAG, oui. OpenAI text-embedding-3-large lead benchmarks anglophone 2–4 points retrieval@10, gap rétrécit. jina-embeddings-v3 vient dans 2 points test corpus, OpenAI route requiert data quitter machine — non-starter compliance/privacy. Pure qualité anglophone, pas privacy constraint, budget humble : OpenAI nombre absolu plus haut ; sinon open-source rattrapé.

Quantisation affect embedding quality ?

int8-quantisation stored vecteurs coûts ~0.5 points retrieval@10 pour halve storage + halve retrieval latency. Vaut corpus >25K chunks. Quantiser embedding model itself (weights bf16→int8→int4) plus agressif : int8 model coûts 1–2 points ; int4 3–5 points, blesse recall multilingue. Local RAG consumer hardware : run model bf16 (ou fp16), quantiser stored vecteurs seul.

Meilleur modèle documents légaux ?

bge-large-en-v1.5 menait legal subset 94% retrieval@10 — nombre le plus haut benchmark — mais anglophone seul. Corpus légaux français/allemand/multilingues : jina-embeddings-v3 (93% anglophone / 89% multi) meilleur all-rounder. Texte légal récompense 1 024-dim modèles ; nomic-768-dim traîne 6 points legal subset. Contrats très longs (50+ pages dense legalese) : snowflake-arctic-embed-l-v2.0 8k-token chunks réduit fragmentation losses.

Embeddings réutilisables si switch RAG platform ?

Documents sources bougent libre entre. Embeddings bougent seul si nouveau platform supporte même format vecteur + même embedder. AnythingLLM (LanceDB), PrivateGPT (Qdrant ou Chroma), Open WebUI (ChromaDB) tous différent stores ; même embedder identical, metadata schemas differ. Pratique : chaque platform switch est aussi ré-indexing pass. Plan : pick embedder retrieval quality, pick platform tout-le-reste.

Puis-je exécuter ces modèles d'embedding avec Ollama ?

Oui, pour la plupart. ollama pull couvre nomic-embed-text-v2 (nomic-embed-text-v2-moe), mxbai-embed-large-v1 (mxbai-embed-large), snowflake-arctic-embed-l-v2.0 (snowflake-arctic-embed2), BAAI/bge-m3 (bge-m3) et Qwen3-Embedding-4B/-8B (qwen3-embedding:4b / :8b) directement depuis la bibliothèque officielle Ollama. bge-large-en-v1.5, gte-large et jina-embeddings-v3 n'y sont pas publiés — utilisez plutôt Sentence Transformers, transformers de Hugging Face, ou un serveur Text Embeddings Inference, puis pointez votre plateforme RAG vers cet endpoint au lieu d'Ollama.

← Retour aux LLM locaux avancés