API に送信される引数を制御するには、 ラーンンチ キュー設定 を使用します。
Amazon SageMaker は トレーニング ジョブを実行するために Docker イメージを使用しています。SageMaker によってプルされるイメージは、Amazon Elastic Container Registry (ECR) に保存する必要があります。 つまり、トレーニングに使用するイメージは ECR に保存する必要があります。
このガイドでは、SageMaker トレーニング ジョブを実行する方法を示しています。Amazon SageMaker での推論用にモデルを展開する方法については、この例の Launch ジョブ を参照してください。
前提条件
始める前に、以下の前提条件を確認してください:- Docker イメージを作成するかどうかを決定します。
- AWS リソースを設定し、S3、ECR、および Sagemaker IAM ロールに関する情報を収集します。
- Launch エージェントのための IAM ロールを作成します。
Docker イメージを作成するかどうかを決定する
W&B Launch エージェントに Docker イメージを作成させるかどうかを決定します。選択肢は 2 つあります。- ローンンチ エージェントに Docker イメージの構築を許可し、Amazon ECR にイメージをプッシュし、SageMaker Training ジョブの送信を許可します。このオプションは、トレーニング コードを迅速に反復する ML エンジニアにいくらかの簡素化を提供できます。
- ローンンチ エージェントが、トレーニングまたは推論スクリプトを含む既存の Docker イメージを使用します。このオプションは既存の CI システムに適しています。このオプションを選択する場合は、Amazon ECR のコンテナ レジストリに Docker イメージを手動でアップロードする必要があります。
AWS リソースを設定する
お好みの AWS リージョンで次の AWS リソースが設定されていることを確認してください :- コンテナ イメージを保存するための ECR リポジトリ。
- SageMaker トレーニング ジョブの入力と出力を保存するための 1 つまたは複数の S3 バケット。
- Amazon SageMaker がトレーニング ジョブを実行し、Amazon ECR と Amazon S3 と対話することを許可する IAM ロール。
Launch エージェント用の IAM ポリシーを作成する
- AWS の IAM 画面から、新しいポリシーを作成します。
- JSON ポリシーエディターに切り替え、以下のポリシーをケースに基づいて貼り付けます。
<>で囲まれた値を実際の値に置き換えてください:
- エージェントが事前構築された Docker イメージを送信
- エージェントが Docker イメージを構築して送信
- 次へ をクリックします。
- ポリシーに名前と説明を付けます。
- ポリシー作成 をクリックします。
Launch エージェント用の IAM ロールを作成する
Launch エージェントには、Amazon SageMaker トレーニング ジョブを作成する権限が必要です。以下の手順に従って IAM ロールを作成します:- AWS の IAM 画面から、新しいロールを作成します。
- 信頼されたエンティティ として AWS アカウント (または組織のポリシーに適したオプション) を選択します。
- 権限画面をスクロールし、上で作成したポリシー名を選択します。
- ロールに名前と説明を付けます。
- ロールの作成 を選択します。
- ロールの ARN を記録します。これを設定するときに Launch エージェント用に ARN を指定します。
- エージェントがイメージを構築できるようにするには、高度なエージェントの設定で追加の権限が必要です。
- SageMaker キューの
kms:CreateGrant権限は、関連する ResourceConfig に指定された VolumeKmsKeyId がある場合にのみ必要であり、関連するロールにこの操作を許可するポリシーがない場合に限ります。
SageMaker 用に Launch キューを設定する
次に、W&B アプリで SageMaker をコンピュート リソースとして使用するキューを作成します:- Launch アプリ に移動します。
- キューを作成 ボタンをクリックします。
- キューを作成する エンティティ を選択します。
- 名前 フィールドにキューの名前を入力します。
- リソース として SageMaker を選択します。
- 設定 フィールド内で、SageMaker ジョブに関する情報を提供します。デフォルトでは、W&B は YAML および JSON の
CreateTrainingJobリクエストボディを自動生成します:
RoleArn: SageMaker 実行 IAM ロールの ARN (前提条件 を参照してください)。Launch agent IAM ロールとは混同しないでください。OutputDataConfig.S3OutputPath: SageMaker の出力が保存される Amazon S3 URI を指定します。ResourceConfig: リソース設定の必須仕様です。リソース設定のオプションはこちらに記載されています。StoppingCondition: トレーニング ジョブの停止条件の必須仕様です。オプションはこちらに記載されています。
- キューを作成 ボタンをクリックします。
Launch エージェントをセットアップする
次のセクションでは、エージェントをデプロイする場所と、デプロイ場所に基づいてエージェントをどのように設定するかを説明します。 Amazon SageMaker キューに Launch エージェントをデプロイする方法にはいくつかのオプションがあります: ローカルマシン、EC2 インスタンス、または EKSクラスターで。エージェントをデプロイする場所に基づいてアプリケーション エージェントを適切に構成します。ローンンチ エージェントを実行する場所を決定する
プロダクション ワークロードおよび既に EKS クラスターを持つ顧客には、この Helm チャートを使用して EKS クラスターに ラーンンチ エージェント をデプロイすることをお勧めします。 現在の EKS クラスターがないプロダクション ワークロードには、EC2 インスタンスが適したオプションです。Launch エージェント インスタンスは常に稼働していますが、t2.micro サイズの EC2 インスタンスという比較的手頃なインスタンスで十分です。
実験的または個人のユースケースには、ローカルマシンに Launch エージェントを実行するのがすばやく始める方法です。
選択したユースケースに基づいて、以下のタブに記載されている指示に従って Launch エージェントを適切に設定してください:
- EKS
- EC2
- ローカルマシン
W&B は、エージェントを EKS クラスターでインストールするために、W&B 管理 helm チャート の使用を強く推奨しています。
Launch エージェントを設定する
launch-config.yaml という名前の YAML 設定ファイルで Launch エージェントを設定します。
デフォルトでは、W&B は ~/.config/wandb/launch-config.yaml にある設定ファイルを確認します。エージェントをアクティブにする際に -c フラグで別のディレクトリを指定することも可能です。
以下の YAML スニペットは、コア設定エージェントオプションを指定する方法を示しています:
launch-config.yaml
wandb launch-agent で開始します。
(オプション) Docker イメージを Amazon ECR にプッシュする
このセクションは、トレーニングまたは推論ロジックを含む既存の Docker イメージをエージェントが使用する場合にのみ適用されます。Launch エージェントの動作には 2 つのオプションがあります。