Une base de données vectorielle est un système conçu pour stocker, indexer et interroger de grands volumes de vecteurs de haute dimension, généralement des plongements produits par un modèle d'apprentissage automatique, afin qu'un vecteur de requête puisse être mis en correspondance avec les vecteurs stockés les plus proches par distance, plutôt que par correspondance exacte de mot-clé ou de clé. Les bases de données relationnelles et documentaires traditionnelles sont construites autour de correspondances exactes et de requêtes par plage de valeurs sur des champs structurés ; elles sont mal adaptées à la question à laquelle une base de données vectorielle répond bien, à savoir « lequel de ces millions d'éléments est le plus similaire par son sens à celui-ci ? »
Pourquoi elles sont apparues
Le besoin de recherche vectorielle dédiée est né directement de l'essor du Transformer (architecture) et des grands modèles de langage qui en découlent. Alors que les organisations commençaient à intégrer des documents, des images et d'autres contenus pour la Semantic search et la Retrieval-augmented generation, la recherche de similarité naïve, comparant un vecteur de requête à chaque vecteur stocké un par un, devenait informatiquement irréalisable au-delà de quelques dizaines de milliers d'éléments. Les algorithmes de plus proches voisins approximatifs (ANN), notamment les graphes navigables en petits mondes hiérarchiques (HNSW) et les index de fichiers inversés combinés à la quantification produit, ont rendu possible la recherche parmi des millions ou des milliards de vecteurs en quelques millisecondes, au prix d'une légère perte de précision de rappel, ajustable.
Les bases de données vectorielles spécialisées, telles que Pinecone, Weaviate, Milvus et Qdrant, ont émergé au début des années 2020 pour regrouper ces algorithmes ANN avec les fonctionnalités opérationnelles attendues d'une base de données : persistance, réplication, filtrage par métadonnées et mise à l'échelle horizontale. En parallèle, des bases de données établies ont ajouté la recherche vectorielle en tant que fonctionnalité plutôt que comme produit autonome, notamment pgvector pour PostgreSQL et des index vectoriels dans Elasticsearch, Redis et MongoDB, brouillant la frontière entre « base de données vectorielle » comme catégorie distincte et la recherche vectorielle comme capacité intégrée à l'infrastructure existante.
COMMENT ELLES FONCTIONNENT
Un flux de travail typique intègre chaque élément d'un corpus à l'aide d'un modèle de plongement, stocke le vecteur résultant avec un identifiant et des métadonnées facultatives, et construit un index ANN sur la collection de vecteurs. Au moment de la requête, le texte ou l'image entrant est intégré avec le même modèle, et l'index renvoie les k vecteurs les plus proximaux selon une métrique de distance choisie, le plus souvent la similarité cosinus, le produit scalaire ou la distance euclidienne. De nombreux systèmes prennent en charge la recherche hybride, combinant similarité vectorielle avec un filtrage par mots-clés ou des contraintes de métadonnées, comme restreindre résultats à des documents provenant d'une plage de dates ou d'une catégorie donnée.
Rôle dans les applications d'IA
Les bases de données vectorielles sont devenues un élément essentiel de l'infrastructure de l'IA avec la croissance de la Retrieval-augmented generation, où des passages événements pertinents récupérés à partir d'un index vectoriel sont insérés dans la Context window d'un LLM pour ancrer ses réponses dans des documents spécifiques et réduire les Hallucination (AI). Elles soutiennent également les systèmes de recommandation, la recherche de similarité d'images et de sons, les pipelines de déduplication et la détection des anomalies, chaque fois que « trouver des éléments de ce style » est la demande opérationnelle.
Limites et compromis
La recherche ANN échange une petite quantité de précision contre des gains de vitesse considérables, et le choix du type d'index et des paramètres implique des compromis réels entre la latence de requête, l'empreinte mémoire et le rappel. La qualité du plongement détermine celle de la récupération : une base de données vectorielle ne peut pas être supérieure au modèle de plongement qui le alimente, et une inadéquation entre le modèle de plongement utilisé pour indexer un corpus et celui utilisé au moment de la requête dégrade silencieusement les résultats. Au milieu des années 2020, les bases de données vectorielles sont soumises à la pression compétitive des LLM à panneau de contexte long qui peuvent ingérer de grandes quantités de texte brut directement, réduisant mais n'éliminant pas la nécessité de récupération dans certaines applications, et, des bases de données polyvalentes qui absorbent la recherche vectorielle comme fonctionnalité intégrée plutôt que comme un système distinct à exploiter.