Skip to main content
VERL (Volcano Engine Reinforcement Learning)은 LLM을 위한 오픈소스 RL Post-training 프레임워크입니다. VERL은 내장된 Weave trace backend를 통해 LLM 생성과 도구 Call을 W&B가 이미 기록하는 training 메트릭과 함께 트레이스할 수 있게 합니다. VERL과 함께 Weave를 사용하면 다음을 수행할 수 있습니다:
  • 프롬프트, 모델 responses, 도구 invocations를 포함하여 각 rollout 트래젝터리를 단계별로 검사합니다.
  • step, sample index, rollout number, experiment name별로 트래젝터리를 필터링합니다.
  • training steps 전반에 걸쳐 여러 트래젝터리를 나란히 비교하여 에이전트 behavior를 디버그합니다.

사전 요구 사항

  • CoreWeave Forge 계정 및 API 키.
  • 롤아웃 트레이싱을 지원하는 VERL 설치. 롤아웃 트레이싱은 verl#2345에서 추가되었습니다.
  • 비동기 롤아웃 설정. 트레이싱은 비동기 롤아웃에만 적용되며, 동기 롤아웃은 트레이싱되지 않습니다.

트레이싱 활성화

VERL이 CoreWeave Forge 계정으로 인증할 수 있도록 환경에 API 키를 설정하세요:
그런 다음 VERL 트레이닝 명령어에 다음 플래그를 추가하세요:
  • actor_rollout_ref.rollout.trace.backend=weave: Weave를 백엔드로 선택합니다.
  • actor_rollout_ref.rollout.mode=async: vLLM 또는 SGLang의 비동기 롤아웃을 활성화합니다. 트레이싱은 동기 롤아웃에는 영향을 주지 않습니다.
  • trainer.project_name: 트레이스와 메트릭을 로깅할 프로젝트를 설정합니다.
  • trainer.experiment_name: 실험 이름을 설정합니다.
  • trainer.logger=['console','wandb']: Weave와 함께 wandb 로거를 활성화하여 메트릭과 트레이스가 같은 프로젝트에 표시되도록 합니다.
최종 명령어는 다음과 같습니다:
Weave는 Weights & Biases 프로젝트와 실험 이름을 기반으로 자동으로 초기화됩니다. weave.init()을 호출할 필요가 없습니다.

트레이스 양 조정

기본적으로 VERL은 모든 롤아웃의 모든 샘플을 추적하므로 매우 많은 트레이스 데이터가 생성될 수 있습니다. ppo_trainer.yaml 설정 파일에서 다음 필드를 설정하여 데이터 양을 제한할 수 있습니다:
  • max_samples_per_step_per_worker: 워커가 트레이닝 단계마다 추적하는 고유 샘플 수입니다. 기본값은 null이며 모든 샘플을 추적합니다.
  • token2text: True로 설정하면 디코딩된 prompt_text와 response_text가 ToolAgentLoop.run 출력에 추가됩니다. 성능을 위해 기본값은 False입니다. Weights & Biases UI에서 프롬프트와 완성 응답을 직접 읽으려면 활성화하세요.
파일에서 설정된 필드는 다음과 같습니다:

트레이스 보기

트레이닝 중에 생성된 트레이스를 보려면 Weights & Biases 프로젝트 페이지를 열고 Traces를 선택하세요. 각 트레이스는 롤아웃 트래젝터리에 해당합니다. 여러 트레이스를 선택하고 Weave의 뷰를 사용하여 트래젝터리 간의 차이를 살펴볼 수 있습니다. 이를 통해 트레이닝 단계나 실험에 따른 에이전트 동작의 변화를 디버깅할 수 있습니다.

추가 함수 트레이싱

VERL은 기본 트레이스 범위를 확장할 수 있는 두 가지 헬퍼를 제공합니다.
  • rollout_trace_op: weave.op에 매핑되는 데코레이터로, 클래스 인스턴스의 메서드를 트레이싱 대상으로 지정합니다. 기본적으로는 일부 메서드에만 이 데코레이터가 적용되어 있습니다. 맞춤형 에이전트 루프나 도구 구현의 메서드에 이 데코레이터를 추가하면 더 자세한 정보를 캡처할 수 있습니다.
  • rollout_trace_attr: 트래젝터리의 진입점을 표시하고 트래젝터리 메타데이터(인덱스, step, 롤아웃 번호, 실험 이름)를 첨부하는 컨텍스트 매니저입니다. 새로운 에이전트 유형을 추가하는 경우, 트레이스가 run에 연결되도록 해당 트래젝터리 진입점을 rollout_trace_attr로 래핑하세요.
자세한 설정 정보는 VERL의 롤아웃 트레이스 문서를 참조하세요.
마지막 수정일 2026년 9월 30일