Exporter des embeddings de Spanner vers Vertex AI Vector Search

Vertex AI Vector Search permet aux utilisateurs de rechercher des éléments sémantiquement similaires à l'aide de représentations vectorielles continues. Le Workflow de recherche vectorielle Spanner vers Vertex AI vous permet d'intégrer votre base de données Spanner à la recherche vectorielle pour effectuer une recherche de similarité vectorielle sur vos données Spanner.

Le diagramme suivant montre le workflow d'application de bout en bout pour activer et utiliser Vector Search sur vos données Spanner:

Workflow Spanner vers Vector Search.

Voici le workflow général :

  1. Générez et stockez des embeddings vectoriels.

    Vous pouvez générer des représentations vectorielles continues de vos données, puis les stocker et les gérer dans Spanner avec vos données opérationnelles. Vous pouvez générer des embeddings avec la fonction SQL ML.PREDICT de Spanner pour accéder au modèle textembedding-gecko de Vertex AI ou utiliser d'autres modèles d'embedding déployés sur Vertex AI.

  2. Synchronisez les embeddings avec Vector Search.

    Utilisez le workflow de recherche vectorielle Spanner vers Vertex AI, qui est déployé à l'aide de workflows pour exporter et importer des représentations vectorielles continues dans un index de recherche vectorielle. Vous pouvez utiliser Cloud Scheduler pour planifier régulièrement ce workflow afin de mettre à jour votre index de recherche vectorielle avec les dernières modifications apportées à vos représentations vectorielles continues dans Spanner.

  3. Effectuez une recherche de similarité vectorielle à l'aide de votre index Vector Search.

    Interrogez l'index de recherche vectorielle pour rechercher et trouver des résultats pour des éléments sémantiquement similaires. Vous pouvez effectuer des requêtes à l'aide d'un point de terminaison public ou via l'appairage de VPC.

Exemple d'utilisation

Voici un cas d'utilisation possible de Vector Search : un marchand en ligne qui dispose d'un inventaire de centaines de milliers d'articles. Dans ce scénario, vous êtes développeur pour un marchand en ligne et vous souhaitez utiliser la recherche de similarité vectorielle sur votre catalogue de produits dans Spanner pour aider vos clients à trouver des produits pertinents en fonction de leurs requêtes de recherche.

Suivez les étapes 1 et 2 présentées dans le workflow général pour générer des représentations vectorielles continues pour votre catalogue de produits, puis synchronisez-les avec Vector Search.

Imaginons maintenant qu'un client parcourant votre application effectue une recherche telle que "meilleurs shorts de sport à séchage rapide que je peux porter dans l'eau". Lorsque votre application reçoit cette requête, vous devez générer un embedding de requête pour cette requête de recherche à l'aide de la fonction SQL ML.PREDICT de Spanner. Assurez-vous d'utiliser le même modèle d'embeddings que celui utilisé pour générer les embeddings de votre catalogue de produits.

Interrogez ensuite l'index Vector Search pour les ID de produit dont les embeddings correspondants sont similaires à l'embedding de la requête généré à partir de la requête de recherche de votre client. L'index de recherche peut recommander des ID de produit pour des articles sémantiquement similaires, tels que des shorts de wakeboard, des vêtements de surf et des maillots de bain.

Une fois que Vector Search a renvoyé ces ID de produits similaires, vous pouvez interroger Spanner pour obtenir les descriptions, le nombre d'articles en stock, le prix et d'autres métadonnées pertinentes des produits, puis les afficher à votre client.

Vous pouvez également utiliser l'IA générative pour traiter les résultats renvoyés par Spanner avant de les présenter à votre client. Par exemple, vous pouvez utiliser les grands modèles d'IA générative de Google pour générer un résumé concis des produits recommandés. Pour en savoir plus, consultez ce tutoriel sur l'utilisation de l'IA générative pour obtenir des recommandations personnalisées dans une application d'e-commerce.

Étape suivante