管理叢集

如要使用 Gemini Enterprise Agent Platform 訓練叢集,請洽詢業務代表。

部署叢集後,您可以使用下列 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 資源內的下列欄位:

    • 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:僅套用要求中由使用者指定的欄位變更。服務不會重新整理服務管理的欄位,例如啟動、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 設定。套用這些設定不會重新啟動或耗盡任何節點:服務會重新產生 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
更新作業成功完成後,大多數修改會立即生效 (或在 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 端點,大規模提供線上推論要求。
  • 提高成本效益:定期查看叢集使用率,並在叢集閒置時刪除,盡可能減少預留硬體的費用。