Accueil

Thèmes

Base de données vectorielle

Qu’est-ce qu’une base de données vectorielle ?
Découvrir la solution de base de données vectorielle d’IBM Abonnez-vous à la Think Newsletter
Collage de pictogrammes représentant des nuages, un diagramme circulaire, des graphiques

Date de mise à jour : 29 juillet 2024
Contributeurs : Jim Holdsworth, Matthew Kosinski

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

Les bases de données vectorielles stockent, gèrent et indexent les données vectorielles à haute dimension. Les points de données sont stockés sous forme de tableaux de nombres appelés « vecteurs », qui sont regroupés en fonction de leur similarité. Ce design permet des requêtes à faible latence, ce qui le rend idéal pour les applications d’IA.

Les bases de données vectorielles gagnent en popularité, car elles offrent la rapidité et la performance nécessaires pour développer des cas d’utilisation et des applications de l’intelligence artificielle (IA) générative. Selon Gartner, d’ici 2026, plus de 30 % des entreprises auront adopté les bases de données vectorielles pour créer leurs modèles de fondation à partir de données d’entreprise pertinentes.1

Bases de données vectorielles et bases de données traditionnelles 

Contrairement aux bases de données relationnelles traditionnelles, qui comportent des lignes et des colonnes, les points de données des bases de données vectorielles sont représentés par des vecteurs ayant un nombre fixe de dimensions. Grâce aux intégrations vectorielles à haute dimension, les bases de données vectorielles gèrent mieux les jeux de données non structurées.

La nature des données a connu une profonde transformation. Elle ne se limite plus aux informations structurées, faciles à stocker dans une base de données traditionnelle. Les données non structurées (publications sur les réseaux sociaux, images, vidéos, clips audio, etc.) augmentent de 30 à 60 % d’une année sur l’autre.2

Les bases de données relationnelles excellent dans la gestion des jeux de données structurées et semi-structurées dans divers formats. Le chargement des sources de données non structurées dans une base de données relationnelle traditionnelle pour stocker, gérer et préparer les données pour l’intelligence artificielle (IA) est un processus gourmand en main-d’œuvre, surtout dans les nouveaux cas d’utilisation de l’IA générative, comme la recherche de similarité.

La recherche traditionnelle représente généralement les données à l’aide de jetons ou caractéristiques discrets, comme les mots-clés, les étiquettes ou les métadonnées. Elle s’appuie sur les correspondances exactes pour récupérer des résultats pertinents. Par exemple, la recherche « smartphone » renverra des résultats contenant le mot « smartphone ».

La recherche vectorielle, quant à elle, représente les données sous forme de vecteurs denses, dont la plupart des éléments, voire tous sont non nuls. Les vecteurs sont représentés dans un espace vectoriel continu, l’espace mathématique dans lequel les données sont représentées sous forme de vecteurs.

Les représentations vectorielles permettent la recherche de similarité. Par exemple, la recherche vectorielle « smartphone » peut également renvoyer des résultats pour « téléphone portable » et « appareils mobiles ».

Chaque dimension du vecteur dense correspond à une caractéristique latente des données. Une caractéristique latente est une caractéristique sous-jacente qui n’est pas directement observée, mais déduite des données grâce à des modèles mathématiques ou des algorithmes.

Les caractéristiques latentes identifient les schémas cachés et les relations entre les données, ce qui permet des représentations plus significatives et plus précises des éléments sous forme de vecteurs dans un espace à haute dimension.

Choisir le bon modèle de fondation

Utilisez ce cadre de sélection de modèles pour choisir le modèle le plus approprié tout en équilibrant vos exigences de performance avec les coûts, les risques et les besoins de déploiement.

Contenu connexe Obtenir l’eBook sur les magasins de données pour l’IA
Qu’est-ce qu’un vecteur ?

