Gerenciar cluster

Se você tiver interesse em clusters de treinamento do Gemini Enterprise Agent Platform, entre em contato com seu representante de vendas para acesso.

Depois que um cluster é implantado, é possível gerenciar todo o ciclo de vida dele usando os endpoints da API REST a seguir.

  • List: mostra todos os clusters ativos no seu projeto.
  • Get: recupera informações detalhadas de um cluster específico.
  • Update: modifica uma configuração de cluster atual.
  • Delete: remove permanentemente um cluster e os recursos dele.

Autenticação

alias gcurl='curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"'

Listar clusters:

    gcurl -X GET https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/modelDevelopmentClusters
    

O método de lista oferece suporte aos seguintes parâmetros de consulta opcionais para controlar a paginação.

  • pageSize (inteiro, opcional): o número máximo de clusters a serem retornados na resposta. O serviço pode retornar menos que esse valor, mesmo que haja mais itens. Se não for especificado, um tamanho de página padrão será usado.
  • pageToken (string, optional): um token recebido de uma chamada de lista anterior. Forneça esse token para recuperar a próxima página de resultados.
O exemplo a seguir solicita a primeira página de resultados com um máximo de cinco clusters por página.

    gcurl "https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/modelDevelopmentClusters?pageSize=5"
    

Uma resposta bem-sucedida contém uma matriz de clusters com até cinco recursos de cluster e também pode incluir uma string nextPageToken.

Acessar um cluster:

    gcurl -X GET https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/modelDevelopmentClusters/CLUSTER_ID
    

Atualizar um cluster:

UPDATE_PAYLOAD especifica o caminho local para um arquivo JSON que define o ModelDevelopmentCluster completo que você quer atualizar.

Por exemplo, para atualizar a contagem de nós de um pool de um cluster somente de CPU, use o seguinte payload JSON:

{
  "display_name": "DISPLAY_NAME",
  "network": {
    "network": "projects/PROJECT_ID/global/networks/NETWORK",
    "subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK"
  },
  "node_pools": [
    {
      "id": "cpu",
      "machine_spec": {
        "machine_type": "n2-standard-8"
      },
      "scaling_spec": {
        "min_node_count": UPDATED_MIN_NODE_COUNT,
        "max_node_count": UPDATED_MAX_NODE_COUNT
      },
      "zone": "ZONE",
      "enable_public_ips": true,
      "boot_disk": {
        "boot_disk_type": "pd-standard",
        "boot_disk_size_gb": 120
      }
    },
    {
      "id": "login",
      "machine_spec": {
        "machine_type": "n2-standard-8",
      },
      "scaling_spec": {
        "min_node_count": 1,
        "max_node_count": 1
      },
         "zone": "ZONE",
         "enable_public_ips": true,
      "boot_disk": {
        "boot_disk_type": "pd-standard",
        "boot_disk_size_gb": 120
      }
    },
  ],
  "orchestrator_spec": {
      "slurm_spec": {
      "home_directory_storage": "projects/PROJECT_ID/locations/ZONE/instances/FILESTORE",
      "partitions": [
         {
          "id": "cpu",
          "node_pool_ids": [
            "cpu"
          ]
        }
      ],
      "login_node_pool_id": "login"
    }
  }
}

gcurl -X PATCH -d @UPDATE_PAYLOAD https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/modelDevelopmentClusters/CLUSTER_ID
Parâmetros de consulta
  • updateMask (string, opcional): uma FieldMask que especifica quais campos do recurso do cluster de desenvolvimento de modelos serão atualizados. Somente os campos listados no updateMask são alterados.

    Os campos a seguir no recurso ModelDevelopmentCluster podem ser especificados no updateMask:

    • node_pools
    • orchestrator_spec.slurm_spec.partitions
    • orchestrator_spec.slurm_spec.login_node_pool_id
    • orchestrator_spec.slurm_spec.prolog_bash_scripts
    • orchestrator_spec.slurm_spec.epilog_bash_scripts

O comando abaixo atualiza a configuração do pool de nós e as partições do Slurm.

gcurl -X PATCH -d @update-payload.json
'https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/modelDevelopmentClusters/CLUSTER_ID?updateMask=orchestrator_spec.slurm_spec.partitions,node_pools'
Observação importante sobre campos repetidos

Para campos repetidos, como node_pools, prolog_bash_scripts e epilog_bash_scripts, a API oferece suporte apenas a uma operação de substituição completa. O usuário precisa fornecer toda a lista esperada de itens no payload da solicitação para substituir completamente a lista atual.

Comportamento pós-atualização e status do cluster

Uma solicitação bem-sucedida retorna uma operação de longa duração (LRO, na sigla em inglês). Em seguida, é possível monitorar o status dessa operação usando o seguinte comando:

gcurl https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID
Depois que a operação de atualização for concluída, a maioria das modificações entrará em vigor imediatamente (ou dentro do tempo de sincronização do Slurm de 15 segundos) e não exigirá mais ações. Somente as mudanças na infraestrutura de computação do cluster subjacente, incluindo modificações nas origens de armazenamento e nos scripts de inicialização, exigem que os recursos sejam recriados.

Excluir um cluster:

  gcurl -X DELETE https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/modelDevelopmentClusters/CLUSTER_ID
  

Esse comando retorna uma operação de longa duração bem-sucedida, que pode ser monitorada usando o comando operations describe.

gcurl https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID

A seguir

O gerenciamento do cluster de treinamento da Vertex AI permite otimizar o uso dele, integrá-lo a fluxos de trabalho automatizados e preparar os modelos treinados para implantação.

  • Orquestre o treinamento com os pipelines da Gemini Enterprise Agent Platform: automatize todo o ciclo de vida dos jobs de treinamento, desde a preparação de dados até o registro de modelos, usando pipelines que segmentam o cluster gerenciado.
  • Monitore e depure os jobs de treinamento: acompanhe o progresso e o uso de recursos e identifique problemas com os jobs de treinamento distribuídos em execução no cluster.
  • Implante o modelo para inferência: depois que os modelos forem treinados e registrados, implante-os em um endpoint da Vertex AI para veicular solicitações de inferência on-line em escala.
  • Otimize os custos: analise regularmente a utilização do cluster e exclua-o quando não estiver em uso para minimizar o faturamento do hardware reservado.