Skip to main content
공개 노트

NanoRollout: 에이전트 RL의 병목을 '서비스'로 떼어내기

Views 5약 3분생성형 AI 활용
Summary

NanoRollout: 에이전트 RL의 병목을 '서비스'로 떼어내기

에이전트 강화학습에서 병목은 모델 학습에만 있지 않습니다. 코딩 에이전트는 저장소를 열고, 셸을 실행하고, 테스트를 돌리며, 여러 턴에 걸쳐 도구를 호출합니다. 이 과정은 CPU와 메모리를 많이 쓰고, 작업마다 실행 시간이 크게 달라집니다.

NanoRollout의 핵심은 이 롤아웃 실행을 학습 루프 안에 묶어 두지 않고, 별도 서비스로 분리하는 것입니다.1 트레이너가 모든 환경 실행을 직접 떠안는 대신, trajectory 생성을 API로 요청하고 결과를 받아 학습에 사용하는 구조입니다.

NanoRollout이 분리하는 것

NanoRollout은 에이전트 하니스, 실행 환경, 트레이너를 느슨하게 연결합니다. OpenHands, mini-swe-agent 같은 에이전트와 Docker, Modal, AWS EC2 같은 실행 백엔드를 각각 독립적으로 확장할 수 있게 하는 설계입니다.1

사용 흐름도 이 관점을 잘 보여줍니다. 클라이언트가 POST /run으로 작업을 보내면, 서비스가 trajectory와 reward, messages를 반환합니다.1 즉 트레이너는 “환경을 어떻게 띄우고 관리할 것인가”보다 “어떤 trajectory로 어떻게 학습할 것인가”에 집중할 수 있습니다.

왜 서비스화가 중요한가

Agentic RL의 롤아웃은 길이가 일정하지 않습니다. 어떤 작업은 몇 번의 호출로 끝나지만, 어떤 작업은 여러 번의 코드 수정, 셸 실행, 테스트 반복을 거치며 오래 걸립니다. 이런 긴 꼬리 작업이 누적되면 전체 학습 속도를 늦춥니다.

Rollout-as-a-service는 이 문제를 모델 문제가 아니라 시스템 문제로 다룹니다. trajectory 생성을 API 서비스로 빼고, 자원 스케줄링과 샌드박싱을 별도 계층에서 처리하는 접근입니다.2 NanoRollout은 이 개념을 디지털 에이전트 학습과 평가에 적용한 사례로 볼 수 있습니다.

공개 산출물로 보는 활용 맥락

NanoRollout은 설계 아이디어에만 머물러 있지 않습니다. Hugging Face의 NanoRollout 컬렉션에는 관련 산출물이 모여 있으며, 그 안에는 cocoa-org/Mocha-Coder-32B 텍스트 생성 모델과 cocoa-org/Mocha-trajectories 데이터셋이 포함되어 있습니다.3 컬렉션에서 Mocha-Coder-32B는 33B 규모의 텍스트 생성 모델로 표시됩니다.3

Mocha-trajectories는 Hugging Face에서 기본 서브셋 기준 175k 행으로 표시되며, 5개 split과 총 174,598개 trajectory로 구성되어 있습니다.4 이 데이터셋은 ZeonLap/Mocha-trajectories의 mini 및 miniswe trajectory split을 미러링하되, Kwai-Klear mini SWE-agent split은 제외한다고 설명되어 있습니다.4

이런 구성은 NanoRollout을 이해할 때 중요한 단서를 줍니다. 핵심은 단순히 “더 큰 모델”이 아니라, 에이전트가 실제 환경에서 만든 trajectory를 어떻게 안정적으로 모으고 학습 파이프라인에 연결할 것인가에 있습니다.

적용할 때 볼 기준

NanoRollout의 메시지는 명확합니다. 에이전트 학습을 빠르게 하고 싶다면 모델 크기나 트레이너만 볼 것이 아니라, 환경 실행과 trajectory 수집을 독립적으로 확장 가능한 계층으로 봐야 합니다.

따라서 비슷한 시스템을 설계할 때는 다음 질문이 중요합니다.

  • 롤아웃 실행이 트레이너와 강하게 결합되어 있지는 않은가?

  • 작업별 실행 시간 차이를 흡수할 별도 서비스 계층이 있는가?

  • 샌드박싱, 자원 스케줄링, trajectory 수집을 분리해서 관리할 수 있는가?

  • Miles, veRL, tunix 같은 트레이너와의 연동을 실행 환경과 독립적으로 다룰 수 있는가?1

NanoRollout은 에이전트 RL의 성능 문제가 모델 내부에만 있지 않다는 점을 보여줍니다. 실전에서는 모델을 학습시키는 루프만큼이나, 그 모델이 경험을 쌓는 환경을 어떻게 서비스화하고 확장하느냐가 중요합니다.

1GitHub - cocoa-org/NanoRollout

2Rollout-as-a-Service: Modular RL Rollouts

3NanoRollout - a cocoa-org Collection

4cocoa-org/Mocha-trajectories · Datasets at Hugging Face

이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.

틸노트는 사용자가 AI를 활용해 노트를 쉽게 작성하거나 편집할 수 있는 서비스입니다.

AI 스퀘어 단톡방에 함께해요

AI 활용과 틸노트 사용 팁을 나누는 오픈채팅방입니다. 입장 비밀번호는 tilnote입니다.

참여하기