クラスタの管理

Vertex AI Training クラスタに関心をお持ちの場合は、営業担当者にお問い合わせください。

クラスタがデプロイされたら、次の 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): 前回のリスト呼び出しから受け取ったトークン。結果の次のページを取得するには、このトークンを指定します。
次の例では、ページあたりの最大クラスタ数が 5 の結果の最初のページをリクエストします。

    gcurl "https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/modelDevelopmentClusters?pageSize=5"
    

成功したレスポンスには、最大 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(文字列、省略可): 更新するモデル開発クラスタ リソースのフィールドを指定する FieldMaskupdateMask にリストされているフィールドのみが変更されます。

    ModelDevelopmentCluster リソース内の次のフィールドは、updateMask で指定できます。

    • node_pools
    • orchestrator_spec.slurm_spec.partitions
    • orchestrator_spec.slurm_spec.login_node_pool_id
    • orchestrator_spec.slurm_spec.prolog_bash_scripts
    • orchestrator_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_poolsprolog_bash_scriptsepilog_bash_scripts などの繰り返しフィールドの場合、API は完全な置換オペレーションのみをサポートします。既存のリストを完全に置き換えるには、リクエスト ペイロードで想定される項目のリスト全体を指定する必要があります。

更新後の動作とクラスタのステータス

リクエストが成功すると、長時間実行オペレーション(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

次のステップ

Vertex AI トレーニング クラスタを管理すると、使用状況を最適化し、自動化されたワークフローに統合して、トレーニング済みモデルをデプロイ用に準備できます。

  • Vertex AI Pipelines でトレーニングをオーケストレートする: マネージド クラスタをターゲットとするパイプラインを使用して、データ準備からモデル登録まで、トレーニング ジョブのライフサイクル全体を自動化します。
  • トレーニング ジョブのモニタリングとデバッグ: クラスタで実行されている分散トレーニング ジョブの進行状況とリソース使用量を追跡し、問題を特定します。
  • 推論用にモデルをデプロイする: モデルのトレーニングと登録が完了したら、モデルを Vertex AI エンドポイントにデプロイして、オンライン推論リクエストを大規模に処理します。
  • 費用を最適化する: クラスタの使用率を定期的に確認し、アクティブに使用されていない場合はクラスタを削除して、予約済みハードウェアの請求額を最小限に抑えます。