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.
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.
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.
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 :
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.
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").
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, 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.
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.
Commencez à créer des applications sur Google Cloud avec 300 $ de crédits offerts et plus de 20 produits toujours gratuits.