SageMaker HyperPod リファレンス - Amazon SageMaker AI

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

SageMaker HyperPod リファレンス

SageMaker HyperPod の使用に関する詳細情報とリファレンスについては、以下のトピックを参照してください。

SageMaker HyperPod の料金

以下のトピックでは、SageMaker HyperPod の料金について説明します。SageMaker HyperPod インスタンスの使用に関する 1 時間あたりの料金の詳細については、Amazon SageMaker の料金」も参照してください。

キャパシティリクエスト

SageMaker HyperPod で使用できるように、SageMaker AI でオンデマンドまたはリザーブドコンピューティングキャパシティを割り当てることができます。オンデマンドクラスターを作成すると、SageMaker AI オンデマンドキャパシティプールから利用可能なキャパシティが割り当てられます。または、クォータの引き上げのためにチケットを送信することにより、リザーブドキャパシティをリクエストしてアクセスを確保することもできます。インバウンドキャパシティリクエストは SageMaker AI によって優先され、キャパシティ割り当ての推定時間が提供されます。

サービス請求

SageMaker HyperPod でコンピューティングキャパシティをプロビジョニングすると、キャパシティーの割り当て期間に対して課金されます。SageMaker HyperPod の請求は、キャパシティ割り当てのタイプ (オンデマンド、リザーブド)、インスタンスタイプ、およびインスタンスの使用に費やされた時間の明細項目を含む年間請求書に表示されます。

クォータ引き上げのチケットを送信するには、「SageMaker HyperPod クォータ」を参照してください。

SageMaker HyperPod API

次のリストは、 AWS CLI または を介して SageMaker AI に JSON 形式のアクションリクエストを送信するための SageMaker HyperPod APIs の完全なセットです AWS SDK for Python (Boto3)。

SageMaker HyperPod Slurm の設定

HyperPod は、クラスターで Slurm を設定するための 2 つのアプローチをサポートしています。ニーズに最適なアプローチを選択します。

アプローチ 説明 に推奨
API 駆動型設定 CreateCluster および UpdateCluster API リクエストで Slurm 設定を直接定義する 新しいクラスター、管理の簡素化
レガシー設定 Amazon S3 に保存されている別のprovisioning_parameters.jsonファイルを使用する 既存のクラスター、下位互換性

API 駆動型 Slurm 設定 (推奨)

API 駆動型設定では、CreateCluster および UpdateCluster API リクエストで Slurm ノードタイプ、パーティション割り当て、ファイルシステムマウントを直接定義します。このアプローチにより、以下が提供されます。

  • 単一の信頼できるソース – API リクエストのすべての設定

  • S3 ファイル管理なし – 作成または維持する必要はありません provisioning_parameters.json

  • 組み込みの検証 – API はクラスターの作成前に Slurm トポロジを検証します

  • ドリフト検出 – への不正な変更を検出します。 slurm.conf

  • Per-instance-groupストレージ – インスタンスグループごとに異なる FSx ファイルシステムを設定する

  • FSx for OpenZFS サポート – FSx for Lustre に加えて OpenZFS ファイルシステムをマウントする

SlurmConfig (インスタンスグループごと)

を各インスタンスグループSlurmConfigに追加して、Slurm ノードタイプとパーティション割り当てを定義します。

"SlurmConfig": { "NodeType": "Controller | Login | Compute", "PartitionNames": ["string"] }

パラメータ :

  • NodeType – 必須。このインスタンスグループの Slurm ノードタイプ。有効な値:

    • Controller – Slurm コントローラー (ヘッド) ノード。slurmctld デーモンを実行します。1 つのインスタンスグループにこのノードタイプが必要です。

    • Login – ユーザーアクセス用のログインノード。オプション。最大で 1 つのインスタンスグループがこのノードタイプを持つことができます。

    • Compute – ジョブを実行するワーカーノード。このノードタイプを持つ複数のインスタンスグループを持つことができます。

    重要

    NodeType はイミュータブルです。クラスターの作成時に一度設定すると、変更することはできません。別のノードタイプを使用するには、新しいインスタンスグループを作成します。

  • PartitionNames - 条件付き。Slurm パーティション名の配列。Compute ノードタイプに必須。 Controllerまたは Loginノードタイプでは許可されません。現在、 はインスタンスグループごとに 1 つのパーティション名をサポートしています。

    注記

    すべてのノードは、指定されたdevパーティションに加えて、ユニバーサルパーティションに自動的に追加されます。

