Revenir au contenu principal
All

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

par Équipe Databricks

Une base de données vectorielle est une base de données spécialisée conçue pour stocker et gérer des données sous forme de vecteurs de haute dimension. Le terme vient des vecteurs, qui sont des représentations mathématiques des caractéristiques ou attributs contenus dans les données. Contrairement aux bases de données traditionnelles, qui sont bien adaptées à la gestion de données structurées organisées en lignes et en colonnes, la structure d'une base de données vectorielle organise les informations sous forme de représentations vectorielles avec un nombre fixe de dimensions regroupées selon leur similarité.

Chaque vecteur au sein d'une base de données vectorielle se compose d'un nombre spécifique de dimensions, qui peut varier de quelques dizaines à plusieurs milliers. Le nombre de dimensions dépend de la complexité et de la granularité des données. Cette structure permet aux bases de données vectorielles de gérer efficacement des informations complexes et multifacettes, et d'effectuer des recherches et des analyses rapides basées sur la similarité.

Quand utiliser une base de données vectorielle ?

Selon l'International Data Corporation (IDC), 90 % des nouvelles données créées sont des données non structurées, telles que du texte, des images et des vidéos. Les modèles basés sur l'apprentissage, tels que les réseaux de neurones profonds, sont de plus en plus utilisés pour gérer ces données non structurées pour des applications dans tous les secteurs, du commerce électronique aux soins de santé. Ces applications fonctionnent en transformant les données non structurées en vecteurs d'intégration (embeddings). Une fois les données « vectorisées », des tâches telles que les recherches, les recommandations et l'analyse peuvent être mises en œuvre via la recherche IA basée sur la similarité. La gestion des données vectorielles a lieu dans les bases de données vectorielles.

Savoir quand utiliser les bases de données vectorielles dépend des autres processus et technologies que vous utilisez. Elles sont un composant clé pour alimenter de nombreux systèmes d'IA, et certaines applications de modèles de langage étendus (LLM) (mais pas toutes) utilisent des bases de données vectorielles pour des recherches de similarité rapides ou pour fournir un contexte ou des connaissances spécifiques au domaine. Par exemple, elles jouent un rôle crucial dans la génération augmentée par récupération (RAG), une approche où la base de données vectorielle est utilisée pour améliorer l'invite passée au LLM en ajoutant un contexte supplémentaire à côté de la requête.

Les bases de données vectorielles permettent également la recherche hybride. Cette approche combine la recherche traditionnelle basée sur des mots-clés avec la recherche de similarité sémantique pour localiser des informations pertinentes même lorsque les mots-clés ne correspondent pas exactement. Les bases de données vectorielles peuvent également être utilisées pour un certain nombre de tâches de traitement du langage naturel (NLP), y compris l'analyse sémantique et des sentiments, ou pour l'entraînement de modèles d'apprentissage automatique (ML).

Qu'est-ce qu'un vecteur ?

Un vecteur est un tableau numérique de haute dimension qui exprime la position d'un point particulier à travers plusieurs dimensions. Imaginez un espace vectoriel de mots comme un nuage tridimensionnel où les mots sont représentés par des points. Dans cet espace, les mots ayant des significations apparentées se regroupent. Par exemple, le point représentant « pomme » serait positionné plus près de « poire » que de « voiture ». Cet arrangement spatial reflète les relations sémantiques entre les mots, la proximité indiquant une similarité de sens.

Qu'est-ce que l'intégration vectorielle (embedding) ?

Un vecteur est généré en appliquant une fonction d'intégration (embedding) aux données brutes pour les transformer en une représentation. Ces représentations sont appelées « embeddings » car un modèle ML prend un regroupement représentatif et l'intègre dans un espace vectoriel. Les vecteurs sont intégrés sous forme de listes de nombres, ce qui facilite les opérations des modèles ML avec les données. En fait, la performance des méthodes ML dépend de manière critique de la qualité des représentations vectorielles. Un paragraphe entier de texte ou un groupe de nombres peut être réduit à un vecteur, permettant au modèle d'effectuer des opérations efficacement.

