Base de données vectorielle
Une base de données vectorielle est une base de données conçue pour stocker et rechercher des plongements, c’est-à-dire les vecteurs numériques à haute dimension qui représentent le sens d’un texte, d’une image ou d’autres données. Au lieu de faire correspondre des enregistrements selon des valeurs exactes comme une base de données traditionnelle, une base de données vectorielle trouve les enregistrements dont les vecteurs sont les plus similaires à une requête. C’est ce qui rend possible la recherche fondée sur le sens (sémantique) à grande échelle.
En bref : une base de données vectorielle stocke des plongements et trouve ceux qui sont les plus similaires à une requête. C’est le moteur de stockage et de recherche qui sous-tend la recherche sémantique et le RAG.
Comment fonctionne une base de données vectorielle
Son rôle est de stocker des vecteurs et de trouver rapidement les plus proches d’une requête :
- Stocker les vecteurs : chaque élément est converti en plongement et stocké, généralement accompagné de métadonnées telles que la source, le titre et les étiquettes.
- Indexer pour la rapidité : les vecteurs sont organisés à l’aide d’un index de plus proches voisins approximatifs comme HNSW (hierarchical navigable small world), une structure fondée sur un graphe qui navigue rapidement vers les correspondances proches plutôt que d’analyser chaque vecteur stocké.
- Rechercher par similarité : une requête est transformée en vecteur, et la base de données renvoie les vecteurs les plus proches à l’aide d’une mesure de similarité comme la similarité cosinus, chacun accompagné d’un score de récupération.
- Filtrer et renvoyer : les résultats peuvent être affinés par métadonnées (comme la date ou la catégorie), puis renvoyés déjà classés par similarité.
Comme comparer une requête à chaque vecteur par force brute est trop lent à grande échelle, les bases de données vectorielles utilisent la recherche de plus proches voisins approximatifs (ANN), sacrifiant un peu de précision pour un gain de rapidité important. Ainsi, la recherche par similarité reste rapide, même sur des millions ou des milliards de vecteurs.
Base de données vectorielle : comparaison avec les bases de données relationnelles et les bibliothèques de recherche
- Les bases de données relationnelles récupèrent des lignes grâce à des correspondances et des filtres exacts ; une base de données vectorielle récupère par similarité de sens. La question passe de « égal à » à « le plus semblable à ».
- Les bibliothèques de recherche vectorielle comme FAISS (une bibliothèque open source de Meta) fournissent principalement l’indexation ANN et des primitives de recherche par similarité ; une base de données vectorielle enveloppe ces fonctionnalités de persistance, de filtrage par métadonnées, de mises à jour, de diffusion et de mise à l’échelle.
- Les bases de données vectorielles stockent des représentations fondées sur la similarité ; un graphe de connaissances stocke des faits et des relations explicites et étiquetés. L’un est statistique, l’autre symbolique, et les deux sont souvent combinés.
Où utilise-t-on les bases de données vectorielles
- Recherche sémantique : stocker un corpus sous forme de plongements afin que les requêtes correspondent par le sens, ce qui alimente la recherche sémantique sur un ensemble de documents.
- RAG : conserver les connaissances fractionnées et transformées en plongements que le système de RAG récupère au moment de la requête.
- Recommandations et similarité : trouver des produits, des images ou des chansons similaires par proximité vectorielle.
- Modèle d’architecture courant : les équipes associent souvent une base de données vectorielle à une API de recherche : la base de données vectorielle gère le corpus qu’elles ingèrent (souvent propriétaire, mais potentiellement issu de données sous licence ou publiques), tandis que l’API de recherche fournit des résultats récents issus du web ouvert.
Une base de données vectorielle est essentielle lorsque vous devez effectuer une recherche par le sens sur un corpus de plongements à grande échelle ; elle constitue souvent la moitié d’une pile de récupération (l’API de recherche assurant la récupération web complémentaire).
Termes associés
Plongements, recherche sémantique, génération augmentée par récupération (RAG), fractionnement, score de récupération, similarité cosinus, plus proches voisins approximatifs (ANN), graphe de connaissances, API de recherche.