BLOGAnnounced at MongoDB.local NYC 2024: A recap of all announcements and updates — Learn more >

Qu’est-ce qu’une base de données vectorielles ?

Table des matières

Vous avez sans doute entendu parler de l'IA (alias intelligence artificielle) générative. Dans tous les secteurs de l'économie, de la santé à la finance, en passant par le commerce de détail et les agences gouvernementales, les organisations cherchent à en tirer parti. Il semble que chaque CEO souhaite déployer des applications le plus rapidement possible.

C'est bien plus qu'un simple battage médiatique. Selon un rapport de McKinsey, l'IA Générative pourrait injecter des milliards de dollars dans l'économie mondiale.

Le concept mathématique du vecteur est au cœur de cette technologie révolutionnaire. Grâce à la vectorisation et aux prouesses des grands modèles de langage (LLM), l'IA générative peut changer la donne. À l'ère de l'IA générative, les vector embeddings jettent les bases et les bases de données vectorielles étendent son impact.

Qu'est-ce qu'une base de données vectorielles ? Comment ça marche ? Quels sont les principaux cas d'utilisation ? Et pourquoi MongoDB Atlas Vector Search joue-t-il un rôle clé dans les réflexions sur l'IA générative ?

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

Pour comprendre les bases de données vectorielles, vous devez d'abord comprendre ce qu'est un vecteur.

En mathématiques et en physique, un vecteur est une quantité qui possède à la fois une amplitude (ou une taille) et une direction. Un vecteur peut être décomposé en composantes. Par exemple, dans un espace bidimensionnel, un vecteur a une composante X (horizontale) et Y (verticale).

En science des données et en apprentissage automatique, un vecteur est une liste ordonnée ou une séquence de nombres qui représente des données. Il peut représenter n’importe quel type de données, y compris des données non structurées (ou des données sans modèle de données ou schéma prédéfini), du texte à l’image, de l’audio à la vidéo. Il est généralement représenté sous forme de tableaux ou de listes de nombres où chaque nombre de la liste représente une caractéristique ou un attribut spécifique de ces données.

Imaginons que vous possédez une grande collection de photos de chats. Chaque image est un morceau de données non structurées. Mais vous pouvez représenter chaque image sous forme de vecteur en extrayant des caractéristiques, telles que :

  • la couleur moyenne ;
  • l'histogramme des couleurs ;
  • l'histogramme de texture ;
  • la présence ou l'absence d'oreilles, de moustaches et d'une queue.

Le vector embedding (ou la vectorisation) est le processus de conversion de ces mots et d'autres données en nombres. Chaque point de données est représenté par un vecteur dans un espace de grande dimension.

Une base de données vectorielles, également appelée base de données de recherche vectorielle ou moteur de recherche de similarités vectorielles, stocke, extrait et recherche des vecteurs.

Au lieu des lignes et des colonnes typiques des bases de données relationnelles, les bases de données vectorielles représentent les données sous forme de points dans un espace multidimensionnel. Elles sont particulièrement adaptées aux applications qui nécessitent une correspondance rapide et précise des données sur la base d'une similarité plutôt que de valeurs exactes.

« Imaginez une base de données vectorielles comme un vaste entrepôt et l'intelligence artificielle comme un gestionnaire d'entrepôt compétent. Dans cet entrepôt, chaque élément (les données) est stocké dans une boîte (le vecteur), soigneusement organisée sur des étagères dans un espace multidimensionnel », écrit Mark Hinkle dans The New pile.

Si vous créez des applications d'IA générative, une base de données vectorielles est conçue pour traiter efficacement de vastes volumes de données vectorielles. Vous accélérez ainsi les requêtes et leur traitement.

Image de bases de données vectorielles avec une vector embedding et un modèle d'intégration

Source : Dev.to

Comment fonctionnent les bases de données vectorielles ?

Le principe d'intégration est au cœur de la fonctionnalité d’une base de données vectorielles. En résumé, un modèle vectoriel ou d'intégration traduit les données dans un format cohérent : les vecteurs.

