Revenir au contenu principal

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

Base de données spécialisée pour le stockage et l'interrogation d'embeddings vectoriels de haute dimension, permettant une recherche de similarité efficace et alimentant des applications d'AI comme le RAG

par Équipe Databricks

  • Une base de données vectorielle stocke les informations sous forme de vecteurs de haute dimension afin que les applications puissent effectuer des recherches par sens et par similarité dans les textes, les images et d'autres données non structurées, plutôt que de se limiter à des mots-clés exacts.
  • Les organisations utilisent des bases de données vectorielles pour la recherche sémantique, les recommandations, les questions-réponses et d'autres cas d'usage d'AI à mesure que les données non structurées augmentent, car elles prennent en charge la recherche par similarité sur de grands ensembles de données.
  • Databricks AI Search fournit une base de données vectorielle gérée qui s'intègre au lakehouse, automatise la génération et l'ingestion de vecteurs, et ajoute de la gouvernance et de la sécurité pour les charges de travail d'AI en production.

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

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 grande dimension. Le terme provient des vecteurs, qui sont des représentations mathématiques de caractéristiques ou d'attributs contenus dans les données. Contrairement aux bases de données traditionnelles, qui sont bien adaptées au traitement des données structurées organisées en lignes et en colonnes, la structure des bases de données vectorielles 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 multidimensionnelles, 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), 80 % des nouvelles données créées dans le monde d'ici 2025 seront 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 dans des applications de divers secteurs, du commerce électronique à la santé. Ces applications fonctionnent en transformant les données non structurées en vecteurs d'embedding. Une fois les données « vectorisées », des tâches telles que les recherches, les recommandations et les analyses peuvent être mises en œuvre via la recherche AI basée sur la similarité. La gestion des données vectorielles s'effectue dans des bases de données vectorielles.

Savoir quand utiliser des bases de données vectorielles dépend des autres processus et technologies que vous utilisez. Elles constituent un composant clé pour alimenter de nombreux systèmes AI, et certaines applications de modèles de langage de grande taille (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 de domaine. Par exemple, elles jouent un rôle crucial dans la génération augmentée par récupération (RAG), une approche dans laquelle la base de données vectorielle est utilisée pour améliorer le prompt transmis 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 les 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), notamment l'analyse sémantique et de sentiment, ou pour l'entraînement de modèles de machine learning (ML).

Qu'est-ce qu'un vecteur ?

Un vecteur est un tableau numérique multidimensionnel qui exprime l'emplacement 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 proches se regroupent. Par exemple, le point représentant « pomme » sera positionné plus près de « poire » que de « voiture ». Cet agencement spatial reflète les relations sémantiques entre les mots, la proximité indiquant une similarité de sens.

Qu'est-ce que l'embedding vectoriel ?

Un vecteur est généré en appliquant une fonction d'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 groupe représentatif et l'intègre dans un espace vectoriel. Les vecteurs sont intégrés sous forme de listes de nombres, ce qui permet aux modèles ML d'effectuer plus facilement des opérations sur les données. En fait, les performances des méthodes ML dépendent 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, ce qui permet au modèle d'effectuer des opérations efficacement.

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 embeddings vectoriels de grande dimension. Lorsqu'un utilisateur saisit une requête ou une demande dans la base de données vectorielle, celle-ci commence la séquence de processus suivante :

  1. Vectorisation : Cette première étape consiste à générer des embeddings à partir de contenus multimodaux, qui peuvent 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 (ou des vecteurs) similaires 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 le Hierarchical Navigable Small World (HNSW), sont appliqués aux données pour mapper les vecteurs vers de nouvelles structures de données. Ces structures permettent des recherches de similarité ou de distance plus rapides, telles que les recherches de plus proches voisins entre vecteurs. Ce processus d'indexation est essentiel pour les performances 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 l'étape finale, le vecteur de la requête initiale 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 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 de nombreux avantages :

  • Vitesse et performances élevées : Les bases de données vectorielles peuvent localiser rapidement des données similaires à l'aide de 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 se limitent à des correspondances exactes ou à des 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 d'effectuer des recherches plus nuancées et sensibles au contexte, au-delà de la simple correspondance de mots-clés.
  • Évolutivité : Alors que les bases de données traditionnelles peuvent être confrontées à des goulots d'étranglement en matière d'évolutivité, à des problèmes de latence ou à des conflits de concurrence lors du traitement de volumes massifs de données, les bases de données vectorielles sont conçues pour gérer d'immenses quantités de données. Les bases de données vectorielles améliorent l'évolutivité en utilisant des techniques telles que le sharding, le partitionnement, la mise en cache et la réplication pour répartir 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. Grâce à leur capacité à gérer de multiples cas d'usage, allant de la recherche sémantique aux applications d'AI conversationnelle, les bases de données vectorielles peuvent être personnalisées pour répondre à diverses exigences professionnelles.
  • Rentabilité : Les bases de données vectorielles offrent des coûts réduits grâce à leur gestion efficace des données de grande dimension. Contrairement à l'interrogation directe des modèles ML, qui peut être gourmande en ressources de calcul et chronophage, les bases de données vectorielles utilisent des embeddings de modèles pour traiter le jeu de données plus efficacement.
  • Intégration avec le ML : Les bases de données vectorielles permettent aux modèles ML de mémoriser plus facilement les entrées précédentes, ce qui permet au ML d'alimenter les moteurs de recherche sémantique, de classification et de recommandation. Les données peuvent être identifiées sur la base 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'usage des bases de données vectorielles