Les vecteurs sont un sous-ensemble de tenseurs qui, dans le machine learning (ML), désigne de façon générique un ou plusieurs ensemble de nombres dans un espace de dimension n. On peut comparer les tenseurs à un système de comptabilité mathématique pour les données. En partant du plus petit élément :

  • Un scalaire est un tenseur d’ordre zéro, contenant un seul nombre. Par exemple, un système de modélisation des données météorologiques peut représenter la température maximale d’une journée (en Fahrenheit) sous forme de scalaire : 85.

  • Un vecteur est donc un tenseur unidimensionnel (ou d’ordre 1), qui contient plusieurs scalaires du même type de données. Par exemple, un modèle météorologique peut utiliser les températures basses, moyennes et élevées de la journée sous forme de vecteur : 62, 77, 85. Chaque composante scalaire est une caractéristique, ou dimension du vecteur, représentant une caractéristique de la météo de cette journée.

Les nombres vectoriels peuvent représenter des objets complexes comme les mots, les images, les vidéos et l’audio générés par un modèle de ML. Ces données vectorielles à haute dimension contiennent des caractéristiques multiples et sont essentielles au machine learning, au traitement automatique du langage naturel (NLP), ainsi qu’à d’autres tâches d’IA. Voici quelques exemples d’utilisation des données vectorielles : 

  • Texte : les chatbots doivent comprendre le langage naturel. Pour ce faire, ils s’appuient sur des vecteurs qui représentent des mots, des paragraphes et des documents entiers.

  • Images : les pixels d’une image peuvent être décrits à l’aide de données numériques et combinés pour obtenir un vecteur à haute dimension correspondant à cette image. 

  • Vocal/audio : tout comme les images, les ondes sonores peuvent être décomposées en données numériques et représentées sous forme de vecteurs. C’est ce qui rend possibles les applications d’IA comme la reconnaissance vocale. 
Qu’est-ce qu’un plongement vectoriel ? 

Les intégrations vectorielles sont des représentations numériques des points de données qui convertissent différents types de données, y compris les données non mathématiques comme les mots, l’audio et les images, en tableaux de nombres que les modèles de ML peuvent traiter.

Les modèles d’intelligence artificielle (IA), des simples algorithmes de régression jusqu’aux réseaux neuronaux complexes utilisés dans l’apprentissage profond, fonctionnent grâce à une logique mathématique.

Toutes les données utilisées par un modèle d’IA, y compris les données non structurées, doivent être enregistrées numériquement. L'intégration vectorielle permet de convertir un point de données non structurées en tableau de nombres exprimant la signification originelle de ces données.

Voici un exemple simplifié de plongements lexicaux pour un très petit corpus (2 mots), où chaque mot est représenté sous la forme d’un vecteur tridimensionnel :

  • chat          [0.2, -0.4, 0.7]
  • chien         [0.6, 0,1, 0,5]

Dans cet exemple, chaque mot (« chat ») est associé à un vecteur unique ([0.2, -0.4, 0.7]). Les valeurs du vecteur représentent la position du mot dans un espace vectoriel tridimensionnel continu.

Les mots ayant des significations ou des contextes similaires sont censés avoir des représentations vectorielles similaires. Par exemple, les vecteurs « chat » et « chien » sont proches, ce qui reflète leur relation sémantique.

Les modèles d’intégration sont entraînés à convertir les points de données en vecteurs. Les bases de données vectorielles stockent et indexent les sorties de ces modèles. Dans la base de données, les vecteurs peuvent être regroupés ou identifiés comme opposés en fonction de la signification sémantique ou des caractéristiques, quel que soit le type de données, ou presque.

Les intégrations vectorielles constituent l’épine dorsale des recommandations, des chatbots et des applications d’IA générative comme ChatGPT.

Prenons l’exemple des mots « voiture » et « véhicule ». Ils ont un sens proche, mais sont orthographiés différemment. Pour qu’une application d’IA permette une recherche sémantique efficace, les représentations vectorielles de « voiture » et de « véhicule » doivent capter leur similarité sémantique. En machine learning, les intégrations représentent des vecteurs à haute dimension qui encodent ces informations sémantiques.

