翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
SageMaker HyperPod クラスターの作成
を使用して Amazon EKS によってオーケストレーションされた SageMaker HyperPod クラスターを作成する方法について説明します AWS CLI。
-
SageMaker HyperPod クラスターを作成する前に:
-
既存の Amazon EKS クラスターが実行されていることを確認します。新しい Amazon EKS クラスターを作成する手順については、「Amazon EKS ユーザーガイド」の「Amazon EKS クラスターを作成します」を参照してください。
-
「Helm を使用した Amazon EKS クラスターへのパッケージのインストール」の手順に従って、Helm チャートをインストールします。を作成する場合は制限されたインスタンスグループ (RIG) を使用した HyperPod EKS クラスターの作成、別の Helm チャートが必要です。
-
-
ライフサイクル設定スクリプトを準備し、
s3://
などの Amazon S3 バケットにアップロードします。amzn-s3-demo-bucket
/Lifecycle-scripts
/base-config
/クイックスタートでは、ome Distributed Training GitHub AWSリポジトリ
on_create.sh
からサンプルスクリプトをダウンロードし、S3 バケットにアップロードします。HyperPod クラスターのプロビジョニングステージ中に実行する追加のセットアップ手順、一連のセットアップスクリプト、またはコマンドを含めることもできます。 重要
マネージド
AmazonSageMakerClusterInstanceRolePolicy
のみアタッチして SageMaker HyperPod の IAM ロール を作成すると、クラスターは特定のプレフィックスsagemaker-
を持つ Amazon S3 バケットにアクセスできます。制限付きインスタンスグループを作成する場合、ライフサイクルスクリプトをダウンロードして実行する必要はありません。代わりに、 を実行する必要があります
install_rig_dependencies.sh
。install_rig_dependencies.sh
スクリプトを実行するための前提条件は次のとおりです。-
AWS ノード (CNI) と CoreDNS の両方を有効にする必要があります。これらは標準の EKS アドオンであり、標準の SageMaker HyperPod Helm によって管理されませんが、アドオンの下の EKS コンソールで簡単に有効にできます。
-
このスクリプトを実行する前に、標準の SageMaker HyperPod Helm チャートをインストールする必要があります。
install_rig_dependencies.sh
スクリプトは次のアクションを実行します。-
aws-node
(CNI): 新しいrig-aws-node
デーモンセットが作成されました。RIG ノードを避けるために既存のaws-node
パッチが適用されています。 -
coredns
: マルチ RIGs、オーバーロードを防ぐために、RIG の Daemonset に変換されました。 -
training-operators: RIG ワーカーテイントの許容値と nodeAffinity が非 RIG インスタンスを優先して更新されました。
-
Elastic Fabric Adapter (EFA): RIG ワーカーテイントを許容し、リージョンごとに正しいコンテナイメージを使用するように更新されました。
-
-
CreateCluster API リクエストファイルを JSON 形式で準備します。
ExecutionRole
には、セクション SageMaker HyperPod の IAM ロール から マネージドAmazonSageMakerClusterInstanceRolePolicy
で作成した IAM ロールの ARN を指定します。注記
SageMaker HyperPod クラスターが Amazon EKS クラスターと同じ仮想プライベートクラウド (VPC) 内にデプロイされていることを確認します。SageMaker HyperPod クラスター設定で指定されたサブネットとセキュリティグループは、Amazon EKS クラスターの API サーバーエンドポイントとのネットワーク接続と通信を許可する必要があります。
// create_cluster.json
{ "ClusterName":"string"
, "InstanceGroups": [{ "InstanceGroupName":"string"
, "InstanceType":"string"
, "InstanceCount":number
, "LifeCycleConfig": { "SourceS3Uri":"s3://amzn-s3-demo-bucket-sagemaker>/<lifecycle-script-directory>/src/"
, "OnCreate":"on_create.sh"
}, "ExecutionRole":"string"
, "ThreadsPerCore":number
, "OnStartDeepHealthChecks": ["InstanceStress", "InstanceConnectivity"
] }], "RestrictedInstanceGroups": [ { "EnvironmentConfig": { "FSxLustreConfig": { "PerUnitStorageThroughput":number
, "SizeInGiB":number
} }, "ExecutionRole":"string"
, "InstanceCount":number
, "InstanceGroupName":"string"
, "InstanceStorageConfigs": [ { ... } ], "InstanceType":"string"
, "OnStartDeepHealthChecks": ["string"
], "OverrideVpcConfig": { "SecurityGroupIds": ["string"
], "Subnets": ["string"
] }, "ScheduledUpdateConfig": { "DeploymentConfig": { "AutoRollbackConfiguration": [ { "AlarmName":"string"
} ], "RollingUpdatePolicy": { "MaximumBatchSize": { "Type":"string"
, "Value":number
}, "RollbackMaximumBatchSize": { "Type":"string"
, "Value":number
} }, "WaitIntervalInSeconds":number
}, "ScheduleExpression":"string"
}, "ThreadsPerCore":number
, "TrainingPlanArn":"string"
} ], "VpcConfig": { "SecurityGroupIds": ["string"
], "Subnets": ["string"
] }, "Tags": [{ "Key":"string"
, "Value":"string"
}], "Orchestrator": { "Eks": { "ClusterArn":"string"
, } }, "NodeRecovery": "Automatic" }EKS クラスターに関連付ける新しい SageMaker HyperPod クラスターを作成するよう設定するときは、次の点に注意してください。
-
InstanceGroups
パラメータでは、最大 20 個のインスタンスグループを設定できます。 -
Orchestator.Eks.ClusterArn
では、オーケストレーターとして使用する EKS クラスターの ARN を指定します。 -
OnStartDeepHealthChecks
では、InstanceStress
とInstanceConnectivity
を追加して ディープヘルスチェック を有効にします。 -
NodeRecovery
では、Automatic
を指定して自動ノード復旧を有効にします。SageMaker HyperPod は、ヘルスモニタリングエージェントが問題を見つけたときにインスタンス (ノード) を置き換えるか再起動します。 -
Tags
パラメータには、SageMaker HyperPod クラスターを AWS リソースとして管理するためのカスタムタグを追加できます。タグは、タグ付けをサポートする他の AWS サービスに追加するのと同じ方法でクラスターに追加できます。 AWS リソースのタグ付け全般の詳細については、「AWS リソースのタグ付けのユーザーガイド」を参照してください。 -
VpcConfig
パラメータでは、EKS クラスターで使用される VPC の情報を指定します。サブネットはプライベートでなければなりません。
-
-
次のように create-cluster コマンドを実行します。
重要
--cli-input-json
パラメータを使用してcreate-cluster
コマンドを実行する場合は、JSON ファイルへの完全なパスの前にfile://
プレフィックスを含める必要があります。このプレフィックスは、 が入力をファイルパスとして AWS CLI 認識するために必要です。file://
プレフィックスを省略すると、解析パラメータエラーが発生します。aws sagemaker create-cluster \ --cli-input-json
file://complete/path/to/create_cluster.json
これにより、新しいクラスターの ARN が返されます。
重要
update-cluster オペレーションを使用して、制限付きインスタンスグループ (RIG) を削除できます。RIG を 0 にスケールダウンしても、FSx for Lustre ファイルシステムは削除されません。FSx for Lustre ファイルシステムを完全に削除するには、RIG を完全に削除する必要があります。
RIG を削除しても、サービスマネージド Amazon S3 バケットに保存されているアーティファクトは削除されません。ただし、削除する前に、FSx for Lustre ファイルシステム内のすべてのアーティファクトが Amazon S3 と完全に同期されていることを確認する必要があります。FSx for Lustre ファイルシステムからサービスマネージド Amazon S3 バケットへのすべてのアーティファクトの完全な同期を確保するために、ジョブ完了後少なくとも 30 分待つことをお勧めします。