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

Une base de données vectorielle est une base de données qui vous permet de stocker, d'indexer et d'interroger des embeddings de vecteurs ou des représentations numériques de données non structurées, telles que du texte, des images ou des fichiers audio.

Google Cloud intègre ces fonctionnalités de niveau entreprise directement dans ses services gérés, y compris AlloyDB pour PostgreSQL, Spanner et BigQuery. Vous pouvez ainsi créer des applications intelligentes, sans avoir à gérer une infrastructure distincte.

Bases de données vectorielles : exploitez tout le potentiel de la recherche sémantique

Que sont les embeddings vectoriels ?

Les embeddings vectoriels sont des représentations numériques de données, généralement définies sous la forme de tableaux de nombres à virgule flottante. Ils traduisent les données complexes et non structurées (comme du texte, des images ou du contenu audio) dans un format que les modèles de machine learning peuvent traiter.

En mappant ces données dans un espace vectoriel, les embeddings capturent la signification sémantique : les éléments similaires sont positionnés plus près les uns des autres, tandis que les éléments différents sont plus éloignés. Cette relation spatiale aide les systèmes à identifier les liens entre les points de données en fonction du contexte et du sens, et pas seulement des correspondances de mots clés.

Autres types de données acceptés

Si certaines bases de données spécialisées ne sont compatibles qu'avec les embeddings vectoriels, d'autres prennent en charge de nombreux types de données et de requêtes en plus des embeddings. C'est essentiel pour créer des applications d'IA générative à partir de données enrichies et réelles. Au fur et à mesure que les avantages des requêtes sémantiques utilisant des embeddings de vecteurs deviendront évidents, la plupart des bases de données ajouteront la prise en charge des vecteurs. À l'avenir, nous pensons que toute base de données sera une base de données vectorielle.

Découvrez comment la recherche vectorielle de Vertex AI permet de créer des applications d'IA générative hautes performances. La recherche vectorielle de Vertex AI est basée sur ScaNN, une technologie de recherche vectorielle évolutive et efficace développée par Google Research, ce qui en fait la solution idéale pour gérer de grands ensembles de données et les besoins de recherche en temps réel. Pour en savoir plus sur la recherche vectorielle et les embeddings, regardez la vidéo ci-dessous et commencez par consulter ce guide de démarrage rapide.

Regardez cette vidéo pour découvrir comment créer des applications basées sur des LLM avec des embeddings, la recherche vectorielle et le RAG.

Comment fonctionne une base de données vectorielle ?

Pour interroger efficacement un grand nombre de vecteurs, vous devez disposer de stratégies d'indexation et de recherche spécialisées, différentes de celles utilisées pour les champs de texte ou numériques traditionnels. Comme les vecteurs n'ont pas d'ordre logique unique, les bases de données vectorielles s'appuient sur les mécanismes suivants pour récupérer les données :

  • Recherche des k plus proches voisins (KNN) : le cas d'utilisation le plus courant consiste à identifier les "k" vecteurs les plus proches d'un vecteur de requête. Des métriques de distance telles que le produit scalaire, la similarité cosinus ou la distance euclidienne sont utilisées pour mesurer la proximité dans l'espace vectoriel.
  • Voisins approximatifs les plus proches (ANN) : le calcul de la distance exacte entre un vecteur de requête et chaque autre vecteur peut être coûteux en ressources de calcul. Pour réduire ce coût, les bases de données utilisent des algorithmes ANN. Ces algorithmes peuvent améliorer considérablement la vitesse de recherche en sacrifiant une petite partie de la justesse (rappel), ce qui constitue un compromis acceptable pour la plupart des applications de recherche sémantique.
  • Indexation vectorielle : pour accélérer les recherches, les index vectoriels organisent les données de sorte que les clusters de vecteurs proches soient regroupés. Les structures courantes incluent les listes (qui représentent des clusters de vecteurs), les graphiques (qui connectent les vecteurs à leurs voisins) et les arbres (dont les branches représentent des sous-ensembles de clusters). Chaque type d'index offre différents compromis en termes de vitesse de recherche, de consommation de mémoire et de temps de création de l'index.
  • Filtrage des métadonnées : la plupart des applications nécessitent plus que la simple similarité sémantique. Par exemple, un utilisateur peut rechercher un livre semblable à "histoire touchante sur un poisson" (recherche vectorielle), mais limiter les résultats aux articles "de moins de 20 $" (filtre de métadonnées). Les bases de données vectorielles avancées combinent ces prédicats SQL avec la similarité vectorielle pour exécuter des requêtes hybrides puissantes.