Tutoriel : Intégrer l’IA générative à l’automatisation intelligente des workflows avec la plateforme IBM watsonx
Comment les bases de données vectorielles sont-elles utilisées ?

Les bases de données vectorielles remplissent trois fonctions essentielles dans les applications d’IA et de ML :

  • Stockage des vecteurs
  • Indexation des vecteurs
  • Recherche de similarités basée sur des requêtes ou des prompts

Les bases de données vectorielles s’appuient sur plusieurs algorithmes pour effectuer une recherche approximative des plus proches voisins (APPV). Les algorithmes sont ensuite rassemblés dans un pipeline pour récupérer et fournir avec rapidité et précision les données voisines du vecteur interrogé.

Par exemple, la recherche APPV permet d’identifier les produits visuellement similaires dans un catalogue d’e-commerce. Elle est également utilisée dans la détection des anomalies, la classification et la recherche sémantique. Étant donné qu’un jeu de données n’est exécuté qu’une seule fois sur un modèle, les résultats sont renvoyés en quelques millisecondes.

Stockage des vecteurs

Les bases de données vectorielles stockent les sorties de l’algorithme du modèle d’intégration : les intégrations vectorielles. Elles stockent également les métadonnées de chaque vecteur, notamment le titre, la description et le type de données, qui peuvent être interrogées grâce aux filtres de métadonnées.

La base de données ingère et stocke ces intégrations pour faciliter et accélérer la récupération des résultats de recherche de similarités, en faisant correspondre le prompt de l’utilisateur avec une intégration vectorielle similaire. 

Indexation des vecteurs

Les vecteurs doivent être indexés pour accélérer les recherches dans les espaces de données à haute dimension. Les bases de données vectorielles créent des index sur les intégrations vectorielles pour les fonctions de recherche.

La base de données vectorielle indexe les vecteurs à l’aide d’un algorithme ML. L’indexation mappe les vecteurs à de nouvelles structures de données qui permettent des recherches de similarités ou de distances plus rapides, telles que la recherche des plus proches voisins entre les vecteurs.

Les vecteurs peuvent être indexés à l’aide d’algorithmes comme HNSW (Hierarchical navigable Small World ), LSH (locality-sensitive hashing) ou encore la quantification de produit (PQ).

  • L’algorithme HNSW est très utilisé car il crée une structure arborescente. Chaque nœud de l’arbre présente un ensemble de vecteurs, ainsi que les hiérarchies propres à chacun d’entre eux. Les similitudes entre les vecteurs sont indiquées sur le bord entre les nœuds.

  • LSH indexe le contenu grâce à une recherche approximative des plus proches voisins. Pour plus de rapidité, l’index peut être optimisé en renvoyant un résultat approximatif, mais non exhaustif.

  • PQ convertit chaque jeu de données en représentation courte et peu gourmande en mémoire. Seules les représentations courtes sont stockées, et non l’ensemble des vecteurs.
Recherche de similarités basée sur des requêtes ou des prompts

Les vecteurs de requête sont des représentations vectorielles des requêtes de recherche. Lorsqu’un utilisateur interroge un modèle d’IA ou qu’il lui donne un prompt, celui-ci calcule le plongement de la requête ou du prompt. La base de données calcule ensuite les distances entre les vecteurs de requête et les vecteurs stockés dans l’index pour renvoyer des résultats similaires.

Les bases de données peuvent mesurer la distance entre les vecteurs à l’aide de divers algorithmes, comme la recherche des plus proches voisins. Les mesures peuvent également être effectuées à l’aide de différents indicateurs de similarité, comme la similarité cosinus.

La base de données renvoie les vecteurs qui se ressemblent le plus, ou les plus proches voisins du vecteur de requête, en fonction du score de similarité. Ces calculs permettent diverses tâches de machine learning comme les systèmes de recommandation, la recherche sémantique, la reconnaissance d’images, ainsi que d’autres tâches de traitement automatique du langage naturel. 

Avantages des bases de données vectorielles

