翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
SageMaker AI コンソールを使用した SageMaker HyperPod の開始方法
次のチュートリアルでは、新しい SageMaker HyperPod クラスターを作成し、SageMaker AI コンソール UI を使用して Slurm でセットアップする方法を説明します。このチュートリアルに従うことで、3 つの Slurm ノード (my-controller-group、my-login-group、worker-group-1) を持つ HyperPod クラスターを作成できます。
注記
HyperPod は、ライフサイクルスクリプトを使用しない Slurm クラスターの作成をサポートするようになりました。AMI ベースの設定を使用して完全に機能するクラスターを作成したり、拡張スクリプトで拡張したり、カスタムライフサイクルスクリプトを引き続き使用して完全に制御したりできます。
クラスターを作成する
SageMaker HyperPod クラスターページに移動し、Slurm オーケストレーションを選択するには、次の手順に従います。
Amazon SageMaker AI コンソール (https://console.aws.amazon.com/sagemaker/
) を開きます。 -
左側のナビゲーションペインで、[HyperPod クラスター] を選択し、[クラスターの管理] をクリックします。
-
[SageMaker HyperPod クラスター] ページで、[HyperPod クラスターを作成] をクリックします。
-
[HyperPod クラスターを作成] ドロップダウンメニューから、[Slurm によるオーケストレーション] を選択します。
-
Slurm クラスターの作成ページには、2 つのオプションが表示されます。ニーズに最適なオプションを選択します。
-
高速セットアップ - デフォルト設定をすぐに開始するには、[高速セットアップ] をクリックします。このオプションを使用すると、SageMaker AI はクラスターの作成中に VPC、サブネット、セキュリティグループ、Amazon S3 バケット、IAM ロール、FSx for Lustre などの新しいリソースを作成します。
-
カスタムセットアップ - 既存の AWS リソースと統合したり、特定のネットワーク、セキュリティ、ストレージ要件を設定したりするには、[カスタムセットアップ] を選択します。このオプションでは、既存のリソースを使用するか、新しいリソースを作成するかを選択できます。また、ニーズに最適な設定をカスタマイズできます。
-
[高速セットアップ] セクションで、以下の手順に従って Slurm オーケストレーションを使用して HyperPod クラスターを作成します。
全般設定
新しいクラスターの名前を指定します。クラスター名は、クラスターの作成後には変更できません。
インスタンスグループ
インスタンスグループを追加するには、[グループを追加] をクリックします。インスタンスグループごとに異なる方法で設定でき、さまざまなインスタンスタイプを持つ複数のインスタンスグループで構成される異種クラスターを作成できます。クラスターをデプロイするには、コントローラおよびコンピューティンググループタイプに少なくとも 1 つのインスタンスグループを追加する必要があります。
重要
一度に追加できるインスタンスグループは 1 つです。複数のインスタンスグループを作成するには、インスタンスグループごとにこのプロセスを繰り返します。
インスタンスグループを追加するには、次の手順を実行します。
-
[インスタンスグループのタイプ] では、インスタンスグループのタイプを選択します。このチュートリアルでは、[
my-controller-group] で [コントローラ (head)]、[my-login-group] で [ログイン]、[worker-group-1] で [コンピューティング (ワーカー)] を選択します。 -
[名前] には、インスタンスグループ名を入力します。このチュートリアルでは、
my-controller-group、my-login-group、worker-group-1という名前の 3 つのインスタンスグループを作成します。 -
[インスタンスキャパシティ] については、オンデマンドキャパシティまたはトレーニングプランを選択してコンピューティングリソースを予約します。
-
[インスタンスタイプ] では、インスタンスグループのインスタンスを選択します。このチュートリアルでは、
my-controller-groupにml.c5.xlarge、my-login-groupにml.m5.4xlarge、worker-group-1にml.trn1.32xlargeを選択します。重要
アカウントに十分なクォータと十分な未割り当ての IP アドレスを持つインスタンスタイプを選択します。追加のクォータを表示またはリクエストするには、「SageMaker HyperPod クォータ」を参照してください。
-
[インスタンスの数量] で、クラスターの使用についてインスタンスクォータを超えない整数を指定します。このチュートリアルでは、3 つのグループすべてに「1」と入力します。
-
[ターゲットアベイラビリティーゾーン] では、インスタンスをプロビジョンするアベイラビリティーゾーンを選択します。アベイラビリティーゾーンは、高速コンピューティングキャパシティの場所に対応している必要があります。
-
[インスタンスあたりの追加のストレージボリューム (GB)] (オプション) で、1~16384 の整数を指定し、追加の Elastic Block Store (EBS) ボリュームのサイズをギガバイト (GB) 単位で設定します。EBS ボリュームは、インスタンスグループの各インスタンスにアタッチされます。追加の EBS ボリュームのデフォルトのマウントパスは
/opt/sagemakerです。クラスターが正常に作成されたら、クラスターインスタンス (ノード) に SSH 接続し、df -hコマンドを実行して EBS ボリュームが正しくマウントされているかどうかを確認できます。追加の EBS ボリュームをアタッチすると、「Amazon Elastic Block Store ユーザーガイド」の「Amazon EBS ボリューム」セクションで説明されているように、インスタンスから独立した永続性を持つ安定したストレージが実現します。 -
[インスタンスグループを追加] をクリックします。
高速セットアップのデフォルト
このセクションでは、クラスター作成プロセス中に作成されるすべての新しい AWS リソースを含む、クラスター作成のすべてのデフォルト設定を一覧表示します。デフォルト設定を確認します。
注記
クイックセットアップでは、デフォルトのライフサイクルスクリプトが自動的に使用されます。新しい AMI ベースの設定オプション (ライフサイクルスクリプトなし) は、カスタムセットアップでのみ使用できます。ライフサイクルスクリプトなしでクラスターを作成する場合は、カスタムセットアップを選択し、ライフサイクルスクリプトでなしを選択します。
[カスタムセットアップ] セクションで、以下の手順に従って Slurm オーケストレーションを使用して HyperPod クラスターを作成します。
全般設定
新しいクラスターの名前を指定します。クラスター名は、クラスターの作成後には変更できません。
[インスタンスリカバリ] では、[自動 - 推奨] または [なし] を選択します。
ネットワーク
クラスター作成のネットワーク設定を構成します。これらの設定は、クラスターの作成後に変更することはできません。
-
VPC では、SageMaker AI に VPC へのアクセスを許可する VPC が既にある場合、独自の VPC を選択します。新しい VPC を作成するには、「Amazon Virtual Private Cloud ユーザーガイド」の「VPC を作成する」の手順に従います。デフォルトの SageMaker AI VPC を使用するには、[なし] のままにします。
-
[VPC IPv4 CIDR ブロック] には、VPC の開始 IP を入力します。
-
[アベイラビリティーゾーン] では、HyperPod がクラスターのサブネットを作成するアベイラビリティーゾーン (AZ) を選択します。高速コンピューティングキャパシティの場所に一致する AZ を選択します。
-
[セキュリティグループ] では、セキュリティグループを作成するか、VPC 内のリソース間通信を許可するルールで設定された最大 5 つのセキュリティグループを選択します。
インスタンスグループ
インスタンスグループを追加するには、[グループを追加] をクリックします。インスタンスグループごとに異なる方法で設定でき、さまざまなインスタンスタイプを持つ複数のインスタンスグループで構成される異種クラスターを作成できます。クラスターをデプロイするには、少なくとも 1 つのインスタンスグループを追加する必要があります。
重要
一度に追加できるインスタンスグループは 1 つです。複数のインスタンスグループを作成するには、インスタンスグループごとにこのプロセスを繰り返します。
インスタンスグループを追加するには、次の手順を実行します。
-
[インスタンスグループのタイプ] では、インスタンスグループのタイプを選択します。このチュートリアルでは、[
my-controller-group] で [コントローラ (head)]、[my-login-group] で [ログイン]、[worker-group-1] で [コンピューティング (ワーカー)] を選択します。 -
[名前] には、インスタンスグループ名を入力します。このチュートリアルでは、
my-controller-group、my-login-group、worker-group-1という名前の 3 つのインスタンスグループを作成します。 -
[インスタンスキャパシティ] については、オンデマンドキャパシティまたはトレーニングプランを選択してコンピューティングリソースを予約します。
-
[インスタンスタイプ] では、インスタンスグループのインスタンスを選択します。このチュートリアルでは、
my-controller-groupにml.c5.xlarge、my-login-groupにml.m5.4xlarge、worker-group-1にml.trn1.32xlargeを選択します。重要
アカウントに十分なクォータと十分な未割り当ての IP アドレスを持つインスタンスタイプを選択します。追加のクォータを表示またはリクエストするには、「SageMaker HyperPod クォータ」を参照してください。
-
[インスタンスの数量] で、クラスターの使用についてインスタンスクォータを超えない整数を指定します。このチュートリアルでは、3 つのグループすべてに「1」と入力します。
-
[ターゲットアベイラビリティーゾーン] では、インスタンスをプロビジョンするアベイラビリティーゾーンを選択します。アベイラビリティーゾーンは、高速コンピューティングキャパシティの場所に対応している必要があります。
-
[インスタンスあたりの追加のストレージボリューム (GB)] (オプション) で、1~16384 の整数を指定し、追加の Elastic Block Store (EBS) ボリュームのサイズをギガバイト (GB) 単位で設定します。EBS ボリュームは、インスタンスグループの各インスタンスにアタッチされます。追加の EBS ボリュームのデフォルトのマウントパスは
/opt/sagemakerです。クラスターが正常に作成されたら、クラスターインスタンス (ノード) に SSH 接続し、df -hコマンドを実行して EBS ボリュームが正しくマウントされているかどうかを確認できます。追加の EBS ボリュームをアタッチすると、「Amazon Elastic Block Store ユーザーガイド」の「Amazon EBS ボリューム」セクションで説明されているように、インスタンスから独立した永続性を持つ安定したストレージが実現します。 -
Slurm パーティション名 (コンピューティンググループのみ) には、このコンピューティングインスタンスグループの Slurm パーティション名を入力します。パーティションは、異なるノードセット間でジョブをスケジュールする方法を整理する論理キューとして機能します。
-
[インスタンスグループを追加] をクリックします。
ライフサイクル設定 - オプション
クラスター内のノードのプロビジョニング方法を設定します。選択すると、Amazon S3 バケットの要件、インターネットアクセスのニーズ、プロビジョニングの複雑さに影響します。HyperPod は 3 つのノードライフサイクル設定オプションをサポートし、それぞれがプロビジョニングプロセスに対して異なるレベルの制御を提供します。
-
ライフサイクルスクリプトでは、次のいずれかのオプションを選択して、クラスターでのノードのプロビジョニング方法を制御します。
-
なし — HyperPod は、AMI ベースの設定を使用してノードを自動的に設定します。Slurm デーモン、Docker、Enroot、Pyxis、MariaDB を使用した Slurm アカウンティング、SSH キーの生成と伝達、ログローテーション、ホームディレクトリの設定はすべて、スクリプトや Amazon S3 バケットなしで設定されます。すべてのソフトウェアは AMI にあらかじめパッケージ化されているため、プロビジョニング中にインターネットアクセスは必要ありません。これは、新しいクラスターの最も簡単なパスです。
-
デフォルトのライフサイクルスクリプトを使用する — デフォルトのライフサイクルスクリプトは、選択した Amazon S3 バケットにアップロードされ、ノードのプロビジョニングに使用されます。このオプションは、Awsome Distributed Training リポジトリ
(ADTR) のスクリプトを使用します。 -
カスタムライフサイクルスクリプトを使用する — Amazon S3 バケットからライフサイクルスクリプトを選択します。これは、Slurm の起動時を含め、スクリプトがプロビジョニングシーケンス全体を所有する API の
OnCreateパスに対応します。このオプションが選択されている場合、HyperPod は AMI ベースの設定を実行しません。
次の表は、3 つのオプションをまとめたものです。
オプション HyperPod の動作 Amazon S3 バケットが必要ですか? インターネットアクセスが必要ですか? なし (AMI-based configuration) Configures nodes automatically with Slurm and essential packages No No デフォルトのライフサイクルスクリプトを使用する Uploads and runs ADTR scripts from Amazon S3 Yes Yes カスタムライフサイクルスクリプトを使用する Runs your scripts from Amazon S3; you own the full provisioning sequence Yes Depends on your scripts -
-
S3 の拡張スクリプトファイル - オプション (ライフサイクルスクリプトでなしを選択した場合に表示されます) に、拡張スクリプトの Amazon S3 URI を入力します。拡張機能スクリプトを使用すると、オブザーバビリティ、システムセキュリティサービスデーモン (SSSD)、Amazon S3 バケットマウントなどの追加のオプション機能を、ライフサイクルスクリプトのセット全体を管理することなく、デフォルト設定に加えてプロビジョニングできます。
エントリポイントスクリプトに完全な Amazon S3 URI を入力します。次に例を示します。
s3://DOC-EXAMPLE-BUCKET/extensions/run_extensions.shHyperPod は、エントリポイントスクリプトが存在するフォルダ全体をダウンロードします。すべてのサポートファイルがエントリポイントスクリプトと同じディレクトリにあるように、Amazon S3 フォルダを構造化します。
注記
API では、これは
OnInitCompleteLifeCycleConfigで を指定することに対応しますSourceS3Uri。コンソールは、これらをエントリポイントスクリプトを直接指す単一の Amazon S3 URI フィールドに組み合わせます。ヒント
ready-to-use拡張スクリプトについては、Awsome Distributed Training リポジトリの Extensions フォルダ
を参照してください。この run_extensions.shスクリプトは、シンプルなブールトグルを使用して複数の機能をオーケストレーションし、それぞれを有効または無効にします。 -
ライフサイクルスクリプトの S3 バケット (デフォルトのライフサイクルスクリプトを使用する またはカスタムライフサイクルスクリプトを使用する を選択した場合に表示されます) では、新しいバケットを作成するか、既存のバケットを使用してライフサイクルスクリプトを保存するかを選択します。
注記
オプションのノードライフサイクル設定は、Slurm オーケストレーションされたクラスターでのみサポートされます。Continuous を使用する Amazon EKS オーケストレーションクラスターと Slurm クラスターでは、NodeProvisioningMode引き続きすべてのインスタンスグループでライフサイクルスクリプトが必要です。
注記
拡張スクリプトを使用する None オプションとカスタムライフサイクルスクリプトの使用オプションは相互に排他的です。AMI ベースの設定を、同じインスタンスグループの拡張スクリプトおよびカスタムライフサイクルスクリプトと組み合わせることはできません。API では、これは OnCreateと を一緒に指定OnInitCompleteすることはできません。
アクセス許可
HyperPod がユーザーに代わって必要な AWS リソースを実行およびアクセスできるようにする IAM ロールを選択または作成します。
Storage
HyperPod クラスターでプロビジョンする Lustre ファイルシステム用 FSx を設定します。FSx 設定はクラスターの作成にはオプションですが、本番稼働用 ML ワークロードには推奨されます。
-
[ファイルシステム] では、Lustre ファイルシステム用の既存の FSx を選択するか、新しい Lustre ファイルシステム用 FSx を作成するか、新しい Lustre ファイルシステム用 FSx をプロビジョンしないことを選択できます。
-
[ストレージユニットあたりのスループット] では、プロビジョンするストレージの TiB ごとに利用できるスループットを選択します。
-
[ストレージキャパシティ] には、キャパシティの値を TB 単位で入力します。
-
[データ圧縮タイプ] では、[LZ4] を選択してデータ圧縮を有効にします。
-
[Lustre バージョン] では、新しいファイルシステムに推奨される値を確認します。
注記
AMI ベースの設定 (ライフサイクルスクリプトでなしを選択) または拡張スクリプトを使用する場合、HyperPod は FSx for Lustre マウントを自動的に処理します。カスタムライフサイクルスクリプトを使用する場合、スクリプトはファイルシステムのマウントを担当します。
タグ - オプション
タグ - オプションで、新しいクラスターにキーと値のペアを追加し、クラスターを AWS リソースとして管理します。詳細については、「AWS リソースのタグ付け」を参照してください。
リソースのデプロイ
[高速セットアップ] または [カスタムセットアップ] を使用してクラスター設定を完了したら、次のオプションを選択してリソースのプロビジョンとクラスターの作成を開始します。
-
送信 - SageMaker AI はデフォルトの設定リソースのプロビジョンとクラスターの作成を開始します。
-
CloudFormation テンプレートパラメータのダウンロード - 設定パラメータ JSON ファイルをダウンロードし、 AWS CLI コマンドを実行して CloudFormation スタックをデプロイし、設定リソースをプロビジョニングしてクラスターを作成します。必要に応じて、ダウンロードしたパラメータ JSON ファイルを編集できます。このオプションを選択した場合は、「CloudFormation テンプレートを使用した SageMaker HyperPod クラスターの作成」の詳細な手順を参照してください。
クラスターを削除してリソースをクリーンアップする
SageMaker HyperPod クラスターは、作成のテストに成功した後、クラスターを削除するまで InService 状態で実行され続けます。オンデマンド料金に基づいてサービス料金が継続的に発生しないよう、オンデマンド SageMaker AI インスタンスを使用して作成されたクラスターは、使用しない際に削除することをお勧めします。このチュートリアルでは、2 つのインスタンスグループで構成されるクラスターを作成しました。そのうちの 1 つは C5 インスタンスを使用しているため、「SageMaker HyperPod クラスターを削除する」の手順に従ってクラスターを削除してください。
ただし、リザーブドコンピューティングキャパシティでクラスターを作成した場合、クラスターのステータスはサービス請求には影響を与えません。
デフォルトのライフサイクルスクリプトを使用する またはカスタムライフサイクルスクリプトを使用する を使用した場合は、クラスターの作成時に使用した Amazon S3 バケットに移動し、ライフサイクルスクリプトファイルを削除します。
拡張スクリプトなしで None (AMI ベースの設定のみ) を使用した場合、ライフサイクルスクリプトに Amazon S3 クリーンアップは必要ありません。
拡張スクリプトで None を使用した場合は、指定した Amazon S3 バケットから拡張スクリプトファイルをクリーンアップします。
クラスターでワークロードの実行をテストした場合、データをアップロードしたかどうか、またはジョブで Amazon FSx for Lustre や Amazon Elastic File System などの異なる S3 バケットやファイルシステムサービスにアーティファクトが保存されたかどうかを確認してください。料金の発生を防ぐには、ストレージまたはファイルシステムからすべてのアーティファクトとデータを削除します。