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

Jeffrey Erickson | Responsable de la stratégie de contenu | 29 octobre 2024

Les vecteurs, un type de données moins connu, ont récemment attiré l'attention en tant que catalyseur de l'IA générative. Mais les vecteurs et les bases de données capables de les stocker et de les analyser attendent en coulisses depuis de nombreuses années. Ils sont utilisés dans la cartographie et l'analyse géospatiales pour la planification urbaine, la logistique des transports et l'analyse environnementale. Plus récemment, des vecteurs ont été utilisés dans les moteurs de recommandation pour les produits de vente au détail, ainsi que pour les sites de diffusion de musique et de vidéos.

L'IA générative s'appuie sur ces cas d'utilisation et ouvre la voie à de nouvelles innovations à l'aide de vecteurs et de bases de données vectorielles, ainsi que de technologies complémentaires, y compris le retrieval-augmented generation (RAG).

Qu'est-ce qu'un vecteur ?

Un vecteur est simplement un ensemble de nombres qui représente les caractéristiques d'un objet, que cet objet soit un mot, une phrase, un document, une image ou un fichier vidéo ou audio. Les vecteurs sont nécessaires, car la comparaison ou la recherche de ce type de contenu non structuré est complexe pour les ordinateurs. La comparaison ou la recherche de vecteurs, en revanche, est beaucoup plus facile et repose sur des mathématiques bien comprises.

Les vecteurs sont stockés dans une base de données avec les objets de données sur lesquels ils sont basés, ou avec un lien vers ces objets. Les vecteurs mathématiquement proches les uns des autres ont tendance à décrire des objets ayant des caractéristiques similaires, de sorte que vous pouvez rapidement les comparer ou les rechercher et renvoyer des objets similaires. Vous pouvez également former un vecteur de requête avec seulement certaines fonctionnalités identifiées. Une recherche renvoie des objets avec des fonctionnalités similaires à celles spécifiées dans le vecteur de requête.

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

Une base de données vectorielle est une base de données qui peut stocker et gérer de manière native des incorporations vectorielles et gérer les données non structurées qu'elles décrivent, comme des documents, des images, des vidéos ou des fichiers audio.

Face à l'importance de la recherche vectorielle pour l'IA générative, le secteur de la technologie a engendré de nombreuses bases de données vectorielles spécialisées et autonomes, que les entreprises peuvent ajouter à leurs infrastructures de données. Pendant ce temps, les versions des favoris établis, comme Oracle Database et la base de données open source MySQL, ont incorporé des vecteurs en tant que type de données natif avec de nombreux autres types de données. Cela permet de rendre les recherches sur une combinaison de données commerciales et sémantiques plus rapides et précises, car les deux types de données sont disponibles dans une seule base de données. Cette approche évite également les problèmes de cohérence des données introduits lors de l'utilisation d'une base de données vectorielle distincte et spécialisée en plus de la base de données principale de l'entreprise.


VIDÉO : Qu'est-ce qu'une base de données vectorielle ? Comment peut-elle aider à répondre aux besoins des entreprises ?



Index vectoriel et base de données vectorielle

Les index vectoriels et les bases de données vectorielles sont conçus pour stocker et récupérer efficacement des vecteurs, c'est-à-dire des ensembles de nombres représentant les caractéristiques d'un objet, comme un document, une image ou un fichier vidéo ou audio. Cependant, ils présentent des caractéristiques et des cas d'utilisation différents. Les index vectoriels sont principalement utilisés pour la recherche de « voisin le plus proche », qui consiste à trouver le vecteur le plus proche d'un vecteur de requête donné. Les index sont parfaits pour les applications qui nécessitent des recherches de similarité rapides et précises, telles qu'un moteur de recommandation. En revanche, les bases de données vectorielles sont l'endroit où les organisations stockent des vecteurs pour l'extraction et l'analyse. Une base de données vectorielle d'entreprise offre des fonctionnalités utiles au-delà de la recherche de voisin le plus proche, comme le stockage de métadonnées, la gestion des versions de données et l'intégration à d'autres systèmes.

