> ## 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.

# Serverless RL を使用する

> OpenPipe の ART フレームワークと Serverless Training API を使用して、Serverless RL でモデルをポストトレーニングし、そのモデルにリクエストを送信します。

Serverless RL を使用すると、強化学習によって LLM をポストトレーニングできます。ユーザーは、エージェントの出力をスコアリングする報酬関数を定義します。Serverless RL は軌跡のバッチを収集し、スコアの高い動作が選ばれやすくなるように低ランクアダプター (LoRA アダプター) を更新します。アダプターは Weights & Biases アカウントにアーティファクトとして保存され、すべてのチェックポイントは [Serverless Inference](/ja/products/inference/serverless) 上でホストされます。Serverless RL は現在パブリックプレビュー段階です。

Serverless RL は、[OpenPipe の ART フレームワーク](https://art.openpipe.ai/getting-started/about)経由で実行することも、Serverless Training API から直接実行することもできます。

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

開始する前に、以下が揃っていることを確認してください。

* **Forge アカウント。** お持ちでない場合は、[サインアップ](https://id.coreweave.com/signup)してください。
* **APIキー。** Forge でプロフィールアイコンをクリックし、**Settings** を選択して、**Create new API key** をクリックします。キーは後から再表示できないため、表示された時点でコピーしてください。このページのサンプルでは、`WANDB_API_KEY` 環境変数からキーを読み込みます。ART でキーをどこに設定するかについては、ART クイックスタートを参照してください。
* **Weights & Biases の project。** トレーニングメトリクスの記録と、トレーニング済みアダプターの保存に使用します。詳しくは [Projects](/ja/products/wandb/track/project-page) を参照してください。
* **報酬関数。** エージェントの出力をスコアリングする関数です。Serverless RL は、この関数が報酬を与える挙動に向けてトレーニングを行うため、この関数がタスクそのものを定義することになります。作成方法は [ART クイックスタート](https://art.openpipe.ai/getting-started/quick-start)で説明されています。
* **ART フレームワーク。** API を直接呼び出さずに ART を使用する場合に必要です。[ART クイックスタート](https://art.openpipe.ai/getting-started/quick-start)のインストール手順に従ってください。

また、[利用に関する情報と制限](/ja/products/post-training/serverless-training/usage-limits)でコストと制約を確認したうえで、[利用可能なモデル](/ja/products/post-training/serverless-training/available-models)からベースモデルを選択してください。

<h2 id="train-an-agent">
  エージェントをトレーニングする
</h2>

<Tabs>
  <Tab title="ART フレームワーク">
    ART は Serverless Training API をラップし、ロールアウト、報酬、チェックポイントを自動的に管理します。まずは ART から始めることをおすすめします。[ART クイックスタート](https://art.openpipe.ai/getting-started/quick-start)の手順に沿って進めるか、2048 をプレイするエージェントをエンドツーエンドでトレーニングする[サンプルノートブック](https://colab.research.google.com/github/openpipe/art-notebooks/blob/main/examples/2048/2048.ipynb)を開いてください。
  </Tab>

  <Tab title="Serverless Training API">
    独自のツールにトレーニングを統合する場合は、API を直接呼び出します。

    1. [`POST /v1/preview/models`](/ja/products/post-training/serverless-training/api-reference/models/create-model) でモデルを作成します。
    2. [`POST /v1/chat/completions`](/ja/products/post-training/serverless-training/api-reference/chat-completions/create-chat-completion) を使用してモデルの現在のチェックポイントにチャット補完リクエストを送信してロールアウトを生成し、報酬関数でスコアを付けます。
    3. スコア付けした軌跡を [`POST /v1/preview/models/{model_id}/log`](/ja/products/post-training/serverless-training/api-reference/models/log) でログします。
    4. [`POST /v1/preview/training-jobs`](/ja/products/post-training/serverless-training/api-reference/training-jobs/create-rl-training-job) でトレーニングステップを開始し、[`GET /v1/preview/training-jobs/{training_job_id}`](/ja/products/post-training/serverless-training/api-reference/training-jobs/get-training-job) をポーリングして進行状況を確認します。

    API のベース URL と認証の詳細については、[API の概要](/ja/products/post-training/serverless-training/api-reference)を参照してください。
  </Tab>
</Tabs>

<h2 id="use-your-trained-models">
  トレーニング済みモデルを使用する
</h2>

モデルをトレーニングすると、そのモデルは自動的に推論に使用できるようになります。このセクションでは、トレーニング済みモデルのエンドポイントを構成してリクエストを送信する方法を説明します。これにより、モデルをアプリケーションや評価ワークフローに統合できます。[Serverless SFT](/ja/products/post-training/serverless-training/sft) でトレーニングしたモデルにも同じ手順が適用されます。

トレーニング済みモデルにリクエストを送信するには、以下が必要です。

* APIキー。Forge の [**Settings**](https://forge.coreweave.com/settings) で作成できます。
* Serverless Training API のベース URL (`https://forge.coreweave.com/api/training/v1/`) 。
* モデルのエンドポイント。

モデルのエンドポイントは次の形式です。

```text theme={"system"}
wandb-artifact:///[ENTITY]/[PROJECT]/[MODEL-NAME]:[STEP]
```

スキーマは次の要素で構成されます。

* entity (チーム名)
* モデルに関連付けられた project の名前
* トレーニング済みモデルの名前
* デプロイするモデルのトレーニングステップ。通常は、評価でモデルの性能が最も高かったステップを指定します。

たとえば、チーム名が `email-specialists`、project 名が `mail-search`、トレーニング済みモデルの名前が `agent-001` で、ステップ 25 のモデルをデプロイする場合、エンドポイントは次のようになります。

```text theme={"system"}
wandb-artifact:///email-specialists/mail-search/agent-001:step25
```

エンドポイントを取得したら、通常の推論ワークフローに統合できます。以下の例では、cURL リクエストまたは [Python OpenAI SDK](https://github.com/openai/openai-python) を使用して、トレーニング済みモデルに推論リクエストを送信する方法を紹介します。ご利用の環境に合った例を選んでください。

<h3 id="curl">
  cURL
</h3>

```bash theme={"system"}
curl https://forge.coreweave.com/api/training/v1/chat/completions \
    -H "Authorization: Bearer $WANDB_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
            "model": "wandb-artifact:///[ENTITY]/[PROJECT]/[MODEL-NAME]:[STEP]",
            "messages": [
            {"role": "system", "content": "You are a helpful assistant."},
            {"role": "user", "content": "Summarize our training run."}
            ],
            "temperature": 0.7,
            "top_p": 0.95
        }'
```

<h3 id="openai-sdk">
  OpenAI SDK
</h3>

```python theme={"system"}
from openai import OpenAI

WANDB_API_KEY = "[API-KEY]"
ENTITY = "[ENTITY]"
PROJECT = "[PROJECT]"

client = OpenAI(
    base_url="https://forge.coreweave.com/api/training/v1",
    api_key=WANDB_API_KEY
)

response = client.chat.completions.create(
    model=f"wandb-artifact:///{ENTITY}/{PROJECT}/[MODEL-NAME]:[STEP]",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Summarize our training run."},
    ],
    temperature=0.7,
    top_p=0.95,
)

print(response.choices[0].message.content)
```

ストレージを節約するには、不要になったチェックポイントを削除してください。詳しくは、[利用に関する情報と制限](/ja/products/post-training/serverless-training/usage-limits#model-storage)を参照してください。
