Instalar o AlloyDB AI no AlloyDB Omni

Selecione uma versão da documentação:

Nesta página, mostramos como instalar o AlloyDB Omni e integrar o AlloyDB AI.

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

Com o AlloyDB Omni e o AlloyDB AI, é possível consultar modelos remotos de ML para trabalhar com previsões on-line e embeddings de texto gerados por modelos de ML. O AlloyDB Omni com o AlloyDB AI também pode processar embeddings de vetores de outros conteúdos, como uma imagem, por exemplo, se você usar a interface google_ml.predict_row e fizer a tradução por conta própria na consulta.

Com base em onde 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 ao ativar googleMLExtension no manifesto do cluster de banco de dados.

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

Adicionar as permissões da Vertex AI à conta de serviço do AlloyDB

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

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

  2. Crie uma chave de conta de serviço e 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 seu sistema de arquivos. Ele fica nesse local durante todo o ciclo de vida do servidor do AlloyDB Omni.

    Anote o local no sistema de arquivos, porque você vai precisar dele nas próximas etapas.

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

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

    Substitua:

    • PROJECT_ID: o ID do seu projeto do 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.

Criar 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 baixada 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 onde você baixou a chave da conta de serviço do private-key.json.

  • NAMESPACE: o namespace do cluster de 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 segredo 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: "16.8.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 que você criou nas etapas anteriores. Você precisa definir essa opção se quiser chamar modelos da Vertex AI.

    • VERTEX_AI_REGION (opcional): o endpoint regional da Vertex AI para onde 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 de usuário padrão postgres, 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 no cluster.

    • MEMORY_SIZE: a quantidade de memória por instância de banco de dados deste cluster de banco de dados. Recomendamos definir isso 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 de 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 de banco de dados. Por exemplo, alloydb-omni-db-cluster.yaml.

Conectar usando o psql pré-instalado

É possível fazer uma conexão de teste usando um cliente psql já instalado no pod que executa o banco de dados.

Para isso, execute os seguintes comandos:

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

Substitua DB_CLUSTER_NAME pelo nome do cluster de banco de dados. É o mesmo nome de cluster de banco de dados que você declarou ao criá-lo.

Depois de inserir o comando, o servidor de banco de dados vai pedir uma senha. Insira a senha cuja versão codificada em base64 você forneceu como um secret do Kubernetes ao criar o cluster de banco de dados. Por exemplo, se você criou o cluster de banco de dados com um secret de Q2hhbmdlTWUxMjM=, a senha de login a ser usada aqui é ChangeMe123.

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

Para verificar se a instalação foi bem-sucedida e usa a previsão do 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