NVIDIA-NeMo/Gym

Evaluate and improve models and agents using environments

🎯 NeMo Gym 是什么

NeMo Gym(NVIDIA NeMo 平台的 Gym 组件)是一个 Python 库,让您可以在有状态环境中评估和训练 AI 代理。环境将数据集、模型可运行代码或调用工具的沙箱、对结果进行评分的验证器以及每个任务的状态捆绑在一起。该库提供:

  • 模块化接口(用于代理、环境、任务和验证器)
  • “环境中心” – 数十个现成的基准测试(多项选择 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

运行一个小型评估(5 个 MCQA 示例任务,单次重复):

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、代码生成),收集 rollout,并获得可重复的指标。
开发工具调用代理 使用沙箱提供商(Docker、ECS Fargate、OpenSandbox 等)安全地执行代码或 API 调用,并自动清理和处理故障。
RL 微调 将环境中的 rollout 输入 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
  • 项目
  • 项目