叢集部署完成後,您可以使用下列 Agent Platform API 端點變更或移除叢集:
Update:修改現有叢集設定。Delete:永久移除叢集及其資源。
如要更新叢集,只能透過 Agent Platform API 進行。您可以透過 Agent Platform API 或 Cloud de Confiance 控制台刪除叢集。
如需列出所有叢集或查看個別叢集的說明,請參閱「查看叢集」。
驗證
alias gcurl='curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"'
更新叢集
UPDATE_PAYLOAD 會指定 JSON 檔案的本機路徑,該檔案定義您要更新的完整 ModelDevelopmentCluster。
舉例來說,如要更新僅含 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(字串,選用):指定要更新的 Model Development 叢集資源欄位的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,分割區設定為 orchestrator_spec.slurm_spec.partitions,其中包含每個分割區的 config 和成員資格。每個對應都會完整替換,方式與先前所述的重複欄位相同。傳送您要的完整參數組,系統會移除您省略的參數。如要清除對應,請在 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" } } } }
請在 config 中設定叢集層級參數,而非在 scheduling 和 accounting 中設定,因為 config 會取代這兩者。叢集只能使用其中一種,如果要求同時設定兩者,則會遭到拒絕。
如果您在呼叫 PATCH 時未提供 updateMask,服務會將整個酬載與目前的叢集進行差異比較,因此省略這些設定的酬載會清除叢集已有的任何設定。傳遞 updateMask,將更新範圍限定在您要變更的欄位。您命名但未納入酬載的欄位會遭到清除。
如要將現有叢集從 scheduling 和 accounting 移至 config,請使用 slurm.conf 名稱 (例如 AccountingStorageEnforce 或 PriorityWeightQOS) 傳送 config 中的所有設定,將 scheduling 和 accounting 排除在酬載之外,並在 updateMask 中命名所有三個設定,以便清除舊欄位。之後,只要使用 updateMask 即可。
orchestrator_spec.slurm_spec.config
由於 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 端點,即可大規模處理線上推論要求。
- 提高成本效益:定期檢查叢集使用率,並在叢集閒置時刪除,盡量減少預留硬體的費用。