Termes clés et définitions

  • Vecteur : Une séquence de nombres qui représente un objet — tel qu'un mot, une image ou un document — comme un point dans un espace multidimensionnel, permettant aux algorithmes de comparer mathématiquement les objets et de calculer leur degré de similarité ou de différence.
  • Embedding (Intégration) : Une représentation vectorielle apprise qui mappe des objets discrets (mots, documents et images) dans un espace vectoriel continu, de sorte que les éléments sémantiquement similaires se retrouvent géométriquement proches les uns des autres.
  • Similarité cosinus : Mesure le cosinus de l'angle entre deux vecteurs, capturant la similarité de leurs directions quelle que soit leur taille, avec des valeurs allant de −1 (opposés) à 1 (direction identique) : cos(θ) = (A · B) / (‖A‖× ‖B‖)
    Distance euclidienne : La distance en ligne droite entre deux points dans l'espace vectoriel, mesurant leur éloignement en termes absolus plutôt que par alignement directionnel : d(A, B) = √Σ(Aᵢ − Bᵢ)²
  • Voisin le plus proche approximatif (ANN) : Une famille d'algorithmes de recherche qui trouvent des vecteurs proches d'une requête en ne scannant qu'un sous-ensemble de l'index, échangeant une légère baisse de précision contre une récupération considérablement plus rapide à grande échelle.
  • Petit monde navigable hiérarchique (HNSW) : Un index basé sur des graphes qui construit plusieurs couches de connexions de proximité, permettant aux requêtes de naviguer rapidement des voisins grossiers aux voisins fins.
  • Index de fichier inversé (IVF) : Divise l'espace vectoriel en clusters, puis au moment de la requête ne recherche que les clusters les plus proches, offrant un équilibre pratique entre le temps de construction de l'index et la vitesse de la requête.
  • Hachage sensible à la localité (LSH) : Hache les vecteurs de sorte que les vecteurs similaires sont susceptibles d'atterrir dans le même compartiment, permettant une recherche approximative rapide avec une faible surcharge mémoire.
  • Filtrage par métadonnées : La pratique consistant à affiner les résultats de recherche vectorielle à l'aide d'attributs structurés, tels que la date, la catégorie ou l'ID utilisateur, de sorte que les résultats doivent satisfaire des règles métier strictes, et pas seulement la similarité sémantique.
  • Recherche hybride : Combine la recherche vectorielle dense (signification sémantique) avec la recherche par mots-clés épars (pertinence par correspondance exacte via BM25/TF-IDF), puis fusionne les deux listes classées, généralement en utilisant la fusion de rangs réciproques (RRF), pour tirer le meilleur parti des deux approches.
  • Recherche multi-vectorielle : Représente chaque enregistrement avec plusieurs vecteurs distincts (tels qu'un pour le titre, un pour le corps et un pour l'image) et effectue des recherches sur tous, agrégeant les scores pour faire remonter le résultat le plus pertinent.

Comment fonctionnent les bases de données vectorielles ?

Les bases de données vectorielles sont conçues pour stocker, indexer et interroger efficacement les données via des intégrations vectorielles de haute dimension. Une fois qu'un utilisateur saisit une requête ou une demande dans la base de données vectorielle, celle-ci lance la séquence de processus suivante :

  1. Vectorisation : Cette première étape implique la génération d'embeddings à partir de contenu multimodal, qui peut inclure du texte, des images, de l'audio ou de la vidéo. Ce processus capture les relations sémantiques dans les données. Par exemple, dans les données textuelles, ce processus garantit que les mots ayant des significations similaires (ou des vecteurs) seront placés à proximité les uns des autres dans l'espace vectoriel.
  2. Indexation vectorielle : L'étape suivante distingue les bases de données vectorielles des bases de données traditionnelles. Des algorithmes ML, tels que la quantification de produit ou HNSW, sont appliqués aux données pour mapper les vecteurs à de nouvelles structures de données. Ces structures permettent des recherches de similarité ou de distance plus rapides, telles que les recherches de voisins les plus proches entre vecteurs. Ce processus d'indexation est essentiel pour la performance de la base de données, car il permet une récupération rapide des vecteurs similaires.
  3. Exécution de la requête : Dans la phase finale, le vecteur de requête initial est comparé aux vecteurs indexés dans la base de données. Le système récupère les vecteurs ayant les relations les plus fortes, trouvant ainsi efficacement les informations les plus pertinentes basées sur la similarité sémantique plutôt que sur des correspondances exactes de mots-clés.

Ces processus permettent aux bases de données vectorielles d'effectuer des recherches sémantiques et des récupérations basées sur la similarité, ce qui les rend idéales pour des applications telles que les systèmes de recommandation, la reconnaissance d'images et de vidéos, l'analyse de texte et la détection d'anomalies.

Avantages des bases de données vectorielles

