Base de données vectorielle

Une base de données vectorielle stocke les données sous forme de vecteurs (embeddings) et retrouve les éléments les plus proches par le sens, pour la recherche sémantique et le RAG.

Résumer avec

Qu'est-ce qu'une base de données vectorielle ?

Une base de données vectorielle est une base conçue pour stocker, indexer et rechercher des vecteurs : de longues listes de nombres qui représentent le sens d'un contenu, comme un texte, une image ou un produit. Ces vecteurs s'appellent des embeddings. Au lieu de chercher des correspondances exactes sur des mots-clés, une base vectorielle retrouve les éléments dont le vecteur est le plus proche de celui de la requête, c'est-à-dire les plus proches par le sens.

Cette capacité est au cœur de la recherche sémantique, des moteurs de recommandation et du RAG (génération augmentée par la recherche), où un modèle d'IA répond à partir de documents issus de vos propres données.

Comment fonctionne une base de données vectorielle ?

Le processus comporte trois étapes. D'abord, un modèle d'embedding convertit chaque document en vecteur. Ensuite, la base stocke ces vecteurs avec un index et des métadonnées facultatives. Enfin, au moment de la requête, la question est convertie en vecteur et la base renvoie les voisins les plus proches.

vecteur_requete = embed('Comment réinitialiser mon mot de passe ?')
resultats = index.search(vecteur_requete, top_k=3, filter={'lang': 'fr'})

La proximité se mesure avec une métrique de similarité comme la similarité cosinus, le produit scalaire ou la distance euclidienne. Pour rester rapides sur des millions de vecteurs, la plupart des systèmes utilisent des index de recherche approximative des plus proches voisins (ANN), comme HNSW, qui sacrifient un peu de précision pour gagner beaucoup en vitesse.

Base vectorielle et base relationnelle

CritèreBase relationnelle (SQL)Base vectorielle
Données stockéesLignes et colonnes structuréesEmbeddings et métadonnées
Type de requêteCorrespondance exacte, filtres, jointuresRecherche de similarité par le sens
RésultatDéterministeClassé par score de similarité
Usage typiqueTransactions, comptes, commandesRecherche sémantique, RAG, recommandations

Les deux sont complémentaires. Certaines bases relationnelles, comme PostgreSQL avec l'extension pgvector, savent aussi stocker des vecteurs, ce qui permet de garder les deux types de données au même endroit.

Cas d'usage courants

  • Recherche sémantique : trouver des réponses même lorsque les mots diffèrent de la requête.
  • RAG : fournir à un grand modèle de langage les passages pertinents de vos documents.
  • Recommandations : suggérer des produits, des articles ou des contacts similaires.
  • Déduplication : détecter des contenus quasi identiques.
  • Mémoire d'agent IA : permettre à un agent de se rappeler des informations passées.

Bonnes pratiques et pièges

  • Utilisez le même modèle d'embedding pour l'indexation et pour les requêtes, sinon les résultats n'ont aucun sens.
  • Découpez les longs documents en segments de taille raisonnable avant de les vectoriser.
  • Stockez des métadonnées (langue, date, source) et filtrez dessus pour gagner en précision.
  • Combinez recherche vectorielle et recherche par mots-clés (recherche hybride) pour les termes exacts comme les références produit.
  • Recalculez vos embeddings lorsque vous changez de modèle.

La base de données vectorielle chez BeBranded

Chez BeBranded, nous utilisons des bases vectorielles pour créer des assistants IA et des outils de recherche interne qui répondent à partir des documents d'une entreprise. Nous les connectons à vos outils et à vos workflows existants dans le cadre de notre accompagnement en automatisation.

FAQ

C'est une base qui stocke des embeddings et retrouve les éléments les plus proches par le sens d'une requête, au lieu de chercher des mots-clés exacts.
Une base SQL répond à des requêtes exactes sur des données structurées. Une base vectorielle classe les éléments par similarité sémantique.
Elle permet de retrouver les passages les plus pertinents de vos documents et de les fournir au modèle de langage comme contexte.
Un embedding est une liste de nombres produite par un modèle, qui capture le sens d'un texte, d'une image ou d'un autre contenu.
Oui. Avec l'extension pgvector, PostgreSQL peut stocker des vecteurs et lancer des recherches de similarité, comme dans Supabase.
Non. Pour un petit ensemble de documents, une recherche simple peut suffire. Une base vectorielle devient utile quand le contenu grandit et que la recherche par le sens compte.

Prêt à booster vos conversions ?

Notre équipe est là pour comprendre vos besoins et travailler avec vous pour créer vos prochains projets.
Recevez des news et des ressources.
Des conseils pratiques directement dans votre boîte mail.
Merci ! Votre demande a bien été reçue.
Oups ! Une erreur est survenue lors de l'envoi du formulaire.