Différences clés

La principale différence entre un index vectoriel et une base de données vectorielle est que les index vectoriels stockent des informations sur les attributs de données non structurées, comme du texte, des images ou des fichiers audio. Cette information est représentée par un ensemble de nombres appelé vecteur. L'index vectoriel contient ces données et les « indexe » de manière à aider une base de données à identifier et à mettre en correspondance rapidement des objets.

Une base de données vectorielle héberge ces index et les objets qu'ils décrivent. Toutefois, la façon dont une base de données organise les index vectoriels et les objets de données varie. Les bases de données vectorielles, telles qu'Oracle Database, séparent le stockage des objets de données de la façon dont les données et les vecteurs sont recherchés. Cela leur permet de combiner la puissance d'interrogation mature de SQL pour les métadonnées et les données d'entreprise à jour avec la vitesse et la pertinence contextuelle de la recherche vectorielle. Cette approche signifie, par exemple, qu'une recherche vectorielle de produits de détail pertinents peut également fournir des prix et une disponibilité à jour.

Points à retenir

  • Les bases de données vectorielles stockent et manipulent efficacement des objets à l'aide d'un type de données appelé intégration vectorielle.
  • Les incorporations vectorielles décrivent les caractéristiques d'un objet, et une base de données vectorielle stocke ces vecteurs et crée des index qui facilitent les recherches rapides.
  • Les vecteurs et les bases de données vectorielles ne sont pas nouveaux ; ils sont utilisés depuis longtemps pour des cas d'utilisation spécialisés, tels que la cartographie et l'analyse de données.
  • Plus récemment, les incorporations vectorielles et les bases de données vectorielles ont été utilisées pour trouver des produits similaires, reconnaître des motifs biométriques, détecter les anomalies et alimenter les moteurs de recommandation.
  • Les entreprises combinent désormais la recherche vectorielle et l'IA générative avec la technologie de retrieval-augmented generation (RAG) pour obtenir des résultats plus pertinents à partir de l'IA générative, en partageant certains éléments de leurs magasins de documents et de communications. Le résultat donne lieu à des réponses rapides qui sont plus précises et contextuellement pertinentes, car elles sont basées sur les données supplémentaires fournies par la RAG.

Explications sur les bases de données vectorielles

Au lieu de prendre en charge les coûts et les efforts pour affiner les modèles d'IA générative, les entreprises organisent les données que les LLM utilisent pour générer leurs résultats. Elles utilisent des bases de données vectorielles qui contiennent des informations d'entreprise à jour. Cette approche architecturale, appelée retrieval-augmented generation (RAG), permet à un LLM entraîné avec de grandes quantités de données généralisées d'améliorer sa réponse en utilisant des données privées trouvées dans une base de données vectorielle.

Par exemple, si un chatbot alimenté par un LLM pouvait accéder aux enregistrements client et aux communications par e-mail d'un détaillant au lieu de messages génériques, il pourrait fournir des réponses plus utiles et personnalisées à des questions telles que « Ma commande a-t-elle été expédiée ? ».

Le RAG peut également améliorer la fiabilité des modèles d'IA générative en citant les documents de la base de données vectorielle qui ont informé son résultat.

Pourquoi les bases de données vectorielles sont-elles importantes ?

Sans surprise, l'utilisation de bases de données optimisées pour le stockage et l'analyse des vecteurs augmente. Autrefois utilisées principalement pour la cartographie et l'analyse des données, les bases de données vectorielles sont devenues une technologie essentielle pour les moteurs de recommandation couramment exploités par les détaillants et les fournisseurs de streaming de musique et de vidéo les plus populaires, ainsi que par les assistants virtuels, la reconnaissance de modèles biométriques, la détection d'anomalies, etc. Aujourd'hui, les bases de données vectorielles ont trouvé une utilisation nouvelle et spectaculaire : le stockage de grands volumes de données non structurées accessibles pour informer les résultats des modèles d'IA générative.