Les bases de données vectorielles offrent une série d'avantages :

  • Haute vitesse et performance : Les bases de données vectorielles peuvent localiser rapidement des données similaires en utilisant des métriques de distance ou de similarité vectorielle, un processus essentiel pour le NLP, la vision par ordinateur et les systèmes de recommandation. Contrairement aux bases de données traditionnelles, qui sont limitées aux correspondances exactes ou aux critères prédéfinis, les bases de données vectorielles capturent la signification sémantique et contextuelle. Cela optimise la récupération des données en permettant la réalisation de recherches plus nuancées et contextuelles, au-delà de la simple correspondance de mots-clés.
  • Évolutivité : Alors que les bases de données traditionnelles peuvent rencontrer des défis liés aux goulots d'étranglement de l'évolutivité, aux problèmes de latence ou aux conflits de concurrence lors du traitement des mégadonnées, les bases de données vectorielles sont conçues pour gérer de vastes quantités de données. Elles améliorent l'évolutivité en utilisant des techniques comme le partitionnement horizontal (sharding), le découpage (partitioning), la mise en cache et la réplication pour distribuer la charge de travail et optimiser l'utilisation des ressources sur plusieurs machines ou clusters.
  • Polyvalence : Que les données contiennent des images, des vidéos ou d'autres données multimodales, les bases de données vectorielles sont conçues pour être polyvalentes. Compte tenu de leur capacité à gérer de multiples cas d'utilisation, allant de la recherche sémantique aux applications d'IA conversationnelle, les bases de données vectorielles peuvent être personnalisées pour répondre à une variété d'exigences commerciales.
  • Rentabilité : Les bases de données vectorielles offrent des coûts réduits grâce à leur gestion efficace des données de haute dimension. Contrairement à l'interrogation directe des modèles ML, qui peut être intensive en calcul et prendre du temps, les bases de données vectorielles utilisent des embeddings de modèles pour traiter le jeu de données plus efficacement.
  • Intégration ML : Les bases de données vectorielles facilitent la mémorisation des entrées précédentes par les modèles ML, permettant au ML d'alimenter la recherche sémantique, la classification et les moteurs de recommandation. Les données peuvent être identifiées en fonction de métriques de similarité plutôt que de correspondances exactes, ce qui permet à un modèle de comprendre le contexte des données.

Cinq cas d'utilisation des bases de données vectorielles

Les bases de données vectorielles sont utilisées dans toutes les industries pour une gamme variée d'applications et de cas d'utilisation. Voici quelques-uns des exemples les plus courants de bases de données vectorielles :

Modèles de langage étendus (LLM)

L'essor des LLM pour des tâches comme la récupération d'informations, parallèlement à la popularité croissante des plateformes de commerce électronique et de recommandation, exige des systèmes de gestion de bases de données vectorielles capables d'offrir des capacités d'optimisation des requêtes pour les données non structurées.

Dans les applications multimodales, les données sont intégrées et stockées dans des bases de données vectorielles, facilitant la récupération efficace des représentations vectorielles. Lorsqu'un utilisateur soumet une requête textuelle, le système utilise à la fois le LLM et la base de données vectorielle. Le LLM fournit des capacités NLP, tandis que les algorithmes de la base de données vectorielle effectuent des recherches ANN. Cette approche peut produire de meilleurs résultats par rapport à l'utilisation de l'un ou l'autre composant isolément.

Les bases de données vectorielles sont de plus en plus appliquées aux LLM via le RAG, ce qui permet une explicabilité accrue en appliquant un contexte aux sorties des LLM. Les invites des utilisateurs peuvent être augmentées par l'inclusion de contexte pour atténuer les défis fondamentaux des LLM, tels que l'hallucination ou les biais.

Reconnaissance d'images

Les bases de données vectorielles peuvent jouer un rôle clé dans la reconnaissance d'images en stockant des embeddings de haute dimension d'images générées par des modèles ML. Comme les bases de données vectorielles sont optimisées pour les tâches de recherche de similarité, elles sont idéales pour des applications telles que la détection d'objets, la reconnaissance faciale et la recherche d'images.

Les bases de données vectorielles sont affinées pour la récupération rapide de contexte par similarité. Les plateformes de commerce électronique peuvent utiliser des bases de données vectorielles pour trouver des produits ayant des attributs visuels similaires, tandis que les sites de médias sociaux peuvent suggérer des images connexes aux utilisateurs. Un exemple illustratif est Pinterest, où les bases de données vectorielles alimentent la découverte de contenu en représentant chaque image comme un vecteur de haute dimension. Lorsqu'un utilisateur épingle une image de coucher de soleil côtier, le système peut rapidement rechercher dans sa base de données vectorielle pour suggérer des images visuellement similaires, comme d'autres paysages de plage ou couchers de soleil.