:

{ "InstanceGroupName": "gpu-compute", "InstanceType": "ml.p4d.24xlarge", "InstanceCount": 8, "SlurmConfig": { "NodeType": "Compute", "PartitionNames": ["gpu-training"] }, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-bucket/lifecycle/src/", "OnCreate": "on_create.sh" }, "ExecutionRole": "arn:aws:iam::111122223333:role/HyperPodRole" }

Orchestrator.Slurm (クラスターレベル)

をクラスター設定Orchestrator.Slurmに追加して、HyperPod がslurm.confファイルを管理する方法を指定します。

"Orchestrator": { "Slurm": { "SlurmConfigStrategy": "Managed | Overwrite | Merge" } }

パラメータ :

  • SlurmConfigStrategyOrchestrator.Slurmが指定されている場合は必須です。HyperPod がコントローラーノード上のslurm.confファイルを管理する方法を制御します。有効な値:

    • Managed (デフォルト) – HyperPod は、 のパーティションノードマッピングを完全に制御しますslurm.conf。ドリフト検出が有効になっています。現在の が予想される設定とslurm.conf異なる場合、UpdateCluster はエラーで失敗します。HyperPod を Slurm 設定の唯一の信頼できるソースにする場合は、この戦略を使用します。

    • Overwrite – HyperPod は API 設定を強制的に適用し、 への手動変更を上書きしますslurm.conf。ドリフト検出は無効になっています。この戦略を使用して、ドリフトから復旧するか、クラスターを既知の状態にリセットします。

    • Merge – HyperPod は手動slurm.confの変更を保持し、API 設定とマージします。ドリフト検出は無効になっています。更新全体で保持される Slurm 設定を手動で変更する必要がある場合は、この戦略を使用します。

注記

Orchestrator.Slurm がリクエストから省略された場合、デフォルトの動作は Managed戦略です。

ヒント

UpdateCluster を使用してSlurmConfigStrategyいつでも変更できます。特定の戦略にロックインはありません。

:

{ "ClusterName": "my-hyperpod-cluster", "InstanceGroups": [...], "Orchestrator": { "Slurm": { "SlurmConfigStrategy": "Managed" } } }

SlurmConfigStrategy の比較

方針 ドリフト検出 手動変更 ユースケース
Managed 有効 – ドリフトが検出された場合に更新をブロックします ブロック HyperPod マネージド
Overwrite Disabled 上書き済み ドリフトからの復旧、既知の状態へのリセット
Merge Disabled 保存済み カスタムslurm.confニーズを持つ上級ユーザー

InstanceStorageConfigs 経由の FSx 設定

API 駆動型設定では、 を使用してインスタンスグループごとに FSx ファイルシステムを設定できますInstanceStorageConfigs。これにより、異なるインスタンスグループで異なるファイルシステムをマウントできます。

前提条件:

  • クラスターはカスタム VPC ( 経由VpcConfig) を使用する必要があります。FSx ファイルシステムは VPC に存在し、プラットフォーム管理の VPC は VPC に到達できません。

  • 少なくとも 1 つのインスタンスグループに SlurmConfigと が必要ですNodeType: Controller

FsxLustreConfig

インスタンスグループの FSx for Lustre ファイルシステムのマウントを設定します。

"InstanceStorageConfigs": [ { "FsxLustreConfig": { "DnsName": "string", "MountPath": "string", "MountName": "string" } } ]

パラメータ :

  • DnsName – 必須。FSx for Lustre ファイルシステムの DNS 名。例: fs-0abc123def456789.fsx.us-west-2.amazonaws.com

  • MountPath - オプション。インスタンスのローカルマウントパス。デフォルト: /fsx

  • MountName – 必須。FSx for Lustre ファイルシステムのマウント名。これは、Amazon FSx コンソールまたは を実行して確認できますaws fsx describe-file-systems

FsxOpenZfsConfig

インスタンスグループの FSx for OpenZFS ファイルシステムのマウントを設定します。

"InstanceStorageConfigs": [ { "FsxOpenZfsConfig": { "DnsName": "string", "MountPath": "string" } } ]

パラメータ :

  • DnsName – 必須。FSx for OpenZFS ファイルシステムの DNS 名。例: fs-0xyz987654321.fsx.us-west-2.amazonaws.com

  • MountPath - オプション。インスタンスのローカルマウントパス。デフォルト: /home

注記

各インスタンスグループは、最大 1 つの FsxLustreConfigと 1 つの を持つことができますFsxOpenZfsConfig

複数のファイルシステムを使用した例:

{ "InstanceGroupName": "gpu-compute", "InstanceType": "ml.p4d.24xlarge", "InstanceCount": 4, "SlurmConfig": { "NodeType": "Compute", "PartitionNames": ["gpu-training"] }, "InstanceStorageConfigs": [ { "FsxLustreConfig": { "DnsName": "fs-0abc123def456789.fsx.us-west-2.amazonaws.com", "MountPath": "/fsx", "MountName": "abcdefgh" } }, { "FsxOpenZfsConfig": { "DnsName": "fs-0xyz987654321.fsx.us-west-2.amazonaws.com", "MountPath": "/shared" } }, { "EbsVolumeConfig": { "VolumeSizeInGB": 500 } } ], "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-bucket/lifecycle/src/", "OnCreate": "on_create.sh" }, "ExecutionRole": "arn:aws:iam::111122223333:role/HyperPodRole" }
重要

