본문 바로가기

인공지능

실환경 강화학습을 위한 롤아웃 프레임워크 Polar 구조와 활용 방법 정리

728x90
반응형
728x170

이 글에서는 실제 환경에서 동작하는 에이전트를 위한 강화학습(RL) 롤아웃 프레임워크인 Polar에 대해 정리합니다.
Polar가 등장한 배경과 핵심 개념, 아키텍처 구조, 주요 특징, 그리고 설치 및 사용 방법까지 입력된 정보를 기반으로 차근차근 설명합니다.
특히 기존 에이전트 하네스를 코드 수정 없이 RL 환경으로 활용하고, GPU 자원을 효율적으로 사용하는 방식이 왜 중요한지에 초점을 맞춰 살펴봅니다.

반응형

Polar란 무엇인가

Polar는 실환경 에이전트 하네스를 위한 RL 롤아웃 프레임워크입니다.
기존에 이미 만들어진 에이전트 실행 구조(harness)를 그대로 유지한 채, 이를 강화학습에 바로 활용할 수 있도록 설계된 것이 가장 큰 특징입니다.

일반적인 RL 파이프라인에서는 환경(Environment)을 새로 정의하거나, 학습 프레임워크에 맞게 코드를 대폭 수정해야 하는 경우가 많습니다. Polar는 이러한 부담을 줄이고, 서버 기반 롤아웃 서비스 형태로 확장성과 효율성을 동시에 제공합니다.


핵심 개념 1: Harness as Environment

Polar의 첫 번째 핵심 개념은 Harness as Environment입니다.

  • 기존 에이전트 하네스를 그대로 사용
  • 별도의 코드 변경 없이 RL 환경으로 전환
  • 실환경 에이전트와 강화학습 환경 간의 간극 최소화

즉, 이미 운영 중이거나 실험 중인 에이전트 구조를 다시 만들 필요 없이, RL-ready 환경으로 바로 가져올 수 있습니다. 이는 실험 속도와 안정성 측면에서 매우 큰 장점입니다.


핵심 개념 2: Smart Rollout Pipeline

두 번째는 Smart Rollout Pipeline입니다.

Polar는 다음과 같은 구조를 통해 GPU 자원을 효율적으로 사용합니다.

  • 병렬 Rollout Staging
  • Runtime Pooling
  • 비동기 실행 기반 롤아웃 처리

이 구조 덕분에 불필요한 GPU 대기 시간을 줄이고, 동일한 하드웨어 자원으로 더 많은 롤아웃을 처리할 수 있습니다. 대규모 실험이나 반복적인 평가가 필요한 환경에서 특히 효과적입니다.


핵심 개념 3: Rollout as a Service

Polar는 처음부터 Server Mode 기반으로 설계되었습니다.

  • 롤아웃 기능을 서비스 형태로 제공
  • 학습 프레임워크와 분리된 구조
  • Async RL 확장에 적합

이 덕분에 특정 트레이너나 학습 백엔드에 종속되지 않습니다.
Polar는 Trainer agnostic 구조를 지향하며, 다양한 강화학습 프레임워크와 유연하게 연결할 수 있습니다.


Polar 아키텍처 구조 이해하기

Polar의 전체 구조는 서버 중심의 분산 아키텍처로 구성됩니다.

  • Rollout Server
    • 중앙 오케스트레이터 역할
    • 클라이언트 요청 관리 및 분배
  • Gateway Nodes
    • 분산 노드로서 비동기 실행 담당
    • 런타임 준비, 에이전트 실행, trajectory 생성 및 평가 수행
  • Proxy
    • 에이전트 실행 프로세스와 추론 서버 사이에 위치
    • 에이전트 하네스와 추론 서버를 분리하여 유연성 확보

이 구조를 통해 대규모 실험에서도 안정적으로 롤아웃을 관리할 수 있습니다.


설치 방법 정리

Rollout Server(Polar) 설치

uv venv
uv pip install -e .

Inference Server(SGLang) 설치

uv pip install --prerelease=allow sglang==0.5.10
bash scripts/patch/patch_sglang.sh

해당 패치는 TITO 및 프롬프트 토큰 ID 출력을 위해 필요하며, 이후 upstream에서 지원되면 제거될 예정입니다.
vLLM 연동도 향후 추가될 계획입니다.

Trainer 및 Training Backend

Polar는 트레이너에 종속되지 않습니다.
현재는 데모 목적의 Slime 통합 예제가 제공되며, 다양한 학습 백엔드와 연결할 수 있습니다.

선택적 설치 항목

  • SWE-bench 공식 평가 하네스
uv pip install -e ".[swebench]"
  • Polar Dashboard UI
cd web && npm install && npm run build

사용 방법 개요

Polar 사용 흐름은 다음과 같이 정리할 수 있습니다.

  1. 에이전트 하네스 선택
    • 내장 하네스 또는 generic shell harness 사용
  2. Trajectory 생성 및 평가 전략 설정
  3. 서비스 토폴로지 구성
  4. 롤아웃 API를 통한 작업 제출

CLI 기반 실행 예시

로컬 환경에서의 기본 실행은 동일한 topology.yaml 설정을 공유합니다.

polar serve_rollout -c topology.yaml
polar serve_gateway -c topology.yaml --node-id <node>
polar dashboard -c topology.yaml
polar submit <task.json|yaml> -c topology.yaml
polar status -c topology.yaml

각 명령은 롤아웃 서버, 게이트웨이 노드, 모니터링 대시보드, 작업 제출, 상태 확인 역할을 담당합니다.


제공되는 예제

Polar는 다양한 예제를 통해 활용 방식을 보여줍니다.

  • Calculator: 최소 단위 테스트
  • Count Stars: VLM 테스트
  • SWE-bench Verified: 벤치마크 평가
  • SWE-Gym Slime GRPO: Slime과 연동된 학습 파이프라인

향후 다양한 모델과 하드웨어 환경을 위한 예제가 지속적으로 추가될 예정이며, 기여도 환영하고 있습니다.


728x90

Polar는 실환경 에이전트와 강화학습을 연결하는 데 필요한 복잡함을 크게 줄여주는 프레임워크입니다.
코드 수정 없는 환경 전환, GPU 자원 효율화, 서버 기반 확장 구조라는 세 가지 강점은 대규모 RL 실험과 운영 환경 모두에서 의미 있는 가치를 제공합니다.

특히 실험 속도와 확장성이 중요한 팀이나, 다양한 트레이너와 평가 환경을 병행해야 하는 상황에서 Polar는 매우 실용적인 선택지가 될 수 있습니다.
앞으로 더 많은 예제와 통합이 추가된다면, 실환경 강화학습 파이프라인의 표준적인 구성 요소로 자리 잡을 가능성도 충분합니다.

300x250

https://github.com/NVIDIA-NeMo/ProRL-Agent-Server?fbclid=IwY2xjawSJHW5leHRuA2FlbQIxMABicmlkETFEMlBUNUltVmtuWU9JS0hMc3J0YwZhcHBfaWQQMjIyMDM5MTc4ODIwMDg5MgABHoZTr4OXv22pHyQ6d-12fHEaHjh2pSUWujtx4dsSxHXzHFLKoomNK6ZzOaLg_aem_Uiy7cwq0HjiFlXmbiTUyRA

 

GitHub - NVIDIA-NeMo/ProRL-Agent-Server: Agentic RL on Any Harness at Scale

Agentic RL on Any Harness at Scale. Contribute to NVIDIA-NeMo/ProRL-Agent-Server development by creating an account on GitHub.

github.com

728x90
반응형
그리드형