Traitement du langage naturel (NLP)

Les bases de données vectorielles ont révolutionné le NLP en permettant le stockage et la récupération efficaces de représentations de mots distribuées. Des modèles comme Word2Vec, GloVe et BERT sont entraînés sur d'énormes jeux de données textuelles pour générer des embeddings de mots de haute dimension qui capturent les relations sémantiques, lesquels sont ensuite stockés dans des bases de données vectorielles pour un accès rapide.

Comme elles permettent des recherches de similarité rapides, les bases de données vectorielles permettent aux modèles de trouver des mots ou des phrases contextuellement pertinents. Cette capacité est particulièrement précieuse pour des tâches comme la recherche sémantique, la réponse aux questions, la classification de texte et l'extraction d'entités nommées. De plus, les bases de données vectorielles peuvent stocker des embeddings au niveau des phrases, capturant les contextes de mots et permettant une compréhension du langage plus nuancée.

Systèmes de recommandation et personnalisation

Une fois qu'une base de données vectorielle est entraînée à l'aide d'un modèle d'embedding, elle peut être utilisée pour générer des recommandations personnalisées. Lorsqu'un utilisateur interagit avec le système, son comportement et ses préférences sont utilisés pour générer l'embedding de l'utilisateur. Par exemple, un utilisateur peut demander à un LLM une recommandation de série télévisée et la base de données vectorielle peut suggérer des séries télévisées dont les intrigues ou les évaluations sont similaires aux préférences de l'utilisateur. Les séries télévisées dont les embeddings sont les plus proches de l'encodage de l'utilisateur sont alors recommandées en conséquence.

Détection de fraude

Les institutions financières utilisent des bases de données vectorielles pour détecter les transactions frauduleuses. Les bases de données vectorielles permettent aux entreprises de comparer les vecteurs de transactions avec des schémas de fraude connus en temps réel. L'évolutivité des bases de données vectorielles leur permet également de gérer les risques et d'acquérir de nouvelles perspectives sur le comportement des consommateurs. Ces bases de données peuvent identifier des schémas qui indiquent des activités en encodant les données de transaction sous forme de vecteurs. De plus, elles facilitent l'évaluation de la solvabilité et la segmentation des consommateurs en analysant les données pour améliorer le processus de prise de décision.

Défis courants des bases de données vectorielles

Malgré leurs nombreux avantages et cas d'utilisation, une compréhension complète des bases de données vectorielles doit également inclure leurs défis.

Nouveaux pipelines de données

Les bases de données vectorielles nécessitent des pipelines d'ingestion de données efficaces où les données brutes et non traitées provenant de diverses sources peuvent être nettoyées, traitées et intégrées à un modèle ML avant d'être stockées sous forme de vecteurs dans la base de données.

Databricks AI Search offre une solution complète à ce défi. Il automatise la génération, la gestion et l'optimisation des vecteurs, gérant la synchronisation en temps réel des données sources avec les indices vectoriels correspondants. Le logiciel gère les pannes, optimise le débit et effectue un réglage automatique de la taille des lots et une mise à l'échelle automatique sans nécessiter d'intervention manuelle.

Cette approche réduit le besoin de pipelines d'ingestion de données séparés, minimisant la « corvée des développeurs » et permettant aux équipes de se concentrer sur des tâches de niveau supérieur qui ajoutent directement de la valeur commerciale plutôt que de passer du temps à construire et à maintenir des processus complexes de préparation des données.

Sécurité et gouvernance accrues

Les bases de données vectorielles nécessitent une sécurité, des contrôles d'accès et une gouvernance des données supplémentaires, ainsi que la maintenance et la gestion nécessaires. Les organisations d'entreprise exigent des contrôles de sécurité et d'accès stricts sur les données afin que les utilisateurs ne puissent pas accéder aux modèles GenAI qui sont liés à des données confidentielles.

De nombreuses bases de données vectorielles actuelles n'ont pas de contrôles de sécurité et d'accès robustes en place ou exigent des organisations qu'elles construisent et maintiennent un ensemble distinct de politiques de sécurité. Databricks AI Search fournit une interface unifiée qui définit des politiques de données pour suivre automatiquement la lignée des données sans avoir besoin d'outils supplémentaires. Cela garantit que les LLM ne révéleront pas de données confidentielles aux utilisateurs qui ne devraient pas y avoir accès.

