Installer AlloyDB AI dans AlloyDB Omni

Cette page vous explique comment installer AlloyDB Omni et y intégrer AlloyDB AI.

AlloyDB AI est une suite de fonctionnalités incluses avec AlloyDB Omni qui vous permet de créer des applications d'IA générative d'entreprise. Pour en savoir plus sur les fonctionnalités de ML d'AlloyDB, consultez la page Créer des applications d'IA générative.

AlloyDB Omni avec AlloyDB AI vous permet d'interroger des modèles de ML distants pour travailler avec des prédictions en ligne et des embeddings de texte générés à partir de modèles de ML. AlloyDB Omni avec AlloyDB AI peut également traiter des représentations vectorielles continues à partir d'autres contenus, tels qu'une image, par exemple, si vous utilisez l'interface google_ml.predict_row et effectuez vous-même la traduction dans la requête.

En fonction de l'emplacement où vous souhaitez installer AlloyDB Omni avec l'IA AlloyDB, sélectionnez l'une des options suivantes:

Configurer votre instance AlloyDB Omni pour interroger des modèles distants

Vous pouvez interroger des modèles distants à l'aide de la gestion des points de terminaison de modèle en activant googleMLExtension dans le fichier manifeste de votre cluster de base de données.

Si vous souhaitez interroger des modèles Vertex AI, vous pouvez configurer le compte de service AlloyDB avec Vertex AI, créer un secret Kubernetes à l'aide de la clé et définir le secret Kubernetes dans le fichier manifeste du cluster de base de données.

Ajouter les autorisations Vertex AI au compte de service AlloyDB

Pour configurer AlloyDB Omni afin de interroger des modèles Vertex AI distants, procédez comme suit:

  1. Créez un compte de service avec Google Cloud.

  2. Créez une clé de compte de service, enregistrez-la au format JSON dans le fichier private-key.json, puis téléchargez-la.

  3. Stockez la clé dans un emplacement permanent de votre système de fichiers. Il se trouve à cet emplacement pendant toute la durée de vie de votre serveur AlloyDB Omni.

    Notez son emplacement dans votre système de fichiers. Vous en aurez besoin pour les étapes suivantes.

  4. Ajoutez les autorisations IAM (Identity and Access Management) Vertex AI au projet et au compte de service appropriés.

       gcloud projects add-iam-policy-binding PROJECT_ID \
           --member="serviceAccount:SERVICE_ACCOUNT_ID" \
           --role="roles/aiplatform.user"

    Remplacez les éléments suivants :

    • PROJECT_ID: ID de votre Google Cloud projet.

    • SERVICE_ACCOUNT_ID: ID du compte de service que vous avez créé à l'étape précédente. Cela inclut le suffixe @PROJECT_ID.iam.gserviceaccount.com complet (par exemple, my-service@my-project.iam.gserviceaccount.com).

Créer un secret Kubernetes à l'aide de la clé du compte de service

Pour créer un secret Kubernetes basé sur la clé de compte de service téléchargée dans les étapes précédentes, exécutez la commande suivante:

   kubectl create secret generic SECRET_NAME \
   --from-file=PATH_TO_SERVICE_ACCOUNT_KEY/private-key.json \
   -n NAMESPACE

Remplacez les éléments suivants :

  • SECRET_NAME: nom du secret utilisé lorsque vous créez un fichier manifeste DBCluster pour permettre à AlloyDB Omni d'accéder aux fonctionnalités d'AlloyDB AI. Par exemple, vertex-ai-key-alloydb.

  • PATH_TO_SERVICE_ACCOUNT_KEY: chemin d'accès à l'emplacement où vous avez téléchargé la clé de compte de service private-key.json.

  • NAMESPACE: espace de noms du cluster de base de données.

Installer l'opérateur AlloyDB Omni

Installez l'opérateur AlloyDB Omni en suivant les étapes décrites dans Installer l'opérateur AlloyDB Omni.

