SageMaker HyperPod コンソール UI の使用 - Amazon SageMaker AI

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

SageMaker HyperPod コンソール UI の使用

SageMaker HyperPod コンソール UI を使用して、最初の SageMaker HyperPod クラスターを作成します。

Slurm で最初の SageMaker HyperPod クラスターを作成する

次のチュートリアルでは、新しい SageMaker HyperPod クラスターを作成し、SageMaker AI コンソール UI を使用して Slurm でセットアップする方法を示します。このチュートリアルに従うことで、3 つの Slurm ノード (my-controller-groupmy-login-groupworker-group-1) を持つ HyperPod クラスターを作成できます。

  1. https://console.aws.amazon.com/sagemaker/ で Amazon SageMaker AI コンソールを開きます。

  2. 左のナビゲーションペインで [HyperPod クラスター] を選択します。

  3. [SageMaker HyperPod クラスター] ページで、[クラスターを作成] を選択します。

  4. [ステップ 1: クラスター設定] で、新しいクラスターの名前を指定します。[タグ] セクションをスキップします。

  5. [ステップ 2: インスタンスグループ] で、インスタンスグループを追加します。インスタンスグループごとに異なる方法で設定でき、さまざまなインスタンスタイプを持つ複数のインスタンスグループで構成される異種クラスターを作成できます。クラスターの作成時にインスタンスグループでライフサイクル設定スクリプトを実行するには、Awsome Distributed Training GitHub リポジトリで提供されているサンプルライフサイクルスクリプトの使用から開始できます。

    1. [インスタンスグループ名] で、インスタンスグループの名前を指定します。このチュートリアルでは、my-controller-groupmy-login-groupworker-group-1 という名前の 3 つのインスタンスグループを作成します。

    2. [インスタンスタイプを選択] で、インスタンスグループのインスタンスを選択します。このチュートリアルでは、my-controller-groupml.c5.xlargemy-login-groupml.m5.4xlargeworker-group-1ml.trn1.32xlarge を選択します。

      アカウントで十分なクォータを持つインスタンスタイプを選択するか、「SageMaker HyperPod クォータ」に従って追加のクォータをリクエストしてください。

    3. [数量] で、クラスターの使用についてインスタンスクォータを超えない整数を指定します。このチュートリアルでは、3 つのグループすべてに「1」と入力します。

    4. [ライフサイクルスクリプトファイルへの S3 パス] に、ライフサイクルスクリプトが保存されている Amazon S3 パスを入力します。ライフサイクルスクリプトがない場合、以下のサブステップに従って、SageMaker HyperPod サービスチームが提供する基本ライフサイクルスクリプトを使用します。

      1. Awsome Distributed Training GitHub リポジトリをクローンします。

        git clone https://github.com/aws-samples/awsome-distributed-training/
      2. 1.architectures/5.sagemaker_hyperpods/LifecycleScripts/base-config の下に、一連の基本ライフサイクルスクリプトがあります。ライフサイクルスクリプトの詳細については、「ライフサイクルスクリプトを使用して SageMaker HyperPod クラスターをカスタマイズする」も参照してください。

      3. Slurm 設定ファイルを書き込み、provisioning_params.json という名前で保存します。ファイルで基本的な Slurm 設定パラメータを指定し、Slurm ノードを SageMaker HyperPod クラスターインスタンスグループに適切に割り当てます。例えば、provisioning_params.json は、前のステップ 5a、5b、および 5c で設定された HyperPod クラスターインスタンスグループに基づいて、次のようになります。

        { "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" } ] }
      4. スクリプトを Amazon S3 バケットにアップロードします。形式 s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src のパスを使用して S3 バケットを作成します。このバケットは、Amazon S3 コンソールを使用して作成できます。

        注記

        AmazonSageMakerClusterInstanceRolePolicy を持つ SageMaker HyperPod の IAM ロール では、この特定のプレフィックスを持つ S3 バケットへのアクセスのみをプリンシパルに許可されるため、S3 バケットパスにはプレフィックス sagemaker- を付ける必要があります。

    5. [作成時のライフサイクルスクリプトへのディレクトリパス][ライフサイクルスクリプトファイルへの S3 パス] の下に、ライフサイクルスクリプトのファイル名を入力します。

    6. [IAM ロール] で、セクション SageMaker HyperPod の IAM ロールから AmazonSageMakerClusterInstanceRolePolicy を使用して作成した IAM ロールを選択します。

    7. [詳細設定] では、次のオプション設定を設定できます。

      1. (オプション) [コアごとのスレッド] で、マルチスレッドを無効にする場合は 1 を、マルチスレッドを有効にする場合は 2 を指定します。マルチスレッドをサポートするインスタンスタイプを確認するには、「Amazon Elastic Compute Cloud ユーザーガイド」でインスタンスタイプごとの CPU コア数と CPU コアあたりのスレッド数のリファレンステーブルを参照してください。

      2. (オプション) [追加のインスタンスストレージ設定] で、1~16384 の整数を指定して、追加の Elastic Block Store (EBS) ボリュームのサイズをギガバイト (GB) 単位で設定します。EBS ボリュームは、インスタンスグループの各インスタンスにアタッチされます。追加の EBS ボリュームのデフォルトのマウントパスは /opt/sagemaker です。クラスターが正常に作成されたら、クラスターインスタンス (ノード) に SSH し、 df -h コマンドを実行して EBS ボリュームが正しくマウントされているかどうかを確認できます。追加の EBS ボリュームをアタッチすると、「Amazon Elastic Block Store ユーザーガイド」の「Amazon EBS ボリューム」セクションで説明されているように、インスタンスから独立した永続性を持つ安定したストレージが実現します。

  6. [ステップ 3: 詳細設定] で、クラスターを出入りするネットワーク設定を設定します。SageMaker AI に VPC へのアクセスを許可する VPC がすでにある場合は、独自の VPC を選択します。まだ作成していないが新しい VPC が必要な場合、「Amazon Virtual Private Cloud ユーザーガイド」の「VPC を作成する」の手順に従います。デフォルトの SageMaker AI VPC を使用するには、VPC なしのままにしておくことができます。

  7. [ステップ 4: 確認および作成] で、ステップ 1 から 3 で設定した設定を確認し、クラスター作成リクエストの送信を完了します。

  8. 新しいクラスターが、SageMaker HyperPod コンソールのメインペインの [クラスター] の下に表示されます。ステータスは、[ステータス] 列で確認できます。

  9. クラスターのステータスが InService になったら、クラスターノードへのログインを開始できます。クラスターノードにアクセスして ML ワークロードの実行を開始するには、「SageMaker HyperPod クラスター上のジョブ」を参照してください。

