SageMaker AI コンソールを使用した SageMaker HyperPod の開始方法 - Amazon SageMaker AI

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

SageMaker AI コンソールを使用した SageMaker HyperPod の開始方法

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

クラスターを作成する

SageMaker HyperPod クラスターページに移動し、Slurm オーケストレーションを選択するには、次の手順に従います。

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

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

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

  4. [HyperPod クラスターを作成] ドロップダウンメニューから、[Slurm によるオーケストレーション] を選択します。

  5. Slurm クラスターの作成ページには、2 つのオプションが表示されます。ニーズに最適なオプションを選択します。

    1. 高速セットアップ - デフォルト設定をすぐに開始するには、[高速セットアップ] をクリックします。このオプションを使用すると、SageMaker AI はクラスターの作成中に VPC、サブネット、セキュリティグループ、Amazon S3 バケット、IAM ロール、FSx for Lustre などの新しいリソースを作成します。

    2. カスタムセットアップ - 既存の AWS リソースと統合したり、特定のネットワーク、セキュリティ、ストレージ要件を設定したりするには、[カスタムセットアップ] を選択します。このオプションでは、既存のリソースを使用するか、新しいリソースを作成するかを選択できます。また、ニーズに最適な設定をカスタマイズできます。

[高速セットアップ] セクションで、以下の手順に従って Slurm オーケストレーションを使用して HyperPod クラスターを作成します。

全般設定

新しいクラスターの名前を指定します。クラスター名は、クラスターの作成後には変更できません。

インスタンスグループ

インスタンスグループを追加するには、[グループを追加] をクリックします。インスタンスグループごとに異なる方法で設定でき、さまざまなインスタンスタイプを持つ複数のインスタンスグループで構成される異種クラスターを作成できます。クラスターをデプロイするには、コントローラおよびコンピューティンググループタイプに少なくとも 1 つのインスタンスグループを追加する必要があります。

重要

一度に追加できるインスタンスグループは 1 つです。複数のインスタンスグループを作成するには、インスタンスグループごとにこのプロセスを繰り返します。

インスタンスグループを追加するには、次の手順を実行します。

  1. [インスタンスグループのタイプ] では、インスタンスグループのタイプを選択します。このチュートリアルでは、[my-controller-group] で [コントローラ (head)]、[my-login-group] で [ログイン]、[worker-group-1] で [コンピューティング (ワーカー)] を選択します。

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

  3. [インスタンスキャパシティ] については、オンデマンドキャパシティまたはトレーニングプランを選択してコンピューティングリソースを予約します。

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

    重要

    アカウントに十分なクォータと十分な未割り当ての IP アドレスを持つインスタンスタイプを選択します。追加のクォータを表示またはリクエストするには、「SageMaker HyperPod クォータ」を参照してください。

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

  6. [ターゲットアベイラビリティーゾーン] では、インスタンスをプロビジョンするアベイラビリティーゾーンを選択します。アベイラビリティーゾーンは、高速コンピューティングキャパシティの場所に対応している必要があります。

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

  8. [インスタンスグループを追加] をクリックします。

高速セットアップのデフォルト

このセクションでは、クラスター作成プロセス中に作成されるすべての新しいAWSリソースを含む、クラスター作成のすべてのデフォルト設定を一覧表示します。デフォルト設定を確認します。

[カスタムセットアップ] セクションで、以下の手順に従って Slurm オーケストレーションを使用して HyperPod クラスターを作成します。

全般設定

新しいクラスターの名前を指定します。クラスター名は、クラスターの作成後には変更できません。

[インスタンスリカバリ] では、[自動 - 推奨] または [なし] を選択します。

ネットワーク

クラスター作成のネットワーク設定を構成します。これらの設定は、クラスターの作成後に変更することはできません。

  1. VPC では、SageMaker AI に VPC へのアクセスを許可する VPC が既にある場合、独自の VPC を選択します。新しい VPC を作成するには、「Amazon Virtual Private Cloud ユーザーガイド」の「VPC を作成する」の手順に従います。デフォルトの SageMaker AI VPC を使用するには、[なし] のままにします。

  2. [VPC IPv4 CIDR ブロック] には、VPC の開始 IP を入力します。

  3. [アベイラビリティーゾーン] では、HyperPod がクラスターのサブネットを作成するアベイラビリティーゾーン (AZ) を選択します。高速コンピューティングキャパシティの場所に一致する AZ を選択します。

  4. [セキュリティグループ] では、セキュリティグループを作成するか、VPC 内のリソース間通信を許可するルールで設定された最大 5 つのセキュリティグループを選択します。

