Faça a gestão do cluster

Se tiver interesse em clusters de preparação do Vertex AI, contacte o seu representante de vendas para aceder.

Depois de implementar um cluster, pode gerir o respetivo ciclo de vida completo através dos seguintes pontos finais da API REST.

  • List: vê todos os clusters ativos no seu projeto.
  • Get: obtém informações detalhadas de um cluster específico.
  • Update: modifica uma configuração de cluster existente.
  • Delete: remove permanentemente um cluster e os respetivos recursos.

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 list suporta os seguintes parâmetros de consulta opcionais para controlar a paginação.

  • pageSize (número inteiro, opcional): o número máximo de clusters a devolver na resposta. O serviço pode devolver menos do que este valor, mesmo que existam mais artigos. Se não for especificado, é usado um tamanho da página predefinido.
  • pageToken (string, optional): um token recebido de uma chamada de lista anterior. Indique este token para obter a página seguinte de resultados.
O exemplo seguinte pede a primeira página de resultados com um máximo de 5 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 clusters e também pode incluir uma string nextPageToken.

Obter um cluster:

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

Atualize um cluster:

UPDATE_PAYLOAD especifica o caminho local para um ficheiro JSON que define o ModelDevelopmentCluster completo para o qual quer fazer a atualização.

Por exemplo, para atualizar a contagem de nós de um conjunto de um cluster apenas com 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): um FieldMask que especifica os campos do recurso do cluster de desenvolvimento de modelos a atualizar. Apenas os campos indicados em updateMask são alterados.

    Os seguintes campos 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 node pool 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'
Nota importante sobre campos repetidos

Para campos repetidos, como node_pools, prolog_bash_scripts e epilog_bash_scripts, a API só suporta uma operação de substituição completa. O utilizador tem de fornecer a lista completa esperada de itens no payload do pedido para substituir completamente a lista existente.

Comportamento após a atualização e estado do cluster

Um pedido bem-sucedido devolve uma operação de longa duração (LRO). Em seguida, pode monitorizar o estado desta operação através do seguinte comando:

gcurl https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID
Assim que a operação de atualização for concluída com êxito, a maioria das modificações entra em vigor imediatamente (ou no prazo de 15 segundos do tempo de sincronização do Slurm) e não requerem nenhuma ação adicional. Apenas as alterações à infraestrutura de computação do cluster subjacente, incluindo modificações às origens de armazenamento e aos scripts de arranque, requerem a recriação dos recursos.

Elimine um cluster:

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

Este comando devolve uma operação de longa duração em caso de êxito, que pode monitorizar através do comando operations describe.

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

O que se segue?

A gestão do cluster de preparação do Vertex AI permite-lhe otimizar a respetiva utilização, integrá-lo em fluxos de trabalho automatizados e preparar os seus modelos preparados para implementação.

  • Orquestre a sua preparação com os Vertex AI Pipelines: automatize todo o ciclo de vida das suas tarefas de preparação, desde a preparação de dados ao registo de modelos, usando pipelines que segmentam o seu cluster gerido.
  • Monitorize e depure as suas tarefas de preparação: acompanhe o progresso e a utilização de recursos, e identifique problemas com as suas tarefas de preparação distribuída em execução no cluster.
  • Implemente o seu modelo para inferência: depois de os modelos serem preparados e registados, implemente-os num ponto final do Vertex AI para apresentar pedidos de inferência online em grande escala.
  • Otimize os custos: reveja regularmente a utilização do cluster e elimine-o quando não estiver a ser usado ativamente para minimizar a faturação do hardware reservado.