Aller au contenu

ComprendreNiveau 3, Construire14 minutes

Embeddings et bases vectorielles

Comment un texte devient une liste de nombres qui dit son sens, comment on compare ces listes pour chercher, et où ranger des millions de vecteurs : les modèles du marché, les bases, et ce qu'il faut décider avant d'indexer.

Écrit le 8 octobre 2026 · Vérifié le 8 octobre 2026

Vous saurez

  • Dire ce qu'est un embedding, et pourquoi deux textes proches ont des vecteurs proches
  • Choisir un modèle d'embeddings : langue, prix, hébergement, licence
  • Choisir où ranger les vecteurs, et ce que cela coûte en place
  • Éviter les pièges : changer de modèle, couper trop long, mélanger les espaces

Dans le parcours

Développement d'applications d'IA

Étape 1 sur 10

Sur cette page
  1. L'essentiel
  2. Problème
  3. Principe
  4. Fonctionnement
  5. Exemple détaillé
  6. Risques
  7. Mise en place
  8. Exercice
  9. Vérification
  10. Lectures suivantes
L'essentiel
  1. Un modèle d'embeddings transforme un texte en une liste de nombres, un vecteur ; deux textes de sens proche ont des vecteurs proches.
  2. Chercher, c'est comparer le vecteur de la question à ceux des passages ; avec des vecteurs de norme 1, le produit scalaire suffit.
  3. Passages et questions doivent passer par le même modèle : changer de modèle, c'est tout réindexer.
  4. Les modèles open weight les mieux classés tournent sur vos machines, gratuitement ; les modèles d'API se paient quelques centimes par million de tokens.
  5. Une base vectorielle range les vecteurs et retrouve vite les plus proches ; pgvector suffit souvent si l'entreprise a déjà PostgreSQL.
1

Problème

Une recherche par mots ne trouve que les mots tapés : « facture impayée » ne retrouve pas « relance client ». Un assistant sur vos documents doit retrouver les passages qui parlent de la même chose, même écrits autrement. C'est le rôle des embeddings, la première brique d'un RAG.

2

Principe

Un modèle d'embeddings lit un texte et rend un vecteur : une liste de nombres de longueur fixe, 1 024 chez mistral-embed, 1 536 ou 3 072 chez OpenAI, quelle que soit la longueur du texte. Le modèle a appris à placer près l'un de l'autre les textes de sens voisin.

Pour comparer deux vecteurs, on mesure l'angle qui les sépare : c'est la similarité cosinus. Les vecteurs d'OpenAI et de Mistral ont une norme de 1 ; le cosinus est alors un simple produit scalaire, et donne le même classement que la distance.

3

Fonctionnement

Une fois, chaque passage passe par le modèle d'embeddings et devient un vecteur rangé dans la base. À chaque question, le même modèle en fait un vecteur, et la base rapporte les passages dont les vecteurs sont les plus proches.

Indexer, une fois : chaque passage, découpé avant, devient un vecteur, rangé avec son texte et ses métadonnées. Un modèle ne lit qu'un texte limité d'un coup, 8 192 tokens chez OpenAI et Google : au-delà, il faut découper.

Chercher, à chaque question : la question devient un vecteur, par le même modèle, et la base rend les passages les plus proches. Sur quelques milliers de passages, une recherche exacte, qui compare tout, suffit ; sur des millions, les bases utilisent un index approché, comme HNSW, qui trouve presque toujours les mêmes passages, bien plus vite.

La place : un vecteur de 1 024 nombres, stocké en nombres de 4 octets, prend environ 4 Ko ; dans pgvector, 4 octets par dimension plus 8. Un million de passages à 3 072 dimensions occupent environ 12 Go.

4

Exemple détaillé

Neuf modèles d'embeddings, six par API et trois à installer chez soi, relevés le 7 octobre 2026. Le classement cité est MTEB, la référence publique des modèles d'embeddings.

Un avantageÀ savoirNon mesuré