インスタンスグループ

インスタンスグループを追加するには、[グループを追加] をクリックします。インスタンスグループごとに異なる方法で設定でき、さまざまなインスタンスタイプを持つ複数のインスタンスグループで構成される異種クラスターを作成できます。クラスターをデプロイするには、少なくとも 1 つのインスタンスグループを追加する必要があります。

重要

一度に追加できるインスタンスグループは 1 つです。複数のインスタンスグループを作成するには、インスタンスグループごとにこのプロセスを繰り返します。

インスタンスグループを追加するには、次の手順を実行します。

  1. [インスタンスグループのタイプ] では、インスタンスグループのタイプを選択します。このチュートリアルでは、[my-controller-group] で [コントローラ (head)]、[my-login-group] で [ログイン]、[worker-group-1] で [コンピューティング (ワーカー)] を選択します。

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

  3. [インスタンスキャパシティ] については、オンデマンドキャパシティまたはトレーニングプランを選択してコンピューティングリソースを予約します。

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

    重要

    アカウントに十分なクォータと十分な未割り当ての IP アドレスを持つインスタンスタイプを選択します。追加のクォータを表示またはリクエストするには、「SageMaker HyperPod クォータ」を参照してください。

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

  6. [ターゲットアベイラビリティーゾーン] では、インスタンスをプロビジョンするアベイラビリティーゾーンを選択します。アベイラビリティーゾーンは、高速コンピューティングキャパシティの場所に対応している必要があります。

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

  8. [インスタンスグループを追加] をクリックします。

ライフサイクルスクリプト

デフォルトのライフサイクルスクリプトを使用するか、Amazon S3 バケットに保存されるカスタムライフサイクルスクリプトを使用するかを選択できます。Awsome Distributed Training GitHub リポジトリで提供されているサンプルライフサイクルスクリプトを確認できます。ライフサイクルスクリプトの詳細については、「ライフサイクルスクリプトを使用して SageMaker HyperPod クラスターをカスタマイズする」を参照してください。

  1. [ライフサイクルスクリプト] では、デフォルトまたはカスタムのライフサイクルスクリプトの使用を選択します。

  2. [ライフサイクルスクリプトの S3 バケット] では、新しいバケットを作成するか、既存のバケットを使用してライフサイクルスクリプトを保存するかを選択します。

権限

HyperPod がユーザーに代わって必要なAWSリソースを実行およびアクセスできるようにする IAM ロールを選択または作成します。

Storage

HyperPod クラスターでプロビジョンする Lustre ファイルシステム用 FSx を設定します。

  1. [ファイルシステム] では、Lustre ファイルシステム用の既存の FSx を選択するか、新しい Lustre ファイルシステム用 FSx を作成するか、新しい Lustre ファイルシステム用 FSx をプロビジョンしないことを選択できます。

  2. [ストレージユニットあたりのスループット] では、プロビジョンするストレージの TiB ごとに利用できるスループットを選択します。

  3. [ストレージキャパシティ] には、キャパシティの値を TB 単位で入力します。

  4. [データ圧縮タイプ] では、[LZ4] を選択してデータ圧縮を有効にします。

  5. [Lustre バージョン] では、新しいファイルシステムに推奨される値を確認します。

タグ - オプション

タグ - オプション、新しいクラスターにキーと値のペアを追加し、クラスターを AWSリソースとして管理します。詳細については、「AWS リソースのタグ付け」を参照してください。

リソースのデプロイ

[高速セットアップ] または [カスタムセットアップ] を使用してクラスター設定を完了したら、次のオプションを選択してリソースのプロビジョンとクラスターの作成を開始します。

  • 送信 - SageMaker AI はデフォルトの設定リソースのプロビジョンとクラスターの作成を開始します。

  • CloudFormation テンプレートパラメータのダウンロード - 設定パラメータ JSON ファイルをダウンロードし、 AWS CLIコマンドを実行して CloudFormation スタックをデプロイし、設定リソースをプロビジョニングしてクラスターを作成します。必要に応じて、ダウンロードしたパラメータ JSON ファイルを編集できます。このオプションを選択した場合は、「CloudFormationテンプレートを使用した SageMaker HyperPod クラスターの作成」の詳細な手順を参照してください。

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

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

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

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

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