Les bases de données vectorielles sont largement utilisées pour alimenter les applications d’entreprise optimisées par l’IA, car elles offrent de nombreux avantages :

  • Vitesse et performance
  • Évolutivité
  • Réduction du coût de possession
  • Gestion de données
  • Flexibilité
Vitesse et performance

Les bases de données vectorielles emploient diverses techniques d’indexation pour permettre une recherche plus rapide. L’indexation des vecteurs et les algorithmes de calcul des distances, comme la recherche des plus proches voisins, améliorent la performance des recherches dans les jeux de données de taille supérieure, qui comptent des millions, voire des milliards de points de données.

Il convient de noter que les bases de données vectorielles fournissent des résultats approximatifs. Pour les applications nécessitant une plus grande précision, il est préférable d’utiliser un autre type de base de données au prix d’un traitement plus lent.

Évolutivité

Les bases de données vectorielles peuvent stocker et gérer d’immenses quantités de données non structurées grâce à un dimensionnement horizontal avec des nœuds supplémentaires. La performance est ainsi maintenue au fur et à mesure que le volume de requêtes et de données augmente.

Réduction du coût de possession

Parce qu’elles permettent une récupération plus rapide des données, les bases de données vectorielles accélèrent l’apprentissage des modèles de fondation.

Gestion de données

Les bases de données vectorielles proposent généralement des fonctions intégrées qui facilitent la mise à jour et l’insertion de nouvelles données non structurées. 

Flexibilité

Les bases de données vectorielles sont conçues pour gérer la complexité accrue liée à l’utilisation d’images, de vidéos ou d’autres données multidimensionnelles.

Compte tenu des multiples cas d’utilisation allant de la recherche sémantique aux applications d’IA conversationnelles, les bases de données vectorielles peuvent être adaptées pour répondre aux besoins des entreprises et à leur exigences en matière d’IA. Les entreprises peuvent commencer par un modèle à usage général (par exemple, Granite d’IBM, Llama-2 de Meta ou Flan de Google), pour ensuite fournir leurs propres données dans une base de données vectorielle afin d’améliorer la sortie des modèles et des applications d’IA.

Considérations relatives aux bases de données vectorielles et à la stratégie de données

Les entreprises disposent d’un large choix en matière de bases de données vectorielles. Pour trouver celle qui répond au mieux à leurs besoins en matière de données et d’IA, bon nombre d’entre elles prennent en compte les critères suivants :

  • Types de bases de données vectorielles
  • Intégration à un écosystème de données
  • Quand l'indexation des vecteurs n’est pas optimale
  • Outils pour la création et le déploiement des bases de données vectorielles
Types de bases de données vectorielles

Vous avez le choix entre plusieurs alternatives.

  • Bases de données autonomes, propriétaires et entièrement vectorisées, comme Pinecone.

  • Solutions open source comme Weaviate ou Milvus, qui proposent des API RESTful intégrées et prennent en charge les langages de programmation Python et Java .

  • Les plateformes intégrant des fonctionnalités de bases de données vectorielles, comme IBM watsonx.data.

  • Bases de données vectorielles et extensions de recherche de bases de données comme l’extension open source pgvector de PostgreSQL, qui propose des capacités de recherche de similarité vectorielle. Les bases de données vectorielles SQL allient les avantages des bases de données SQL traditionnelles à la puissance des bases de données vectorielles.
Intégration à un écosystème de données

Les bases de données vectorielles ont des capacités à considérer non pas de façon autonome, mais comme faisant partie d’un large écosystème de données et d’IA.

Nombre d’entre elles proposent des API, des extensions natives ou peuvent être intégrées aux bases de données. Les bases de données vectorielles étant conçues pour exploiter les données afin d’améliorer les modèles, les entreprises doivent également mettre en place une gouvernance et une sécurité des données appropriées pour garantir la fiabilité des données utilisées pour entraîner les grands modèles de langage (LLM). 