Niveau élevé de connaissances techniques

Comme elles offrent de puissantes capacités de recherche de similarité et de gestion de données de haute dimension, les bases de données vectorielles sont des outils essentiels pour les scientifiques des données travaillant avec des modèles d'IA et de ML. Databricks AI Search se distingue comme une base de données vectorielle sans serveur qui élimine le besoin de configuration manuelle, permettant aux scientifiques des données de se concentrer sur leur travail principal plutôt que sur la gestion de l'infrastructure.

Les principaux avantages de Databricks AI Search incluent une intégration transparente avec l'architecture lakehouse, une ingestion de données automatisée et des résultats jusqu'à cinq fois plus rapides par rapport à d'autres bases de données vectorielles populaires. Il est également compatible avec les outils de gouvernance des données et de sécurité existants via Unity Catalog, assurant la protection et la conformité des données.

Databricks AI Search offre une flexibilité pour les utilisateurs novices et avancés, avec une mise à l'échelle automatisée pour l'ingestion et l'interrogation des données, ainsi que des API « plug-and-replace » pour ceux qui préfèrent un contrôle accru sur leurs pipelines. Cette combinaison de facilité d'utilisation et de performances puissantes simplifie la construction d'une base de données vectorielle pour les scientifiques des données à tous les niveaux d'expertise.

Bases de données vectorielles vs. bases de données graphiques

Les bases de données vectorielles organisent les données sous forme de points dans un espace vectoriel multidimensionnel. Chaque point représente une donnée, et son emplacement reflète ses caractéristiques par rapport à d'autres données. Cette structure de base de données vectorielle est bien adaptée à de nombreuses applications GenAI, car les embeddings vectoriels sont générés par des LLM et les données peuvent être recherchées et récupérées facilement.

En revanche, les bases de données graphiques organisent les données en les stockant dans une structure de graphe. Les entités sont représentées comme des nœuds sur un graphe, tandis que les connexions entre ces points de données sont représentées comme des arêtes. La structure de graphe permet aux éléments de données du magasin d'être une collection de nœuds et d'arêtes, les arêtes représentant les relations entre les nœuds. La structure interconnectée des bases de données graphiques les rend bien adaptées aux scénarios où les connexions entre les points de données sont aussi importantes que les données elles-mêmes.

Comparaison : Base de données vectorielle vs. index vectoriel vs. SGBDR traditionnel vs. base de données graphique

Utilisez ce tableau pour comparer rapidement comment chaque type de base de données stocke les données, gère les requêtes et s'adapte à différentes charges de travail.

