Molt

9천 줄로 1조 규모 모델까지 굴리는 에이전트 우선 강화학습 뼈대

pip install "molt-rl[vllm]"

엔비디아 NeMo 연구실이 내놓은 강화학습 뼈대입니다. 에이전트가 곧 프로그램이고 학습기는 배우 하나라는 구조를 잡았습니다. 보상은 환경이나 대화 에이전트 안에 파이썬으로 쓰면 그대로 보상이 됩니다. 채점기든 여러 차례 도구 호출이든 시각 환경이든 심사자 모델 호출이든 상관없습니다. 나머지는 세 부품이 받칩니다. 배치와 비동기 대기열은 Ray 가, 굴림은 vLLM 이, 학습은 엔비디아 AutoModel 과 FSDP2 가 맡습니다. 저장소는 강화학습 코드가 약 9200줄이며 텐서 병렬과 전문가 병렬, 맥락 병렬을 써서 1조 규모 전문가 혼합 모델까지 확장한다고 밝힙니다. 8B 를 학습하는 그 스크립트가 규모를 바꿔도 그대로 간다는 점이 설계 목표입니다. 토큰 우선 계약을 씁니다. 토큰 번호와 로그 확률, 행동 구간, 보상, 다중 양식 텐서가 굴림부터 학습까지 정렬된 채로 흐릅니다. 여러 차례 대화와 시각 언어 모델, 도구 호출 기록이 한 형식을 공유합니다. 다만 요구 조건이 무겁습니다. CUDA 13 이 필요하고 권장 경로는 프로젝트 컨테이너입니다.

판단

이럴 때 씁니다

  • 에이전트 환경째로 강화학습을 돌릴 때
  • 1조 규모 전문가 혼합 모델까지 키워야 할 때
  • 강화학습 코드를 직접 읽고 고쳐야 할 때

이럴 땐 쓰지 마세요

  • CUDA 13 이 아니면 못 씁니다
  • 엔비디아 GPU 여러 대가 필요합니다
  • 간단한 미세 조정에는 과합니다

차별점

  • 강화학습 코드가 약 9200줄이라 끝까지 읽을 수 있습니다.
  • 학습되는 배우가 하나뿐이라 전체 그래프가 한 화면에 들어옵니다.
  • 8B 를 돌리던 스크립트가 규모를 바꿔도 그대로 갑니다.
  • 토큰 번호와 로그 확률, 보상이 굴림부터 학습까지 정렬된 채로 흐릅니다.

워크플로

  1. 01저장소를 받습니다. 실행 스크립트와 조리법이 여기 있습니다.
  2. 02컨테이너를 받거나 편집 가능 설치를 합니다.
  3. 03환경이나 대화 에이전트로 보상을 파이썬으로 씁니다.
  4. 04지도 미세 조정을 먼저 돌립니다.
  5. 05Ray 기반 강화학습 명령으로 굴림과 학습을 겹칩니다.

주요 명령

명령설명
pip install "molt-rl[vllm]"저장소 없이 설치할 때 씁니다.
docker pull hijkzzz/molt:0.1.7권장 경로인 프로젝트 컨테이너를 받습니다.
python3 -m molt.cli.train_rl_ray --train.agent_path <agent.py>에이전트 파일을 지정해 강화학습을 돌립니다.

함정

설치 전에 확인하세요

  • CUDA 13 이 필요합니다. CUDA 12 환경에서는 동작하지 않는다고 문서가 못 박습니다.
  • 드라이버가 580 보다 낮으면 지역 설치 대신 컨테이너를 써야 합니다.
  • PyPI 판은 git 고정 의존성을 못 써서 AutoModel 판이 저장소 고정본보다 뒤처질 수 있습니다.
  • 저장소 이름은 labs-molt 인데 PyPI 이름은 molt-rl 입니다. molt 라는 이름의 무관한 패키지가 따로 있습니다.

비교

규모를 감당하는 강화학습 뼈대는 대개 층이 두꺼워 안을 고치기 어렵습니다. 이쪽은 Ray 와 vLLM, AutoModel 세 부품에 얇은 층만 얹어 읽고 고칠 여지를 남겼습니다. 대신 CUDA 13 이라는 조건이 붙습니다.

최근 변경

최근 판은 AutoModel 과 vLLM 고정본을 올려 새 모델들을 지원했고 지속 통합 사전 점검도 함께 올렸습니다. 의존성 갱신이 중심인 판입니다.