クラスターを削除してリソースをクリーンアップする

SageMaker HyperPod クラスターは、作成のテストに成功した後、クラスターを削除するまで InService 状態で実行され続けます。オンデマンド料金に基づく継続的なサービス料金が発生しないように、オンデマンド SageMaker AI インスタンスを使用して作成されたクラスターは、使用していないときは削除することをお勧めします。このチュートリアルでは、2 つのインスタンスグループで構成されるクラスターを作成しました。そのうちの 1 つは C5 インスタンスを使用しているため、「SageMaker HyperPod クラスターを削除する」の手順に従ってクラスターを削除してください。

ただし、リザーブドコンピューティングキャパシティでクラスターを作成した場合、クラスターのステータスはサービス請求には影響を与えません。

このチュートリアルで使用した S3 バケットからライフサイクルスクリプトをクリーンアップするには、クラスターの作成時に使用した S3 バケットに移動し、ファイルを完全に削除します。

クラスターでワークロードの実行をテストした場合、データをアップロードしたかどうか、またはジョブで Amazon FSx for Lustre や Amazon Elastic File System などの異なる S3 バケットやファイルシステムサービスにアーティファクトが保存されたかどうかを確認してください。料金の発生を防ぐには、ストレージまたはファイルシステムからすべてのアーティファクトとデータを削除します。