> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coreweave.com/llms.txt
> Use this file to discover all available pages before exploring further.

> W&B Launch の入門チュートリアルです。ジョブ、キュー、エージェント、ML ワークロードの実行について説明します。

# チュートリアル: W&B Launch の基本

<h2 id="what-is-launch">
  Launch とは
</h2>

<Card title="Colab で試す" href="https://colab.research.google.com/drive/1wX0OSVxZJDHRsZaOaOEDx-lLUrO1hHgP" icon="code" />

このチュートリアルは、ML 実務者とプラットフォームチームに向けて W\&B Launch を紹介するものです。Launch job の作成、キューの設定、エージェントの接続、ジョブの送信と実行までの手順を順に説明します。チュートリアルを終えると、W\&B Launch を使ってコンテナー化された ML ワークロードを実行した状態になり、チームで再利用できるキューとエージェントも利用可能になります。

W\&B Launch を使用すると、トレーニングの [run](/ja/products/wandb/runs) をデスクトップから Amazon SageMaker や Kubernetes などのコンピュートリソースへスケールできます。Launch を設定すれば、数回のクリックとコマンドだけで、トレーニングスクリプトやモデル評価スイートの実行、本番推論に向けたモデルの準備などを行えます。

<h2 id="how-it-works">
  仕組み
</h2>

Launch は、**Launch job**、**キュー**、**エージェント** という 3 つの基本コンポーネントで構成されています。

