클러스터가 배포되면 다음 Agent Platform API 엔드포인트를 사용하여 클러스터를 변경하거나 삭제할 수 있습니다.
Update: 기존 클러스터 구성을 수정합니다.Delete: 클러스터와 해당 리소스를 영구적으로 삭제합니다.
클러스터 업데이트는 Agent Platform API를 통해서만 가능합니다. 에이전트 플랫폼 API 또는 Google Cloud 콘솔에서 클러스터를 삭제할 수 있습니다.
모든 클러스터를 나열하거나 개별 클러스터를 보는 방법은 클러스터 보기를 참고하세요.
인증
alias gcurl='curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"'
클러스터 업데이트
UPDATE_PAYLOAD는 업데이트할 전체 ModelDevelopmentCluster를 정의하는 JSON 파일의 로컬 경로를 지정합니다.
예를 들어 CPU 전용 클러스터 풀의 노드 수를 업데이트하려면 다음 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(문자열, 선택사항): 업데이트할 모델 개발 클러스터 리소스의 필드를 지정하는 FieldMask입니다.updateMask에 나열된 필드만 변경됩니다.ModelDevelopmentCluster리소스 내의 다음 필드는updateMask에서 지정할 수 있습니다.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.scheduling및orchestrator_spec.slurm_spec.accounting:config로 대체되는 기존 필드입니다. 클러스터는 둘 중 하나를 사용합니다. Slurm 구성 설정 업데이트를 참고하세요.orchestrator_spec.slurm_spec.node_sets
-
updateMode(열거형, 선택사항): 업데이트 모드를 지정합니다. 가능한 값은 다음과 같습니다.UPDATE_MODE_UNSPECIFIED: 기본값으로,USER_AND_SERVICE로 처리됩니다.USER_ONLY: 요청에서 사용자가 지정한 필드 변경사항만 적용합니다. 서비스에서 시작, 프롤로그 또는 에필로그 스크립트와 같은 서비스 관리 필드를 새로고침하지 않습니다. 또한node_image을 직접 설정하지 않는 한 각 노드 풀은 현재 실행 중인 이미지를 유지하므로node_image을 생략하는USER_ONLY업데이트는 노드를 다시 생성하지 않습니다.USER_AND_SERVICE: 사용자가 지정한 필드 변경사항을 적용하고 서비스에서 관리하는 필드를 새로고침하도록 합니다.
USER_AND_SERVICE를 사용하여 클러스터를 최신 상태로 유지하는 것이 좋습니다.
아래 명령어는 노드 풀 구성과 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'
node_pools, prolog_bash_scripts, epilog_bash_scripts와 같은 반복 필드의 경우 API는 전체 교체 작업만 지원합니다. 사용자는 기존 목록을 완전히 대체하기 위해 요청 페이로드에 예상되는 전체 항목 목록을 제공해야 합니다.
partitions를 다시 전송하지 않고 기본 파티션을 변경하려면 default_partition_id를 설정하고 updateMask에서 orchestrator_spec.slurm_spec.default_partition_id만 지정합니다. default_partition_id에서 지정하는 파티션을 삭제하거나 이름을 바꾸는 업데이트는 거부됩니다.
실행 중인 클러스터에서 Slurm 구성을 변경할 수 있습니다. 이러한 설정을 적용해도 노드가 다시 시작되거나 드레인되지 않습니다. 서비스에서 slurm.conf를 재생성하고 Slurm 컨트롤러를 다시 로드하므로 대기열에 있는 작업과 실행 중인 작업은 영향을 받지 않습니다.
USER_ONLY 업데이트 모드를 사용하면 이러한 위험이 최소화됩니다.
작업이 완료된 후 새 설정이 scontrol show config에 표시되기까지 약간의 시간이 걸릴 수 있습니다.
클러스터 범위 설정은 orchestrator_spec.slurm_spec.config, 노드 풀 설정은 orchestrator_spec.slurm_spec.node_sets, 파티션 설정은 각 파티션의 config를 멤버십과 함께 전달하는 orchestrator_spec.slurm_spec.partitions로 이름이 지정됩니다. 각 매핑은 앞에서 설명한 반복되는 입력란과 같은 방식으로 전체가 대체됩니다. 원하는 전체 매개변수 집합을 전송합니다. 생략된 매개변수는 삭제됩니다. 맵을 지우려면 updateMask에서 경로 이름을 지정하고 비어 있는 상태로 전송합니다.
아래 명령어는 기존 클러스터의 파티션 우선순위 선점을 사용 설정합니다.
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'
여기서 update-payload.json에는 다음이 포함됩니다.
{ ..., "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" } } } }
클러스터 전체 매개변수를 scheduling 및 accounting 대신 config에 설정합니다. 클러스터는 둘 중 하나를 사용합니다. 둘 다 설정하는 요청은 거부됩니다.
updateMask 없이 PATCH을 호출하면 서비스에서 현재 클러스터와 전체 페이로드를 비교하므로 이러한 설정을 생략하는 페이로드는 클러스터에 이미 있는 항목을 삭제합니다. updateMask를 전달하여 변경하려는 필드로 업데이트 범위를 지정합니다. 이름을 지정했지만 페이로드에서 제외한 필드는 삭제됩니다.
기존 클러스터를 scheduling 및 accounting에서 config로 이동하려면 slurm.conf 이름(예: AccountingStorageEnforce 또는 PriorityWeightQOS)을 사용하여 config의 모든 설정을 전송하고, 페이로드에서 scheduling 및 accounting를 제외하고, updateMask에서 세 가지 모두의 이름을 지정하여 이전 필드가 삭제되도록 합니다. 그 후에는 orchestrator_spec.slurm_spec.config의 updateMask만으로 충분합니다.
node_pools이 완전히 대체되므로 업데이트 페이로드에서 node_image을 생략하는 노드 풀은 머신 유형의 현재 기본 이미지로 확인됩니다. 이 기본값은 시간이 지남에 따라 발전하므로 node_image를 생략하면 노드 풀이 사용 가능한 최신 이미지로 이동합니다. 이는 드라이버, 보안, 버그 수정을 선택하는 경우가 많습니다.
업데이트 전반에서 특정 이미지의 노드 풀을 유지하려면 node_image를 해당 이미지로 설정합니다. 현재 값을 Get에서 읽어 다시 전송하는 경우 업데이트된 적이 없는 클러스터는 빈 node_image를 보고합니다.
요청이 성공하면 장기 실행 작업(LRO)이 반환됩니다. 그런 후 다음 명령어를 사용하여 이 작업의 상태를 모니터링할 수 있습니다.
gcurl https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID
클러스터 삭제
gcurl -X DELETE https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/modelDevelopmentClusters/CLUSTER_ID
이 명령어는 성공 시 장기 실행 작업을 반환하며, 이후 operations describe 명령어를 사용하여 모니터링할 수 있습니다.
gcurl https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID
다음 단계
Gemini Enterprise Agent Platform 학습 클러스터를 관리하면 사용량을 최적화하고, 자동화된 워크플로에 통합하고, 학습된 모델을 배포할 수 있습니다.
- Gemini Enterprise Agent Platform Pipelines로 학습 조정: 관리 클러스터를 타겟팅하는 파이프라인을 사용하여 데이터 준비부터 모델 등록까지 학습 작업의 전체 수명 주기를 자동화합니다.
- 학습 작업 모니터링 및 디버그: 진행 상황과 리소스 사용량을 추적하고 클러스터에서 실행되는 분산 학습 작업의 문제를 식별합니다.
- 추론을 위해 모델 배포: 모델을 학습하고 등록한 후 Gemini Enterprise Agent Platform 엔드포인트에 배포하여 대규모로 온라인 추론 요청을 처리합니다.
- 비용 최적화: 클러스터 사용률을 정기적으로 검토하고 활발하게 사용하지 않는 경우 클러스터를 삭제하여 예약된 하드웨어에 대한 청구를 최소화합니다.