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
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é.
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).
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.
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.
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 :
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.
Les bases de données vectorielles offrent de nombreux avantages :
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 :
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
De nombreuses ressources sont disponibles pour obtenir plus d'informations sur les bases de données vectorielles et la recherche vectorielle, notamment :
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
Abonnez-vous à notre blog et recevez les derniers articles directement dans votre boîte mail.