Générer des embeddings multimodaux

Vous pouvez générer des embeddings multimodaux dans AlloyDB pour PostgreSQL à l'aide du modèle multimodal Gemini Enterprise Agent Platform compatible, multimodalembedding@001.

Vous pouvez utiliser les modèles d'embedding multimodal Agent Platform mentionnés dans Modèles compatibles.

Dans cette page, nous partons du principe que vous connaissez AlloyDB pour PostgreSQL et les concepts de l'IA générative. Pour en savoir plus, consultez Que sont les embeddings ?

Avant de commencer

Avant d'utiliser les embeddings multimodaux, procédez comme suit :

Intégrer Agent Platform et installer l'extension

  1. Configurer l'accès des utilisateurs aux modèles Agent Platform
  2. Vérifiez que la dernière version de google_ml_integration est installée.
    1. Pour vérifier la version installée, exécutez la commande suivante :

      SELECT extversion FROM pg_extension WHERE extname = 'google_ml_integration';
      extversion 
      ------------
      1.5.2
      (1 row)
    2. Si l'extension n'est pas installée ou si la version installée est antérieure à la version 1.5.2, mettez-la à jour.

      CREATE EXTENSION IF NOT EXISTS google_ml_integration;
      ALTER EXTENSION google_ml_integration UPDATE;

      Si vous rencontrez des problèmes lors de l'exécution des commandes précédentes ou si l'extension n'est pas mise à jour vers la version 1.5.2 après l'exécution des commandes précédentes, contactez l'assistanceGoogle Cloud .

  3. Pour utiliser la fonctionnalité du moteur de requêtes AlloyDB/AI, définissez l'indicateur google_ml_integration.enable_ai_query_engine sur on.

    SQL

    1. Activez le moteur de requête IA pour la session en cours.
      SET google_ml_integration.enable_ai_query_engine = on;
    2. Activez des fonctionnalités pour une base de données spécifique dans toutes les sessions.
      ALTER DATABASE DATABASE_NAME SET google_ml_integration.enable_ai_query_engine = 'on';
    3. Activez le moteur de requête IA pour un utilisateur spécifique, pour toutes les sessions et bases de données.
      ALTER ROLE postgres SET google_ml_integration.enable_ai_query_engine = 'on';

    Console

    Pour modifier la valeur de l'option google_ml_integration.enable_ai_query_engine, suivez les étapes décrites dans Configurer les options de base de données d'une instance.

    gcloud

    Pour utiliser la gcloud CLI, vous pouvez installer et initialiser la Google Cloud CLI, ou utiliser Cloud Shell.

    Vous pouvez modifier la valeur de l'option google_ml_integration.enable_ai_query_engine. Pour en savoir plus, consultez Configurer les options de base de données d'une instance.

    gcloud alloydb instances update INSTANCE_ID \
      --database-flags google_ml_integration.enable_ai_query_engine=on \
      --region=REGION_ID \
      --cluster=CLUSTER_ID \
      --project=PROJECT_ID

Accéder aux données dans Cloud Storage pour générer des embeddings multimodaux

  • Pour générer des embeddings multimodaux, référencez le contenu dans Cloud Storage à l'aide d'un URI gs://.
  • Accédez au contenu Cloud Storage via l'agent de service de la plate-forme d'agents de votre projet actuel. Par défaut, l'agent de service Agent Platform est déjà autorisé à accéder au bucket du même projet. Pour en savoir plus, consultez l'index des rôles et autorisations IAM.
  • Pour accéder aux données d'un bucket Cloud Storage dans un autre projet Google Cloud , exécutez la commande gcloud CLI suivante pour attribuer le rôle Lecteur des objets de l'espace de stockage (roles/storage.objectViewer) à l'agent de service Agent Platform de votre projet AlloyDB.

    gcloud projects add-iam-policy-binding <ANOTHER_PROJECT_ID> \
    --member="serviceAccount:service-<PROJECT_ID>@gcp-sa-aiplatform.iam.gserviceaccount.com" \
    --role="roles/storage.objectViewer"

    Pour en savoir plus, consultez Définir et gérer des stratégies IAM sur des buckets.

Pour générer des embeddings multimodaux, sélectionnez l'un des schémas suivants.

Générer des embeddings multimodaux

Pour générer des embeddings textuels pour un point de terminaison de modèle multimodalembedding@001, exécutez l'instruction suivante :

SELECT
  ai.text_embedding(
    model_id => 'multimodalembedding@001',
    content => 'TEXT');

Remplacez TEXT par le texte pour lequel générer l'embedding.

Pour générer des embeddings d'image pour un point de terminaison de modèle multimodalembedding@001 enregistré où le type MIME de l'image est image/jpeg par défaut, exécutez l'instruction suivante :

SELECT
  ai.image_embedding(
    model_id => 'multimodalembedding@001',
    image => 'IMAGE_PATH_OR_TEXT',
    mimetype => MIMETYPE');

Remplacez les éléments suivants :

  • IMAGE_PATH_OR_TEXT avec l'URI Cloud Storage de l'image, par exemple gs://my-bucket/embeddings/flowers.jpeg, ou la chaîne base64 de l'image.
  • MIMETYPE par le type MIME de l'image, par exemple image/jpeg. Pour obtenir la liste complète des types MIME compatibles, consultez l'API Multimodal Embeddings.

Pour générer des embeddings vidéo pour un point de terminaison de modèle multimodalembedding@001 enregistré, exécutez l'instruction suivante :

SELECT
  ai.video_embedding(
    model_id => 'multimodalembedding@001',
    video => 'VIDEO_URI');

Remplacez VIDEO_URI par l'URI Cloud Storage de la vidéo cible (par exemple, gs://my-bucket/embeddings/supermarket-video.mp4) ou par la chaîne base64 de la vidéo. Il s'agit de tableaux bidimensionnels auxquels vous pouvez accéder en utilisant une syntaxe de type my_array[0][5]. Pour en savoir plus, consultez Tableaux.

Étapes suivantes