Créer un cluster de base de données avec AlloyDB AI

  1. Créez un cluster de base de données avec AlloyDB AI.

    Lorsque vous définissez enabled sur true sous le champ googleMLExtension, vous pouvez interroger des modèles distants. Définissez vertexAIKeyRef sur le secret Kubernetes si vous souhaitez interroger des modèles Vertex AI.

    apiVersion: v1
    kind: Secret
    metadata:
      name: db-pw-DB_CLUSTER_NAME
    type: Opaque
    data:
      DB_CLUSTER_NAME: "ENCODED_PASSWORD"
    ---
    apiVersion: alloydbomni.dbadmin.goog/v1
    kind: DBCluster
    metadata:
      name: DB_CLUSTER_NAME
    spec:
      databaseVersion: "15.7.0"
      primarySpec:
        adminUser:
          passwordRef:
            name: db-pw-DB_CLUSTER_NAME
        features:
          googleMLExtension:
            enabled: true
            config:
              vertexAIKeyRef: VERTEX_AI_SECRET_NAME
              vertexAIRegion: VERTEX_AI_REGION
        resources:
          cpu: CPU_COUNT
          memory: MEMORY_SIZE
          disks:
          - name: DataDisk
            size: DISK_SIZE
            storageClass: standard
    

    Remplacez les éléments suivants :

    • DB_CLUSTER_NAME: nom de ce cluster de base de données (par exemple, my-db-cluster).

    • VERTEX_AI_SECRET_NAME (facultatif): secret Vertex AI que vous avez créé lors des étapes précédentes. Vous devez définir cette option si vous souhaitez appeler des modèles Vertex AI.

    • VERTEX_AI_REGION (facultatif): point de terminaison régional Vertex AI auquel vous souhaitez envoyer votre requête (par exemple, us-west4). La valeur par défaut est us-central1.

    • ENCODED_PASSWORD: mot de passe de connexion à la base de données pour le rôle utilisateur postgres par défaut, encodé en tant que chaîne base64 (par exemple, Q2hhbmdlTWUxMjM= pour ChangeMe123).

    • CPU_COUNT: nombre de processeurs disponibles pour chaque instance de base de données de ce cluster de bases de données.

    • MEMORY_SIZE: quantité de mémoire par instance de base de données de ce cluster de bases de données. Nous vous recommandons de définir cette valeur sur 8 Go par processeur. Par exemple, si vous avez défini cpu sur 2 plus tôt dans ce fichier manifeste, nous vous recommandons de définir memory sur 16Gi.

    • DISK_SIZE: taille de disque par instance de base de données (par exemple, 10Gi).

  2. Appliquez le fichier manifeste.

    kubectl apply -f DB_CLUSTER_YAML

    Remplacez les éléments suivants :

    • DB_CLUSTER_YAML: nom de ce fichier manifeste de cluster de base de données (par exemple, alloydb-omni-db-cluster.yaml).

Se connecter à l'aide de psql préinstallé

Vous pouvez établir une connexion de test à l'aide d'un client psql déjà installé sur le pod exécutant la base de données.

Pour ce faire, exécutez les commandes suivantes:

export DBPOD=`kubectl get pod --selector=alloydbomni.internal.dbadmin.goog/dbcluster=DB_CLUSTER_NAME,alloydbomni.internal.dbadmin.goog/task-type=database -o jsonpath='{.items[0].metadata.name}'`
kubectl exec -ti $DBPOD -c database -- psql -h localhost -U postgres

Remplacez DB_CLUSTER_NAME par le nom de votre cluster de base de données. Il s'agit du même nom de cluster de base de données que vous avez déclaré lors de sa création.

Une fois la commande saisie, le serveur de base de données vous invite à saisir un mot de passe. Saisissez le mot de passe dont vous avez fourni la version encodée en base64 en tant que secret Kubernetes lors de la création du cluster de base de données. Par exemple, si vous avez créé le cluster de base de données avec un secret Q2hhbmdlTWUxMjM=, le mot de passe de connexion à utiliser ici est ChangeMe123.

Vérifier l'installation d'AlloyDB Omni avec AlloyDB AI

Pour vérifier que votre installation a réussi et qu'elle utilise la prédiction du modèle, saisissez ce qui suit:

   CREATE EXTENSION IF NOT EXISTS google_ml_integration CASCADE;

   SELECT array_dims(embedding( 'text-embedding-005', 'AlloyDB AI')::real[]);

La sortie ressemble à ceci :

      array_dims
      ------------
      [1:768]
      (1 row) 

Dans la requête précédente, l'appel embedding() génère des embeddings pour le texte d'entrée AlloyDB AI. array_dims renvoie les dimensions du tableau renvoyé par embedding(). Étant donné que le modèle text-embedding-005 renvoie une sortie avec 768 dimensions, la sortie est [768].

Étape suivante