Exemple détaillé
Outil et offreDimensionsTexte lu d'un coupPrixOù il tourneÀ savoir
OpenAItext-embedding-3-small1 536, réductibles8 192 tokens0,02 $ le million de tokensÀ savoir : API d'OpenAI ; région Europe sur accord commercial, 10 % plus cherÀ savoir : Ne connaît pas les faits postérieurs à septembre 2021
OpenAItext-embedding-3-large3 072, réductibles8 192 tokens0,13 $ le million de tokensÀ savoir : API d'OpenAI ; région Europe sur accord commercial, 10 % plus cherÀ savoir : Au-delà de 2 000 dimensions, pgvector ne peut plus l'indexer tel quel
Mistralmistral-embed1 024 ; variantes à 256 et 1288 000 tokens environ0,1 $ le million de tokensUn avantage : Données hébergées en Europe par défaut ; calcul garanti en Europe par le point d'accès européen, 1,1 fois le prixNon mesuré : Absent du classement MTEB multilingue
Googlegemini-embedding-23 072 par défaut, de 128 à 3 0728 192 tokens0,20 $ le million de tokens ; 0,10 $ en lotÀ savoir : API de Google ; offre gratuite pour essayerÀ savoir : Plusieurs textes passés ensemble rendent un seul vecteur : un objet par texte
CohereEmbed 5 ProDe 256 à 2 048128 000 tokens0,12 $ le million de tokensÀ savoir : API de Cohere ; instance dédiée possibleÀ savoir : Cohere annonce 61 en recherche en français, sur ses propres tests
Voyage AIvoyage-4-large1 024 par défaut ; 256 à 2 04832 000 tokens0,12 $ le million de tokens ; 200 millions offertsÀ savoir : API de Voyage ; c'est vers elle que renvoie Anthropic, qui n'a pas de modèle d'embeddingsUn avantage : Les vecteurs de tous les modèles voyage-4 sont compatibles entre eux
Qwen (open weight)Qwen3-Embedding-0.6BJusqu'à 1 02432 000 tokensGratuit : tourne sur vos machinesUn avantage : Chez vous ; licence Apache 2.020e au classement MTEB multilingue
Microsoft (open weight)harrier-oss-v1-0.6b1 02432 768 tokensGratuit : tourne sur vos machinesUn avantage : Chez vous ; licence MITUn avantage : 10e au classement MTEB multilingue, avec 69,0
Microsoft Research (open weight)multilingual-e5-large-instructNon relevéNon relevéGratuit : tourne sur vos machinesUn avantage : Chez vous ; licence MITUn avantage : 14e au classement MTEB en français, avec 64,6

Les bases vectorielles

Les bases vectorielles
BaseCe que c'estÀ savoir
FAISSUne bibliothèque de Meta, en mémoire ; IndexFlatL2 compare tout, sans préparationPour le cosinus : normaliser les vecteurs et prendre un index par produit scalaire
ChromaUne base locale, simple à lancerCalcule elle-même les vecteurs, avec un petit modèle par défaut, si on ne lui en donne pas ; sa distance par défaut est L2
pgvectorUne extension de PostgreSQL, version 13 ou plus récenteSon index HNSW s'arrête à 2 000 dimensions (4 000 en demi-précision) ; se combine avec la recherche plein texte de PostgreSQL
QdrantUne base vectorielle, en serveur, ou locale, en mémoire ou sur disqueRecherche par query_points dans la bibliothèque Python actuelle
LanceDBUne base embarquée, dans un dossier localSur un processeur sans AVX2, l'import plante : il faut le paquet de compatibilité
5

Risques

