CreateTrainingJob API に送信する引数を制御します。
Amazon SageMaker は、Docker イメージを使用してトレーニングジョブを実行します。SageMaker が pull するイメージは Amazon Elastic Container Registry (ECR) に保存する必要があります。つまり、トレーニングに使用するイメージを ECR に保存する必要があります。
このガイドでは、SageMaker Training Jobs を実行する方法を示します。Amazon SageMaker で推論用にモデルをデプロイする方法については、この Launch ジョブの例を参照してください。
前提条件
- Launch エージェントに Docker イメージのビルドを任せるかどうかを決めます。
- AWS リソースをセットアップし、S3、ECR、SageMaker の IAM ロールに関する情報を収集します。
- Launch エージェント用の IAM ロールを作成します。
Launch エージェントに Docker イメージ をビルドさせるかどうかを決める
- Launch エージェントが Docker イメージ をビルドし、その image を Amazon ECR にプッシュして、SageMaker Training ジョブを送信できるようにします。このオプションでは、トレーニングコードをすばやく繰り返し改善したい ML エンジニアの作業を簡略化できます。
- トレーニングまたは推論スクリプトを含む既存の Docker イメージ を使用します。このオプションは、既存の CI システムとの相性が良好です。このオプションを選択する場合は、Docker イメージ を Amazon ECR 上のコンテナー レジストリに手動でアップロードする必要があります。
AWS リソースをセットアップする
- コンテナーイメージを保存するための ECR リポジトリ。
- SageMaker Training ジョブの入力と出力を保存するための、1 つ以上の S3 バケット。
- SageMaker がトレーニングジョブを実行し、Amazon ECR および Amazon S3 と連携できるようにする、Amazon SageMaker 用の IAM ロール。
Launch エージェント用の IAM ポリシーを作成する
- AWS の IAM 画面で、新しいポリシーを作成します。
- JSON ポリシーエディタに切り替え、ユースケースに応じて以下のポリシーを貼り付けます。
[BRACKETS]内のプレースホルダーは、ご自身の値に置き換えてください。
- エージェントが事前ビルド済み Docker イメージ を送信する
- エージェントが Docker イメージ をビルドして送信する
- Next をクリックします。
- ポリシーに名前と説明を付けます。
- Create policy をクリックします。
Launch エージェント用の IAM ロールを作成する
- AWS の IAM 画面で、新しいロールを作成します。
- Trusted Entity で、AWS Account (または組織のポリシーに適した別のオプション) を選択します。
- 権限画面をスクロールし、前のセクションで作成したポリシー名を選択します。
- ロールの名前と説明を入力します。
- Create role を選択します。
- ロールの ARN を記録します。Launch エージェントを設定するときに、この ARN を指定します。
- Launch エージェントでイメージをビルドする場合は、必要な追加権限について Advanced agent set up を参照してください。
- SageMaker キューの
kms:CreateGrant権限は、関連付けられたResourceConfigにVolumeKmsKeyIdが指定されており、かつ関連付けられたロールにこのアクションを許可するポリシーがない場合にのみ必要です。
SageMaker 用に Launch キューを設定する
- Launch App にアクセスします。
- Create Queue をクリックします。
- キューを作成する Entity を選択します。
- Name フィールドにキューの名前を入力します。
- Resource として SageMaker を選択します。
- Configuration フィールドで、SageMaker ジョブに関する情報を入力します。デフォルトでは、W&B によって YAML および JSON の
CreateTrainingJobリクエストボディが入力されています。
RoleArn: SageMaker 実行 IAM ロールの ARN (prerequisites を参照) 。これは Launch agent の IAM ロールと混同しないでください。OutputDataConfig.S3OutputPath: SageMaker が出力を保存する場所を指定する Amazon S3 URI。ResourceConfig: 必須のリソース設定です。リソース設定オプションについては、AWSResourceConfigドキュメントを参照してください。StoppingCondition: トレーニング ジョブの停止条件の必須設定です。オプションについては、AWSStoppingConditionドキュメントを参照してください。
- Create Queue をクリックします。
Launch エージェントを設定する
Launch エージェント をどこで実行するかを決める
t2.micro サイズの EC2 インスタンス程度で十分なため、コストを抑えられます。
実験用途や個人利用では、手早く使い始める方法として、ローカルマシンで Launch エージェント を実行できます。
ユースケースに応じて、以下のタブの手順に従って Launch エージェント を設定してください。
- EKS
- EC2
- ローカルマシン
W&B は、W&B managed Helm chart を使用して、EKS クラスターにエージェントをインストールすることを推奨します。
Launch エージェントを設定する
launch-config.yaml という名前の YAML 設定ファイルを使って Launch エージェントを設定します。
デフォルトでは、W&B は ~/.config/wandb/launch-config.yaml で設定ファイルを探します。必要に応じて、-c フラグを使用して Launch エージェントを起動する際に、別のディレクトリを指定できます。
以下の YAML スニペットは、主要な Launch エージェントの設定オプションを指定する方法を示しています。
launch-config.yaml
wandb launch-agent を実行してエージェントを起動します。
これで Launch エージェントは実行中となり、ジョブを取得するために SageMaker キューをポーリングします。
任意: Launch ジョブ の Docker イメージを Amazon ECR にプッシュする
このセクションは、Launch エージェントがトレーニングまたは Inference のロジックを含む既存の Docker イメージを使用する場合にのみ該当します。Launch エージェントは 2 つの動作オプションをサポートします。