FSx 設定の変更は、ノードのプロビジョニング中にのみ適用されます。既存のノードは、元の FSx 設定を保持します。すべてのノードに新しい FSx 設定を適用するには、インスタンスグループを 0 にスケールダウンしてからスケールアップします。

API 駆動型設定の完全な例

次の例は、API 駆動型 Slurm 設定を使用した完全な CreateCluster リクエストを示しています。

{ "ClusterName": "ml-training-cluster", "InstanceGroups": [ { "InstanceGroupName": "controller", "InstanceType": "ml.c5.xlarge", "InstanceCount": 1, "SlurmConfig": { "NodeType": "Controller" }, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-us-west-2-111122223333/lifecycle/src/", "OnCreate": "on_create.sh" }, "ExecutionRole": "arn:aws:iam::111122223333:role/HyperPodRole", "ThreadsPerCore": 2 }, { "InstanceGroupName": "login", "InstanceType": "ml.m5.xlarge", "InstanceCount": 1, "SlurmConfig": { "NodeType": "Login" }, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-us-west-2-111122223333/lifecycle/src/", "OnCreate": "on_create.sh" }, "ExecutionRole": "arn:aws:iam::111122223333:role/HyperPodRole", "ThreadsPerCore": 2 }, { "InstanceGroupName": "gpu-compute", "InstanceType": "ml.p4d.24xlarge", "InstanceCount": 8, "SlurmConfig": { "NodeType": "Compute", "PartitionNames": ["gpu-training"] }, "InstanceStorageConfigs": [ { "FsxLustreConfig": { "DnsName": "fs-0abc123def456789.fsx.us-west-2.amazonaws.com", "MountPath": "/fsx", "MountName": "abcdefgh" } } ], "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-us-west-2-111122223333/lifecycle/src/", "OnCreate": "on_create.sh" }, "ExecutionRole": "arn:aws:iam::111122223333:role/HyperPodRole", "ThreadsPerCore": 2, "OnStartDeepHealthChecks": ["InstanceStress", "InstanceConnectivity"] }, { "InstanceGroupName": "cpu-compute", "InstanceType": "ml.c5.18xlarge", "InstanceCount": 4, "SlurmConfig": { "NodeType": "Compute", "PartitionNames": ["cpu-preprocessing"] }, "InstanceStorageConfigs": [ { "FsxLustreConfig": { "DnsName": "fs-0abc123def456789.fsx.us-west-2.amazonaws.com", "MountPath": "/fsx", "MountName": "abcdefgh" } } ], "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-us-west-2-111122223333/lifecycle/src/", "OnCreate": "on_create.sh" }, "ExecutionRole": "arn:aws:iam::111122223333:role/HyperPodRole", "ThreadsPerCore": 2 } ], "Orchestrator": { "Slurm": { "SlurmConfigStrategy": "Managed" } }, "VpcConfig": { "SecurityGroupIds": ["sg-0abc123def456789a"], "Subnets": ["subnet-0abc123def456789a", "subnet-0abc123def456789b"] }, "Tags": [ { "Key": "Project", "Value": "ML-Training" } ] }

