Skip to main content
W&B ローンンチを使用すると、ジョブキューに追加して run を作成します。ジョブは W&B と組み合わせた Python スクリプトです。キューは、ターゲットリソースで実行するジョブのリストを保持します。エージェントはキューからジョブを取り出し、ターゲットリソース上でジョブを実行します。W&B はローンンチジョブを W&B が run をトラッキングするのと同様にトラッキングします。

ローンンチジョブ

ローンンチジョブは、完了するタスクを表す特定の種類の W&B Artifact です。例えば、一般的なローンンチジョブには、モデルのトレーニングやモデルの評価トリガーがあります。ジョブ定義には以下が含まれます:
  • Pythonコードやその他のファイルアセット、少なくとも1つの実行可能なエントリポイントを含む。
  • 入力(設定パラメータ)および出力(ログされたメトリクス)に関する情報。
  • 環境に関する情報。(例えば、requirements.txt、ベースの Dockerfile)。
ジョブ定義には3つの主要な種類があります:
Job typesDefinitionHow to run this job type
アーティファクトベース(またはコードベース)のジョブコードや他のアセットが W&B アーティファクトとして保存される。アーティファクトベースのジョブを実行するには、ローンンチエージェントがビルダーで設定されている必要があります。
Git ベースのジョブコードや他のアセットが git リポジトリの特定のコミット、ブランチ、またはタグからクローンされる。Git ベースのジョブを実行するには、ローンンチエージェントがビルダーと git リポジトリの資格情報で設定されている必要があります。
イメージベースのジョブコードや他のアセットが Docker イメージに組み込まれている。イメージベースのジョブを実行するには、ローンンチエージェントがイメージリポジトリの資格情報で設定されている必要があるかもしれません。
ローンンチジョブは、モデルのトレーニングに関連しないアクティビティも実行可能です。例えば、モデルを Triton 推論サーバーにデプロイするなど。ただし、すべてのジョブは wandb.init を呼び出して正常に完了する必要があります。これにより、W&B ワークスペース内でトラッキング目的の run が作成されます。
作成したジョブは、プロジェクトワークスペースの Jobs タブの W&B アプリで見つけることができます。そこから、ジョブを設定して様々な ターゲットリソース で実行するための launch queue に送信できます。

Launch queue

ローンンチキューは、特定のターゲットリソースで実行するジョブの順序付けられたリストです。ローンンチキューは先入れ先出し (FIFO) です。持てるキューの数に実質的な制限はありませんが、1 つのターゲットリソースごとに 1 つのキューが理想的です。ジョブは W&B アプリ UI、W&B CLI または Python SDK を使用してエンキューできます。1 つまたは複数のローンンチエージェントを設定して、キューからアイテムを引き出し、それをキューのターゲットリソースで実行することができます。

Target resources

ローンンチキューがジョブを実行するために設定された計算環境をターゲットリソースと呼びます。 W&B ローンンチは以下のターゲットリソースをサポートしています: 各ターゲットリソースは、リソース設定と呼ばれる異なる設定パラメータを受け入れます。リソース設定は各ローンンチキューによって定義されるデフォルト値を持ちますが、各ジョブによって個別に上書きすることができます。各ターゲットリソースの詳細については、ドキュメントを参照してください。

Launch agent

ローンンチエージェントは、ジョブを実行するためにローンンチキューを定期的にチェックする軽量で持続的なプログラムです。ローンンチエージェントがジョブを受け取ると、まずジョブ定義からイメージをビルドまたはプルし、それをターゲットリソースで実行します。 1 つのエージェントは複数のキューをポーリングすることができますが、エージェントはポーリングするキューのバックするターゲットリソースすべてをサポートするように正しく設定されている必要があります。

Launch agent environment

エージェント環境は、ローンンチエージェントが実行され、ジョブのポーリングを行う環境です。
エージェントのランタイム環境はキューのターゲットリソースとは独立しています。言い換えれば、エージェントが必要なターゲットリソースにアクセスできるように十分な設定がされていれば、どこにでもデプロイすることができます。