Documentation Index
Fetch the complete documentation index at: https://wb-21fd5541-sandboxes-update-banner.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
W&B Launch を使うと、デスクトップで実行しているトレーニングrunsを、Amazon SageMaker や Kubernetes などのコンピュートリソースへ簡単にスケールできます。W&B Launch を設定すると、数回のクリックとコマンドだけで、トレーニングスクリプトの実行、モデル評価スイートの実行、本番推論向けのモデルの準備などをすばやく行えます。
Launch は、launch ジョブ、キュー、エージェントという 3 つの基本コンポーネントで構成されています。
launch ジョブ は、ML ワークフロー内のタスクを設定・実行するための設計図です。launch ジョブを作成したら、それを launch キュー に追加できます。launch キューは先入れ先出し (FIFO) 方式のキューで、Amazon SageMaker や Kubernetes クラスターなどの特定のコンピュートターゲットリソース向けに、ジョブを設定して送信できます。
ジョブがキューに追加されると、launch エージェント がそのキューをポーリングし、キューの対象システム上でジョブを実行します。
ユースケースに応じて、あなた (またはチームの誰か) が、選択した compute resource target (たとえば Amazon SageMaker) に合わせて launch キューを設定し、自身のインフラストラクチャー上に launch エージェントをデプロイします。
Launch の詳細については、用語と概念 ページを参照してください。
ユースケースに応じて、W&B Launch を使い始めるには次のリソースを参照してください。
このページでは、W&B Launch ワークフローの基本を順を追って説明します。
W&B Launch は、コンテナー内で機械学習ワークロードを実行します。コンテナーに慣れている必要はありませんが、このウォークスルーを進めるうえで役立つ場合があります。コンテナーの基礎については、Docker ドキュメントを参照してください。
始める前に、以下の前提条件を満たしていることを確認してください。
- https://wandb.ai/site でアカウントを作成し、W&B アカウントにログインします。
- この手順では、Docker CLI と Docker エンジンが正しく動作するマシンにターミナルからアクセスできる必要があります。詳細は Docker installation guide を参照してください。
- W&B Python SDK バージョン
0.17.1 以降をインストールします。
pip install wandb>=0.17.1
- ターミナルで
wandb login を実行するか、WANDB_API_KEY 環境変数を設定して W&B に認証します。
W&B にログイン
Environment variable
WANDB_API_KEY=<your-api-key>
<your-api-key> を W&B APIキーに置き換えます。
Launch ジョブは、Docker イメージを使用する方法、git リポジトリから作成する方法、ローカルのソースコードから作成する方法の3通りで作成できます。
Docker イメージを使用
git リポジトリから
ローカルのソースコードから
W&B にメッセージをログする事前作成済みのコンテナーを実行するには、ターミナルを開いて次のコマンドを実行します。wandb launch --docker-image wandb/job_hello_world:main --project launch-quickstart
前述のコマンドは、コンテナーイメージ wandb/job_hello_world:main をダウンロードして実行します。Launch は、wandb でログされたすべての内容が launch-quickstart プロジェクトにレポートされるようにコンテナーを設定します。コンテナーは W&B にメッセージをログし、新しく作成された run へのリンクを表示します。リンクをクリックすると、W&B UI で run を表示できます。 同じ hello-world ジョブを W&B Launch jobs リポジトリ内のソースコードから Launch するには、次のコマンドを実行します。wandb launch --uri https://github.com/wandb/launch-jobs.git \\
--job-name hello-world-git --project launch-quickstart \\
--build-context jobs/hello_world --dockerfile Dockerfile.wandb \\
--entry-point "python job.py"
このコマンドは次の処理を行います。
- W&B Launch jobs リポジトリ を一時ディレクトリーにクローンします。
- hello プロジェクトに hello-world-git という名前のジョブを作成します。このジョブは、コードの実行に使用した正確なソースコードと設定をトラッキングします。
jobs/hello_world ディレクトリーと Dockerfile.wandb からコンテナーイメージをビルドします。
- コンテナーを起動し、
job.py Python スクリプトを実行します。
コンソール出力には、イメージのビルドと実行が表示されます。コンテナーの出力は前の例とほぼ同じになるはずです。 git リポジトリでバージョン管理されていないコードは、--uri 引数にローカルディレクトリーパスを指定することで Launch できます。空のディレクトリーを作成し、次の内容の train.py という名前の Python スクリプトを追加します。import wandb
with wandb.init() as run:
run.log({"hello": "world"})
次の内容の requirements.txt ファイルを追加します。ディレクトリー内で、次のコマンドを実行します。wandb launch --uri . --job-name hello-world-code --project launch-quickstart --entry-point "python train.py"
このコマンドは次の処理を行います。
- 現在のディレクトリーの内容を Code Artifact として W&B にログします。
- launch-quickstart プロジェクトに hello-world-code という名前のジョブを作成します。
train.py と requirements.txt をベースイメージにコピーし、requirements を pip install してコンテナーイメージをビルドします。
- コンテナーを起動して
python train.py を実行します。
Launch は、チームが共有コンピュートを中心としたワークフローを構築できるように設計されています。これまでの例では、wandb launch コマンドはローカルマシン上でコンテナーを同期的に実行していました。Launch のキューとエージェントを使うと、共有リソース上でジョブを非同期に実行できるほか、優先度の設定やハイパーパラメーター最適化などの高度な機能も利用できます。基本的なキューを作成するには、次の手順に従います。
- wandb.ai/launch にアクセスし、Create a queue ボタンをクリックします。
- キューに関連付ける Entity を選択します。
- Queue name を入力します。
- Resource として Docker を選択します。
- Configuration は、ひとまず空欄のままにします。
- Create queue :rocket: をクリックします。
ボタンをクリックすると、ブラウザーはキュービューの Agents タブにリダイレクトされます。エージェントがポーリングを開始するまで、キューは Not active 状態のままです。
高度なキュー設定オプションについては、高度なキュー設定ページを参照してください。
キューにポーリングするエージェントがない場合は、画面上部の赤いバナーに Add an agent ボタンが表示されます。このボタンをクリックすると、エージェントを実行するためのコマンドを表示してコピーできます。コマンドは次のようになります。
wandb launch-agent --queue <queue-name> --entity <entity-name>
エージェントを起動するには、ターミナルでコマンドを実行します。エージェントは指定したキューをポーリングして、実行するジョブを取得します。ジョブを受信すると、ローカルで wandb launch コマンドを実行した場合と同様に、そのジョブ用のコンテナーイメージをダウンロードまたはビルドして実行します。
Launch ページに戻り、キューが Active と表示されていることを確認します。
W&B アカウントで新しい launch-quickstart プロジェクトにアクセスし、画面左側のナビゲーションから Jobs タブを開きます。
Jobs ページには、以前に実行した run から作成された W&B Job の一覧が表示されます。launch ジョブをクリックすると、ソースコード、依存関係、そのジョブから作成された run を確認できます。このウォークスルーを完了すると、一覧には 3 つのジョブが表示されるはずです。
新しいジョブのいずれか 1 つを選択し、次の手順に従ってキューに送信します。
- Launch ボタンをクリックしてジョブをキューに送信します。Launch ドロワーが表示されます。
- 先ほど作成した 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>