クラスタがデプロイされたら、次の REST API エンドポイントを使用して、クラスタのライフサイクル全体を管理できます。
List: プロジェクト内のすべてのアクティブ クラスタを表示します。Get: 特定のクラスタの詳細情報を取得します。Update: 既存のクラスタ構成を変更します。Delete: クラスタとそのリソースを完全に削除します。
認証
alias gcurl='curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"'
クラスタの一覧を取得する:
gcurl -X GET https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/modelDevelopmentClusters
list メソッドは、ページネーションを制御するために次のオプションのクエリ パラメータをサポートしています。
pageSize(整数、省略可): レスポンスで返されるクラスタの最大数。アイテムがさらに存在する場合でも、サービスが返す値はこれよりも少ないことがあります。指定しない場合、デフォルトのページサイズが使用されます。pageToken (string, optional): 前回のリスト呼び出しから受け取ったトークン。結果の次のページを取得するには、このトークンを指定します。
gcurl "https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/modelDevelopmentClusters?pageSize=5"
nextPageToken 文字列が含まれる場合もあります。クラスタを取得する:
gcurl -X GET https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/modelDevelopmentClusters/CLUSTER_ID
クラスタを更新する:
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で指定できます。node_poolsorchestrator_spec.slurm_spec.partitionsorchestrator_spec.slurm_spec.login_node_pool_idorchestrator_spec.slurm_spec.prolog_bash_scriptsorchestrator_spec.slurm_spec.epilog_bash_scripts
次のコマンドは、ノードプールの構成と 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'
node_pools、prolog_bash_scripts、epilog_bash_scripts などの繰り返しフィールドの場合、API は完全な置換オペレーションのみをサポートします。既存のリストを完全に置き換えるには、リクエスト ペイロードで想定される項目のリスト全体を指定する必要があります。
リクエストが成功すると、長時間実行オペレーション(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
次のステップ
Vertex AI トレーニング クラスタを管理すると、使用状況を最適化し、自動化されたワークフローに統合して、トレーニング済みモデルをデプロイ用に準備できます。
- Vertex AI Pipelines でトレーニングをオーケストレートする: マネージド クラスタをターゲットとするパイプラインを使用して、データ準備からモデル登録まで、トレーニング ジョブのライフサイクル全体を自動化します。
- トレーニング ジョブのモニタリングとデバッグ: クラスタで実行されている分散トレーニング ジョブの進行状況とリソース使用量を追跡し、問題を特定します。
- 推論用にモデルをデプロイする: モデルのトレーニングと登録が完了したら、モデルを Vertex AI エンドポイントにデプロイして、オンライン推論リクエストを大規模に処理します。
- 費用を最適化する: クラスタの使用率を定期的に確認し、アクティブに使用されていない場合はクラスタを削除して、予約済みハードウェアの請求額を最小限に抑えます。