Launch を設定する

このページでは、W&B Launch を設定するために必要な上位レベルの手順について説明しています。

  1. キューのセットアップ: キューはFIFOであり、キュー設定を持っています。キューの設定は、ジョブがどこでどのように対象リソースで実行されるかを制御します。
  2. エージェントのセットアップ: エージェントはあなたのマシン/インフラストラクチャー上で実行され、1つ以上のキューからローンチジョブをポールします。ジョブがプルされると、エージェントはイメージがビルドされ、利用可能であることを確認します。その後、エージェントはジョブを対象リソースに送信します。

キューのセットアップ

Launch キューは、特定の対象リソースとそのリソースに特有の追加設定を指すように設定する必要があります。例えば、Kubernetes クラスターを指すローンチキューは、環境変数を含めたり、カスタムネームスペースのローンチキュー設定を設定したりします。キューを作成する際には、使用したい対象リソースとそのリソースに使用する設定の両方を指定します。

エージェントがキューからジョブを受け取ると、キュー設定も受け取ります。エージェントがジョブを対象リソースに送信する際には、キュー設定とジョブ自体のオーバーライドを含めます。例えば、ジョブ設定を使用して、特定のジョブインスタンスのみの Amazon SageMaker インスタンスタイプを指定することができます。この場合、エンドユーザーインターフェースとして queue config templates を使用することが一般的です。

キューの作成

  1. wandb.ai/launch で Launch App へ移動します。
  2. 画面の右上にあるcreate queueボタンをクリックします。
  1. Entity のドロップダウンメニューから、そのキューが所属する エンティティ を選択します。
  2. Queue フィールドにキューの名前を入力します。
  3. Resource のドロップダウンから、ジョブをこのキューに追加する際に使用する計算リソースを選択します。
  4. このキューのPrioritizationを許可するかどうかを選択します。優先度が有効になっている場合、チームのユーザーは起動ジョブをエンキューする際にその優先度を定義できます。優先度が高いジョブは、優先度が低いジョブより先に実行されます。
  5. Configuration フィールドに、JSON または YAML 形式でリソース設定を提供します。設定ドキュメントの構造とセマンティクスは、キューが指すリソースタイプに依存します。詳細については、対象リソースに関する専用の設定ページを参照してください。

ローンチエージェントのセットアップ

ローンチエージェントは、ジョブのための1つ以上のローンチキューをポールする長時間実行されるプロセスです。ローンチエージェントは、FIFO 順序または優先順序でジョブをデキューし、ポールするキューに依存します。エージェントがキューからジョブをデキューすると、そのジョブのためにイメージをオプションでビルドします。その後、エージェントはジョブをキュー設定で指定された設定オプションとともに対象リソースに送信します。

エージェントの設定

launch-config.yaml という名前の YAML ファイルでローンチエージェントを設定します。デフォルトでは、W&B は ~/.config/wandb/launch-config.yaml に設定ファイルを確認します。ローンチエージェントをアクティブにするときに、異なるディレクトリーを指定することもできます。

ローンチエージェントの設定ファイルの内容は、ローンチエージェントの環境、ローンチキューの対象リソース、Dockerビルダ要件、クラウドレジストリ要件などに依存します。

ユースケースに関係なく、ローンチエージェントにはコア設定可能なオプションがあります。

  • max_jobs: エージェントが並行して実行できるジョブの最大数
  • entity: キューが所属するエンティティ
  • queues: エージェントが監視する1つ以上のキューの名前

次の YAML スニペットは、コアローンチエージェント設定キーを指定する方法を示しています。

# 最大同時 run 数を指定します。-1 = 無制限
max_jobs: -1

entity: <entity-name>

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

コンテナビルダーの設定

ローンチエージェントをイメージ構築に使用するように設定できます。Git リポジトリまたはコードアーティファクトから作成されたローンチジョブを使用する場合、コンテナビルダーを使用するようにエージェントを設定する必要があります。Create a launch job を参照して、ローンチジョブの作成方法について詳しく学んでください。

W&B Launch は3つのビルダーオプションをサポートしています:

  • Docker: DockerビルダーはローカルのDockerデーモンを使用してイメージをビルドします。
  • Kaniko: Kaniko は、Dockerデーモンが利用できない環境でのイメージ構築を可能にする Google のプロジェクトです。
  • Noop: エージェントはジョブをビルドしようとせず、代わりに事前にビルドされたイメージをプルするだけです。

イメージビルダーを指定するには、エージェント設定にビルダーキーを含めます。例えば、次のコードスニペットは、DockerまたはKanikoを使用することを指定するローンチ設定(launch-config.yaml)の一部を示しています。

builder:
  type: docker | kaniko | noop

コンテナレジストリの設定

場合によっては、ローンチエージェントをクラウドレジストリに接続したいかもしれません。ローンチエージェントをクラウドレジストリに接続したい一般的なシナリオは次のとおりです:

  • ジョブをビルドした場所以外の環境(強力なワークステーションやクラスターなど)でジョブを実行したい場合。
  • エージェントを使用してイメージをビルドし、Amazon SageMakerやVertexAIでこれらのイメージを実行したい場合。
  • エージェントにイメージリポジトリからプルするための資格情報を提供してもらいたい場合。

コンテナレジストリと対話するようにエージェントを設定する方法の詳細については、Advanced agent set ページを参照してください。

ローンチエージェントのアクティブ化

launch-agent W&B CLIコマンドを使用してローンチエージェントをアクティブ化します:

wandb launch-agent -q <queue-1> -q <queue-2> --max-jobs 5

いくつかのユースケースでは、ローンチエージェントをKubernetesクラスター内からキューをポールするように設定したいかもしれません。Advanced queue set up page を参照して、詳細情報を得てください。