Bon nombre de bases de données vectorielles s’appuient sur des kits de développement logiciel (SDK) spécifiques au langage de programmation, qui s’intègrent aux API. Grâce aux SDK, les développeurs gèrent plus facilement l’utilisation des données dans leurs applications.

Quand l'indexation des vecteurs n’est pas optimale

L’utilisation d’un magasin et d’un index de vecteurs convient parfaitement aux applications ou aux requêtes basées sur des faits, comme l’extraction d’informations à partir de documents complexes. 

Cependant, si vous demandez une synthèse des sujets, l’index de vecteurs n’est pas la solution qu’il vous faut. Dans ce cas, un LLM passerait en revue tous les contextes possibles sur ce thème dans les données.

Une option plus rapide consisterait à utiliser non pas un index vectoriel, mais un autre type d’index, comme l’index de liste, qui récupère immédiatement le premier élément de chaque listing.

Outils pour la création et le déploiement des bases de données vectorielles

Pour optimiser le développement des bases de données vectorielles, le cadre d’orchestration open source LangChain permet de développer des applications qui exploitent des LLM.

Disponibles dans les bibliothèques Python et Java, les outils et les API LangChain simplifient la création d’applications alimentées par les LLM, comme les chatbots et les agents conversationnels. LangChain propose des intégrations pour plus de 25 méthodes de représentation vectorielle différentes, et pour plus de 50 magasins de vecteurs (hébergés dans le cloud, mais aussi locaux).

Pour alimenter l’IA d’entreprise, on peut associer un data lakehouse à une base de données vectorielle intégrée. Les entreprises peuvent ainsi unifier, organiser et préparer les intégrations vectorisées destinées à leurs applications d’IA générative, et ce à l’échelle de leurs données fiables et gouvernées. Cela leur permet d’améliorer la pertinence et la précision de leurs workloads d’IA, comme les chatbots, les systèmes de recommandation personnalisés et les applications de recherche de similarité dans les images.

Cas d’utilisation des bases de données vectorielles

Les applications des bases de données vectorielles ne cessent de se multiplier. Voici quelques cas d’utilisation :

  • Génération augmentée par la récupération (RAG)
  • IA conversationnelle
  • Moteurs de recommandation
  • Recherche vectorielle
Génération augmentée par la récupération (RAG)

La génération augmentée par récupération (RAG) est un cadre d’IA qui permet aux grands modèles de langage (LLM) de récupérer des faits à partir d’une base de connaissances externe. Les bases de données vectorielles sont essentielles à la mise en œuvre de la RAG.

Les entreprises privilégient de plus en plus la RAG dans les workflows d’IA générative en raison de ses avantages : mise sur le marché accélérée, inférence efficace et fiabilité des sorties. Le cadre est particulièrement utile dans des cas d’utilisation comme le service client, les RH et la gestion des talents.

La RAG permet de s’assurer que le modèle est lié aux faits les plus récents et les plus fiables, et que les utilisateurs ont accès à ses sources afin de pouvoir vérifier ses affirmations. Ancrer le LLM dans des données fiables permet de réduire les hallucinations du modèle.

La RAG repose sur l’exploitation de données vectorielles à haute dimension pour enrichir les prompts avec des informations sémantiquement pertinentes et favoriser l’apprentissage en contexte des modèles de fondation.La RAG nécessite un stockage et une récupération efficaces pendant la phase d’inférence. C’est lors de cette dernière que le plus grand volume de données est traité.

Les bases de données vectorielles excellent dans l’indexation, le stockage et la récupération de ces vecteurs à haute dimension. En effet, elles offrent la rapidité, la précision et l’échelle nécessaires aux applications comme les moteurs de recommandation et les chatbots.

IA conversationnelle

Les bases de données vectorielles, surtout si utilisées pour mettre en œuvre des cadres RAG, permettent d’améliorer les interactions avec les agents conversationnels. En effet, elles renforcent la capacité de ces derniers à analyser les bases de connaissances appropriées avec efficacité et précision. Les agents sont en mesure de fournir des réponses contextuelles en temps réel aux requêtes utilisateur, ainsi que les documents sources de référence et les numéros de page correspondants.