Bien qu'un vecteur soit fondamentalement un ensemble ordonné de nombres, une intégration le transforme en une représentation de différents types de données, y compris le texte, les images et l'audio.

Les transformations, c'est-à-dire le processus de conversion des données d'un format à un autre, situent les vecteurs dans un espace vectoriel multidimensionnel. L’une des caractéristiques les plus frappantes de cette disposition spatiale est que les points de données ayant des attributs ou des caractéristiques similaires gravitent naturellement les uns vers les autres, et forment ainsi un cluster.

Les vector embeddings ne sont pas seulement des traductions numériques ; elles encapsulent l'essence sémantique plus profonde et les nuances contextuelles des données d'origine. Elles comportent ainsi des avantages inestimables pour de nombreuses applications d'IA, du traitement du langage naturel (TAL) à l'analyse de l'opinion, en passant par la catégorisation de textes.

La requête d'une base de données vectorielles est différente de la requête d'une base de données conventionnelle. Au lieu de rechercher des correspondances précises entre des vecteurs identiques, une base de données vectorielles recherche des similarités pour identifier les vecteurs qui se trouvent à proximité du vecteur de requête donné, dans l'espace multidimensionnel. Cette approche est non seulement plus conforme au caractère intrinsèque des données, mais offre également une rapidité et une efficacité que la recherche traditionnelle ne peut égaler.

Les mots, les phrases et même des documents entiers peuvent être transformés en vecteurs qui capturent leur essence. Par exemple, Word2vec est une méthode standard d'intégration de mots. Avec cet outil, les mots ayant des significations similaires sont représentés par des vecteurs proches dans un espace multidimensionnel. L'exemple le plus célèbre est le suivant : roi – homme + femme = reine. En additionnant les vecteurs associés aux mots « roi » et « femme » et en soustrayant « homme », on obtient le vecteur associé à « reine ».

Image décrivant le fonctionnement de la recherche dans les bases de données vectorielles avec des points roses, un chat, une banane, etc.

Source : Medium

Même avec leurs motifs et leurs couleurs complexes, les images peuvent être traduites en vecteurs. Par exemple, dans un ensemble de données qui comporte des images d’animaux, un réseau neuronal convolutif (CNN) entraîné regrouperait toutes les images de chiens à proximité les unes des autres, en les distinguant nettement des groupes de chats ou d’oiseaux, par exemple.

En capturant la structure et les modèles inhérents aux données, les vector embeddings offrent des représentations enrichies sémantiquement. Cette richesse permet non seulement de mieux comprendre les données, mais aussi d'accélérer les calculs liés à la détermination des relations et à l'évaluation des similitudes entre différentes entités.

Pourquoi la recherche vectorielle est-elle essentielle ?

La recherche vectorielle est essentielle pour les bases de données vectorielles en raison de sa méthode de récupération des données.

Contrairement aux bases de données traditionnelles qui s'appuient sur des correspondances exactes, dans une base de données vectorielles, la recherche vectorielle repose sur la similarité. Cette compréhension sémantique signifie que même si deux données ne sont pas identiques, mais qu'elles sont similaires sur le plan contextuel ou sémantique, elles peuvent être mises en correspondance.

Les recherches traditionnelles par mot-clé sont particulièrement adaptées lorsqu'il s'agit de repérer des termes spécifiques dans des documents ou des tableaux. Cependant, elles ne suffisent pas avec les données non structurées, telles que les vidéos, les livres, les publications sur les réseaux sociaux, les PDF et les fichiers audio.

La recherche vectorielle pallie cette problématique en permettant d'effectuer des recherches dans les données non structurées. Elle ne recherche pas seulement les correspondances exactes, mais identifie le contenu en fonction de la similarité sémantique, en comprenant les relations inhérentes entre les termes de recherche.

Image d'un diagramme de Voronoï décrivant le « plus proche voisin »

Source : TowardsDataScience

