管理叢集

如要使用 Gemini Enterprise Agent Platform 訓練叢集,請與業務代表聯絡以取得存取權。

叢集部署完成後,您可以使用下列 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 中指定:

    • labels
    • node_pools
    • orchestrator_spec.slurm_spec.partitions
    • orchestrator_spec.slurm_spec.default_partition_id
    • orchestrator_spec.slurm_spec.login_node_pool_id
    • orchestrator_spec.slurm_spec.prolog_bash_scripts
    • orchestrator_spec.slurm_spec.epilog_bash_scripts
    • orchestrator_spec.slurm_spec.config
    • orchestrator_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 設定。套用這些設定不會重新啟動或耗盡任何節點:服務會重新產生 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
更新作業成功完成後,大部分的修改會立即生效 (或在 15 秒的 Slurm 同步時間內),不需要採取任何後續動作。只有對基礎叢集運算基礎架構的變更 (包括修改儲存空間來源和啟動指令碼),才需要重新建立資源。

刪除叢集

  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 端點,即可大規模處理線上推論要求。
  • 提高成本效益:定期檢查叢集使用率,並在叢集閒置時刪除,盡量減少預留硬體的費用。