NVIDIA-NeMo/Gym
Evaluate and improve models and agents using environments
🎯 NeMo Gym이란 무엇인가
NeMo Gym(NVIDIA의 NeMo 플랫폼의 Gym 구성 요소)은 상태 저장 환경 내에서 AI 에이전트를 평가하고 훈련할 수 있는 Python 라이브러리입니다. 환경에는 데이터 세트, 모델이 코드를 실행하거나 도구를 호출할 수 있는 샌드박스, 결과를 평가하는 검증기, 작업별 상태가 함께 포함됩니다. 이 라이브러리는 다음을 제공합니다:
- 모듈식 인터페이스(에이전트, 환경, 작업, 검증기용)
- "환경 허브" – 수십 개의 기성 벤치마크(객관식 QA, 코드 생성, 안전성, 추론 등)
- 확장 가능한 실행 – 수천 개의 동시 환경 실행, 작업 반복, GPU/Slurm 노드에서 작업 시작
- 에이전트 하네스 – OpenAI, vLLM, Fireworks 등의 모델을 래핑하여 샌드박스와 상호 작용할 수 있게 함
- 훈련 지원 – 환경을 모든 RL 프레임워크(NeMo RL, VeRL, Unsloth)에 연결하여 강화 학습 또는 미세 조정 지원
- 선택적 OpenTelemetry 추적 – 엔드 투 엔드 관찰 가능성 제공
이는 에이전트형 또는 도구 호출형 모델의 재현 가능하고 대규모 평가가 필요한 팀과 RL 또는 지도 미세 조정으로 이러한 에이전트를 개선하려는 연구자를 위해 설계되었습니다.
🚀 빠른 시작(README 기준)
# 저장소를 클론하고 가상 환경을 설정합니다(uv 및 Python 3.13+ 필요)
git clone https://github.com/NVIDIA-NeMo/Gym.git
cd Gym
uv venv --python 3.13 && source .venv/bin/activate
uv sync
OpenAI 모델을 가리키는 간단한 env.yaml을 만듭니다(다른 공급자도 유사하게 작동합니다):
policy_base_url: https://api.openai.com/v1
policy_api_key: <your‑openai‑api‑key>
policy_model_name: gpt-4.1-2025-04-14
데이터 세트, 에이전트, 모델을 조정하는 세 개의 로컬 서버를 시작합니다:
gym env start \
--resources-server mcqa \
--model-type openai_model
작은 평가를 실행합니다(MCQA 작업 5개, 반복 1회):
gym eval run --no-serve \
--agent mcqa_simple_agent \
--input resources_servers/mcqa/data/example.jsonl \
--output results/mcqa_rollouts.jsonl \
--limit 5 \
--num-repeats 1
CLI는 집계 메트릭을 출력합니다. 예:
{
"mean/reward": 0.8,
"pass@1[avg-of-1]/accuracy": 80.0,
"pass@1/accuracy": 80.0
}
📦 핵심 기능(README에 명시된 대로)
| 기능 | 의미 |
|---|---|
| 모듈식 확장 가능 인터페이스 | 핵심 라이브러리를 변경하지 않고 자체 에이전트 코드, 환경 로직 또는 검증기를 플러그인할 수 있습니다. |
| 환경 허브 | 코드, 안전성, 추론, 다국어, 장문맥 등 다양한 도메인의 수백 개의 사전 구축 벤치마크 |
| 확장 가능한 실행 | 많은 환경을 병렬로 실행하고, GPU 또는 Slurm에서 작업을 예약하며, 선점 후 자동으로 재개합니다. |
| RL 프레임워크 비의존성 | NeMo RL, VeRL, Unsloth 또는 다른 RL 트레이너와 동일한 환경 객체를 사용할 수 있습니다. |
| OpenTelemetry 추적 | 모델 호출, 도구 사용, 지연 시간에 대한 선택적 엔드 투 엔드 관찰 가능성 |
| 프로덕션 검증됨 | NVIDIA Nemotron 시리즈 훈련에 사내에서 사용됩니다. |
🛠️ 일반적인 사용 사례
| 시나리오 | NeMo Gym이 어떻게 도움이 되는지 |
|---|---|
| 새 LLM 벤치마킹 | 동일한 환경(예: MCQA, 코드 생성)을 여러 번 반복 실행하고, 롤아웃을 수집하고, 재현 가능한 메트릭을 얻습니다. |
| 도구 호출 에이전트 개발 | 샌드박스 공급자(Docker, ECS Fargate, OpenSandbox 등)를 사용하여 코드 또는 API 호출을 안전하게 실행하고, 자동 정리 및 실패 처리를 수행합니다. |
| RL 미세 조정 | 환경에서 생성된 롤아웃을 RL 알고리즘(예: PPO, GDPO)에 공급하여 특정 작업 분포에서 정책을 개선합니다. |
| 안전성/콘텐츠 중재 평가 | 콘텐츠 안전성 모델로 프롬프트와 응답을 채점하는 다중 모달 안전 환경(Aegis v4)을 실행합니다. |
| 맞춤형 연구 환경 | "환경 튜토리얼"에 따라 새 데이터 세트 기반 작업(단일 단계, 다중 단계, 상태 저장)을 구축하고 동일한 훈련 파이프라인에 연결합니다. |
📚 문서 및 커뮤니티
- 공식 문서 – https://docs.nvidia.com/nemo/gym/main/ (설치, 튜토리얼, CLI 참조)
- GitHub CI – 단위 테스트 배지로 지속적 통합 상태를 보여줍니다.
- 커뮤니티 – NVIDIA NeMo 포럼 및 Discord 채널(문서에서 연결)
- 인용 – README에 학술적 사용을 위한 "Citations" 섹션이 있습니다.
📦 설치 요약
- Python ≥ 3.13.14(README에는 3.13.14 이상 명시)
- GPU 불필요(라이브러리 자체에는 불필요하며, 일부 환경의 모델 추론에만 필요)
- 의존성은
uv sync로 설치되며, Ray가 자동으로 포함됩니다. - 선택 사항: VLM 또는 오디오/비디오 벤치마크의 경우
docker/install_excluded_deps.sh를 통해 제외된 코덱 패키지를 설치할 수 있습니다.
🎉 결론
NeMo Gym은 복잡하고 상태 저장된 환경과 상호 작용하는 AI 에이전트를 구축, 평가, 훈련하기 위한 실제 프로덕션급 프레임워크입니다. NVIDIA의 광범위한 NeMo 생태계 내에 위치하며, 도구 사용 또는 코드 생성 모델을 위한 확장 가능하고 재현 가능한 벤치마킹과 RL 기반 훈련이 필요한 연구자와 엔지니어를 대상으로 설계되었습니다.
관련
- 프로젝트
- 프로젝트
- Dispatch
- 프로젝트
- 프로젝트