Vector Database : Définition et Exemples
Une vector database est une base de données spécialisée dans le stockage, l'indexation et la recherche de vecteurs numériques (embeddings), permettant de retrouver rapidement des données similaires grâce au calcul de distance vectorielle.
Définition complète
Une vector database (ou base de données vectorielle) est un système de stockage conçu spécifiquement pour gérer des représentations numériques multidimensionnelles appelées embeddings. Ces embeddings sont produits par des modèles d'intelligence artificielle qui transforment du texte, des images, de l'audio ou tout autre type de données en vecteurs — des listes de nombres qui capturent le sens sémantique du contenu original.
Contrairement aux bases de données traditionnelles qui recherchent des correspondances exactes (par mots-clés ou identifiants), une vector database excelle dans la recherche par similarité. Elle utilise des algorithmes comme ANN (Approximate Nearest Neighbors) pour identifier rapidement les vecteurs les plus proches d'un vecteur requête, même parmi des millions ou des milliards d'entrées. Cette capacité est au cœur des systèmes RAG (Retrieval-Augmented Generation) qui alimentent les LLM avec des connaissances contextuelles.
Les vector databases les plus populaires incluent Pinecone, Weaviate, Qdrant, Milvus et Chroma, ainsi que des extensions vectorielles pour bases existantes comme pgvector pour PostgreSQL. Chacune offre des compromis différents en termes de performance, de scalabilité et de fonctionnalités (filtrage métadonnées, multi-tenancy, recherche hybride).
Dans l'écosystème du prompt engineering et de l'IA générative, les vector databases jouent un rôle fondamental : elles permettent de donner de la mémoire et du contexte aux modèles de langage en retrouvant les informations les plus pertinentes à injecter dans un prompt, rendant les réponses plus précises et ancrées dans des données réelles.
Étymologie
Le terme combine « vector » (du latin vector, « celui qui transporte »), utilisé en mathématiques pour désigner une grandeur à plusieurs dimensions, et « database » (base de données). L'expression s'est popularisée à partir de 2022-2023 avec l'explosion des applications basées sur les LLM et le besoin de stocker massivement des embeddings pour la recherche sémantique.
Exemples concrets
Construction d'un chatbot RAG avec base de connaissances
Tu es un assistant qui répond en te basant uniquement sur le contexte fourni. Voici les documents les plus pertinents retrouvés depuis notre base vectorielle :
{contexte_récupéré}
Question de l'utilisateur : {question}
Réponds de manière précise en citant tes sources.Recherche sémantique dans un catalogue de produits
L'utilisateur recherche : "{requête_utilisateur}". Voici les 5 produits les plus similaires trouvés par recherche vectorielle :
{produits}
Génère une réponse naturelle qui présente ces produits en expliquant pourquoi ils correspondent à la recherche.Détection de doublons et déduplication de contenu
Analyse les articles suivants identifiés comme sémantiquement proches (score de similarité > 0.92) par notre vector database. Détermine s'il s'agit de vrais doublons ou de contenus distincts qui traitent du même sujet :
Article A : {titre_a}
Article B : {titre_b}
Réponds avec : DOUBLON, SIMILAIRE ou DISTINCT, et justifie.Usage pratique
En prompt engineering, les vector databases sont essentielles pour construire des systèmes RAG : on découpe ses documents en chunks, on génère des embeddings via un modèle (comme text-embedding-3-small d'OpenAI), on les stocke dans une vector database, puis on récupère les passages les plus pertinents pour les injecter dans le prompt avant d'interroger le LLM. La qualité de la stratégie de chunking et du modèle d'embedding impacte directement la pertinence des réponses générées.
Concepts liés
FAQ
Quelle est la différence entre une vector database et une base de données classique ?
Ai-je besoin d'une vector database dédiée ou puis-je utiliser PostgreSQL avec pgvector ?
Comment choisir la bonne stratégie de chunking pour alimenter une vector database ?
Voir aussi
Recevez de nouveaux prompts chaque semaine
Rejoignez notre newsletter.