翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
以下を使用 AWS CLI の コマンド SageMaker HyperPod APIs
を使用して最初の SageMaker HyperPod クラスターを作成する AWS CLI の コマンド HyperPod。
Slurm で最初の SageMaker HyperPod クラスターを作成する
次のチュートリアルでは、 を使用して新しい SageMaker HyperPod クラスターを作成し、Slurm でセットアップする方法を示します。 AWS CLI
の コマンド SageMaker HyperPod。チュートリアルに従って、、、 my-controller-group
my-login-group
の 3 つの Slurm ノードを持つ HyperPod クラスターを作成しますworker-group-1
。
-
まず、ライフサイクルスクリプトを準備して Amazon S3 バケットにアップロードします。クラスターの作成時に、 は各インスタンスグループでそれら HyperPod を実行します。次のコマンドを使用して、ライフサイクルスクリプトを Amazon S3 にアップロードします。
aws s3 sync \ ~/
local-dir-to-lifecycle-scripts
/* \ s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src
注記
S3 バケットパスはプレフィックス で始まる必要があります。 IAM の ロール SageMaker HyperPod を持つ は
sagemaker-
、特定のプレフィックスで始まる Amazon S3 バケットへのアクセスAmazonSageMakerClusterInstanceRolePolicy
のみを許可するためです。最初から開始する場合は、Awsome Distributed Training GitHub リポジトリ
にあるサンプルライフサイクルスクリプトを使用します。以下のサブステップは、ダウンロードする方法、変更する内容、サンプルライフサイクルスクリプトを Amazon S3 バケットにアップロードする方法を示しています。 -
ライフサイクルスクリプトのサンプルのコピーをローカルコンピュータのディレクトリにダウンロードします。
git clone https://github.com/aws-samples/awsome-distributed-training/
-
ディレクトリ に移動し
1.architectures/5.sagemaker_hyperpods/LifecycleScripts/base-config
、一連のライフサイクルスクリプトを見つけます。 cd awsome-distributed-training/1.architectures/5.sagemaker_hyperpods/LifecycleScripts/base-config
ライフサイクルスクリプトのサンプルの詳細については、「」を参照してくださいで Slurm を設定するためのライフサイクルスクリプトを準備する SageMaker HyperPod。
-
Slurm 設定ファイルを書き込み、 として保存します
provisioning_params.json
。ファイルで、基本的な Slurm 設定パラメータを指定して、 SageMaker HyperPod クラスターインスタンスグループに Slurm ノードを適切に割り当てます。このチュートリアルでは、次の設定例worker-group-1
に示すようにmy-controller-group
、、my-login-group
、および という名前の 3 つの Slurm ノードを設定しますprovisioning_params.json
。{ "version": "1.0.0", "workload_manager": "
slurm
", "controller_group": "my-controller-group
", "login_group": "my-login-group
", "worker_groups": [ { "instance_group_name": "worker-group-1
", "partition_name": "partition-1
" } ] } -
スクリプトを にアップロードします
s3://sagemaker-
。これを行うには、Amazon S3 コンソールを使用するか、以下を実行します。 AWS CLI Amazon S3 コマンド。<unique-s3-bucket-name>
/<lifecycle-script-directory>
/srcaws s3 sync \ ~/
local-dir-to-lifecycle-scripts
/* \ s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src
-
-
JSON 形式のCreateClusterリクエストファイルを準備し、 として保存します
create_cluster.json
。次のリクエストテンプレートは、ステップ 1.c の で定義されている Slurm ノード設定と一致しprovisioning_params.json
ています。にはExecutionRole
、AmazonSageMakerClusterInstanceRolePolicy
で管理されている で作成したIAMロールARNの を指定します SageMaker HyperPod を使用するための前提条件。{
// Required: Specify the name of the cluster.
"ClusterName": "my-hyperpod-cluster
",// Required: Configure instance groups to be launched in the cluster
"InstanceGroups": [ {// Required: Specify the basic configurations to set up a controller node.
"InstanceGroupName": "my-controller-group
", "InstanceType": "ml.c5.xlarge
", "InstanceCount":1
, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src
", "OnCreate": "on_create.sh
" }, "ExecutionRole": "${ROLE}
",// Optional: Configure an additional storage per instance group.
"InstanceStorageConfigs": [ {// Attach an additional EBS volume to each instance within the instance group.
// The default mount path for the additional EBS volume is /opt/sagemaker.
"EbsVolumeConfig":{// Specify an integer between 1 and 16384 in gigabytes (GB).
"VolumeSizeInGB":integer
, } } ] }, { "InstanceGroupName": "my-login-group
", "InstanceType": "ml.m5.4xlarge
", "InstanceCount":1
, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src
", "OnCreate": "on_create.sh
" }, "ExecutionRole": "${ROLE}
" }, { "InstanceGroupName": "worker-group-1
", "InstanceType": "ml.trn1.32xlarge
", "InstanceCount":1
, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src
", "OnCreate": "on_create.sh
" }, "ExecutionRole": "${ROLE}
" } ] } -
次のコマンドを実行してクラスターを作成します。
aws sagemaker create-cluster --cli-input-json
file://complete/path/to/create_cluster.json
これにより、作成されたクラスターARNの が返されます。
リソースの制限が原因でエラーが発生した場合は、インスタンスタイプをアカウントで十分なクォータを持つインスタンスタイプに変更するか、 の に従って追加のクォータをリクエストしてくださいSageMaker HyperPod クォータ。
-
describe-cluster
を実行して、クラスターのステータスを確認します。aws sagemaker describe-cluster --cluster-name
my-hyperpod-cluster
クラスターのステータスが になったら
InService
、次のステップに進みます。 -
list-cluster-nodes
を実行して、クラスターノードの詳細を確認します。aws sagemaker list-cluster-nodes --cluster-name
my-hyperpod-cluster
これによりレスポンスが返され、
InstanceId
はクラスターユーザーが (aws ssm
) にログインするために必要なものです。クラスターノードへのログインと ML ワークロードの実行の詳細については、「」を参照してください SageMaker HyperPod クラスターでジョブを実行する。
クラスターを削除してリソースをクリーンアップする
SageMaker HyperPod クラスターの作成を正常にテストした後、クラスターを削除するまで InService
状態で実行され続けます。オンデマンド料金に基づく継続的なサービス料金が発生しないように、使用していないときは、オンデマンド SageMaker 容量を使用して作成されたクラスターを削除することをお勧めします。このチュートリアルでは、2 つのインスタンスグループで構成されるクラスターを作成しました。そのうちの 1 つは C5 インスタンスを使用するため、次のコマンドを実行してクラスターを削除してください。
aws sagemaker delete-cluster --cluster-name
my-hyperpod-cluster
このチュートリアルで使用した Amazon S3 バケットからライフサイクルスクリプトをクリーンアップするには、クラスターの作成時に使用した Amazon S3 バケットに移動し、ファイルを完全に削除します。
クラスターでモデルトレーニングワークロードの実行をテストしている場合は、データをアップロードしたか、ジョブが Amazon FSx for Lustre や Amazon Elastic File System などの異なる Amazon S3 バケットやファイルシステムサービスにアーティファクトを保存したかも確認してください。料金が発生しないようにするには、ストレージまたはファイルシステムからすべてのアーティファクトとデータを削除します。