Les bases de données vectorielles sont utilisées dans tous les secteurs pour une grande variété d'applications et de cas d'usage. Voici quelques-uns des exemples les plus courants de bases de données vectorielles :

Modèles de langage de grande taille (LLM)

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

Dans les applications multimodales, les données sont intégrées sous forme d'embeddings et stockées dans des bases de données vectorielles, ce qui facilite 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 de NLP, tandis que les algorithmes de la base de données vectorielle effectuent des recherches de plus proches voisins approximatifs. Cette approche peut produire de meilleurs résultats que l'utilisation de l'un ou l'autre composant de manière isolée.

Les bases de données vectorielles sont de plus en plus appliquées aux LLM via la RAG, ce qui permet une meilleure explicabilité en appliquant un contexte aux sorties du LLM. Les prompts des utilisateurs peuvent être enrichis par l'inclusion de contexte afin d'atténuer les défis majeurs des LLM, tels que les hallucinations 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 grande 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 optimisées pour la récupération rapide de contexte par similarité. Les plateformes d'e-commerce peuvent utiliser les bases de données vectorielles pour trouver des produits ayant des attributs visuels similaires, tandis que les réseaux sociaux peuvent suggérer des images connexes aux utilisateurs. Pinterest en est un exemple illustratif : les bases de données vectorielles y alimentent la découverte de contenu en représentant chaque image sous la forme d'un vecteur à haute dimension. Lorsqu'un utilisateur épingle l'image d'un coucher de soleil sur la côte, le système peut rapidement effectuer une recherche 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 un stockage et une récupération efficaces des représentations de mots distribuées. Des modèles comme Word2Vec, GloVe et BERT sont entraînés sur d'immenses ensembles de données textuelles pour générer des plongements de mots (embeddings) à 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 telles que la recherche sémantique, la réponse aux questions, la classification de textes et l'extraction d'entités nommées. De plus, les bases de données vectorielles peuvent stocker des embeddings au niveau de la phrase, capturant le contexte des mots et permettant une compréhension plus nuancée du langage.

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. Por 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 l'intrigue ou les notes 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 la 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 en temps réel les vecteurs de transaction avec des modèles de fraude connus. L'évolutivité des bases de données vectorielles leur permet également de gérer les risques et d'obtenir de nouvelles informations sur le comportement des consommateurs. Ces bases de données peuvent identifier des modèles indiquant des activités suspectes 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'usage, 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 converties en embeddings avec un modèle de ML avant d'être stockées sous forme de vecteurs dans la base de données.

Databricks AI Search répond à ce défi en proposant une solution complète. Il automatise la génération, la gestion et l'optimisation des vecteurs, en 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 ajustement automatique de la taille des lots et une mise à l'échelle automatique sans intervention manuelle.

Cette approche réduit le besoin de pipelines d'ingestion de données distincts, minimisant le « travail fastidieux des développeurs » et permettant aux équipes de se concentrer sur des tâches de plus haut niveau qui apportent directement de la valeur ajoutée à l'entreprise, plutôt que de passer du temps à concevoir et maintenir des processus complexes de préparation des données.

Sécurité et gouvernance renforcées

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 grandes entreprises exigent des contrôles d'accès et de sécurité stricts sur les données afin que les utilisateurs ne puissent pas accéder aux modèles de GenAI qui sont liés à des données confidentielles.

De nombreuses bases de données vectorielles actuelles ne disposent pas de contrôles d'accès et de sécurité robustes, ou obligent les entreprises à créer et à maintenir 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 traçabilité des données sans outils supplémentaires. Cela garantit que les LLM n'exposeront pas de données confidentielles aux utilisateurs qui ne devraient pas y avoir accès.

