Base de données vectorielle
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 à haute dimension. Elle tire son nom 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, conçues pour gérer des données structurées et organisées en lignes et en colonnes, une base de données vectorielle organise les informations sous forme de représentations vectorielles comportant un nombre fixe de dimensions, regroupées en fonction de leur similarité.
Chaque vecteur d'une base de données vectorielle est constitué 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. Elle offre d'excellentes performances lorsqu'il s'agit d'effectuer des recherches et des analyses basées sur la similarité.
Poursuivez votre exploration
Dans quelles conditions utilise-t-on une base de données vectorielle ?
Selon l'International Data Corporation (IDC), 80 % des données créées dans le monde d'ici 2025 seront des données non structurées : du texte, des images et des vidéos, principalement. Les modèles basés sur l'apprentissage, comme les réseaux neuronaux profonds, sont de plus en plus utilisés pour exploiter ces données non structurées dans des applications diverses allant du commerce en ligne à la santé. Elles consistent à transformer les données non structurées en vecteurs d'incorporation. Une fois que les données ont été « vectorisées », il devient possible de réaliser des tâches de recherche, de formulation de recommandations et d'analyse via une recherche vectorielle basée sur la similarité. Les données vectorielles sont gérées dans des bases de données vectorielles.
L'intérêt des bases de données vectorielles dépend des processus et technologies que vous utilisez actuellement. Elles sont indispensables pour alimenter de nombreux systèmes d'IA, et certaines applications de grands modèles de langage (LLM) les utilisent pour accélérer les recherches de similarité ou pour apporter du contexte ou des connaissances spécialisées. Elles jouent notamment un rôle crucial dans la génération augmentée par récupération (RAG) : la base de données vectorielle est alors utilisée pour enrichir le prompt transmis au LLM en ajoutant un complément de contexte à la requête.
Les bases de données vectorielles permettent également d'utiliser des techniques de recherche hybrides, qui associent la recherche traditionnelle basée sur des mots-clés à 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 aussi servir dans des tâches de traitement du langage naturel (NLP) comme l'analyse sémantique et l'analyse de sentiment, ou dans l'entraînement des moteurs de machine learning (ML).
Qu'est-ce qu'un vecteur ?
Un vecteur est un tableau numérique à haute dimension qui exprime la position d'un point particulier sur plusieurs dimensions. On peut voir un espace vectoriel de mots comme un nuage en trois dimensions, dans lequel les mots sont représentés par des points. Dans cet espace, les mots dont la signification est liée se rapprochent les uns des autres. Par exemple, le point représentant « pomme » sera positionné plus près de « poire » que de « voiture » Cette disposition spatiale reflète les relations sémantiques entre les mots, et la proximité traduit une similarité de sens.
Qu'est-ce que l'incorporation vectorielle ?
On génère un vecteur en appliquant une fonction d'incorporation aux données brutes pour les transformer en représentation. Ces représentations sont appelées « incorporations », car un modèle ML incorpore un groupement représentatif dans un espace vectoriel. Les vecteurs sont incorporés sous forme de listes de nombres, ce qui permet aux modèles ML d'effectuer des opérations avec les données. En réalité, la performance des méthodes de ML dépend pour l'essentiel de la qualité des représentations vectorielles. Il est possible de réduire un paragraphe entier de texte ou un groupe de nombres à un vecteur, et c'est cela qui permet au modèle d'effectuer des opérations avec efficacité.
Comment fonctionnent les bases de données vectorielles ?
Les bases de données vectorielles sont conçues pour stocker, indexer et interroger les données au sein d'incorporations vectorielles à haute dimension. Lorsqu'un utilisateur soumet une requête à la base de données vectorielle, elle lance une séquence de processus :
- Vectorisation : la première étape consiste à générer des incorporations à partir d'un contenu multimodal, qui peut inclure du texte, des images, de l'audio ou de la vidéo. Ce processus détermine les relations sémantiques dans les données. Par exemple, dans des données textuelles, il veille à ce que les mots ayant des significations (ou vecteurs) similaires soient placés à proximité les uns des autres dans l'espace vectoriel.
- Indexation vectorielle : c'est à l'étape suivante que les bases de données vectorielles se distinguent nettement des bases de données traditionnelles. Des algorithmes de ML, comme la quantification de produit ou HNSW, le « petit monde navigable hiérarchique », sont appliqués aux données pour associer les vecteurs aux nouvelles structures de données. Ces structures accélèrent les recherches de similarité ou de distance, et notamment 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 de récupérer rapidement des vecteurs similaires.
- Exécution de la requête : au cours de la dernière étape, 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 présentant les relations les plus étroites. Il extrait ainsi les informations les plus pertinentes sur la base de la similarité sémantique plutôt qu'en cherchant des correspondances exactes de mots-clés.
Grâce à ces processus, les bases de données vectorielles peuvent réaliser des recherches sémantiques et récupérer des données sur des critères de similarité. Elles sont donc idéales pour 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 performance : les bases de données vectorielles localisent rapidement des données similaires en utilisant des mesures de distance ou de similarité vectorielle. Ce processus joue un rôle central dans 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 des aspects sémantiques et contextuels. En réalisant des recherches plus nuancées et sensibles au contexte, la récupération de données est bien plus performante qu'avec une simple recherche de mots-clés.
- Évolutivité : si l'on rencontre régulièrement des goulets d'étranglement, des problèmes de latence ou des conflits de concurrence lorsque les bases de données traditionnelles doivent traiter de grands volumes de données, les bases de données vectorielles sont pensées pour ces quantités. Leur évolutivité est maximisée par des techniques comme le sharding, la partition, la mise en cache et la réplication, qui répartissent la charge de travail de façon optimale 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 dans une optique de polyvalence. Capables de prendre en charge une multiplicité de cas d'utilisation, 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é de besoins commerciaux.
- Rentabilité : les bases de données vectorielles affichent des coûts plus bas grâce à la gestion efficace des données de haute dimension. Alors que l'interrogation directe des modèles ML consomme beaucoup de ressources de calcul et prend parfois beaucoup de temps, les bases de données vectorielles utilisent des incorporations de modèles pour traiter plus efficacement les datasets.
- Intégration avec le ML : avec les bases de données vectorielles, les modèles ML récupèrent beaucoup plus facilement les entrées précédentes, ce qui est particulièrement utile pour la recherche sémantique, la classification et les moteurs de recommandation. Les données peuvent être identifiées sur la base d'indicateurs de similarité plutôt que par des correspondances exactes, ce qui permet à un modèle de comprendre leur contexte.
Cinq cas d'utilisation des bases de données vectorielles
Les bases de données vectorielles sont mises à profit par de nombreux secteurs qui en font des usages diversifiés. Voici quelques exemples courants de bases de données vectorielles :
Grands modèles de langage (LLM)
Face à l'utilisation croissante des LLM pour la récupération d'informations et à la popularité croissante du commerce en ligne et des plateformes de recommandation, il faut des systèmes de gestion de bases de données vectorielles capables d'optimiser les requêtes portant sur des données non structurées.
Dans les applications multimodales, les données sont incorporées et stockées dans des bases de données vectorielles pour accélérer la récupération des représentations. 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 assure le traitement du langage naturel, tandis que les algorithmes de la base de données vectorielle effectuent des recherches des plus proches voisins. Cette approche combinée peut délivrer de meilleurs résultats que l'utilisation indépendante de chaque composant.
Les bases de données vectorielles sont de plus en plus associées aux LLMs via la RAG, qui rend les résultats plus explicables en apportant du contexte aux sorties des LLM. Les prompts des utilisateurs peuvent être enrichis par des éléments de contexte pour atténuer les problèmes fondamentaux des LLM que sont les hallucinations et les biais.
Reconnaissance d'image
Les bases de données vectorielles peuvent jouer un rôle clé dans la reconnaissance d'images en stockant des incorporations à 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 recherches de similarité, elles conviennent parfaitement aux applications de détection d'objets, de reconnaissance faciale et de recherche d'images.
Les bases de données vectorielles sont affinées pour récupérer rapidement du contexte par similarité. Les plateformes de commerce en ligne peuvent utiliser des bases de données vectorielles pour trouver des produits partageant certaines caractéristiques visuelles, tandis que les sites de réseaux sociaux peuvent suggérer des images à leurs utilisateurs. Pinterest en est un exemple typique : des 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 l'image d'un coucher de soleil en bord de mer, le système peut rapidement rechercher dans sa base de données vectorielle des images similaires et suggérer d'autres paysages de plage ou des couchers de soleil.
Traitement du langage naturel (NLP)
Les bases de données vectorielles ont révolutionné le NLP en facilitant le stockage et la récupération des représentations de mots distribués. Des modèles comme Word2Vec, GloVe et BERT sont entraînés sur de vastes corpus de texte pour générer des incorporations de mots à haute dimension qui capturent les relations sémantiques. Elles sont ensuite stockées dans des bases de données vectorielles pour être accessibles rapidement.
Grâce à la rapidité des recherches de similarité, les bases de données vectorielles aident les modèles à trouver des mots ou des phrases pertinents pour le contexte. C'est particulièrement utile pour des tâches comme la recherche sémantique, le traitement des questions, la classification de texte et l'extraction d'entités nommées. De plus, les bases de données vectorielles peuvent stocker des incorporations au niveau des phrases afin de capturer le contexte des mots, pour davantage de nuance dans la compréhension de la langue.
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'incorporation, on peut l'utiliser pour générer des recommandations personnalisées. Lorsqu'un utilisateur interagit avec le système, son comportement et ses préférences alimentent son incorporation. Si un utilisateur demande à un LLM de lui recommander une série télévisée, la base de données vectorielle peut lui proposer des séries dont l'intrigue ou les évaluations sont similaires à ce qu'il aime habituellement. Elle ciblera les séries dont les incorporations sont les plus proches de l'encodage de l'utilisateur.
détection des fraudes
Les institutions financières utilisent des bases de données vectorielles pour détecter les transactions frauduleuses. Les bases de données vectorielles leur permettent de comparer en temps réel les vecteurs des transactions avec des modèles de fraude connus. Du fait de leur évolutivité, les bases de données vectorielles savent aussi gérer les risques et obtenir de nouveaux insights sur le comportement des consommateurs. Elles identifient notamment les schémas types de certaines activités en codant les données de transaction sous forme de vecteurs. Elles facilitent l'évaluation de la solvabilité et la segmentation des consommateurs en analysant les données – autant d'atouts qui optimisent le processus de prise de décision.
Principaux défis des bases de données vectorielles
Malgré leurs avantages et la diversité de leurs applications, on ne peut faire l'impasse sur les problèmes inhérents aux bases de données vectorielles.
- Nouveaux pipelines de données
Les bases de données vectorielles ont besoin de pipelines d'ingestion de données efficaces pour nettoyer, traiter et incorporer les données brutes de sources diverses à l'aide d'un modèle ML, avant de les stocker sous forme de vecteurs.
Databricks Vector Search relève ce défi avec une solution complète. Il automatise la génération, la gestion et l'optimisation des vecteurs, et assure la synchronisation en temps réel des données sources avec les index vectoriels correspondants. Il gère les défaillances, optimise le débit et adapte automatiquement la taille des batches et les capacités, sans aucune intervention manuelle.
En évitant le recours à des pipelines d'ingestion de données distincts, cette solution allège l'effort de développement et permet aux équipes de se consacrer à des tâches de haut niveau qui apportent directement de la valeur à l'entreprise, plutôt qu'au développement et à la maintenance de processus complexes de préparation de données.
- Sécurité renforcée et gouvernance étroite
Outre les exigences habituelles de maintenance et de gestion, les bases de données vectorielles doivent être protégées par des mesures de sécurité et des contrôles d'accès spécifiques, et faire l'objet d'une gouvernance rigoureuse. Les organisations commerciales doivent exercer des contrôles étroits sur la sécurité et la visibilité des données pour empêcher tout accès à des modèles d'IA générative directement reliés à des données confidentielles.
Aujourd'hui, de nombreuses bases de données vectorielles ne disposent pas de contrôles de sécurité et d'accès robustes, et beaucoup d'organisations doivent encore élaborer et maintenir un corpus distinct de politiques de sécurité. L'interface unifiée de Databricks Vector Search permet de définir les politiques de données et d'automatiser leur traçabilité sans outils supplémentaires. Cette approche empêche toute exposition de données confidentielles par les LLM à des utilisateurs non autorisés.
- Haut niveau de connaissance technique
En raison de leur puissance pour les recherches de similarité et la gestion des données de haute dimension, les bases de données vectorielles sont incontournables dans l'arsenal des data scientists qui travaillent avec des modèles d'IA et de ML. Databricks Vector Search présente l'avantage unique d'être une base de données vectorielle serverless : elle libère les data scientists des tâches de configuration et de gestion de l'infrastructure pour leur permettre de se consacrer à leurs travaux fondamentaux.
Les avantages de Databricks Vector Search sont multiples : intégration transparente avec l'architecture lakehouse, ingestion automatisée des données, et des résultats jusqu'à cinq fois plus rapides qu'avec d'autres bases de données vectorielles courantes. La solution est également compatible avec les outils existants de gouvernance et de sécurité des données via Unity Catalog, pour garantir la protection des données et la conformité des pratiques.
Particulièrement flexible, Databricks Vector Search s'adapte aussi bien aux utilisateurs novices qu'avancés. Le dimensionnement des ressources se fait automatiquement pour l'ingestion de données et le traitement des requêtes, et le système propose des API plug-and-replace pour ceux qui souhaitent davantage de contrôle sur leurs pipelines. Cette combinaison de simplicité d'utilisation et de puissance simplifie la création d'une base de données vectorielle pour tous les data scientists, quel que soit leur niveau d'expertise.
Bases de données vectorielles et bases de données orientées graphe
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 s'adapte parfaitement à de nombreuses applications d'IA générative, parce que les incorporations vectorielles sont générées par des LLM et que les données sont faciles à interroger et à récupérer.
En revanche, les bases de données orientées graphe stockent les données dans une structure de type graphe. Les entités sont représentées par des nœuds sur un graphe, et les connexions entre ces points sont représentées par des arcs. Grâce à cette structure de graphe, les données du dépôt sont représentées par une collection de nœuds et d'arcs. Du fait de leur structure interconnectée, les bases de données orientées graphe sont idéale dans les scénarios où les connexions entre les 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 ?
L'index vectoriel et la 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 accélérer les recherches de similarité parmi des incorporations vectorielles. Il améliore considérablement la vitesse de recherche en organisant les vecteurs de manière à optimiser la récupération. Pour donner quelques exemples courants d'index vectoriels, citons Facebook AI Similarity Search (FAISS), HNSW et le hachage sensible à la localité (LSH). Ces index sont utilisables en tant que processus algorithmiques autonomes, mais ils peuvent aussi être intégrés à des systèmes plus grands pour optimiser les opérations de recherche.
- Base de données vectorielle : de son côté, la base de données vectorielle est une solution complète de gestion des données qui intègre l'indexation vectorielle, mais aussi des fonctionnalités supplémentaires comme le stockage des données, les opérations CRUD (création, lecture, mise à jour et suppression), le filtrage des métadonnées et l'évolutivité horizontale. Elle est conçue pour gérer et interroger efficacement les incorporations vectorielles, prendre en charge des opérations complexes et garantir l'intégrité et la sécurité des données.
L'avenir des bases de données vectorielles
Le récent essor des LLMs et des applications d'IA générative en général a entraîné le développement concomitant des bases de données vectorielles. Au fil du perfectionnement des applications d'IA, le développement de nouveaux produits et l'évolution des besoins des utilisateurs décideront des orientations futures des bases de données vectorielles. On voit toutefois dégager quelques tendances dans ce domaine technologique.
- Intégration accrue des modèles ML : la relation entre les bases de données vectorielles et les modèles ML fait l'objet de recherches intensives. Ces efforts visent à réduire la taille et la dimensionnalité des vecteurs afin de minimiser les besoins de stockage des grands datasets et augmenter l'efficacité du calcul.
- Personnalisation par RAG : la RAG enrichit le contexte fourni à un LLM dans les applications d'IA générative comme les robots conversationnels et les outils « questions-réponses » généralistes. La base de données vectorielle améliore le prompt transmis au LLM en ajoutant du contexte à la requête.
- Recherche multi-vecteurs : on prévoit que de nouvelles recherches améliorent les capacités de recherche multi-vecteurs, essentielles pour des applications telles que la reconnaissance faciale. Les techniques actuelles reposent souvent sur la combinaison de différents scores, mais cette approche a le défaut d'augmenter le nombre de calculs de distance nécessaires.
- Recherche hybride : l'évolution des systèmes de recherche a stimulé l'adoption d'approches hybrides qui combinent des méthodes traditionnelles basées sur les mots-clés avec des techniques modernes de récupération vectorielle.
Créer une base de données vectorielle avec Databricks
Databricks Mosaic AI Vector Search est la solution de base de données vectorielle intégrée à la Databricks Data Intelligence Platform. Ce système entièrement intégré élimine les pipelines d'ingestion de données et applique directement des contrôles de sécurité et des mécanismes de gouvernance pour offrir une protection cohérente sur tous les assets.
Databricks Vector Search offre une expérience haute performance et prête à l'emploi, et permet aux LLM de récupérer rapidement des résultats pertinents avec un minimum de latence. Le dimensionnement et l'optimisation sont automatisés pour libérer les utilisateurs de l'ajustement manuel de la base de données. En simplifiant le processus de stockage, de gestion et d'interrogation des incorporations vectorielles, cette intégration facilite la mise en œuvre de nombreuses applications d'IA, dont les systèmes de recommandation et les recherches sémantiques, dans le strict respect des normes de sécurité et de gouvernance.
Où puis-je trouver d'autres informations sur les bases de données vectorielles et la recherche vectorielle ?
Il existe de nombreuses ressources sur les bases de données vectorielles et la recherche vectorielle :
Blogs
- Recherche hybride dans Mosaic AI Vector Search
- Databricks Vector Search en aperçu public
- Créer des applications RAG de haute qualité avec Databricks
- Améliorez la qualité des réponses des applications RAG avec les données structurées en temps réel
- Créez plus rapidement des applications d'IA générative avec les nouvelles capacités de modèle de fondation
- Bonnes pratiques pour l'évaluation des applications RAG à destination des LLM
- Créer des applications d'IA générative avec la MLflow AI Gateway et Llama 2 (améliorer la précision en utilisant la génération augmentée de récupération (RAG) avec vos propres données)
Ebooks
Démos
Contactez Databricks pour planifier une démonstration et discuter de vos projets de LLM et de base de données vectorielles.