Base de données vectorielleIndex vectorielSGBDR traditionnelBD de graphes
Modèle de donnéesStreaming/continu (secondes à minutes)Analyse proactive, basée sur l'IAAnalyse proactive, basée sur l'IAAnalyse proactive, basée sur l'IA
Types de requêtesAnalystes, dirigeantsÉquipes d'opérations, applications, systèmes automatisésÉquipes d'opérations, applications, systèmes automatisésÉquipes d'opérations, applications, systèmes automatisés
Latence typiqueExploration ad hoc, rapports planifiésMétriques prédéfinies, alertes, déclencheurs automatisésMétriques prédéfinies, alertes, déclencheurs automatisésMétriques prédéfinies, alertes, déclencheurs automatisés
ÉvolutivitéInterprétation humaine → décisionDéclencheurs automatisés, recommandations intégréesDéclencheurs automatisés, recommandations intégréesDéclencheurs automatisés, recommandations intégrées
FiltrageEntrepôt de données, pipelines ETLPlateformes de streaming, traitement d'événementsPlateformes de streaming, traitement d'événementsPlateformes de streaming, traitement d'événements
Garanties transactionnellesCohérence éventuelle typiqueAucune, couche de recherche en lecture seuleACID completACID (varie selon l'outil)
Gouvernance / sécuritéEn amélioration, varie selon le fournisseurMinimale, dépend du système hôteRBAC mature, journaux d'audit, chiffrementModérée, varie selon le fournisseur
Outils courantsPinecone, Weaviate, QdrantFAISS, HNSW lib, ScaNNPostgreSQL, MySQL, SQL ServerNeo4j, Amazon Neptune, ArangoDB

Quelle est la différence entre un index vectoriel et une base de données vectorielle ?

Un index vectoriel et une base de données vectorielle jouent des rôles distincts mais complémentaires dans la gestion des données de haute dimension.

Index vectoriel : Un index vectoriel est une structure de données spécialisée conçue pour faciliter les recherches de similarité rapides parmi les plongements vectoriels. Il améliore considérablement la vitesse de recherche en organisant les vecteurs de manière à permettre une récupération efficace. Des exemples d'indices vectoriels incluent Facebook AI Similarity Search (FAISS), HNSW et LSH. Ces indices peuvent être utilisés comme processus algorithmiques autonomes ou intégrés dans des systèmes plus vastes pour optimiser les opérations de recherche.
Base de données vectorielle : Une base de données vectorielle est une solution complète de gestion de données qui non seulement intègre l'indexation vectorielle, mais offre également des fonctionnalités supplémentaires telles que le stockage de données ; les opérations de création, lecture, mise à jour et suppression (CRUD) ; le filtrage de métadonnées et la mise à l'échelle horizontale. Elle est conçue pour gérer et interroger efficacement les plongements vectoriels, prenant en charge des opérations complexes et garantissant l'intégrité et la sécurité des données.

Comment choisir une base de données vectorielle

Le choix de la bonne base de données vectorielle dépend des exigences spécifiques de votre charge de travail, de la taille prévue de la croissance de vos données et de la manière dont la base de données s'intègre à votre pile technologique existante. Une solution qui fonctionne parfaitement pour un petit prototype peut avoir du mal sous un trafic à l'échelle de l'entreprise, tandis qu'une plateforme riche en fonctionnalités pourrait être trop complexe pour des cas d'utilisation plus simples. Gardez ces critères à l'esprit pour choisir une base de données vectorielle qui évolue avec vos besoins et s'intègre bien aux systèmes existants.

  • Performance & latence : Comprenez le niveau de précision de recherche (rappel) et le temps de réponse des requêtes acceptables pour votre cas d'utilisation
  • Prise en charge de la dimensionnalité des plongements : Assurez-vous que la base de données peut gérer la taille de sortie de votre modèle d'IA spécifique, qu'il s'agisse de 768, 1536 ou même plus
  • Types d'index pris en charge : Confirmez que la base de données offre les bons algorithmes d'indexation pour vos données, tels que HNSW, IVF ou LSH, car ceux-ci affectent directement les compromis entre vitesse et précision
  • Recherche hybride : Recherchez la capacité à combiner la recherche par mots-clés traditionnelle (BM25) avec la recherche vectorielle sémantique dans une seule requête
  • Recherche exacte + repli ANN : Vérifiez si vous pouvez basculer entre la recherche approximative et exacte du plus proche voisin, en fonction de la précision dont vous avez besoin
  • Filtrage des métadonnées : Assurez-vous de pouvoir affiner les résultats par des champs structurés comme la date ou la catégorie, en plus de la similarité vectorielle
  • Prise en charge CRUD et ACID : Évaluez si la base de données prend en charge toutes les opérations de données et les garanties transactionnelles, ce qui est particulièrement important si vos données changent fréquemment
  • RBAC/ABAC et multitenance : Vérifiez que la base de données offre des contrôles d'accès basés sur les rôles ou les attributs et peut maintenir les données des différentes équipes ou clients correctement isolées
  • Observabilité et évaluation : Recherchez des outils de surveillance, de journalisation et d'évaluation intégrés pour mesurer la qualité de la recherche au fil du temps, afin de pouvoir détecter et corriger les problèmes de performance rapidement
  • Accélération matérielle : Déterminez si l'indexation et la recherche accélérées par GPU sont prises en charge et si votre infrastructure actuelle peut en tirer parti

Pièges courants et bonnes pratiques

  • Dérive des plongements → Établissez un calendrier de ré-encodage régulier afin que, à mesure que vos données sources ou modèles sous-jacents évoluent, vos vecteurs restent à jour et reflètent précisément ce que vous recherchez
  • Plongements non versionnés → Suivez quelle version de modèle a généré quels vecteurs afin de pouvoir reproduire les résultats de manière fiable, comparer les performances au fil du temps et revenir en arrière si quelque chose ne va pas.
  • Index obsolètes → Définissez des politiques claires de rafraîchissement d'index dès le départ, en fixant la fréquence de reconstruction et de mise à jour en fonction de la fréquence de modification de vos données
  • Mauvais découpage pour RAG → Testez une gamme de tailles de blocs (256 à 1024 jetons) avec un chevauchement de 10 à 20 % et évaluez la qualité de la récupération pour chaque paramètre
  • Pollution par contenu quasi-dupliqué → Effectuez une déduplication avant l'indexation pour supprimer le contenu redondant ou quasi-identique
  • Absence de métriques d'évaluation → Évaluez régulièrement à l'aide de Recall@k, nDCG et MRR — en visant des repères comme Recall@10 supérieur à 0,85 pour la plupart des charges de travail de production — afin d'avoir un signal clair lorsque la qualité de la recherche diminue
  • Exposition des PII dans les plongements → Masquez ou excluez les données personnelles sensibles avant qu'elles n'atteignent l'étape de plongement et appliquez des contrôles d'accès granulaires sur le magasin vectoriel pour limiter qui peut interroger quoi

Questions-réponses

Base de données vectorielle vs. index vectoriel — quelle est la différence ?

Ces deux termes sont souvent utilisés de manière interchangeable, mais ils désignent des couches différentes du système.

Portée : Un index vectoriel est une structure de données unique — comme HNSW ou IVF — optimisée pour accélérer la recherche du plus proche voisin. En revanche, une base de données vectorielle est un système complet construit autour d'un ou plusieurs de ces index, avec des capacités de stockage et de requête.
Prise en charge CRUD : Les index vectoriels ont souvent un support limité ou inefficace pour les mises à jour et les suppressions. Les bases de données vectorielles offrent des opérations robustes de création, lecture, mise à jour et suppression au-dessus de la couche d'index.
Mise à l'échelle : Un index autonome réside en mémoire et ne gère pas la distribution ou la réplication. Une base de données vectorielle, cependant, gère la mise à l'échelle horizontale, le partitionnement et la persistance à travers l'infrastructure.
Autonome vs. intégré : Les index vectoriels peuvent être intégrés directement dans le code de l'application (par exemple, FAISS). Les bases de données vectorielles sont des services avec des API, des contrôles d'accès et des outils de gestion intégrés.

Une base de données vectorielle est-elle requise pour RAG ?

Une base de données vectorielle est un choix courant pour les pipelines RAG de production, mais elle n'est pas toujours nécessaire. La bonne réponse dépend de votre échelle et de votre complexité.

Pour le RAG de production à grande échelle, une base de données vectorielle devient précieuse lorsque vous avez besoin d'un stockage persistant, de filtrage de métadonnées, de contrôles d'accès et de la capacité à mettre à jour votre ensemble de données au fil du temps
Les environnements multi-locataires ou réglementés justifient presque toujours une base de données vectorielle, car ils nécessitent une isolation des locataires, une journalisation d'audit et des contrôles d'accès granulaires que les index autonomes ne fournissent pas
Lorsque votre ensemble de données est statique et petit, le surcoût d'une base de données vectorielle peut l'emporter sur les avantages — un index léger chargé au démarrage peut gérer la récupération tout aussi bien
Pour le prototypage, un index en mémoire comme FAISS ou un simple magasin basé sur des fichiers est souvent suffisant et beaucoup plus facile à configurer qu'une base de données vectorielle complète

Comment fonctionne la recherche hybride (BM25 + vectorielle) ?

La recherche hybride combine deux signaux de récupération fondamentalement différents — la correspondance par mots-clés et la similarité sémantique — en un seul résultat de requête.

  • BM25 gère les correspondances exactes et basées sur des mots-clés, en évaluant les documents en fonction de la fréquence des termes et de la pertinence, ce qui le rend fiable pour les requêtes précises comme les noms de produits, les codes ou les noms propres
  • La recherche vectorielle gère les correspondances sémantiques, en récupérant les résultats basés sur le sens et le contexte même lorsque la requête ne partage pas de mots exacts avec le document
  • La fusion des scores combine les deux signaux en une seule liste classée — le Reciprocal Rank Fusion (RRF) est une approche courante qui combine les classements de chaque méthode sans nécessiter une normalisation minutieuse des scores
  • La recherche hybride améliore à la fois la précision et le rappel et est particulièrement précieuse dans les applications d'entreprise ou spécifiques à un domaine où les utilisateurs mélangent des requêtes techniques précises avec des recherches conceptuelles plus larges

Quand une base de données vectorielle est-elle inutile ?

Les bases de données vectorielles ajoutent une réelle surcharge opérationnelle, et il existe plusieurs scénarios où cette complexité n'est tout simplement pas justifiée.

  • Les petits ensembles de données qui tiennent en mémoire sont généralement mieux servis par un index léger en mémoire comme FAISS ou Annoy, qui peuvent être chargés directement dans votre application sans déployer de service séparé
  • Les cas d'utilisation où la recherche exacte par mot-clé est suffisante — comme la recherche de documents internes par titre ou ID — ne bénéficient pas de la recherche sémantique, faisant d'un index de recherche ou d'une base de données traditionnelle un choix plus simple et plus fiable
  • Lorsque vous utilisez déjà PostgreSQL, l'extension pgvector ajoute la recherche de similarité vectorielle directement à votre base de données existante, éliminant le besoin d'un magasin de vecteurs séparé et réduisant la complexité de l'infrastructure
  • Les applications à faible trafic ou à utilisateur unique ont rarement besoin des fonctionnalités de mise à l'échelle, de réplication ou de multitenance qui justifient une base de données vectorielle dédiée, de sorte que le coût opérationnel l'emporte sur le bénéfice
  • Si votre ensemble de données est statique ou change rarement, reconstruire ou recharger un index périodiquement peut être plus simple que de maintenir une base de données vectorielle entièrement gérée

Tendances futures pour les bases de données vectorielles

L'essor récent des LLM et des applications GenAI plus généralement a contribué à une adoption concomitante des bases de données vectorielles. À mesure que les applications d'IA continuent de mûrir, le développement de nouveaux produits et l'évolution des besoins des utilisateurs détermineront l'orientation des futures tendances en matière de bases de données vectorielles. Cependant, il existe des orientations généralement attendues pour cette technologie.

Intégration accrue avec les modèles ML : La relation entre les bases de données vectorielles et les modèles ML fait l'objet de recherches accrues. Ces efforts visent à réduire la taille et la dimensionnalité des vecteurs, minimisant ainsi les besoins de stockage pour les grands ensembles de données et augmentant l'efficacité computationnelle.
Personnalisation RAG : RAG est une approche utilisée pour améliorer le contexte fourni à un LLM dans les cas d'utilisation GenAI, y compris les applications de chatbot et de questions-réponses générales. La base de données vectorielle est utilisée pour améliorer l'invite passée au LLM en ajoutant un contexte supplémentaire à côté de la requête.
Recherche multi-vectorielle : Des recherches supplémentaires sont attendues sur l'amélioration des capacités de recherche multi-vectorielle, ce qui est important pour des applications telles que la reconnaissance faciale. Les techniques actuelles reposent souvent sur la combinaison de scores individuels, mais cette approche peut être coûteuse en calcul, car elle augmente le nombre de calculs de distance requis.
Recherche hybride : L'évolution des systèmes de recherche a conduit à une adoption croissante d'approches hybrides qui combinent des méthodes traditionnelles basées sur des mots-clés avec des techniques modernes de récupération de vecteurs

Comment créer une base de données vectorielle avec Databricks

Databricks AI Search est la solution de base de données vectorielle intégrée de Databricks pour la plateforme Data Intelligence. Ce système entièrement intégré élimine le besoin de pipelines d'ingestion de données séparés et applique des contrôles de sécurité et des mécanismes de gouvernance des données, assurant une protection cohérente de tous les actifs de données.

Databricks AI Search offre une expérience haute performance et prête à l'emploi, permettant aux LLM de récupérer rapidement des résultats pertinents avec une latence minimale. Les utilisateurs bénéficient d'une mise à l'échelle et d'une optimisation automatiques, éliminant le besoin de réglage manuel de la base de données. Cette intégration simplifie le processus de stockage, de gestion et d'interrogation des embeddings vectoriels, facilitant ainsi la mise en œuvre d'applications d'IA par les organisations, telles que les systèmes de recommandation et les recherches sémantiques, tout en maintenant les normes de sécurité et de gouvernance des données.

Où puis-je trouver plus d'informations sur les bases de données vectorielles et la recherche vectorielle ?

De nombreuses ressources sont disponibles pour trouver plus d'informations sur les bases de données vectorielles et la recherche vectorielle, notamment :

Blogs

eBooks

Démos

Contactez Databricks pour planifier une démo et discuter de vos LLM et bases de données vectorielles.

(Cet article de blog a été traduit à l'aide d'outils basés sur l'intelligence artificielle) Article original

Recevez les derniers articles dans votre boîte mail

Abonnez-vous à notre blog et recevez les derniers articles directement dans votre boîte mail.