翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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-jsonfile://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 分待つことをお勧めします。