Installer AlloyDB AI dans AlloyDB Omni

Sélectionnez une version de la documentation :

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

AlloyDB AI est une suite de fonctionnalités incluses dans AlloyDB Omni qui vous permettent de créer des applications d'IA générative pour les entreprises. Pour en savoir plus sur les fonctionnalités d'IA/ML d'AlloyDB, consultez Créer des applications d'IA générative.

AlloyDB Omni avec AlloyDB/AI vous permet d'interroger des modèles de ML à distance 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 les embeddings vectoriels provenant d'autres contenus, comme une image, par exemple si vous utilisez l'interface google_ml.predict_row et que vous effectuez vous-même la traduction dans la requête.

En fonction de l'endroit où vous souhaitez installer AlloyDB Omni avec AlloyDB/AI, 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 devez 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 d'interroger des modèles Vertex AI à distance, procédez comme suit :

  1. Créez un compte de service avecGoogle 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 réside à cet emplacement pendant toute la durée de vie de votre serveur AlloyDB Omni.

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

  4. Ajoutez les autorisations Vertex AI Identity and Access Management (IAM) 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 projet Google Cloud .

    • 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 lors des é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 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 bases 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 bases de données avec AlloyDB/AI

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

    Lorsque vous définissez enabled sur true dans 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.1"
    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 bases 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é sous forme de 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 gigaoctets par processeur. Par exemple, si vous avez défini cpu sur 2 plus haut dans ce fichier manifeste, nous vous recommandons de définir memory sur 16Gi.

    • DISK_SIZE : taille du 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 du fichier manifeste de ce cluster de bases 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 bases 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 la version encodée en base64 a été fournie en tant que secret Kubernetes lors de la création du cluster de bases de données. Par exemple, si vous avez créé le cluster de bases 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 l'installation a réussi et qu'elle utilise la prédiction du modèle, saisissez la commande suivante :

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].

Étapes suivantes