メインコンテンツへスキップ

Launch とは?

Colabで試す

W&B Launch を使うと、デスクトップで行っていたトレーニング runs を、Amazon SageMaker や Kubernetes などのコンピュートリソースへ簡単にスケールできます。W&B Launch の設定が完了すると、数回のクリックとコマンドだけで、トレーニングスクリプトの実行、モデル評価スイートの実行、本番推論向けのモデルの準備などをすばやく行えます。

仕組み

Launch は、launch ジョブqueuesagents の 3 つの基本コンポーネントで構成されています。 launch ジョブ は、ML ワークフローでタスクを設定して実行するための設計図です。launch ジョブ を作成したら、それを launch queue に追加できます。launch queue は先入れ先出し (FIFO) 方式のキューで、Amazon SageMaker や Kubernetes クラスターなどの特定のコンピュートターゲットリソース向けにジョブを設定し、送信できます。 ジョブがキューに追加されると、launch agents がそのキューをポーリングし、キューのターゲットとなるシステム上でジョブを実行します。
W&B Launch の概要図
ユースケースに応じて、あなた (またはチームのメンバー) が、選択した compute resource target (たとえば Amazon SageMaker) に合わせて launch queue を設定し、自身のインフラストラクチャーに launch agent をデプロイします。 Launch の詳細については、Terms and concepts ページを参照してください。

使い始めるには

ユースケースに応じて、W&B Launch を使い始める際に役立つ以下のリソースをご覧ください。

ウォークスルー

このページでは、W&B Launch ワークフローの基本を順を追って説明します。
W&B Launch は、機械学習のワークロードをコンテナーで実行します。コンテナーに関する知識は必須ではありませんが、このウォークスルーを進めるうえで役立つ場合があります。コンテナーの概要については、Docker ドキュメントを参照してください。

前提条件

開始する前に、以下の前提条件を満たしていることを確認してください。
  1. https://wandb.ai/site でアカウントを作成し、その後 W&B アカウントにログインします。
  2. この手順では、Docker CLI と Docker Engine が動作するマシンにターミナルからアクセスできる必要があります。詳細は、Docker installation guide を参照してください。
  3. W&B Python SDK バージョン 0.17.1 以降をインストールします。
    pip install wandb>=0.17.1
    
  4. ターミナルで wandb login を実行するか、WANDB_API_KEY 環境変数を設定して W&B に認証します。
ターミナルで次を実行します。
wandb login

Launch ジョブを作成する

launch job は、Docker image を使用する方法、git repository から作成する方法、またはローカルのソースコードから作成する方法の 3 つの方法で作成できます。
W&B にメッセージをログする事前作成済みのコンテナーを実行するには、ターミナルを開いて次のコマンドを実行します。
wandb launch --docker-image wandb/job_hello_world:main --project launch-quickstart
このコマンドは、コンテナーイメージ wandb/job_hello_world:main をダウンロードして実行します。Launch は、wandb でログされた内容がすべて launch-quickstart project に報告されるようにコンテナーを設定します。コンテナーは W&B にメッセージをログし、W&B で新しく作成された run へのリンクを表示します。リンクをクリックすると、W&B UI でその run を表示できます。

キューを作成する

Launch は、共有コンピュートを中心としたワークフローをチームで構築できるように設計されています。ここまでの例では、wandb launch コマンドはローカルマシン上でコンテナーを同期実行していました。Launch queue とエージェントを使用すると、共有リソース上でジョブを非同期に実行できるほか、優先度設定やハイパーパラメーター最適化などの高度な機能も利用できます。基本的なキューを作成するには、次の手順に従ってください。
  1. wandb.ai/launch にアクセスし、Create a queue ボタンをクリックします。
  2. キューに関連付ける Entity を選択します。
  3. Queue name を入力します。
  4. Resource として Docker を選択します。
  5. Configuration は、ここでは空白のままにします。
  6. Create queue をクリックします :rocket:
ボタンをクリックすると、ブラウザーはキュービューの Agents タブにリダイレクトされます。エージェントがポーリングを開始するまで、キューは Not active 状態のままです。
Docker queue creation
キューの高度な設定オプションについては、advanced queue setup page を参照してください。

エージェントをキューに接続する

キューにポーリングするエージェントがない場合、キュービューの画面上部にある赤いバナーに Add an agent ボタンが表示されます。ボタンをクリックすると、エージェントを実行するためのコマンドをコピーする画面が表示されます。コマンドは次のようになります。
wandb launch-agent --queue <queue-name> --entity <entity-name>
ターミナルでコマンドを実行して、エージェントを起動します。エージェントは、指定したキューをポーリングして、実行対象のジョブを確認します。ジョブを受信すると、そのジョブのコンテナーイメージをダウンロードまたはビルドして実行します。これは、wandb launch コマンドをローカルで実行した場合と同じです。 Launch ページに戻り、キューが Active と表示されていることを確認します。

キューにジョブを送信する

W&B アカウントで新しい launch-quickstart project にアクセスし、画面左側のナビゲーションから Jobs タブを開きます。 Jobs ページには、以前に実行した run から作成された W&B Jobs の一覧が表示されます。launch ジョブをクリックすると、ソースコード、依存関係、そのジョブから作成された run を確認できます。この walkthrough を完了すると、一覧には 3 つのジョブが表示されるはずです。 新しいジョブの 1 つを選択し、次の手順に従ってキューに送信します。
  1. Launch ボタンをクリックしてジョブをキューに送信します。Launch ドロワーが表示されます。
  2. 先ほど作成した Queue を選択し、Launch をクリックします。
これでジョブがキューに送信されます。このキューをポーリングしているエージェントがジョブを取得して実行します。ジョブの進行状況は W&B UI で確認するか、ターミナルでエージェントの出力を確認して監視できます。 wandb launch コマンドでは、--queue 引数を指定することでジョブを直接キューにプッシュできます。たとえば、hello-world コンテナー ジョブをキューに送信するには、次のコマンドを実行します。
   wandb launch --docker-image wandb/job_hello_world:main --project launch-quickstart --queue <queue-name>