Cas d'utilisation des bases de données vectorielles

Les embeddings vectoriels capturent la signification sémantique des données complexes. Combinés à des bases de données vectorielles, qui offrent des fonctionnalités d'indexation et de récupération efficaces, ils permettent aux développeurs de créer un large éventail d'applications intelligentes et d'outils de traitement des données.

Les développeurs peuvent utiliser des bases de données vectorielles comme base de connaissances externe pour les grands modèles de langage (LLM). En récupérant un contexte pertinent et propriétaire avant d'envoyer un prompt au modèle, les applications peuvent réduire les hallucinations et fournir des réponses factuellement exactes et spécifiques à un domaine. C'est essentiel pour créer des agents d'assistance optimisés par l'IA, des analyseurs de documents juridiques et des systèmes de gestion des connaissances internes.

Les bases de données vectorielles permettent aux développeurs de créer des systèmes de personnalisation qui vont au-delà du filtrage collaboratif. En représentant le comportement des utilisateurs et les attributs des produits sous forme de vecteurs, les applications peuvent identifier des éléments similaires ou associer les utilisateurs à des contenus qui correspondent à leurs préférences en temps réel. Cette architecture prend en charge les suggestions de produits pour l'e-commerce, les flux de contenu et les recommandations de streaming multimédia.

Contrairement à la recherche traditionnelle basée sur les mots clés, les bases de données vectorielles permettent de créer des applications de recherche sémantique qui comprennent l'intention utilisateur. Les développeurs peuvent créer des expériences de recherche qui permettent aux utilisateurs d'interroger le système par concept plutôt que par une formulation exacte. De plus, comme les vecteurs peuvent représenter différents types de données dans le même espace, vous pouvez créer des outils de recherche multimodale. Les utilisateurs peuvent ainsi rechercher des images à l'aide de descriptions textuelles ou trouver des documents associés à l'aide d'une image d'entrée.

Les bases de données vectorielles permettent d'identifier des schémas irréguliers dans des ensembles de données volumineux. En établissant un espace vectoriel qui représente des transactions ou un comportement "normaux", les développeurs peuvent détecter de façon programmatique les données aberrantes qui s'éloignent des clusters établis. Cette fonctionnalité est essentielle pour créer des systèmes de détection de la fraude financière, des outils de surveillance de la sécurité réseau et des vérifications de l'état de l'infrastructure IT.

Dans les workflows d'ingénierie des données, les bases de données vectorielles permettent de nettoyer et d'unifier des ensembles de données disparates. En comparant les embeddings des fiches client ou des fiches produit, les systèmes peuvent identifier les entrées en double, même si le texte varie légèrement (par exemple, "Main St." au lieu de "Main Street"). Les organisations disposent ainsi d'une vue unique et précise de leurs données.

Bases de données vectorielles sur Google Cloud

AlloyDB pour PostgreSQL

AlloyDB pour PostgreSQL associe la compatibilité de PostgreSQL à l'infrastructure évolutive de Google. Il intègre la prise en charge des embeddings vectoriels via l'extension pgvector standard et l'améliore avec l'index ScaNN de Google. Cela permet d'accélérer les requêtes vectorielles et d'activer le "filtrage intégré", qui peut aider à optimiser les recherches hybrides en évaluant simultanément la similarité vectorielle et les filtres de métadonnées pour améliorer les performances.

Exemple : Recherche hybride de biens immobiliers

Prenons l'exemple d'une application immobilière dans laquelle les utilisateurs peuvent rechercher des maisons en fonction de leur style (par exemple, "style moderne du milieu du siècle avec lumière naturelle") tout en respectant scrupuleusement des contraintes strictes (par exemple, "3 chambres", "moins de 800 000 $", "dans l'académie scolaire A").

  • Problème : une recherche vectorielle standard peut renvoyer une maison de style "milieu de siècle" qui coûte 2 millions de dollars ou qui se trouve dans la mauvaise académie. Une requête SQL standard peut filtrer par prix, mais ne peut pas comprendre l'expression "style milieu de siècle".
  • Solution : le filtrage intégré d'AlloyDB analyse l'index vectoriel et vérifie les filtres de métadonnées SQL (prix, emplacement) simultanément en une seule passe.
  • Résultat : l'application renvoie les maisons qui correspondent à l'esthétique et au budget en quelques millisecondes, sans la pénalité de performances liée au post-filtrage des résultats.

