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

# Verifiers

> Weave로 Verifiers RL 환경과 LLM 에이전트 트레이닝을 추적하고, 멀티 라운드 대화와 평가 롤아웃을 캡처하세요.

[Verifiers](https://github.com/willccbb/verifiers)는 강화 학습(RL) 환경을 만들고 LLM 에이전트를 트레이닝하기 위한 모듈식 컴포넌트 라이브러리입니다. Verifiers로 구축한 환경은 LLM 평가, 합성 데이터 파이프라인, OpenAI 호환 엔드포인트용 에이전트 하니스, RL 트레이닝 등에 활용할 수 있습니다.

W\&B로 트레이닝 메트릭을 기록하는 것은 물론, Weave를 Verifiers RL 워크플로와 통합하면 트레이닝 중 모델 성능에 대한 관측성을 확보할 수 있습니다. Weave는 각 단계의 입력, 출력, 타임스탬프를 기록합니다. 따라서 턴마다 데이터가 어떻게 변환되는지 살펴보고, 복잡한 멀티 라운드 대화를 디버깅하고, 트레이닝 결과를 최적화할 수 있습니다.

Weave와 Verifiers를 함께 사용해 평가를 수행할 수도 있습니다.

이 가이드는 Verifiers 기반 RL 워크플로에 관측성을 더하려는 ML 엔지니어와 연구자를 대상으로 합니다. Verifiers, W\&B, Weave의 설치 방법을 안내하고, Verifiers를 Weave 및 W\&B와 함께 사용하는 두 가지 예시를 제공합니다. 첫 번째는 평가 중 롤아웃을 트레이싱하는 예시이고, 두 번째는 실험 추적과 트레이싱을 활성화한 상태에서 모델을 파인튜닝하는 예시입니다.

<h2 id="get-started">
  시작하기
</h2>

Verifiers를 Weave와 통합하려면 먼저 `uv`를 사용하여 Verifiers 라이브러리를 설치하세요([라이브러리 개발자 권장 방식](https://github.com/willccbb/verifiers?tab=readme-ov-file#setup)). 다음 명령어 중 하나로 라이브러리를 설치할 수 있습니다.

```bash theme={"system"}
# 로컬 개발 및 API 기반 모델용 핵심 라이브러리를 설치합니다
uv add verifiers

# PyTorch 및 GPU 지원을 비롯한 모든 선택 의존성이 포함된 라이브러리 전체 버전을 설치합니다
uv add 'verifiers[all]' && uv pip install flash-attn --no-build-isolation

# GitHub에서 라이브러리 최신 버전을 직접 설치합니다(아직 릴리스되지 않은 최신 기능 및 수정 사항 포함)
uv add verifiers @ git+https://github.com/willccbb/verifiers.git
```

그런 다음 Weave와 W\&B를 설치하세요.

```bash theme={"system"}
uv pip install weave wandb
```

Weave는 이 라이브러리에 대해 [암시적 패치](/ko/products/wandb/weave/guides/integrations#automatic-implicit-patching)를 기본으로 활성화합니다. 따라서 patch 함수를 명시적으로 호출하지 않아도 Verifiers에서 Weave를 사용할 수 있습니다.

라이브러리를 설치했다면 이제 다음 섹션의 예시를 실행할 수 있습니다.

<h3 id="trace-rollouts-and-evaluate">
  롤아웃 트레이스 및 평가
</h3>

필요한 라이브러리를 설치했다면 Weave와 Verifiers를 함께 사용하여 Call을 트레이스하고 평가를 실행할 수 있습니다.

다음 예시 스크립트는 Verifiers로 평가를 실행하고 결과를 Weave에 로깅하는 방법을 보여줍니다. 이 스크립트는 [GSM8K 데이터셋](https://huggingface.co/datasets/openai/gsm8k)을 사용하여 LLM의 수학 문제 풀이 능력을 테스트합니다. GPT-4에 수학 문제 두 개를 풀게 하고, 각 응답에서 숫자 값을 추출한 다음, Verifiers를 평가 프레임워크로 사용하여 답안을 채점합니다.

예시를 실행하고 Weave에서 결과를 확인하세요.

```python lines theme={"system"}
import os
from openai import OpenAI
import verifiers as vf
import weave

os.environ["OPENAI_API_KEY"] = "[YOUR-OPENAI-API-KEY]"

# Weave 초기화
weave.init("verifiers_demo")

# 최소 구성의 싱글 턴 환경
dataset = vf.load_example_dataset("gsm8k", split="train").select(range(2))
parser = vf.ThinkParser()

def correct_answer(parser, completion, answer):
    parsed = parser.parse_answer(completion) or ""
    return 1.0 if parsed.strip() == answer.strip() else 0.0

rubric = vf.Rubric(funcs=[correct_answer, parser.get_format_reward_func()], weights=[1.0, 0.2])

env = vf.SingleTurnEnv(
    dataset=dataset,
    system_prompt="Think step-by-step, then answer.",
    parser=parser,
    rubric=rubric,
)

client = OpenAI()
results = env.evaluate(
    client, "gpt-4.1-mini", num_examples=2, rollouts_per_example=2, max_concurrent=8
)
```

<h3 id="fine-tune-a-model-with-experiment-tracking-and-tracing">
  실험 추적 및 트레이싱으로 모델 파인튜닝하기
</h3>

Weave를 사용하면 RL 파인튜닝 중 모델의 성능을 자세히 파악할 수 있습니다. W\&B와 함께 사용하면 워크플로 전반에 걸쳐 관측성을 확보할 수 있습니다. W\&B는 트레이닝 메트릭과 성능 차트를 추적하고, Weave는 트레이닝 과정에서 일어나는 각 상호작용의 상세한 트레이스를 캡처합니다.

`verifiers` 저장소에는 바로 실행할 수 있는 [예시](https://github.com/PrimeIntellect-ai/verifiers)가 포함되어 있어 쉽게 시작할 수 있습니다.

다음 RL 트레이닝 파이프라인 예시는 로컬 추론 서버를 실행하고 GSM8K 데이터셋으로 모델을 트레이닝합니다. 모델이 수학 문제에 답하면 트레이닝 루프가 출력에 점수를 매기고 그 결과에 따라 모델을 업데이트합니다. W\&B는 loss, reward, 정확도 등의 트레이닝 메트릭을 로깅하고, Weave는 입력, 출력, 추론, 점수화 과정을 캡처합니다.

이 파이프라인을 사용하려면 다음 단계를 따르세요.

1. 소스에서 프레임워크를 설치합니다. 다음 명령어는 GitHub에서 Verifiers 라이브러리와 필요한 의존성을 설치합니다.

```bash theme={"system"}
git clone https://github.com/willccbb/verifiers
cd verifiers
uv sync --all-extras && uv pip install flash-attn --no-build-isolation
```

2. 바로 사용할 수 있는 환경을 설치하세요. 다음 명령은 미리 설정된 GSM8K 트레이닝 환경을 설치합니다.

```bash theme={"system"}
vf-install gsm8k --from-repo
```

3. 모델을 트레이닝하세요. 다음 명령어를 실행하면 추론 서버와 트레이닝 루프가 각각 시작됩니다. 이 예제 워크플로는 기본적으로 `report_to=wandb`로 설정되어 있으므로 `wandb.init()`을 따로 호출할 필요가 없습니다. W\&B에 메트릭을 로깅하려면 이 머신을 인증하라는 안내가 표시됩니다.

```bash theme={"system"}
# 추론 서버 실행
CUDA_VISIBLE_DEVICES=0 vf-vllm --model willcb/Qwen3-0.6B --enforce-eager --disable-log-requests

# 트레이닝 루프 실행
CUDA_VISIBLE_DEVICES=1 accelerate launch --num-processes 1 --config-file configs/zero3.yaml examples/grpo/train_gsm8k.py
```

<Note>
  이 예제는 안정성을 높이기 위해 다음 환경 변수를 설정한 상태에서 2xH100으로 테스트했습니다.

  ```bash theme={"system"}
  # 실행 전에 두 셸(서버와 트레이너) 모두에서 설정
  export NCCL_CUMEM_ENABLE=0
  export NCCL_CUMEM_HOST_ENABLE=0
  ```

  이 변수들은 디바이스 메모리 할당 시 CUDA Unified Memory(CuMem)를 비활성화합니다.
</Note>

트레이닝이 시작되면 run 중에 로깅된 [트레이스를 UI에서 확인](/ko/products/wandb/weave/guides/tools/weave-in-workspaces)할 수 있습니다. W\&B는 트레이닝 메트릭을 캡처하고 Weave는 상호작용별 트레이스를 기록하므로, 전반적인 성능 추세와 함께 트레이닝 run의 세부 과정을 단계별로 파악할 수 있습니다.

트레이스에서는 `Environment.a_generate` 및 `Rubric.score_rollouts` 메서드의 `logprobs`가 생략됩니다. 이렇게 하면 페이로드 크기는 작게 유지하면서 트레이닝에 사용되는 원본 데이터는 그대로 보존할 수 있습니다.

<h2 id="see-also">
  참고 항목
</h2>

Verifiers는 W\&B Models와의 인테그레이션을 기본으로 지원합니다. 자세한 내용은 [Verifiers 저장소](https://github.com/willccbb/verifiers)를 참조하세요.


## Related topics

- [인테그레이션 개요](/ko/products/wandb/weave/guides/integrations.md)