API 駆動型設定の使用の詳細については、「」を参照してくださいライフサイクルスクリプトを使用して SageMaker HyperPod クラスターをカスタマイズする

レガシー設定: provisioning_parameters.json

注記

このprovisioning_parameters.jsonアプローチは、HyperPod で Slurm を設定するための従来の方法です。新しいクラスターの場合は、上記の API 駆動型設定アプローチを使用することをお勧めします。レガシーアプローチは、下位互換性のために完全にサポートされています。

レガシーアプローチでは、 という名前の Slurm 設定ファイルを作成しprovisioning_parameters.json、ライフサイクルスクリプトの一部として Amazon S3 にアップロードします。HyperPod は、クラスターの作成時にこのファイルを読み取り、Slurm ノードを設定します。

provisioning_parameters.json の設定フォーム

次のコードは、HyperPod クラスターに Slurm ノードを適切に設定するために準備する必要がある Slurm 設定フォームです。クラスターの作成時、このフォームに記入し、一連のライフサイクルスクリプトの一部としてアップロードする必要があります。HyperPod クラスターの作成プロセス全体でこのフォームを準備する方法については、「ライフサイクルスクリプトを使用して SageMaker HyperPod クラスターをカスタマイズする」を参照してください。

// Save as provisioning_parameters.json. { "version": "1.0.0", "workload_manager": "slurm", "controller_group": "string", "login_group": "string", "worker_groups": [ { "instance_group_name": "string", "partition_name": "string" } ], "fsx_dns_name": "string", "fsx_mountname": "string" }

パラメータ :

  • version – 必須。これは、HyperPod プロビジョニングパラメータフォームのバージョンです。1.0.0 に保持します。

  • workload_manager – 必須。これは、HyperPod クラスターで設定するワークロードマネージャーを指定するためのものです。slurm に保持します。

  • controller_group – 必須。これは、Slurm コントローラー (ヘッド) ノードに割り当てる HyperPod クラスターインスタンスグループの名前を指定するためのものです。

  • login_group - オプション。これは、Slurm ログインノードに割り当てる HyperPod クラスターインスタンスグループの名前を指定するためのものです。

  • worker_groups – 必須。これは、HyperPod クラスターで Slurm ワーカー (コンピューティング) ノードを設定するためのものです。

    • instance_group_name – 必須。これは、Slurm ワーカー (コンピューティング) ノードに割り当てる HyperPod インスタンスグループの名前を指定するためのものです。

    • partition_name – 必須。これは、ノードにパーティション名を指定するためのものです。

  • fsx_dns_name - オプション。Amazon FSx と通信するよう HyperPod クラスターで Slurm ノードを設定する場合、FSx DNS 名を指定します。

  • fsx_mountname - オプション。Amazon FSx と通信するよう HyperPod クラスターで Slurm ノードを設定する場合、FSx マウント名を指定します。

比較: API 駆動型設定とレガシー設定