Google Cloud intègre des fonctionnalités de recherche vectorielle directement dans ses principaux services de base de données, ce qui vous aide à opérationnaliser l'IA générative à l'aide de vos données et workflows existants.

Spanner

Spanner, la base de données de Google distribuée dans le monde entier, prend en charge la recherche vectorielle pour les applications transactionnelles. Elle peut fournir une recherche vectorielle hautement disponible et évolutive à l'aide d'algorithmes de recherche exacte et approximative du voisin le plus proche. Cela permet aux applications mondiales d'implémenter des fonctionnalités telles que les recommandations en temps réel ou la recherche sémantique tout en maintenant une cohérence et une fiabilité strictes.

Exemple : Recommandations en temps réel pour l'e-commerce

Une plate-forme d'e-commerce mondiale souhaite créer un moteur de recommandations capable de traiter des recherches utilisateur vagues, comme "meilleures chaussures de randonnée pour temps pluvieux", tout en garantissant la disponibilité immédiate des produits.

  • Problématique : la correspondance traditionnelle par mots clés passe à côté des produits qui sont pertinents, mais dont la description ne contient pas les termes de recherche exacts (par exemple, une description indiquant "étanche" ne correspondra pas à une recherche sur le terme "pluie"). De plus, la vérification de la disponibilité des stocks dans une base de données vectorielle distincte crée une latence et des risques d'incohérence des données lors des événements à fort trafic.
  • Solution : la plate-forme ajoute une colonne de vecteurs à sa table "Products" Spanner existante et génère des embeddings à l'aide de Vertex AI via SQL. Elle utilise la recherche vectorielle de Spanner pour exécuter une requête hybride qui trouve des produits sémantiquement similaires tout en appliquant simultanément une vérification stricte de l'inventaire ("InventoryCount" > 0).
  • Résultat : les clients reçoivent des recommandations de produits précises et personnalisées, qui sont garantis en stock, avec la faible latence et la cohérence globale nécessaires pour une transaction en direct.

BigQuery

BigQuery vous permet d'effectuer des analyses vectorielles sur des ensembles de données volumineux, sans déplacer les données hors de votre entrepôt de données. La fonction VECTOR_SEARCH vous permet d'effectuer des recherches de similarité à l'aide du langage SQL standard. Cette approche est particulièrement utile pour les cas d'utilisation d'analyse, comme le clustering de clients en fonction de leur comportement ou l'identification de tendances de produits similaires sur des milliards de lignes de données.

Exemple : Détection des menaces de cybersécurité à grande échelle

Une équipe de sécurité doit analyser des pétaoctets de journaux de serveur pour identifier une activité malveillante. Les pirates informatiques modifient souvent légèrement leur code pour échapper aux recherches de mots clés exacts.

  • Problème : les recherches de mots clés ne détectent pas les variations subtiles d'attaques connues (par exemple, le changement de nom d'une variable dans un script malveillant).
  • Solution : l'équipe utilise BigQuery afin de générer des embeddings pour des milliards d'entrées de journal. Elle exécute ensuite une requête VECTOR_SEARCH pour trouver tous les journaux sémantiquement similaires à une signature d'exploitation connue, ce qui permet d'identifier de nouvelles variantes de l'attaque.
  • Résultat : l'équipe peut détecter et regrouper les menaces zero-day sur des années de données historiques à l'aide de requêtes SQL simples, sans avoir à déplacer les données vers une base de données vectorielle spécialisée.

Relevez vos plus grands défis avec Google Cloud

Les nouveaux clients bénéficient de 300 $ de crédits à dépenser sur Google Cloud.
Contactez un spécialiste des ventes Google Cloud pour discuter plus en détail de votre problématique.

Passez à l'étape suivante

Commencez à créer des applications sur Google Cloud avec 300 $ de crédits offerts et plus de 20 produits toujours gratuits.

  • Faites des économies grâce à notre approche transparente concernant la tarification
  • Le paiement à l'usage de Google Cloud permet de réaliser des économies automatiques basées sur votre utilisation mensuelle et des tarifs réduits pour les ressources prépayées. Contactez-nous dès aujourd'hui afin d'obtenir un devis.
Google Cloud