SageMaker HyperPod クラスターの作成 - Amazon SageMaker AI

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

SageMaker HyperPod クラスターの作成

を使用して Amazon EKS によってオーケストレーションされた SageMaker HyperPod クラスターを作成する方法について説明します AWS CLI。

  1. SageMaker HyperPod クラスターを作成する前に:

    1. 既存の Amazon EKS クラスターが実行されていることを確認します。新しい Amazon EKS クラスターを作成する手順については、「Amazon EKS ユーザーガイド」の「Amazon EKS クラスターを作成します」を参照してください。

    2. Helm を使用した Amazon EKS クラスターへのパッケージのインストール」の手順に従って、Helm チャートをインストールします。を作成する場合は制限されたインスタンスグループ (RIG) を使用した HyperPod EKS クラスターの作成、別の Helm チャートが必要です。

  2. ライフサイクル設定スクリプトを準備し、s3://amzn-s3-demo-bucket/Lifecycle-scripts/base-config/ などの Amazon S3 バケットにアップロードします。

    クイックスタートでは、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 ワーカーテイントを許容し、リージョンごとに正しいコンテナイメージを使用するように更新されました。

  3. 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 では、InstanceStressInstanceConnectivity を追加して ディープヘルスチェック を有効にします。

    • NodeRecovery では、Automatic を指定して自動ノード復旧を有効にします。SageMaker HyperPod は、ヘルスモニタリングエージェントが問題を見つけたときにインスタンス (ノード) を置き換えるか再起動します。

    • Tags パラメータには、SageMaker HyperPod クラスターを AWS リソースとして管理するためのカスタムタグを追加できます。タグは、タグ付けをサポートする他の AWS サービスに追加するのと同じ方法でクラスターに追加できます。 AWS リソースのタグ付け全般の詳細については、「AWS リソースのタグ付けのユーザーガイド」を参照してください。

    • VpcConfig パラメータでは、EKS クラスターで使用される VPC の情報を指定します。サブネットはプライベートでなければなりません。

  4. 次のように 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 分待つことをお勧めします。