[*Launch job*](/ja/products/wandb/platform/launch/launch-terminology#launch-job) は、ML ワークフロー内のタスクを設定して実行するための設計図です。作成した Launch job は [*launch キュー*](/ja/products/wandb/platform/launch/launch-terminology#launch-queue) に追加できます。launch キューは先入れ先出し (FIFO) のキューです。このキューを使用して、Amazon SageMaker や Kubernetes クラスターなどの特定のコンピュートターゲットリソースに向けてジョブを設定し、送信できます。

ジョブがキューに追加されると、[*Launch エージェント*](/ja/products/wandb/platform/launch/launch-terminology#launch-agent) がそのキューをポーリングし、キューのターゲットとなっているシステム上でジョブを実行します。

<Frame>
  <img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/platform/_media/launch_overview.png?fit=max&auto=format&n=3Dv_sw2eg8feUJlx&q=85&s=9ebe0d7cdb780d1cb454ced88f18085d" alt="W&B Launch の概要図" width="1314" height="642" data-path="products/wandb/platform/_media/launch_overview.png" />
</Frame>

ユースケースに応じて、ユーザー自身 (またはチームのメンバー) が、選択した[コンピュートリソースターゲット](/ja/products/wandb/platform/launch/launch-terminology#target-resources) (Amazon SageMaker など) に合わせて launch キューを設定し、自社のインフラストラクチャー上に Launch エージェントをデプロイします。

Launch の詳細については、[用語と概念](/ja/products/wandb/platform/launch/launch-terminology)のページを参照してください。

<h2 id="get-started">
  はじめに
</h2>

ユースケースに応じて、以下のリソースを参照し、W\&B Launch を使い始めてください。

* W\&B Launch を初めて使用する場合は、まず [Launch ウォークスルー](#walkthrough)ガイドをご覧ください。
* [W\&B Launch](/ja/products/wandb/platform/launch/set-up-launch) の設定方法を確認します。
* [Launch job](/ja/products/wandb/platform/launch/launch-terminology#launch-job) を作成します。
* W\&B Launch の[公開ジョブ GitHub リポジトリ](https://github.com/wandb/launch-jobs)では、[Triton へのデプロイ](https://github.com/wandb/launch-jobs/tree/main/jobs/deploy_to_nvidia_triton)や [LLM の評価](https://github.com/wandb/launch-jobs/tree/main/jobs/openai_evals)など、一般的なタスクのテンプレートを確認できます。
  * このリポジトリから作成された Launch job は、公開されている W\&B プロジェクト [`wandb/jobs` project](https://forge.coreweave.com/wandb/wandb/jobs/jobs) で確認できます。

<h2 id="walkthrough">
  ウォークスルー
</h2>

このページでは、W\&B Launch ワークフローの基本を順を追って説明します。

<Note>
  W\&B Launch は、機械学習ワークロードをコンテナー内で実行します。このウォークスルーを進めるうえでコンテナーの知識は必須ではありませんが、あると理解しやすくなります。コンテナーの概要については、[Docker のドキュメント](https://docs.docker.com/guides/docker-concepts/the-basics/what-is-a-container/)を参照してください。
</Note>

<h2 id="prerequisites">
  前提条件
</h2>

始める前に、以下の前提条件を満たしていることを確認してください。これらは、このウォークスルーで後ほどコマンドを実行するために必要なアカウント、ツール、認証に関する条件です。

1. [https://wandb.ai/site](https://wandb.ai/site) でアカウントを作成し、W\&B アカウントにログインします。
2. このウォークスルーでは、Docker CLI と Docker エンジンが正常に動作するマシンにターミナルからアクセスできる必要があります。詳しくは [Docker インストールガイド](https://docs.docker.com/engine/install/) を参照してください。
3. W\&B Python SDK バージョン `0.17.1` 以降をインストールします。
   ```bash theme={"system"}
   pip install wandb>=0.17.1
   ```
4. ターミナルで `wandb login` を実行するか、`WANDB_API_KEY` 環境変数を設定して、W\&B で認証します。

<Tabs>
  <Tab title="W&B にログイン">
    ターミナルで次のコマンドを実行します。

    ```bash theme={"system"}
    wandb login
    ```
  </Tab>

  <Tab title="環境変数">
    ```bash theme={"system"}
        WANDB_API_KEY=[API-KEY]
    ```

    `[API-KEY]` をご自身の W\&B APIキーに置き換えてください。
  </Tab>
</Tabs>

<h2 id="create-a-launch-job">
  Launch job を作成する
</h2>

Launch job は Launch に実行させるワークロードの設計図です。キューに作業を送信するには、事前に Launch job を作成しておく必要があります。[Launch job](/ja/products/wandb/platform/launch/launch-terminology#launch-job) は、Docker イメージを使用する方法、Git リポジトリから作成する方法、ローカルのソースコードから作成する方法の 3 通りで作成できます。

<Tabs>
  <Tab title="Docker イメージを使用する">
    W\&B にメッセージをログする既製のコンテナーを実行するには、ターミナルを開いて次のコマンドを実行します。

    ```bash theme={"system"}
    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 を確認できます。
  </Tab>

  <Tab title="Git リポジトリから作成する">
    同じ hello-world ジョブを [W\&B Launch jobs リポジトリにあるソースコード](https://github.com/wandb/launch-jobs)から起動するには、次のコマンドを実行します。

    ```bash theme={"system"}
    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"
    ```

    このコマンドは次の処理を行います。

    1. [W\&B Launch jobs リポジトリ](https://github.com/wandb/launch-jobs)を一時ディレクトリにクローンします。
    2. **hello** project に **hello-world-git** という名前のジョブを作成します。このジョブは、コードの実行に使用したソースコードと設定をそのままトラッキングします。
    3. `jobs/hello_world` ディレクトリと `Dockerfile.wandb` からコンテナーイメージをビルドします。
    4. コンテナーを起動し、`job.py` Python スクリプトを実行します。

    コンソール出力には、イメージのビルドと実行の様子が表示されます。コンテナーの出力は、前の例とほぼ同じになります。
  </Tab>

  <Tab title="ローカルのソースコードから作成する">
    Git リポジトリでバージョン管理されていないコードも、`--uri` 引数にローカルディレクトリのパスを指定すれば起動できます。

    空のディレクトリを作成し、次の内容で `train.py` という名前の Python スクリプトを追加します。

    ```python theme={"system"}
    import wandb

    with wandb.init() as run:
        run.log({"hello": "world"})
    ```

    次の内容で `requirements.txt` ファイルを追加します。

    ```text theme={"system"}
    wandb>=0.17.1
    ```

    そのディレクトリ内で、次のコマンドを実行します。

    ```bash theme={"system"}
    wandb launch --uri . --job-name hello-world-code --project launch-quickstart --entry-point "python train.py"
    ```

    このコマンドは次の処理を行います。

    1. カレントディレクトリの内容をコードアーティファクトとして W\&B にログします。
    2. **launch-quickstart** project に **hello-world-code** という名前のジョブを作成します。
    3. `train.py` と `requirements.txt` をベースイメージにコピーし、依存関係を `pip install` してコンテナーイメージをビルドします。
    4. コンテナーを起動し、`python train.py` を実行します。
  </Tab>
</Tabs>

<h2 id="create-a-queue">
  キューを作成する
</h2>

Launch job の準備ができたら、次のステップとして、ジョブをどこでどのように実行するかを定義するキューを作成します。Launch は、チームが共有コンピュートを軸にワークフローを構築できるように設計されています。これまでの例では、`wandb launch` コマンドはローカルマシン上でコンテナーを同期的に実行していました。launch キューとエージェントを使用すると、共有リソース上でジョブを非同期に実行できるほか、優先順位付けやハイパーパラメーター最適化などの高度な機能も利用できます。基本的なキューを作成するには、次の手順に従ってください。

1. [https://forge.coreweave.com/wandb/launch](https://forge.coreweave.com/wandb/launch) にアクセスし、**Create a queue** ボタンをクリックします。
2. キューを関連付ける **Entity** を選択します。
3. **Queue name** を入力します。
4. **Resource** として **Docker** を選択します。
5. **Configuration** は空欄のままにします。
6. **Create queue** をクリックします。

ボタンをクリックすると、ブラウザーはキュービューの **Agents** タブにリダイレクトされます。エージェントがポーリングを開始するまで、キューは **Not active** 状態のままです。

<Frame>
  <img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/platform/_media/create_docker_queue.gif?s=9b54e5812ecdeffd8eb6837231d47cbe" alt="Docker キューの作成" width="2482" height="1670" data-path="products/wandb/platform/_media/create_docker_queue.gif" />
</Frame>

キュー設定の高度なオプションについては、[キューの高度なセットアップページ](/ja/products/wandb/platform/launch/setup-queue-advanced)を参照してください。

<h2 id="connect-an-agent-to-the-queue">
  エージェントをキューに接続する
</h2>

キューは、エージェントがポーリングするまでアイドル状態のままです。そのため、ジョブを実行するには、先にエージェントを接続する必要があります。キューをポーリングしているエージェントがない場合、キュービューの画面上部に赤いバナーが表示され、そこに **Add an agent** ボタンが表示されます。このボタンをクリックすると、エージェントを実行するためのコマンドを確認してコピーできます。コマンドは次のようになります。

```bash theme={"system"}
wandb launch-agent --queue [QUEUE-NAME] --entity [ENTITY-NAME]
```

`[QUEUE-NAME]` をキュー名に、`[ENTITY-NAME]` を W\&B の entity に置き換えてください。ターミナルでこのコマンドを実行して、エージェントを起動します。エージェントは指定されたキューをポーリングし、実行するジョブを取得します。ジョブを受け取ると、エージェントはそのジョブのコンテナーイメージをダウンロードまたはビルドしてから実行します。これは、`wandb launch` コマンドをローカルで実行した場合と同じ動作です。

[Launch ページ](https://forge.coreweave.com/wandb/launch)に戻り、キューが **Active** と表示されていることを確認してください。

<h2 id="submit-a-job-to-the-queue">
  キューにジョブを送信する
</h2>

キューとポーリングを行うエージェントの準備ができたので、先ほど作成した Launch job のいずれかを送信し、共有コンピュート上で実行される様子を確認しましょう。W\&B アカウントの **launch-quickstart** project にアクセスし、画面左側のナビゲーションからジョブタブを開きます。

**Jobs** ページには、過去の run から作成されたジョブの一覧が表示されます。Launch job をクリックすると、ソースコード、依存関係、およびそのジョブから作成された run を確認できます。このウォークスルーを完了すると、一覧には 3 つのジョブが表示されます。

いずれかのジョブを選び、次の手順に従ってキューに送信します。

1. **Launch** ボタンをクリックして、ジョブをキューに送信します。**Launch** ドロワーが表示されます。
2. 先ほど作成した **Queue** を選択し、**Launch** をクリックします。

これで、ジョブがキューに送信されます。このキューをポーリングしているエージェントがジョブを取得して実行します。ジョブの進行状況は、W\&B UI またはターミナルに表示されるエージェントの出力で監視できます。

`wandb launch` コマンドで `--queue` 引数を指定すると、ジョブをキューに直接プッシュできます。たとえば、hello-world コンテナージョブをキューに送信するには、次のコマンドを実行します。

```bash theme={"system"}
   wandb launch --docker-image wandb/job_hello_world:main --project launch-quickstart --queue [QUEUE-NAME]
```

`[QUEUE-NAME]` を実際のキュー名に置き換えてください。

これで、W\&B Launch のワークフロー一式が完成しました。Launch job、キュー、キューをポーリングするエージェント、そして共有コンピュート上で非同期に実行されるジョブで構成されています。このパターンは、独自のトレーニング、評価、推論のワークロードにも再利用できます。
