클러스터가 배포되면 다음 REST API 엔드포인트를 사용하여 전체 수명 주기를 관리할 수 있습니다.
List: 프로젝트의 모든 활성 클러스터를 표시합니다.Get: 특정 클러스터의 세부정보를 가져옵니다.Update: 기존 클러스터 구성을 수정합니다.Delete: 클러스터와 해당 리소스를 영구적으로 삭제합니다.
인증
alias gcurl='curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"'
클러스터 나열:
gcurl -X GET https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/modelDevelopmentClusters
list 메서드는 페이지로 나누기를 제어하기 위해 다음과 같은 선택적 쿼리 매개변수를 지원합니다.
pageSize(정수, 선택사항): 응답에서 반환할 최대 클러스터 수입니다. 더 많은 항목이 있더라도 서비스가 이 값보다 더 적게 반환할 수 있습니다. 지정하지 않으면 기본 페이지 크기가 사용됩니다.pageToken (string, optional): 이전 list 호출에서 수신된 토큰입니다. 후속 결과 페이지를 가져오려면 이 토큰을 제공하세요.
gcurl "https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/modelDevelopmentClusters?pageSize=5"
nextPageToken 문자열도 포함될 수 있습니다.
클러스터 가져오기:
gcurl -X GET https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/modelDevelopmentClusters/CLUSTER_ID
클러스터 업데이트:
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에서 지정할 수 있습니다.node_poolsorchestrator_spec.slurm_spec.partitionsorchestrator_spec.slurm_spec.login_node_pool_idorchestrator_spec.slurm_spec.prolog_bash_scriptsorchestrator_spec.slurm_spec.epilog_bash_scripts
아래 명령어는 노드 풀 구성과 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'
node_pools, prolog_bash_scripts, epilog_bash_scripts와 같은 반복 필드의 경우 API는 전체 교체 작업만 지원합니다. 사용자는 기존 목록을 완전히 대체하기 위해 요청 페이로드에 예상되는 전체 항목 목록을 제공해야 합니다.
요청이 성공하면 장기 실행 작업(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
다음 단계
Vertex AI Training 클러스터를 관리하면 사용량을 최적화하고, 자동화된 워크플로에 통합하고, 학습된 모델을 배포할 수 있습니다.
- Vertex AI Pipelines로 학습 조정: 관리 클러스터를 타겟팅하는 파이프라인을 사용하여 데이터 준비부터 모델 등록까지 학습 작업의 전체 수명 주기를 자동화합니다.
- 학습 작업 모니터링 및 디버그: 진행 상황과 리소스 사용량을 추적하고 클러스터에서 실행되는 분산 학습 작업의 문제를 식별합니다.
- 추론을 위해 모델 배포: 모델을 학습하고 등록한 후 Vertex AI 엔드포인트에 배포하여 대규모로 온라인 추론 요청을 처리합니다.
- 비용 최적화: 클러스터 사용률을 정기적으로 검토하고 활발하게 사용하지 않는 경우 클러스터를 삭제하여 예약된 하드웨어에 대한 청구를 최소화합니다.