クラスタがデプロイされたら、次の 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 には、更新する完全な 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で指定できます。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" } } } }
scheduling と
accounting ではなく、config でクラスタ全体のパラメータを設定します。 は と を置き換えます。クラスタはどちらか一方を使用します。両方を設定するリクエストは拒否されます。
updateMask なしで PATCH を呼び出すと、サービスはペイロード全体を現在のクラスタと比較するため、これらの設定を省略したペイロードは、クラスタにすでに設定されているものをすべてクリアします。updateMask を渡して、変更するフィールドに更新を限定します。名前を付けたもののペイロードから除外したフィールドはクリアされます。
既存のクラスタを scheduling と accounting から config に移動するには、config のすべての設定を slurm.conf 名(AccountingStorageEnforce や PriorityWeightQOS など)を使用して送信し、scheduling と accounting をペイロードから除外し、updateMask で 3 つすべてに名前を付けて、古いフィールドをクリアします。その後は、orchestrator_spec.slurm_spec.config の updateMask だけで十分です。
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 エンドポイントにデプロイして、オンライン推論リクエストを大規模に処理します。
- 費用を最適化する: クラスタの使用率を定期的に確認し、アクティブに使用されていない場合はクラスタを削除して、予約済みハードウェアの請求額を最小限に抑えます。