部署叢集後,您可以使用下列 Agent Platform API 端點變更或移除叢集:
Update:修改現有的叢集設定。Delete:永久移除叢集及其資源。
如要更新叢集,只能透過 Agent Platform API 進行。您可以透過 Agent Platform API 或 Google Cloud 控制台刪除叢集。
如需列出所有叢集或查看個別叢集的指示,請參閱「查看叢集」。
驗證
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(字串,選用):FieldMask,指定要更新模型開發叢集資源的哪些欄位。只有updateMask中列出的欄位會變更。您可以在
updateMask中指定ModelDevelopmentCluster資源內的下列欄位: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:僅套用要求中由使用者指定的欄位變更。服務不會重新整理服務管理的欄位,例如啟動、prolog 或 epilog 指令碼。除非您自行設定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 中設定,因為 會取代這兩者。叢集只能使用其中一種,如果要求同時設定兩者,則會遭到拒絕。
如果您呼叫 PATCH 時未提供 updateMask,服務會將整個酬載與目前的叢集進行差異比較,因此省略這些設定的酬載會清除叢集已有的任何設定。傳遞 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 設為該映像檔 (例如 projects/IMAGE_PROJECT/global/images/IMAGE)。如果您從 Get 讀取目前的值,以便將其傳回,請注意,除非在建立叢集時設定了 node_image,否則從未更新過的叢集會回報空白的 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 端點,大規模提供線上推論要求。
- 提高成本效益:定期查看叢集使用率,並在叢集閒置時刪除,盡可能減少預留硬體的費用。