Moteurs de recommandation

Les sites d’e-commerce, par exemple, peuvent utiliser les vecteurs pour représenter les préférences des clients et les attributs des produits. La similarité vectorielle leur permet de recommander des articles similaires aux achats antérieurs afin d’améliorer l’expérience utilisateur et d’augmenter le taux de rétention.

Recherche vectorielle

Cette technique de recherche permet de découvrir des éléments ou des points de données similaires, généralement représentés sous forme de vecteurs, dans les grandes collections. La recherche vectorielle identifie les relations sémantiques entre les éléments, permettant un traitement efficace par les modèles de machine learning et les applications d’intelligence artificielle. 

Ces recherches peuvent prendre plusieurs formes.

  • Recherche sémantique : faire des recherches selon le sens ou le contexte d’une requête pour obtenir des résultats plus précis et plus pertinents. Comme les mots et les phrases peuvent être représentés sous forme de vecteurs, les fonctionnalités de recherche vectorielle sémantique comprennent mieux l’intention de l’utilisateur que la recherche par mots-clés génériques. 

  • Recherche de similarité et applications : trouver des images, des données audio, vidéo ou textuelles similaires pour prendre en charge la reconnaissance vocale et d’images avancée, ainsi que le traitement automatique du langage naturel. Les images et les vidéos peuvent être indexées et récupérées en fonction de leur similarité.
Solutions
watsonx

IBM watsonx est une plateforme d’IA et de données conçue pour les entreprises. Créez facilement des applications d’IA sur mesure, gérez toutes vos sources de données et accélérez la mise en place de workflows d’IA responsables, le tout sur une seule et même plateforme. 

En savoir plus sur watsonx

IBM Cloud Databases for Elasticsearch

IBM Cloud Databases for Elasticsearch allie la flexibilité des moteurs de recherche plein texte à la puissance d’indexation des bases de données documentaires JSON. Conçu pour doper votre entreprise, IBM Cloud Databases for Elasticsearch associe modèles de machine learning (ML) intégrés, nœuds ML, types de données et algorithmes de recherche spécialisés.

En savoir plus sur IBM Cloud Databases for Elasticsearch
IBM Cloud Databases for PostgreSQL

IBM Cloud Databases for PostgreSQL est une base de données PostgreSQL à la demande conçue pour permettre aux équipes de se consacrer davantage au développement alliant haute disponibilité, orchestration des sauvegardes, récupération d’un instantané (PITR) et réplique en lecture, et ce en toute simplicité.

En savoir plus sur IBM Cloud Databases for PostgreSQL
Ressources Les modèles de fondation et les magasins de données libèrent le potentiel de l’IA générative

Les entreprises qui utilisent correctement les modèles d’IA générative bénéficient de nombreux avantages. Elles peuvent notamment améliorer leur efficacité opérationnelle, optimiser leur prise de décision et accélérer la création de leur contenu marketing.

Assistants d’IA générative IBM : guide complet de l’acheteur 2024

Consultez ce guide pour découvrir ce que les assistants IA d’IBM font le mieux et pour qui, comment les comparer aux autres et comment vous lancer.

Qu’est-ce que la génération augmentée de récupération ?

La RAG est un framework d’IA permettant de récupérer des faits à partir d’une base de connaissances externe afin que les LLM se basent sur les informations les plus précises et les plus récentes, et afin de donner aux utilisateurs des informations sur le processus génératif des LLM.

Passez à l’étape suivante

Faites évoluer les workloads d’IA pour toutes vos données n’importe où avec IBM watsonx.data, un entrepôt de données adapté à vos besoins basé sur une architecture data lakehouse ouverte.

Découvrir watsonx.data Réserver une démo en direct
Notes de bas de page

Tous les liens sont externes au site ibm.com

1 Gartner Innovation Insight : Vector DatabasesGartner, 4 septembre 2023.

2 2024 Strategic Roadmap for StorageGartner, 27 mai 2024.