Depois que um cluster é implantado, é possível mudar ou remover usando os seguintes endpoints de API Agent Platform:
Update: modifica uma configuração de cluster atual.Delete: remove permanentemente um cluster e os recursos dele.
A atualização de um cluster está disponível apenas pela API Agent Platform. É possível excluir um cluster na API Agent Platform ou no console do Google Cloud .
Para instruções sobre como listar todos os clusters ou ver clusters individuais, consulte Ver clusters.
Autenticação
alias gcurl='curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"'
Atualize um cluster
UPDATE_PAYLOAD especifica o caminho local para um arquivo JSON que define o ModelDevelopmentCluster completo para o qual 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
-
updateMask(string, opcional): uma FieldMask que especifica quais campos do recurso de cluster de desenvolvimento de modelo serão atualizados. Somente os campos listados emupdateMasksão alterados.Os seguintes campos no recurso
ModelDevelopmentClusterpodem ser especificados noupdateMask:labelsnode_poolsorchestrator_spec.slurm_spec.partitionsorchestrator_spec.slurm_spec.default_partition_idorchestrator_spec.slurm_spec.login_node_pool_idorchestrator_spec.slurm_spec.prolog_bash_scriptsorchestrator_spec.slurm_spec.epilog_bash_scriptsorchestrator_spec.slurm_spec.configorchestrator_spec.slurm_spec.schedulingeorchestrator_spec.slurm_spec.accounting: campos legados queconfigsubstitui. Um cluster usa um ou outro. Consulte Atualizar as configurações de configuração do Slurm.orchestrator_spec.slurm_spec.node_sets
-
updateMode(enum, opcional): especifica o modo de atualização. Os valores possíveis são:UPDATE_MODE_UNSPECIFIED: o valor padrão, tratado comoUSER_AND_SERVICE.USER_ONLY: aplique apenas as mudanças de campo especificadas pelo usuário na solicitação. O serviço não vai atualizar campos gerenciados pelo serviço, como scripts de inicialização, prólogo ou epílogo. Cada pool de nós também permanece na imagem em execução, a menos que você definanode_image. Portanto, uma atualização deUSER_ONLYque omitenode_imagenão recria os nós.USER_AND_SERVICE: aplique as mudanças de campo especificadas pelo usuário e deixe o serviço atualizar os campos gerenciados pelo serviço.
USER_AND_SERVICEpara garantir que seu cluster esteja atualizado.
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&updateMode=USER_AND_SERVICE'
Para campos repetidos, como node_pools, prolog_bash_scripts e epilog_bash_scripts, a API só oferece suporte a uma operação de substituição completa. O usuário
precisa fornecer a lista completa e esperada de itens no payload da solicitação para substituir completamente
a lista atual.
Para mudar a partição padrão sem reenviar partitions, defina
default_partition_id e especifique apenas
orchestrator_spec.slurm_spec.default_partition_id no updateMask. Uma
atualização que remove ou renomeia a partição especificada por default_partition_id é
rejeitada.
É possível mudar a configuração do Slurm em um cluster em execução. A aplicação dessas configurações não reinicia
nem esgota nenhum nó: o serviço regenera slurm.conf e recarrega o controlador
do Slurm, para que os jobs enfileirados e em execução não sejam afetados.
USER_ONLY.
As novas configurações podem levar um tempo para aparecer no scontrol show config após a
conclusão da operação.
As configurações no escopo do cluster são nomeadas por orchestrator_spec.slurm_spec.config, as configurações do pool de nós por orchestrator_spec.slurm_spec.node_sets e as configurações de partição por orchestrator_spec.slurm_spec.partitions, que carrega o config de cada partição junto com a associação. Cada mapa é substituído por completo, da mesma forma que os campos repetidos descritos anteriormente. Envie o conjunto completo de parâmetros que você quer. Um parâmetro que você
deixar de fora será removido. Para limpar um mapa, nomeie o caminho dele no updateMask e envie-o
vazio.
O comando abaixo ativa a preempção de prioridade de partição para um cluster atual.
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.config&updateMode=USER_ONLY'
Em que update-payload.json contém, em parte:
{ ..., "orchestrator_spec": { "slurm_spec": { ..., "config": { "PriorityType": "priority/multifactor", "PriorityWeightAge": "1000", "PreemptType": "preempt/partition_prio", "PreemptMode": "REQUEUE", "PreemptExemptTime": "1:01", "SchedulerParameters": "bf_continue,bf_window=1440" } } } }
Defina parâmetros para todo o cluster em config, em vez de scheduling e
accounting, que ele substitui. Um cluster usa um ou outro. Uma solicitação que define
ambos é rejeitada.
Se você chamar PATCH sem um updateMask, o serviço vai diferenciar todo o
payload do cluster atual. Portanto, um payload que omite essas configurações limpa o que o
cluster já tem. Transmita um updateMask para definir o escopo da atualização para os campos que você quer
mudar. Um campo que você nomeia, mas deixa de fora do payload, é limpo.
Para mover um cluster atual de scheduling e accounting para
config, envie todas as configurações em config usando o nome
slurm.conf, por exemplo, AccountingStorageEnforce ou PriorityWeightQOS, deixe
scheduling e accounting fora do payload e nomeie os três no
updateMask para que os campos mais antigos sejam limpos. Depois disso, um updateMask de orchestrator_spec.slurm_spec.config é suficiente.
Como node_pools é substituído por completo, um pool de nós no payload de atualização que omite node_image é resolvido para a imagem padrão atual do tipo de máquina. Esse padrão avança com o tempo. Portanto, omitir node_image move o pool de nós para a imagem mais recente disponível, o que geralmente é o que você quer: ele corrige bugs, segurança e drivers.
Para manter um pool de nós em uma imagem específica em todas as atualizações, defina node_image como essa
imagem. Se você ler o valor atual de Get para enviá-lo de volta, observe que um
cluster que nunca foi atualizado informa um node_image vazio.
Uma solicitação bem-sucedida retorna uma operação de longa duração (LRO, na sigla em inglês). Monitore o status dessa operação usando o seguinte comando:
gcurl https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID
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 em caso de sucesso, 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
Gerenciar seu cluster de treinamento da Gemini Enterprise Agent Platform permite otimizar o uso, integrar a plataforma a fluxos de trabalho automatizados e preparar os modelos treinados para implantação.
- Orquestre seu 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 seu cluster gerenciado.
- Monitorar e depurar seus jobs de treinamento: acompanhe o progresso e o uso de recursos e identifique problemas com os jobs de treinamento distribuído em execução no cluster.
- Implante seu modelo para inferência: depois que os modelos forem treinados e registrados, implante-os em um endpoint da Gemini Enterprise Agent Platform para atender a solicitações de inferência on-line em grande 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.