Une tendance croissante concerne les bases de données établies, telles que MySQL et Oracle Database, pour intégrer des données vectorielles en tant que type de données natif aux côtés du reste des données d'une organisation, comme JSON, les graphiques, les données spatiales et les données relationnelles. Cette convergence évite de déplacer les données vers une base de données distincte pour les opérations d'IA générative, ce qui simplifie le processus et conserve les données précieuses dans des référentiels sécurisés.

Face à la croissance des cas d'utilisation de l'IA générative, il existe de nombreuses nouvelles bases de données vectorielles sur le marché, en plus des bases de données NoSQL et relationnelles établies qui ont ajouté la gestion des types de données vectorielles.

Comment fonctionnent les bases de données vectorielles ?

Les bases de données vectorielles stockent et traitent les données en tant que vecteurs, qui sont des représentations mathématiques des caractéristiques des objets dans l'espace multidimensionnel. Les types de données complexes, comme les images, l'audio, la vidéo et les données de capteur, peuvent ainsi être stockés et interrogés efficacement, ce qui rend les vecteurs idéaux pour les cas d'utilisation tels que les systèmes de recommandation, le traitement du langage naturel et la reconnaissance d'images.

Les opérations se déroulent en plusieurs étapes :

  • Vectorisation. Des vecteurs peuvent être créés pour décrire le contenu ou les caractéristiques des données non structurées. Cette base de données non structurée peut prendre la forme de texte stocké dans des tables de base de données ou des documents stockés dans un système de fichiers.
  • Indexage. Les bases de données vectorielles utilisent des index vectoriels pour organiser les vecteurs de manière hiérarchique, ce qui permet de les rechercher et de les extraire efficacement.
  • Interrogation. Pour interroger des données vectorielles, les bases de données vectorielles effectuent des opérations de distance vectorielle à l'aide d'un vecteur de requête. Plus les vecteurs sont proches mathématiquement, plus les objets que les vecteurs représentent sont similaires. Normalement, ce processus renvoie un petit ensemble de résultats, par exemple les cinq éléments les plus similaires.
  • Post-traitement. Une fois qu'une base de données vectorielle extrait les voisins les plus proches d'un vecteur de requête, elle peut éventuellement réorganiser les lignes de l'ensemble de résultats. Le reclassement est une opération coûteuse par rapport à la requête vectorielle, mais il peut donner un meilleur ordre pour les résultats de requête vectorielle existants.
Le diagramme illustre comment une base de données vectorielle peut aider un service de streaming à recommander le bon film pour un passionné de science-fiction.

Types de bases de données vectorielles

