NVIDIA-NeMo/labs-molt
An agentic-first RL framework for research (9k lines).
무엇을 해결하는가
Molt는 고속 에이전트 RL 연구를 위해 설계되었으며, 특히 프론티어 규모의 Mixture-of-Experts (MoE) 모델(최대 1T 파라미터)의 학습을 목표로 합니다. 이는 소규모 모델에서 대규모 모델로 RL을 확장할 때 일반적으로 수반되는 복잡성과 인프라 오버헤드를 해결하며, 완전 비동기 롤아웃(rollout) 및 학습을 지원하면서도 해킹 가능하고 가독성이 높은 PyTorch 네이티브 스택을 제공합니다.
어떻게 작동하는가
Molt는 Ray를 통한 비동기 루프에 의해 조정되는 세 가지 구성 요소 아키텍처를 활용합니다:
- Ray: 구성 요소 간의 배치 및 비동기 큐를 관리합니다.
- vLLM: 롤아웃(생성) 단계를 처리합니다.
- NVIDIA AutoModel + FSDP2: 순수 PyTorch에서 학습 단계를 관리하며, 고급 병렬성(TP, EP, CP) 및 대규모 액터(actor)를 위한 Adam CPU 오프로드를 지원합니다.
보상은 Env 또는 ChatAgent 클래스 내의 일반 Python 코드로 정의됩니다. 이 프레임워크는 "token-first" 계약을 유지하여, 롤아웃부터 학습에 이르기까지 토큰 ID, logprobs, 멀티모달 텐서가 정렬된 상태를 유지하도록 보장합니다.
누구를 위한 것인가
8B에서 1T 파라미터로 확장할 때 코드를 다시 작성할 필요 없이, 에이전트 환경 및 RL 알고리즘을 대규모로 빠르게 반복 실험해야 하는 AI 연구원, 특히 VLM(Vision-Language Models) 및 대규모 MoE 모델을 다루는 연구원을 위해 구축되었습니다.
주요 특징
- 에이전트 우선 설계 (Agentic-First Design): 에이전트가 프로그램인 Gymnasium 정렬 API를 사용하여, 연구원이 트레이너를 건드리지 않고도 Python에서 환경을 반복 실험할 수 있게 합니다.
- 프론티어 규모의 MoE: TP/EP/CP 및 MoE 네이티브 학습을 기본적으로 지원하며, DeepSeek-V3와 같은 1T급 모델로 확장할 수 있습니다.
- 완전 비동기 런타임 (Fully-Async Runtime): 롤아웃, 학습, 가중치 동기화를 중첩시켜 대규모 액터를 지속적으로 공급합니다.
- 작은 코드베이스: 약 9.2K 라인의 RL 코드로서, 엔드투엔드(end-to-end)로 읽고 해킹하기 쉽습니다.
- 폭넓은 알고리즘 지원: REINFORCE, RLOO, GRPO, PPO (via GAE), 그리고 온폴리시 증류(on-policy distillation)를 포함합니다.
- IS 교정 (IS Correction): 비동기 롤아웃과 학습 사이의 logprob 불일치를 처리하기 위해 다양한 중요도 샘플링 교정 방식(TIS, IcePop, MIS)을 구현합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트