L'efficacité de la recherche vectorielle devient évidente lorsqu'il s'agit de données de grande dimension. Les bases de données vectorielles sont capables de traiter des points de données couvrant des centaines, voire des milliers de dimensions. Les algorithmes optimisés pour la recherche vectorielle de vecteurs de grande dimension, tels que la recherche approximative du plus proche voisin (Approximate Nearest Neighbor, ANN), peuvent rapidement identifier les vecteurs qui présentent le plus de similaires dans ce vaste espace sans analyser chacun d'entre eux. Cette efficacité se traduit par des recherches plus rapides et qui nécessitent moins de ressources.

Du point de vue de l'expérience utilisateur, les avantages de la recherche vectorielle sont multiples. Des applications comme les systèmes de recommandation ou la reconnaissance d'images peuvent fournir des résultats basés sur la similarité plutôt que sur des correspondances exactes. Par exemple, dans le cadre du e-commerce, afficher des produits similaires à la requête d'un utilisateur peut améliorer la satisfaction des clients et augmenter les ventes. À mesure que les ensembles de données se développent, l'évolutivité de la recherche vectorielle devient évidente. Si les recherches de correspondances exactes peuvent devenir de plus en plus lentes à mesure que les données augmentent, la recherche vectorielle maintient des performances constantes et garantit des résultats rapides, même avec de vastes ensembles de données.

La recherche vectorielle offre également un autre avantage non négligeable : la flexibilité. Elle s'adapte aux nouveaux types de données, à l'évolution des structures de données et à l'évolution des exigences de recherche, et elle nécessite peu d'ajustements.

En outre, cette caractéristique est un atout majeur dans le secteur en pleine expansion de la gestion des données, d'autant plus que de nombreux modèles existants d'IA et d'apprentissage automatique, en particulier ceux ancrés dans l'apprentissage profond, produisent des données sous forme vectorielle. Une base de données capable de rechercher nativement dans les données vectorielles devient donc indispensable pour les applications avancées telles que la reconnaissance faciale ou vocale.

Image décrivant la recherche vectorielle, y compris les données non structurées, un encodeur et un vector store
Cas d'utilisation des bases de données vectorielles

Le paysage économique mondial est complexe et concurrentiel, et les données restent un enjeu clé. Elles étaient autrefois qualifiées de « nouveau pétrole ». À l'ère de l'IA générative, les vector embeddings sont le pétrole et les bases de données vectorielles sont devenues des raffineries sophistiquées, capables de traiter des données à haute dimension et d'exécuter des recherches de similarités.

Pour les dirigeants, l'IA générative n’est pas seulement un mot à la mode, c'est une stratégie. Pour les développeurs, le principal atout des bases de données vectorielles est leur efficacité. Elles nécessitent parfois des structures de requête complexes pour récupérer des données pertinentes, en particulier lorsqu'il s'agit de vastes ensembles de données. Les bases de données vectorielles simplifient ce processus. Elles permettent aux développeurs de récupérer des données en fonction de leur similarité et réduisent ainsi la complexité du code et le temps nécessaire à ce processus.

Cas d'utilisation des bases de données vectorielles
Image décrivant la recherche vectorielle, y compris les données non structurées, un encodeur et un vector store

Source : Medium

Reconnaissance d'images et de vidéos Les visuels font partie intégrante de notre culture, et les bases de données vectorielles occupent une place de choix. Elles sont capables d'analyser de vastes répertoires d'images et de vidéos pour repérer celles qui ressemblent le plus avec une entrée donnée. Il ne s'agit pas simplement de faire correspondre les pixels ; il s'agit de comprendre les modèles et les caractéristiques sous-jacents. Ces fonctionnalités sont cruciales pour des applications telles que la reconnaissance faciale, la détection d'objets et même la détection des violations de droits d'auteur sur les plateformes multimédia.