Les bases de données vectorielles peuvent être classées en différents types, par structure de stockage, par exemple en colonnes, ou classées en fonction de leur implémentation, telles que les bases de données en mémoire. Chaque type présente des avantages ; le type que vous sélectionnez doit dépendre de vos besoins et cas d'emploi spécifiques.

  • Bases de données en colonnes

    Une base de données en colonnes stocke les données dans des colonnes et les regroupe sur un disque. Cette disposition accélère l'analyse des données, car l'analyse implique généralement le filtrage et la combinaison des données des colonnes de table. Les bases de données peuvent également stocker des enregistrements au format ligne, ce qui est utile pour les transactions dans lesquelles vous mettez à jour un seul élément de l'enregistrement. Pour l'analyse des données, cependant, une base de données en colonnes permet aux analystes d'analyser très rapidement n'importe quelle colonne comportant des milliers ou des millions d'enregistrements.

  • Magasins de documents

    Une base de données de stockage de documents, ou orientée document, est un programme et un système de stockage de données qui gère, extrait et stocke les informations orientées document. Les bases de données de documents stockent les données dans des documents flexibles de type JSON, adaptés à des structures de données variées et dynamiques. Elles diffèrent des bases de données relationnelles, qui utilisent des tables pour organiser les données avec un schéma fixe.

  • Bases de données orientées graphe

    L'analyse de graphes est le processus d'analyse des données dans un format de graphe, utilisant des points de données comme nœuds et des relations comme arêtes. L'examen des données de cette façon peut vous aider à découvrir des connexions et des relations qui n'étaient pas évidentes auparavant. L'analyse de graphes nécessite une base de données capable de prendre en charge les formats de graphes. Il peut s'agir d'une base de données orientée graphe dédiée ou d'une base de données convergée prenant en charge plusieurs modèles de données, y compris un graphique.

  • Bases de données en mémoire

    Les bases de données en mémoire (In-memory databases) stockent et manipulent les données au niveau mémoire d'une application plutôt que sur un disque de stockage. Ce type de structure est souvent mis en correspondance avec la fonctionnalité de stockage en colonnes et les plans de requête vectorisés pour accélérer les requêtes analytiques. Ce type de magasin de données est idéal pour soutenir des opérations ultra-rapides dans les télécommunications mondiales et au sein des entreprises qui doivent prendre des décisions basées sur des données en temps réel.

  • Magasins de valeurs clés

    Les magasins de valeurs-clés, parfois nommés bases de données de valeurs-clés, sont un moyen rapide de stocker et d'interroger des données qui changent souvent, telles que des éléments dans une boutique en ligne. Le magasin de valeurs de clé est une base de données de type NoSQL qui utilise une valeur de clé pour identifier un enregistrement spécifique en vue de l'interrogation ou de la mise à jour.

  • Bases de données spatiales

    Une base de données spatiale stocke et gère des données spatiales, qui représentent des informations sur l'emplacement physique et les propriétés géométriques des objets dans l'espace. Pour ce faire, elle utilise des techniques d'indexation et des opérations d'interrogation. Les bases de données spatiales sont utilisées pour la cartographie et l'analyse en ligne, ainsi que pour les opérations logistiques d'expédition.

  • Bases de données temporelles

    Une base de données de séries temporelles est utilisée pour stocker et analyser efficacement les données horodatées, chaque point de données étant associé à un horodatage ou à un intervalle de temps spécifique. Ces bases de données sont couramment utilisées dans les systèmes de surveillance informatique qui dépendent de l'analyse des journaux et de la finance.

  • Bases de données vectorielles pour les grands modèles de langage

    Les bases de données vectorielles améliorent les grands modèles de langage commerciaux ou open source en leur donnant accès à des informations à jour fournies par une organisation ou une entreprise locale. Cela permet de rendre la sortie du LLM plus pertinente et personnalisée pour les personnes associées à cette organisation.

Qui utilise les bases de données vectorielles ?

Les bases de données vectorielles sont utilisées par diverses applications et organisations qui traitent de grandes quantités de données spatiales et géométriques, comme dans les secteurs du retail et de la logistique et pour les systèmes qui pilotent des véhicules autonomes. À présent, les entreprises qui explorent l'IA avancée et le machine learning adoptent également les bases de données vectorielles. Les modèles d'IA générative, par exemple, s'appuient sur des bases de données vectorielles pour améliorer leurs résultats en utilisant des données locales et à jour.

Voici d'autres cas d'utilisation spécifiques :

  • Les sociétés financières utilisent les vecteurs de plusieurs façons. Par exemple, dans l'analyse de portefeuille, les vecteurs peuvent représenter des aspects des portefeuilles d'un client. Ils peuvent également servir à suivre les performances des comptes au fil du temps.
  • Les chercheurs en santé utilisent des bases de données vectorielles pour soutenir leurs recherches et leurs essais cliniques. Ils stockent et analysent les données relatives aux données démographiques des patients, aux emplacements et aux résultats du traitement, ce qui permet aux chercheurs d'évaluer l'impact de nombreux facteurs différents sur l'efficacité du traitement.
  • Les détaillants en ligne utilisent des bases de données vectorielles pour référencer les achats passés et les habitudes de navigation, et pour recommander des produits susceptibles d'intéresser les clients.
  • Les entreprises de logistique d'expédition utilisent des bases de données vectorielles pour stocker des informations sur les emplacements et les distances, ce qui leur permet de mapper et de suivre avec précision les objets en mouvement.
  • Les services de streaming utilisent des vecteurs pour alimenter les moteurs de recommandation, ce qui leur permet de présenter des recommandations basées sur de nombreux facteurs, notamment le genre, les acteurs principaux, la date de sortie et les avis.

