Instalar o AlloyDB AI no AlloyDB Omni

Esta página mostra como instalar o AlloyDB Omni e integrar o AlloyDB AI nele.

A AlloyDB AI é um pacote de recursos incluídos no AlloyDB Omni que permite criar aplicativos corporativos de IA generativa. Para mais informações sobre a funcionalidade de ML do AlloyDB, consulte Criar aplicativos de IA generativa.

O AlloyDB Omni com a IA do AlloyDB permite consultar modelos de ML remotos para trabalhar com previsões on-line e embeddings de texto gerados a partir de modelos de ML. O AlloyDB Omni com o AlloyDB AI também pode processar embeddings de vetores de outro conteúdo, como uma imagem, por exemplo, se você usar a interface google_ml.predict_row e fizer a tradução na consulta.

Com base no local em que você quer instalar o AlloyDB Omni com a IA do AlloyDB, selecione uma das seguintes opções:

Configurar a instância do AlloyDB Omni para consultar modelos remotos

É possível consultar modelos remotos usando o gerenciamento de endpoints de modelo ativando googleMLExtension no manifesto do cluster do banco de dados.

Se quiser consultar modelos da Vertex AI, configure a conta de serviço do AlloyDB com a Vertex AI, crie um segredo do Kubernetes usando a chave e defina o segredo do Kubernetes no manifesto do cluster do banco de dados.

Opcional: adicione as permissões da Vertex AI à conta de serviço do AlloyDB

Para configurar o AlloyDB Omni a fim de consultar modelos remotos da Vertex AI, siga estas etapas:

  1. Crie uma conta de serviço com o Google Cloud.

  2. Crie uma chave da conta de serviço, salve-a no formato JSON no arquivo private-key.json e faça o download dela.

  3. Armazene a chave em um local permanente no sistema de arquivos. Ele fica nesse local durante toda a vida útil do servidor do AlloyDB Omni.

    Anote o local dela no sistema de arquivos, porque você vai precisar dele nas etapas seguintes.

  4. Adicione as permissões do Identity and Access Management (IAM) do Vertex AI ao projeto e à conta de serviço apropriados.

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

    Substitua:

    • PROJECT_ID: o ID do projeto Google Cloud .

    • SERVICE_ACCOUNT_ID: o ID da conta de serviço que você criou na etapa anterior. Isso inclui o sufixo @PROJECT_ID.iam.gserviceaccount.com completo, por exemplo, my-service@my-project.iam.gserviceaccount.com.

Opcional: crie um secret do Kubernetes usando a chave da conta de serviço

Para criar um secret do Kubernetes com base na chave da conta de serviço salva nas etapas anteriores, execute o seguinte comando:

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

Substitua:

  • SECRET_NAME: o nome do secret usado ao criar um manifesto DBCluster para permitir que o AlloyDB Omni acesse os recursos da IA do AlloyDB. Por exemplo, vertex-ai-key-alloydb.

  • PATH_TO_SERVICE_ACCOUNT_KEY: o caminho para o local em que você fez o download da chave da conta de serviço private-key.json.

  • NAMESPACE: o namespace do cluster do banco de dados.

Instalar o operador do AlloyDB Omni

Instale o operador do AlloyDB Omni seguindo as etapas listadas em Instalar o operador do AlloyDB Omni.

Criar um cluster de banco de dados com a IA do AlloyDB

  1. Crie um cluster de banco de dados com a IA do AlloyDB.

    Quando você define enabled como true no campo googleMLExtension, é possível consultar modelos remotos. Defina o vertexAIKeyRef como o secret do Kubernetes se quiser consultar modelos da 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
    

    Substitua:

    • DB_CLUSTER_NAME: o nome do cluster de banco de dados. Por exemplo, my-db-cluster.

    • VERTEX_AI_SECRET_NAME (opcional): o secret da Vertex AI criado nas etapas anteriores. É necessário definir essa opção se você quiser chamar modelos da Vertex AI.

    • VERTEX_AI_REGION (opcional): o endpoint regional da Vertex AI para o qual você quer enviar a solicitação, por exemplo, us-west4. O valor padrão é us-central1.

    • ENCODED_PASSWORD: a senha de login do banco de dados para a função do usuário postgres padrão, codificada como uma string base64. Por exemplo, Q2hhbmdlTWUxMjM= para ChangeMe123.

    • CPU_COUNT: o número de CPUs disponíveis para cada instância de banco de dados neste cluster de banco de dados.

    • MEMORY_SIZE: a quantidade de memória por instância do banco de dados deste cluster de banco de dados. Recomendamos definir esse valor como 8 gigabytes por CPU. Por exemplo, se você definir cpu como 2 anteriormente neste manifesto, recomendamos definir memory como 16Gi.

    • DISK_SIZE: o tamanho do disco por instância do banco de dados, por exemplo, 10Gi.

  2. Aplique o manifesto.

    kubectl apply -f DB_CLUSTER_YAML

    Substitua:

    • DB_CLUSTER_YAML: o nome do arquivo de manifesto do cluster do banco de dados. Por exemplo, alloydb-omni-db-cluster.yaml.

Verificar o AlloyDB Omni com a instalação do AlloyDB AI

Para verificar se a instalação foi concluída e usa a previsão de modelo, digite o seguinte:

   CREATE EXTENSION IF NOT EXISTS google_ml_integration CASCADE;

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

A saída será assim:

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

Na consulta anterior, a chamada embedding() gera embeddings para o texto de entrada AlloyDB AI. array_dims retorna as dimensões da matriz retornada por embedding(). Como o modelo text-embedding-005 retorna uma saída com 768 dimensões, a saída é [768].

A seguir