Qu'est-ce qu'une base de données vectorielle ?
Une base de données vectorielle est un système de stockage optimisé pour indexer et rechercher des vecteurs d'embeddings. Elle permet la recherche sémantique en trouvant les éléments les plus proches dans un espace mathématique, et constitue une brique fondamentale des architectures RAG.
Une base de données vectorielle (vector database) est un système de gestion de données conçu pour stocker, indexer et interroger des vecteurs de haute dimension. Contrairement aux bases relationnelles qui comparent des valeurs exactes, une base vectorielle recherche les éléments les plus similaires à une requête donnée, en mesurant la proximité entre vecteurs dans un espace mathématique.
Comment fonctionnent les vecteurs
Pour comprendre les bases vectorielles, il faut d'abord saisir la notion d'embedding. Un modèle d'embedding transforme un texte, une image ou toute donnée en un vecteur -- une liste de nombres (par exemple, 1 536 dimensions pour le modèle text-embedding-ada-002 d'OpenAI). Deux contenus sémantiquement proches produisent des vecteurs proches dans cet espace.
Par exemple, les phrases "comment cuire des pâtes" et "recette de spaghetti" sont éloignées en termes de mots-clés, mais proches en termes de sens. Leurs embeddings seront donc voisins dans l'espace vectoriel, ce que les bases classiques à mots-clés ne peuvent pas capturer.
L'indexation : le défi technique
Chercher le vecteur le plus proche parmi des millions de vecteurs en 1 536 dimensions serait extrêmement lent avec une comparaison exhaustive. Les bases vectorielles utilisent des algorithmes d'indexation approximative pour accélérer la recherche :
- HNSW (Hierarchical Navigable Small World) : construit un graphe multicouche pour naviguer rapidement vers les voisins les plus proches. C'est l'algorithme le plus répandu.
- IVF (Inverted File Index) : partitionne l'espace en clusters et ne cherche que dans les clusters les plus proches de la requête.
- Product Quantization : compresse les vecteurs pour réduire l'empreinte mémoire tout en maintenant une bonne précision.
Ces techniques permettent de passer de recherches en O(n) à des recherches quasi-instantanées, même sur des millions de documents.
Les bases vectorielles disponibles
Le marché des bases vectorielles s'est structuré autour de plusieurs catégories :
Bases vectorielles natives : construites spécifiquement pour les vecteurs.
- Pinecone : service managé (cloud), facile à démarrer, sans gestion d'infrastructure.
- Weaviate : open source, supporte le stockage hybride (vecteurs + données structurées).
- Qdrant : open source, écrit en Rust, performant pour les volumes importants.
- Chroma : open source, léger, souvent utilisé pour le prototypage rapide.
- Milvus : open source, conçu pour les déploiements à grande échelle.
Extensions vectorielles sur bases existantes : ajoutent des capacités vectorielles à des bases traditionnelles.
- pgvector : extension PostgreSQL, pratique quand on veut garder une seule base de données.
- Elasticsearch kNN : ajout de la recherche vectorielle au moteur de recherche.
Le choix dépend du volume, de la latence cible, des contraintes d'hébergement et de la maturité de l'équipe. Pour un prototype, Chroma ou pgvector suffisent. Pour de la production à grande échelle, Pinecone, Qdrant ou Weaviate offrent des garanties plus robustes.
Le rôle dans le RAG
Les bases vectorielles sont la brique centrale des architectures RAG (Retrieval-Augmented Generation). Le flux typique est le suivant :
1. Ingestion : les documents sont découpés en segments (chunks), transformés en embeddings, puis indexés dans la base vectorielle.
2. Requête : la question de l'utilisateur est transformée en embedding, puis la base retourne les k segments les plus similaires.
3. Génération : ces segments sont injectés dans le contexte du LLM, qui génère une réponse fondée sur ces informations.
Cette architecture permet au LLM de répondre sur des données qu'il n'a jamais vues pendant son entraînement, sans nécessiter de fine-tuning. C'est le pilier du context engineering appliqué à la récupération d'informations.
Recherche hybride
La recherche purement vectorielle a ses limites. Pour un identifiant produit, un nom propre ou un code précis, la recherche par mots-clés reste plus efficace. Les bases vectorielles modernes proposent donc la recherche hybride, qui combine recherche sémantique (vecteurs) et recherche lexicale (BM25, mots-clés) puis fusionne les résultats.
Cette approche hybride améliore significativement la qualité des résultats dans les systèmes RAG en production, et fait partie des bonnes pratiques recommandées en context engineering.
Au-delà du texte
Bien que les cas d'usage texte dominent, les bases vectorielles fonctionnent avec tout type d'embedding : images (CLIP), audio, code source. Elles constituent ainsi l'infrastructure de base pour toute application d'IA multimodale qui nécessite de la recherche par similarité.
Fait intéressant
L'algorithme HNSW, utilisé par la majorité des bases vectorielles actuelles, s'inspire de la théorie des six degrés de séparation : il construit un réseau où n'importe quel point peut être atteint en quelques sauts, même parmi des millions de vecteurs.
Ces formations pourraient aussi vous intéresser
Prêt à accélérer votre Transformation ?
Nos experts vous accompagnent à chaque étape
de votre parcours Data & IA. Discutons ensemble de vos enjeux et objectifs.