Comment les bases de données vectorielles sont-elles utilisées ?

Les cas d'utilisation des bases de données vectorielles sont aussi variés que les organisations et les applications qui en dépendent. En plus de l'analyse de données en temps réel, des systèmes financiers et des moteurs de recommandation, les bases de données vectorielles sont optimisées pour gérer les structures de données complexes couramment requises pour des tâches telles que la reconnaissance d'images et le traitement du langage naturel.

En stockant et en traitant efficacement les données, les bases de données vectorielles permettent aux entreprises d'exploiter des structures de données complexes pour un large éventail d'applications, notamment les suivantes :

  • Systèmes de recommandation. Les intégrations vectorielles sont utilisées pour trouver rapidement des produits similaires ou des options de divertissement susceptibles d'intéresser un acheteur ou un navigateur.
  • Moteurs de recherche. Les moteurs de recherche utilisent des bases de données vectorielles pour indexer des requêtes et des documents avec leurs incorporations vectorielles, ce qui leur permet de localiser rapidement des résultats de recherche ou des documents similaires.
  • Personnalisation. Ces systèmes utilisent les informations démographiques et les choix passés comme guides pour les recherches vectorielles qui identifient les produits ou services susceptibles de correspondre à un utilisateur particulier.
  • Détection d’une anomalie. Les bases de données vectorielles permettent de rechercher efficacement les vecteurs anormaux, même dans des grands jeux de données. Cela peut aider les équipes de sécurité à repérer les tentatives de violation et les sociétés de cartes de crédit à arrêter les transactions frauduleuses.
  • Génomique et bio-informatique. Les vecteurs et les bases de données vectorielles étant idéaux pour la correspondance de modèles et la détection d'anomalies, ils peuvent aider les chercheurs à faire correspondre les séquences génétiques pour comparer de grands volumes de données génétiques. Cela peut être utile dans des domaines tels que la prédiction des maladies et la découverte de médicaments.
  • Santé et recherche médicale. Les fournisseurs de soins de santé utilisent des bases de données vectorielles pour stocker et gérer les informations pertinentes pour les soins aux patients, telles que les dossiers médicaux, les données démographiques, les résultats de laboratoire et même les informations génétiques. Dans les essais cliniques, les données géospatiales liées aux sites d'essai, aux données démographiques des patients, aux résultats du traitement et aux événements indésirables peuvent être analysées pour déterminer l'efficacité d'un traitement.
  • Récupération d'images et de vidéos. Les opérations de récupération d'images et de vidéos utilisent des bases de données vectorielles pour la similarité et des recherches sémantiques qui identifient rapidement des images ou des vidéos au sein de catalogues d'options détaillés.

Avantages des bases de données vectorielles

Les bases de données vectorielles offrent de nombreux avantages, notamment une recherche rapide de similarité. Elles sont optimisées pour des recherches efficaces auprès des voisins les plus proches, permettant une récupération rapide d'éléments similaires, même dans des ensembles de données volumineux. Elles sont donc idéales pour les applications et les secteurs qui nécessitent un traitement et une analyse en temps réel des données non structurées, ainsi que pour les cas d'utilisation émergents de l'IA générative.