Niveau élevé de connaissances techniques

Offrant de puissantes capacités pour les recherches de similarité et la gestion de données à haute dimension, les bases de données vectorielles sont des outils essentiels pour les data scientists travaillant avec des modèles d'AI et de ML. Databricks AI Search se distingue comme une base de données vectorielle serverless qui élimine le besoin de configuration manuelle, permettant aux data scientists de se concentrer sur leur cœur de métier 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 automatisée des données 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 existants de gouvernance des données et de sécurité via Unity Catalog, garantissant la protection des données et la conformité.

Databricks AI Search offre de la flexibilité aux utilisateurs débutants comme avancés, avec une mise à l'échelle automatique pour l'ingestion de données et les requêtes, ainsi que des API plug-and-replace pour ceux qui préfèrent un meilleur contrôle de leurs pipelines. Cette combinaison de facilité d'utilisation et de performances puissantes simplifie la création d'une base de données vectorielle pour les data scientists de tous niveaux d'expertise.

Rapport

Le guide pratique de l'IA agentique pour l'entreprise

Bases de données vectorielles vs bases de données de graphes

Les bases de données vectorielles organisent les données sous forme de points dans un espace vectoriel multidimensionnel. Chaque point représente un élément de données, et son emplacement reflète ses caractéristiques par rapport aux autres éléments de données. Cette structure de base de données vectorielle est bien adaptée à de nombreuses applications de 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 de graphes organisent les données en les stockant dans une structure de graphe. Les entités sont représentées sous forme de nœuds sur un graphe, tandis que les connexions entre ces points de données sont représentées par des arêtes. La structure de graphe permet aux éléments de données stockés 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 de graphes les rend particulièrement adaptées aux scénarios où les connexions entre les points de données sont aussi importantes que les données elles-mêmes.

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 à 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 embeddings vectoriels. Il améliore considérablement la vitesse de recherche en organisant les vecteurs de manière à permettre une récupération efficace. Parmi les exemples d'index vectoriels, on peut citer Facebook AI Similarity Search (FAISS), HNSW et le hachage sensible à la localité (LSH). Ces index peuvent être utilisés comme des processus algorithmiques autonomes ou intégrés dans des systèmes plus larges pour optimiser les opérations de recherche.
  • Base de données vectorielle : D'autre part, une base de données vectorielle est une solution complète de gestion de données qui intègre non seulement l'indexation vectorielle, mais fournit é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 des métadonnées et la mise à l'échelle horizontale. Elle est conçue pour gérer et interroger efficacement les embeddings vectoriels, en prenant en charge des opérations complexes et en garantissant l'intégrité et la sécurité des données.

Tendances futures pour les bases de données vectorielles

L'essor récent des LLM et des applications de GenAI de manière plus générale a contribué à une adoption concomitante des bases de données vectorielles. À mesure que les applications d'AI continuent de mûrir, le développement de nouveaux produits et l'évolution des besoins des utilisateurs décideront de l'orientation des futures tendances des bases de données vectorielles — cependant, certaines directions sont généralement attendues pour cette technologie.

  • Intégration accrue avec les modèles de ML : La relation entre les bases de données vectorielles et les modèles de ML fait l'objet de recherches de plus en plus approfondies. 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é de calcul.
  • Personnalisation du RAG : Le RAG est une approche utilisée pour améliorer le contexte fourni à un LLM dans les cas d'usage de GenAI, y compris les chatbots et les applications générales de questions-réponses. La base de données vectorielle est utilisée pour enrichir le prompt transmis au LLM en ajoutant un contexte supplémentaire à côté de la requête.
  • Recherche multi-vectorielle : Des recherches supplémentaires sont attendues pour améliorer les 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 termes de 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 les méthodes traditionnelles basées sur des mots-clés avec les techniques modernes de récupération vectorielle.

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 Data Intelligence Platform. Ce système entièrement intégré élimine le besoin de pipelines d'ingestion de données distincts et applique des contrôles de sécurité et des mécanismes de gouvernance des données, garantissant une protection cohérente de tous les actifs de données.

Databricks AI Search offre une expérience clé en main et hautement performante, 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 ainsi le besoin de réglage manuel de la base de données. Cette intégration simplifie le processus de stockage, de gestion et de requête des embeddings vectoriels, facilitant ainsi la mise en œuvre par les entreprises d'applications d'AI, 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 obtenir plus d'informations sur les bases de données vectorielles et la recherche vectorielle, notamment :

Blogs

eBooks

Demos

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.