P

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

EmbeddingRAG (Retrieval-Augmented Generation)Recherche sémantiqueSimilarité cosinus

FAQ

Quelle est la différence entre une vector database et une base de données classique ?
Une base de données classique (SQL ou NoSQL) recherche des correspondances exactes sur des champs structurés (nom, date, ID). Une vector database stocke des représentations numériques multidimensionnelles et effectue des recherches par similarité : elle trouve les éléments dont le sens est le plus proche de la requête, même sans correspondance exacte de mots-clés. C'est ce qui permet la recherche sémantique.
Ai-je besoin d'une vector database dédiée ou puis-je utiliser PostgreSQL avec pgvector ?
Pour des projets de petite à moyenne taille (moins de quelques millions de vecteurs), pgvector avec PostgreSQL est souvent suffisant et évite d'ajouter une infrastructure supplémentaire. Pour des besoins à grande échelle avec des milliards de vecteurs, des exigences de latence très faibles ou des fonctionnalités avancées (recherche hybride, sharding automatique), une solution dédiée comme Pinecone, Qdrant ou Milvus sera plus adaptée.
Comment choisir la bonne stratégie de chunking pour alimenter une vector database ?
La taille des chunks influence directement la qualité de la retrieval. Des chunks trop petits perdent le contexte, des chunks trop grands diluent l'information pertinente. Une bonne pratique est de découper en paragraphes de 200 à 500 tokens avec un chevauchement (overlap) de 10 à 20 %. Il est aussi recommandé de tester différentes stratégies (par paragraphe, par section, par phrase) et de mesurer la pertinence des résultats sur un jeu de questions-réponses de référence.

Voir aussi

Recevez de nouveaux prompts chaque semaine

Rejoignez notre newsletter.