Les autres avantages sont les suivants :

  • Rentabilité. Les bases de données vectorielles, en particulier les options open source telles que PostGIS, MySQL avec des extensions vectorielles ou les bases de données multimodales avec des magasins vectoriels natifs, offrent des solutions rentables pour l'analyse géospatiale et les modèles d'IA générative.
  • Stockage efficace. Les techniques d'indexation spatiale dans les bases de données vectorielles permettent un stockage et une organisation efficaces des données vectorisées.
  • Récupération rapide. Les bases de données vectorielles sont indexées pour une extraction rapide des données en fonction des nombreux attributs d'un objet. Elles y parviennent en notant les relations et la proximité et en les utilisant pour exécuter des recherches rapidement.
  • Intégration avec le machine learning. Les bases de données vectorielles sont conçues pour s'intégrer aux structures et algorithmes de machine learning, ce qui entraîne le développement de modèles prédictifs, la détection d'anomalies, le clustering et d'autres analyses basées sur le machine learning.
  • Personnalisation. Les bases de données vectorielles permettent aux détaillants, aux services de streaming de musique et même aux entreprises du secteur de la santé d'adapter leurs services pour trouver rapidement des correspondances concernant les préférences et les besoins d'une personne.
  • Analyse en temps réel. Les bases de données vectorielles peuvent prendre en charge les opérations en mémoire, pour offrir des temps de réponse rapides aux requêtes et un traitement des données efficace. Cela leur permet d'effectuer des analyses en temps réel pour la prise de décision au quotidien.
  • Réduction de la complexité du développement. Les bases de données vectorielles peuvent fournir des API, des bibliothèques et des langages de requête qui évitent les complexités de la gestion des données et du développement d'applications. Cela peut réduire considérablement le temps impliqué dans le processus de développement d'applications, et donc le coût.
  • Évolutivité. Les bases de données vectorielles peuvent gérer et traiter efficacement des millions, voire des milliards d'objets vectoriels et, avec la bonne infrastructure, croître rapidement pour répondre à la demande.
  • Polyvalence. Les bases de données vectorielles prennent en charge un large éventail de données non structurées, comme les enregistrements audio, les documents texte et les images. Cette polyvalence leur permet de s'adapter à de nombreux cas d'utilisation et applications.

Comment Oracle peut-il répondre à vos besoins vectoriels ?

Que vous utilisiez l'IA générative ou quasiment toute autre opération utilisant des vecteurs, Oracle peut vous aider.

Oracle Database, la base de données d'entreprise la plus populaire au monde, fournit une plateforme de données unique pour les vecteurs et toutes vos données d'entreprise. Exploitez sans effort la capacité de recherche de similarité pour les données de votre entreprise sans avoir à superviser ni à synchroniser plusieurs bases de données. AI Vector Search vous permet d'effectuer des recherches sur des données structurées et non structurées en comprenant leur sémantique ou leur signification, ainsi que leurs valeurs.

La combinaison de données relationnelles, de documents JSON, de graphiques, de données géospatiales, de texte et de vecteurs dans une base de données unique vous permet de créer rapidement de nouvelles fonctionnalités dans vos applications. AI Vector Search dans Oracle Database peut également être utilisé dans un pipeline RAG avec n'importe quel service d'IA générative. En outre, le service de base de données HeatWave MySQL d'Oracle gère les vecteurs de manière native pour prendre en charge la recherche vectorielle et d'autres cas d'utilisation. Par exemple, vous pouvez l'utiliser avec le service RAG dans Oracle Cloud Infrastructure (OCI) pour ajouter une interface d'IA générative à vos documents propriétaires. Vous bénéficiez ainsi d'une IA experte dans les données opérationnelles de votre entreprise.

Les bases de données vectorielles sont essentielles pour les cas d'utilisation passionnants de l'IA, y compris les chatbots, qui révolutionnent le service client et les algorithmes qui transforment les soins de santé. Découvrez comment les entreprises exploitent dès à présent le pouvoir des vecteurs.

FAQ sur les bases de données vectorielles

Quand utiliser une base de données vectorielle ?

Une base de données vectorielle peut être utilisée pour une grande variété de cas d'utilisation, y compris des applications géospatiales, telles que la logistique d'expédition ou la recherche environnementale, des recommandations pour les options de vente au détail ou de divertissement en ligne, ou, plus récemment, comme entrepôt principal par les organisations individuelles, pour les données qui prennent en charge l'IA générative.

Netflix utilise-t-il des bases de données vectorielles ?

Netflix a annoncé utiliser des bases de données vectorielles pour alimenter ses moteurs de recommandation populaires. L'entreprise applique des incorporations vectorielles à chaque élément de son catalogue et la base de données vectorielle permet de rechercher des titres similaires en temps réel.