---
title: "Embeddings et bases vectorielles"
description: "Comment un texte devient un vecteur, et où ranger des millions de vecteurs."
url: https://meridal.fr/apprendre/embeddings-et-bases-vectorielles/
language: fr
written: 2026-10-08
verified: 2026-10-08
license: CC BY 4.0
---

[Apprendre](https://meridal.fr/apprendre/) › [Construction et programmation](https://meridal.fr/apprendre/dossier/construire/)

Comprendre · Niveau 3, Construire · 14 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](https://meridal.fr/apprendre/parcours/dev-avance/)

Étape 1 sur 10

- [← Avant Un RAG minimal en Python](https://meridal.fr/apprendre/rag-minimal-python/)
- [↑ Plus général La recherche par le sens](https://meridal.fr/apprendre/recherche-par-le-sens/)
- [↓ Plus concret Premier appel à un modèle](https://meridal.fr/apprendre/premier-appel/)
- [→ Ensuite Un RAG en production](https://meridal.fr/apprendre/rag-en-production/)

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.

## 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](https://meridal.fr/apprendre/rag/).

## 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.

Un vecteur ne se lit pas : aucun de ses nombres ne veut dire « client » ou « retard ». Seules les distances entre vecteurs ont un sens.

## 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.](https://meridal.fr/assets/apprendre/medias/apprendre-embeddings.svg)

**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.

## 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 À savoir Non mesuré

| Outil et offre | Dimensions | Texte lu d'un coup | Prix | Où il tourne | À savoir |
|---|---|---|---|---|---|
| OpenAI text-embedding-3-small | 1 536, réductibles | 8 192 tokens | 0,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 |
| OpenAI text-embedding-3-large | 3 072, réductibles | 8 192 tokens | 0,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 |
| Mistral mistral-embed | 1 024 ; variantes à 256 et 128 | 8 000 tokens environ | 0,1 $ le million de tokens | Un 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 prix | Non mesuré : Absent du classement MTEB multilingue |
| Google gemini-embedding-2 | 3 072 par défaut, de 128 à 3 072 | 8 192 tokens | 0,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 |
| Cohere Embed 5 Pro | De 256 à 2 048 | 128 000 tokens | 0,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 AI voyage-4-large | 1 024 par défaut ; 256 à 2 048 | 32 000 tokens | 0,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'embeddings | Un avantage : Les vecteurs de tous les modèles voyage-4 sont compatibles entre eux |
| Qwen (open weight) Qwen3-Embedding-0.6B | Jusqu'à 1 024 | 32 000 tokens | Gratuit : tourne sur vos machines | Un avantage : Chez vous ; licence Apache 2.0 | 20e au classement MTEB multilingue |
| Microsoft (open weight) harrier-oss-v1-0.6b | 1 024 | 32 768 tokens | Gratuit : tourne sur vos machines | Un avantage : Chez vous ; licence MIT | Un avantage : 10e au classement MTEB multilingue, avec 69,0 |
| Microsoft Research (open weight) multilingual-e5-large-instruct | Non relevé | Non relevé | Gratuit : tourne sur vos machines | Un avantage : Chez vous ; licence MIT | Un avantage : 14e au classement MTEB en français, avec 64,6 |

### Les bases vectorielles

| Base | Ce que c'est | À savoir |
|---|---|---|
| FAISS | Une bibliothèque de Meta, en mémoire ; IndexFlatL2 compare tout, sans préparation | Pour le cosinus : normaliser les vecteurs et prendre un index par produit scalaire |
| Chroma | Une base locale, simple à lancer | Calcule 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 |
| pgvector | Une extension de PostgreSQL, version 13 ou plus récente | Son index HNSW s'arrête à 2 000 dimensions (4 000 en demi-précision) ; se combine avec la recherche plein texte de PostgreSQL |
| Qdrant | Une base vectorielle, en serveur, ou locale, en mémoire ou sur disque | Recherche par `query_points` dans la bibliothèque Python actuelle |
| LanceDB | Une base embarquée, dans un dossier local | Sur un processeur sans AVX2, l'import plante : il faut le paquet de compatibilité |

## Risques

| Ce qui guette | Pourquoi | La parade |
|---|---|---|
| Changer de modèle | Les vecteurs de deux modèles ne se comparent pas : Google le dit même entre ses deux versions | Tout réindexer ; garder le nom du modèle avec chaque vecteur. Exception : les modèles voyage-4 sont compatibles entre eux |
| Un passage trop long | Au-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](https://meridal.fr/apprendre/base-de-fiches/) |
| Plusieurs textes envoyés d'un bloc à Gemini | Ils reviennent en un seul vecteur, qui les mélange | Un objet par texte, ou l'API par lots |
| Se fier au classement d'un éditeur | Cohere annonce des scores en français mesurés sur ses propres tests | Lire MTEB, mesuré par un tiers, puis essayer sur vos textes |
| Oublier où partent les textes | Chaque passage indexé par une API part chez son éditeur | Un point d'accès européen, ou un modèle open weight installé chez vous |

## 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](https://meridal.fr/apprendre/evaluer-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](https://meridal.fr/apprendre/rag-en-production/).

## 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 place**200 000 × (4 × 1 024 + 8) octets, soit environ 821 Mo, sans compter le texte et l'index.

**À 3 072 dimensions**Trois 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.

## Vérification

**1 Comprendre Pourquoi 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.

**2 Appliquer Vos 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.

**3 Comprendre Qu'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é.

## Lectures suivantes

↑ Plus général [La recherche par le sens Comprendre · Niveau 3 · 12 minutes](https://meridal.fr/apprendre/recherche-par-le-sens/)

← Avant [Un RAG minimal en Python S'exercer · Niveau 3 · 25 minutes](https://meridal.fr/apprendre/rag-minimal-python/)

Vous êtes ici

Embeddings et bases vectorielles

→ Ensuite [Un RAG en production Faire · Niveau 3 · 18 minutes](https://meridal.fr/apprendre/rag-en-production/)

Développement d'applications d'IA · étape 2 sur 10

↓ Plus concret [Premier appel à un modèle S'exercer · Niveau 3 · 15 minutes](https://meridal.fr/apprendre/premier-appel/)

[Tout le dossier « Construction et programmation »](https://meridal.fr/apprendre/dossier/construire/)

Les pages qui renvoient ici

- [Streaming, cache et traitement par lots](https://meridal.fr/apprendre/streaming-cache-et-lots/)
- [Un RAG en production](https://meridal.fr/apprendre/rag-en-production/)

**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](https://creativecommons.org/licenses/by/4.0/deed.fr) : 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](https://meridal.fr/offre/#assistant)

## 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.

[Réserver 30 minutes](https://meridal.fr/contact/#reserver) [Écrire un message](https://meridal.fr/contact/)