Risques
Ce qui guettePourquoiLa parade
Changer de modèleLes vecteurs de deux modèles ne se comparent pas : Google le dit même entre ses deux versionsTout réindexer ; garder le nom du modèle avec chaque vecteur. Exception : les modèles voyage-4 sont compatibles entre eux
Un passage trop longAu-delà de ce que lit le modèle, le texte est refusé ou coupéDécouper avant, en passages qui gardent leur titre : une base de fiches
Plusieurs textes envoyés d'un bloc à GeminiIls reviennent en un seul vecteur, qui les mélangeUn objet par texte, ou l'API par lots
Se fier au classement d'un éditeurCohere annonce des scores en français mesurés sur ses propres testsLire MTEB, mesuré par un tiers, puis essayer sur vos textes
Oublier où partent les textesChaque passage indexé par une API part chez son éditeurUn point d'accès européen, ou un modèle open weight installé chez vous
6

Mise en place

  1. Le modèle : un modèle qui lit bien le français (le classement MTEB en français en donne un premier tri), au prix et à l'hébergement qui conviennent ; un modèle open weight si les textes ne doivent pas sortir.
  2. La base : pgvector si l'entreprise a déjà PostgreSQL ; Qdrant ou Chroma pour démarrer en local ; FAISS pour un essai en mémoire.
  3. Les métadonnées : avec chaque vecteur, le document, son titre, sa date, ses droits d'accès, et le nom du modèle qui l'a calculé.
  4. La mesure : vingt questions dont vous connaissez le passage attendu, essayées sur deux ou trois modèles avant de choisir : l'évaluation d'un outil d'IA.
  5. La suite : le découpage, les droits et la mise à jour d'un index qui sert tous les jours : un RAG en production.
7

Exercice

Une PME veut indexer 200 000 passages avec un modèle à 1 024 dimensions, dans pgvector. Quelle place prennent les vecteurs ? Et avec un modèle à 3 072 dimensions, que faut-il changer ?

Ouvrir la correction

La place200 000 × (4 × 1 024 + 8) octets, soit environ 821 Mo, sans compter le texte et l'index.

À 3 072 dimensionsTrois fois plus de place, environ 2,5 Go ; surtout, l'index HNSW de pgvector s'arrête à 2 000 dimensions : il faut réduire les dimensions, ce que permettent les modèles d'OpenAI et de Google, ou passer en demi-précision.

8

Vérification

1ComprendrePourquoi la question doit-elle passer par le même modèle que les passages ?

Parce que les vecteurs de deux modèles ne vivent pas dans le même espace : leurs distances ne veulent rien dire. Changer de modèle oblige à tout réindexer.

2AppliquerVos textes ne doivent pas quitter l'entreprise. Quel modèle d'embeddings prendre ?

Un modèle open weight installé sur vos machines, comme ceux du tableau : bien classés, gratuits, et rien ne part chez un éditeur.

3ComprendreQu'apporte une base vectorielle par rapport à une liste de vecteurs en mémoire ?

Elle range les vecteurs avec leur texte et leurs métadonnées, les garde d'un lancement à l'autre, et retrouve vite les plus proches parmi des millions, grâce à un index approché.

9

Lectures suivantes

Limites et sources

Les modèles, les prix et les rangs du classement MTEB sont ceux du 7 octobre 2026 ; ils changent vite, et le classement se relit avant de choisir.

Les tailles en mémoire sont des calculs à partir de la documentation de pgvector, sans l'index ni le texte.

  1. Le tableau des modèles : apprendre/donnees/embeddings.json, chaque case avec sa source.
  2. Le relevé complet : apprendre/recherches/2026-10-07-rag-technique.json.

Écrit par Meridal, avec l'aide de l'IA ; chaque fait vérifié à sa source et relu avant publication. Texte et schémas sous licence CC BY 4.0 : reprenez-les en citant Meridal. Le code sous licence MIT.

Service correspondant

Un assistant qui connaît votre entreprise

3 300 € à 10 200 €, puis sur devis

Voir le service

Un premier échange de 30 minutes

En visio et sans frais : vous décrivez votre situation, nous vous indiquons ce qui est réalisable, avec quels outils et pour quel ordre de prix. Vous pouvez aussi nous écrire ; chaque message reçoit une réponse écrite.