> ## 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로 모델을 Post-training한 다음, 해당 모델에 요청을 보내세요.

Serverless RL을 사용하면 강화 학습으로 LLM을 Post-training할 수 있습니다. 에이전트의 출력에 점수를 매기는 보상 함수를 정의하면 Serverless RL이 트래젝터리를 배치 단위로 수집합니다. 그런 다음 점수가 높은 동작이 더 자주 나타나도록 저랭크 어댑터(LoRA)를 업데이트하고, 어댑터를 Weights & Biases 계정에 아티팩트로 저장하며, 모든 체크포인트를 [Serverless Inference](/ko/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 프로젝트**. [Projects](/ko/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)의 설치 단계를 따르세요.

또한 [사용 정보 및 제한](/ko/products/post-training/serverless-training/usage-limits)에서 비용과 제약 사항을 확인하고, [사용 가능한 모델](/ko/products/post-training/serverless-training/available-models)에서 기본 모델을 선택하세요.

<h2 id="train-an-agent">
  에이전트 트레이닝
</h2>

<Tabs>
  <Tab title="ART 프레임워크">
    ART는 Serverless Training API를 래핑하여 롤아웃, 보상, 체크포인트를 자동으로 관리해 줍니다. 처음 시작한다면 이 방법을 권장합니다. [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`](/ko/products/post-training/serverless-training/api-reference/models/create-model)로 모델을 생성합니다.
    2. [`POST /v1/chat/completions`](/ko/products/post-training/serverless-training/api-reference/chat-completions/create-chat-completion)로 모델의 현재 체크포인트에 Chat Completion 요청을 보내 롤아웃을 생성하고, 보상 함수로 점수를 매깁니다.
    3. 점수를 매긴 트래젝터리를 [`POST /v1/preview/models/{model_id}/log`](/ko/products/post-training/serverless-training/api-reference/models/log)로 로깅합니다.
    4. [`POST /v1/preview/training-jobs`](/ko/products/post-training/serverless-training/api-reference/training-jobs/create-rl-training-job)로 트레이닝 step을 시작한 다음, [`GET /v1/preview/training-jobs/{training_job_id}`](/ko/products/post-training/serverless-training/api-reference/training-jobs/get-training-job)를 폴링하여 진행 상황을 확인합니다.

    API 기본 URL과 인증 관련 세부 정보는 [API 개요](/ko/products/post-training/serverless-training/api-reference)를 참고하세요.
  </Tab>
</Tabs>

<h2 id="use-your-trained-models">
  트레이닝된 모델 사용하기
</h2>

모델을 트레이닝하면 자동으로 추론에 사용할 수 있습니다. 이 섹션에서는 트레이닝된 모델의 엔드포인트를 구성하고 해당 모델에 요청을 보내는 방법을 설명합니다. 이를 통해 모델을 애플리케이션이나 평가 워크플로에 통합할 수 있습니다. [Serverless SFT](/ko/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(팀 이름)
* 모델과 연결된 프로젝트 이름
* 트레이닝된 모델 이름
* 배포하려는 모델의 트레이닝 step. 일반적으로 평가에서 모델 성능이 가장 좋았던 step입니다.

예를 들어 팀 이름이 `email-specialists`, 프로젝트 이름이 `mail-search`, 트레이닝된 모델 이름이 `agent-001`이고 step 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)
```

저장소 공간을 절약하려면 더 이상 필요하지 않은 체크포인트를 삭제하세요. 자세한 내용은 [사용 정보 및 제한](/ko/products/post-training/serverless-training/usage-limits#model-storage)을 참조하세요.