Traitement du langage naturel et recherche textuelle Les synonymes, la paraphrase et le contexte peuvent faire de la recherche d'un texte exact une tâche ardue. Cependant, les bases de données vectorielles peuvent discerner l'essence sémantique des expressions et des phrases. Elles peuvent ainsi identifier les correspondances qui ne sont pas nécessairement identiques en termes de formulation, mais qui sont similaires sur le plan contextuel. Cette prouesse change la donne pour les chatbots, car elle leur permet de répondre de manière pertinente aux requêtes des utilisateurs. De même, les moteurs de recherche peuvent fournir des résultats plus pertinents, améliorant ainsi l'expérience utilisateur.

Systèmes de recommandation les bases de données vectorielles jouent un rôle essentiel dans la personnalisation. En comprenant les préférences des utilisateurs et en analysant les modèles, ces bases de données peuvent proposer des chansons qui correspondent aux goûts de l'auditeur ou des produits correspondant aux préférences de l'acheteur. Il s’agit d’évaluer la similarité et de proposer des contenus ou des produits qui intéressent l’utilisateur.

Applications émergentes L'horizon des bases de données vectorielles ne cesse de s'élargir. Dans le secteur de la santé, elles facilitent la découverte de médicaments en analysant les structures moléculaires à la recherche de propriétés thérapeutiques potentielles. Dans le secteur financier, elles contribuent à détecter les anomalies, en repérant des modèles inhabituels susceptibles d'indiquer des activités frauduleuses.

Avec l'essor de l'IA générative, les bases de données vectorielles deviennent des outils essentiels. Elles aident les développeurs à transformer des schémas d'IA complexes en outils pratiques, axés sur la valeur.

MongoDB Atlas Vector Search change la donne

MongoDB Atlas Vector Search est le dernier ajout à la developer data platform de MongoDB. Il permet aux clients de créer des applications intelligentes alimentées par la recherche sémantique et l'IA générative sur n'importe quel type de données.

Historiquement, les équipes de développement à la recherche d'une base de données vectorielles pour des tâches telles que la recherche d'images ou de similarités efficaces étaient confrontées à un dilemme : opter pour une base de données vectorielles supplémentaire, et ainsi ajouter un autre outil à la pile technologique, ou jongler avec des outils de recherche et de solutions open source. L'utilisation d'une recherche full-text pour les capacités sémantiques signifiait souvent que les développeurs s'enlisaient dans une cartographie étendue des synonymes. Les limites étaient claires : si les utilisateurs n'étaient pas précis dans leurs requêtes, les résultats étaient loin d'être pertinents.

De tels défis signifiaient ce qui suit :

  • un système supplémentaire à superviser ;
  • un besoin de compétences spécialisées ;
  • la charge mentale liée à la mise à jour constante des correspondances de synonymes ;
  • une expérience utilisateur médiocre pour les requêtes imprécises ;
  • un précieux temps d'ingénierie détourné des tâches principales.

Atlas Vector Search simplifie la conception d'applications enrichies par la recherche sémantique et l'IA générative, capables de traiter des données de différente nature, des vidéos au contenu sur les réseaux sociaux. En s'appuyant sur la solidité de MongoDB Atlas, Vector Search permet aux développeurs de créer des outils de recherche de pointe basés sur la pertinence, sur une plateforme fiable dotée d'une interface de requête unifiée.

Vector Search fournit à MongoDB Atlas les connaissances nécessaires à la compréhension d'une requête sans avoir à définir de synonymes. Même lorsque les utilisateurs ne savent pas ce qu'ils recherchent, Vector Search est capable de renvoyer des résultats pertinents en fonction de la signification de la requête. Par exemple, la recherche « glace » renverrait à « sundae », même si l'utilisateur ignore leur existence.

Lorsque vous utilisez Vector Search, vous stockez les vector embeddings aux côtés des données et métadonnées d'origine dans Atlas. Ainsi, toutes les mises à jour ou ajouts apportés à vos données vectorielles sont instantanément synchronisés, ce qui permet de simplifier l'architecture et offrant une expérience unifiée aux développeurs.

Avec Vector Search, vous indexerez et interrogerez des données à l'aide de l'un des algorithmes de recherche vectorielle les plus puissants : l'approximation des k plus proches voisins (ou « k-NN », qui utilise les graphes du petit monde navigable hiérarchique, ou HNSW, pour identifier les similarités entre les vecteurs).

