NVIDIA-NeMo/Gym
Evaluate and improve models and agents using environments
🎯 NeMo Gym とは
NeMo Gym(NVIDIAのNeMoプラットフォームのGymコンポーネント)は、ステートフル環境内でAIエージェントを評価・訓練できるPythonライブラリです。環境には、データセット、モデルがコードを実行したりツールを呼び出したりできるサンドボックス、結果をスコアリングする検証器、タスクごとの状態がバンドルされています。このライブラリは以下を提供します:
- モジュール式インターフェース(エージェント、環境、タスク、検証器用)
- 「環境ハブ」(多肢選択QA、コード生成、安全性、推論など、数十の既製ベンチマーク)
- スケーラブルな実行 – 数千の並行環境の実行、タスクの繰り返し、GPU/スラムノードでのジョブ起動が可能
- エージェントハーネス(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
データセット、エージェント、モデルを調整する3つのローカルサーバーを起動します:
gym env start \
--resources-server mcqa \
--model-type openai_model
小さな評価を実行します(5つのMCQAタスク例、繰り返し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やスラムでジョブをスケジュールし、プリエンプション後に自動再開 |
| 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には学術利用のための「引用」セクションがあります
📦 インストール概要
- 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
- プロジェクト
- プロジェクト