Base de données vectorielle
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ère | Base relationnelle (SQL) | Base vectorielle |
|---|---|---|
| Données stockées | Lignes et colonnes structurées | Embeddings et métadonnées |
| Type de requête | Correspondance exacte, filtres, jointures | Recherche de similarité par le sens |
| Résultat | Déterministe | Classé par score de similarité |
| Usage typique | Transactions, comptes, commandes | Recherche 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.
