翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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 または を使用してアクションリクエストを JSON 形式で SageMaker AI に送信するための 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" } }
パラメータ :
-
SlurmConfigStrategy–Orchestrator.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 を実行します。
-
Slurm とオーケストレーションするための AWS Deep Learning Base GPU AMI (Ubuntu 20.04)
。 -
Amazon EKS とオーケストレーションするための Amazon Linux 2 ベースの AMI。
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: |
| DeleteCluster | sagemaker:DeleteCluster |
arn:aws:sagemaker: |
| DescribeCluster | sagemaker:DescribeCluster |
arn:aws:sagemaker: |
| DescribeClusterNode | sagemaker:DescribeClusterNode |
arn:aws:sagemaker: |
| ListClusterNodes | sagemaker:ListClusterNodes |
arn:aws:sagemaker: |
| ListClusters | sagemaker:ListClusters |
arn:aws:sagemaker: |
| UpdateCluster | sagemaker:UpdateCluster |
arn:aws:sagemaker: |
| UpdateClusterSoftware | sagemaker:UpdateClusterSoftware |
arn:aws:sagemaker: |
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) クライアントのメソッドです。