機能 API 駆動型 (推奨) レガシー (provisioning_parameters.json)
設定場所 CreateCluster API リクエスト S3 ファイル
FSx for Lustre はい – インスタンスグループごと はい – クラスター全体のみ
FSx for OpenZFS はい – インスタンスグループごと いいえ – サポートされていません
組み込みの検証 はい なし
ドリフト検出 はい – (管理戦略) いいえ
S3 ファイル管理 不要 必須
ライフサイクルスクリプトの複雑さ 簡素化 SLURM のフルセットアップが必要

SageMaker HyperPod DLAMI

SageMaker HyperPod は、以下に基づいて DLAMI を実行します。

SageMaker HyperPod DLAMI には、Slurm、Kubernetes、依存関係、SageMaker HyperPod クラスターソフトウェアパッケージなどのオープンソースツールをサポートするための追加のパッケージがバンドルされており、クラスターのヘルスチェックや自動再開などの回復機能がサポートされます。HyperPod サービスチームが DLAMI を通じて配布する HyperPod ソフトウェアの更新の最新情報については、「Amazon SageMaker HyperPod リリースノート」を参照してください。

SageMaker HyperPod API アクセス許可リファレンス

重要

Amazon SageMaker Studio または Amazon SageMaker Studio Classic に Amazon SageMaker リソースの作成を許可するカスタム IAM ポリシーでは、これらのリソースにタグを追加するアクセス許可も付与する必要があります。Studio と Studio Classic は、作成したリソースに自動的にタグ付けするため、リソースにタグを追加するアクセス許可が必要になります。IAM ポリシーで Studio と Studio Classic によるリソースの作成が許可されていても、タグ付けが許可されていない場合は、リソースを作成しようとしたときに「AccessDenied」エラーが発生する可能性があります。詳細については、「SageMaker AI リソースにタグ付けのアクセス許可を付与する」を参照してください。

SageMaker リソースを作成するためのアクセス許可を付与する AWS Amazon SageMaker AI の マネージドポリシー には、それらのリソースの作成中にタグを追加するためのアクセス許可もあらかじめ含まれています。

SageMaker HyperPod API オペレーションを実行できるようにアクセスコントロールを設定し、クラウド管理者の IAM ユーザーにアタッチできるアクセス許可ポリシーを記述する場合、次の表を参照として使用します。

Amazon SageMaker API オペレーション 必要なアクセス許可 (API アクション) リソース
CreateCluster sagemaker:CreateCluster arn:aws:sagemaker:region:account-id:cluster/cluster-id
DeleteCluster sagemaker:DeleteCluster arn:aws:sagemaker:region:account-id:cluster/cluster-id
DescribeCluster sagemaker:DescribeCluster arn:aws:sagemaker:region:account-id:cluster/cluster-id
DescribeClusterNode sagemaker:DescribeClusterNode arn:aws:sagemaker:region:account-id:cluster/cluster-id
ListClusterNodes sagemaker:ListClusterNodes arn:aws:sagemaker:region:account-id:cluster/cluster-id
ListClusters sagemaker:ListClusters arn:aws:sagemaker:region:account-id:cluster/cluster-id
UpdateCluster sagemaker:UpdateCluster arn:aws:sagemaker:region:account-id:cluster/cluster-id
UpdateClusterSoftware sagemaker:UpdateClusterSoftware arn:aws:sagemaker:region:account-id:cluster/cluster-id

SageMaker APIのアクセス許可とリソースタイプの詳細なリストについては、「AWS サービス認可リファレンス」の「Amazon SageMaker のアクション、リソース、条件キー」を参照してください。

の SageMaker HyperPod コマンド AWS CLI

以下は、SageMaker HyperPod がコア HyperPod API オペレーションを実行するための AWS CLI コマンドです。

の SageMaker HyperPod Python モジュール AWS SDK for Python (Boto3)

以下は、SageMaker AI がコア HyperPod API オペレーションを実行するための AWS SDK for Python (Boto3) クライアントのメソッドです。