Modèle de spirale

Vous pouvez créer des expériences de recherche considérablement améliorées qui répondent à des cas d'utilisation que les outils de recherche traditionnels ne peuvent pas prendre en compte, notamment :

  • la recherche sémantique : elle permet d'effectuer des recherches en fonction du contexte. Par exemple, une recherche de « glace » peut donner des résultats tels que « sundae » sans aucun synonyme prédéfini ;
  • les recommandations améliorées : si un utilisateur recherche une tondeuse à gazon, le système peut également suggérer des articles connexes pour l'entretien des pelouses ;
  • les recherches dans les médias : qu'il s'agisse de rechercher des images correspondant à des termes tels que « familles heureuses » ou d'examiner des enregistrements audio à la recherche d'expressions spécifiques, Vector Search est à la hauteur de la tâche ;
  • la recherche hybride : elle combine les atouts de la recherche vectorielle avec la recherche full-text traditionnelle et enrichit ainsi les résultats ;
  • la mémoire à long terme pour les LLM : elle fournit un contexte de données commerciales exclusives aux grands modèles de langage, ce qui permet d'affiner la précision de leurs résultats.

Atlas Vector Search est compatible avec les frameworks d'application populaires tels que LlamaIndex et LangChain. Il s'intègre également parfaitement aux partenaires de l'écosystème tels que Google Vertex AI, AWS, Azure et Databricks. Les données propriétaires de l'entreprise améliorent ainsi les performances et la précision des applications alimentées par l'IA.

Atlas Vector Search : pour des applications intelligentes basées sur la recherche sémantique

Les bases de données vectorielles, avec leur approche unique du stockage et de la récupération des données, changent notre façon de concevoir les bases de données. Leur capacité à effectuer des recherches rapides par similarité les rend indispensables dans notre monde où les données règnent en maître. Et lorsqu'elles sont combinées à la puissance et à la flexibilité de MongoDB Atlas, elles offrent une solution inégalée.

Atlas Vector Search permet des cas d'utilisation avancés, comme la recherche sémantique, la recherche d'images et la recherche de similarités, qui ne peuvent pas être traités par la recherche full-text traditionnelle. Les développeurs peuvent stocker leurs vector embeddings dans MongoDB, compléter leurs fonctionnalités de recherche existantes avec des modèles d'apprentissage automatique et les interroger pour obtenir des résultats contextuels pertinents. Les responsables de l’ingénierie peuvent avoir l'esprit tranquille grâce à Atlas : une plateforme de données multi-cloud entièrement gérée et éprouvée pour les développeurs.

Que vous créiez un système de recommandation, un moteur de recherche ou toute autre application nécessitant une correspondance rapide et précise des données, envisagez de tirer parti de la puissance combinée des bases de données vectorielles et de MongoDB. Les vecteurs sont l'avenir et MongoDB est là pour vous aider à vous y retrouver.

Foire aux questions

Qu'est-ce que MongoDB Atlas Vector Search ?
MongoDB Atlas Vector Search est le dernier ajout de la developer data platform de MongoDB. Cette solution permet aux clients de créer des applications intelligentes optimisées par la recherche sémantique et l'IA générative sur n'importe quel type de données.
Qu'est-ce que la recherche approximative du plus proche voisin ?
On parle de recherche approximative du plus proche voisin lorsqu'un algorithme est autorisé à renvoyer des points dont la distance par rapport à la requête est au plus c fois la distance entre la requête et ses points les plus proches. En d'autres termes, les points renvoyés peuvent être jusqu'à c fois plus éloignés du point de requête que son plus proche voisin. Cette fonction est utile car elle permet à l'algorithme de trouver rapidement des voisins suffisamment pertinents.
Qu'est-ce qu'un index vectoriel ?
Un index vectoriel est une structure de données destinée à stocker et gérer les vector embeddings à partir d'un vaste ensemble de données d'objets de données.

Démarrer avec MongoDB Atlas

Essayez gratuitement