メインコンテンツへスキップ
このページでは、W&B Launchの設定に必要な大まかなstepについて説明します。
  1. キューを設定する: キューはFIFOで、キュー設定を持ちます。キュー設定は、ターゲットリソース上でジョブをどこでどのように実行するかを制御します。
  2. エージェントを設定する: エージェントはマシンまたはインフラストラクチャー上で実行され、1つ以上のキューをポーリングしてLaunchジョブを取得します。ジョブが取得されると、エージェントはイメージがビルドされて利用可能であることを確認します。その後、エージェントはジョブをターゲットリソースに送信します。

キューを設定する

Launch キューは、特定のターゲットリソースと、そのリソース固有の追加設定を指定するように設定する必要があります。たとえば、Kubernetes クラスターを参照する Launch キューには、環境変数を含めたり、キュー設定内でカスタム名前空間を設定したりできます。キューを作成するときは、使用するターゲットリソースと、そのリソースに適用する設定の両方を指定します。 エージェントがキューからジョブを受け取ると、キュー設定も同時に受け取ります。エージェントがジョブをターゲットリソースに送信するときは、ジョブ自体のオーバーライドとともにキュー設定も含めます。たとえば、ジョブ設定を使用して、そのジョブインスタンスにのみ適用される Amazon SageMaker のインスタンスタイプを指定できます。この場合、エンドユーザー向けインターフェースとして キュー設定テンプレート を使用するのが一般的です。

キューを作成する

  1. wandb.ai/launch の Launch App にアクセスします。
  2. 画面右上の create queue ボタンをクリックします。
Launch キュー の作成
  1. Entity ドロップダウンメニューから、このキューの所属先となる entity を選択します。
  2. Queue フィールドにキューの名を入力します。
  3. Resource ドロップダウンから、このキューに追加されたジョブが使用するコンピュートリソースを選択します。
  4. このキューで Prioritization を許可するかどうかを選択します。優先順位付けを有効にすると、チームのユーザーは Launch ジョブ をキューに追加する際に優先順位を設定できます。優先度の高いジョブは、優先度の低いジョブより先に実行されます。
  5. Configuration フィールドに、JSON または YAML 形式でリソースの設定を入力します。設定ドキュメントの構造と意味は、キューが参照するリソースのタイプによって異なります。詳細については、ターゲットリソース用の専用の設定ページを参照してください。

Launch エージェントを設定する

Launch エージェントは、1 つ以上の Launch キューをポーリングしてジョブを取得する長時間稼働プロセスです。Launch エージェントは、取得元のキューに応じて、先入れ先出し (FIFO) または優先順位順でジョブをキューから取り出します。エージェントがキューからジョブを取り出すと、必要に応じてそのジョブ用のイメージをビルドします。その後、エージェントはキュー設定で指定された設定オプションとともに、ジョブをターゲットリソースに送信します。
エージェントは非常に柔軟で、さまざまなユースケースに対応できるように設定できます。エージェントに必要な設定は、具体的なユースケースによって異なります。DockerAmazon SageMakerKubernetes、または Vertex AI の専用ページを参照してください。
W&B では、特定のユーザーの APIキーではなく、サービスアカウントの APIキーを使用してエージェントを起動することを推奨しています。サービスアカウントの APIキーを使用する利点は 2 つあります。
  1. エージェントが特定のユーザー個人に依存しません。
  2. Launch を通じて作成された run に紐づく作成者は、エージェントに関連付けられたユーザーではなく、Launch ジョブを送信したユーザーとして Launch に認識されます。

エージェントの設定

launch-config.yaml という名前の YAML ファイルで Launch エージェントを設定します。デフォルトでは、W&B は ~/.config/wandb/launch-config.yaml にある設定ファイルを参照します。必要に応じて、Launch エージェントを起動するときに別のディレクトリを指定することもできます。 Launch エージェントの設定ファイルの内容は、Launch エージェントの環境、Launch キューのターゲットリソース、Docker ビルダーの要件、クラウドレジストリの要件などによって異なります。 ユースケースにかかわらず、Launch エージェントには基本的な設定オプションがあります。
  • max_jobs: エージェントが並列実行できるジョブの最大数
  • entity: キューが属する entity
  • queues: エージェントが監視する 1 つ以上のキューの名
W&B CLI を使用すると、Launch エージェントの共通設定オプションを設定できます (設定用の YAML ファイルを使う代わりに) 。指定できるのは、ジョブの最大数、W&B entity、Launch キューです。詳細については、wandb launch-agent コマンドを参照してください。
次の YAML スニペットは、Launch エージェントの基本的な設定キーの指定方法を示しています。
launch-config.yaml
# 同時に実行するrunの最大数。-1 = 制限なし
max_jobs: -1

entity: <entity-name>

# ポーリングするキューのリスト。
queues:
  - <queue-name>

コンテナー ビルダーを設定する

Launch エージェントは、イメージをビルドするように設定できます。Git リポジトリまたはコード Artifacts から作成した launch ジョブを使用する場合は、コンテナー ビルダーを使用するようにエージェントを設定する必要があります。launch ジョブの作成方法の詳細については、launch ジョブを作成するを参照してください。 W&B Launch は 3 つのビルダー オプションをサポートしています。
  • Docker: Docker ビルダーは、ローカルの Docker デーモンを使用してイメージをビルドします。
  • Kaniko: Kaniko は Google のプロジェクトで、Docker デーモンを利用できない環境でもイメージをビルドできます。
  • Noop: エージェントはジョブをビルドせず、代わりに事前にビルドされたイメージのみをプルします。
エージェントが Docker デーモンを利用できない環境 (たとえば Kubernetes クラスター) でポーリングしている場合は、Kaniko ビルダーを使用してください。Kaniko ビルダーの詳細については、Kubernetes を設定するを参照してください。
イメージ ビルダーを指定するには、エージェントの設定に builder キーを含めます。たとえば、次のコード スニペットは、Docker または Kaniko を使用するよう指定した launch 設定 (launch-config.yaml) の一部を示しています。
launch-config.yaml
builder:
  type: docker | kaniko | noop

コンテナー レジストリを設定する

状況によっては、Launch エージェントをクラウド レジストリに接続したい場合があります。Launch エージェントをクラウド レジストリに接続する一般的なケースには、次のようなものがあります。
  • 高性能なワークステーションやクラスターなど、ビルドした環境とは別の環境でジョブを実行したい。
  • エージェントを使用してイメージをビルドし、それらのイメージを Amazon SageMaker または VertexAI で実行したい。
  • Launch エージェントに、イメージ リポジトリからプルするための認証情報を提供させたい。
エージェントがコンテナー レジストリと連携できるように設定する方法について詳しくは、Advanced agent set up ページを参照してください。

Launch エージェントを有効化する

launch-agent W&B CLI コマンドを使用して、Launch エージェントを有効化します。
wandb launch-agent -q <queue-1> -q <queue-2> --max-jobs 5
一部のユースケースでは、Kubernetes クラスター内からキューをポーリングする Launch エージェントを実行したい場合があります。詳しくは、高度なキュー設定ページを参照してください。