Evaluate Nemotron 3.5 Lightning#
Evaluate trained Nemotron 3.5 Lightning checkpoints with NeMo Gym.
Note: NeMo Evaluator is deprecated for the instruct-model benchmark suite in favor of NeMo Gym. Base-model tasks (the lm-evaluation-harness short-context suite and RULER long-context) are not Gym environments and still run via nemo-evaluator-launcher.
How it works#
The eval stage is a regular recipe script
(src/nemotron/recipes/lightning35/stage3_eval/eval.py) submitted like any
other training stage. Inside the job it:
Serves the checkpoint with vLLM using the Lightning family settings:
nemotron_v3reasoning parser,qwen3_codertool parser, fp32 Mamba SSM cache, expert parallelism, and optional MTP speculative decoding (the released checkpoint ships a repeated-layer MTP module; speculation depth is configurable).Waits for the OpenAI-compatible endpoint to become healthy.
Runs each benchmark with
gym eval prepare+gym eval run --model-type vllm_modelagainst the endpoint.Aggregates each benchmark’s
*_aggregate_metrics.jsoninto a stage-levelsummary.json.
This reproduces the Gym-native flow used for the published Lightning
evaluation numbers (see Gym scripts/more/reproducibility.md).
Quick start#
# Evaluate the RL stage output (default: run.model=lightning35-rl-model:latest)
uv run nemotron lightning35 eval --run YOUR-CLUSTER
# Evaluate a specific model artifact from W&B lineage
uv run nemotron lightning35 eval --run YOUR-CLUSTER run.model=sft-model:v2
# Evaluate an explicit HF checkpoint path
uv run nemotron lightning35 eval --run YOUR-CLUSTER serving.model_path=/path/to/hf_ckpt
# Filter benchmarks
uv run nemotron lightning35 eval --run YOUR-CLUSTER -t gpqa -t scicode
# Smoke run: 5 rows per benchmark
uv run nemotron lightning35 eval --run YOUR-CLUSTER gym.limit=5 gym.concurrency=8
# Preview the compiled config
uv run nemotron lightning35 eval --dry-run
Configuration#
src/nemotron/recipes/lightning35/stage3_eval/config/default.yaml has three
sections:
Section |
Purpose |
Key fields |
|---|---|---|
|
Artifact resolution + cluster profile |
|
|
vLLM serving of the checkpoint |
|
|
Benchmark suite and Gym invocation |
|
The model checkpoint must be in HF format (the RL stage output already is; Megatron checkpoints must be exported first — see import/export).
Benchmark suite#
The published Lightning instruct evaluation uses the Gym-native reference suite:
Benchmark |
Self-contained |
Notes |
|---|---|---|
|
✅ |
GPQA Diamond, enabled by default (needs |
|
⚠️ |
Needs SciCode’s ~1GB |
|
❌ |
Requires a judge model |
|
❌ |
AA-LCR, requires a judge model |
|
❌ |
AA-Omniscience, requires a judge model |
|
❌ |
Requires a search API key |
|
❌ |
Requires environment/tool servers |
|
❌ |
Requires a judge model |
|
❌ |
Requires a judge model |
|
❌ |
Requires a judge model |
Enable additional benchmarks by extending gym.benchmarks once the required
endpoints/keys are configured, and pass judge/API settings through
gym.extra_overrides.
Outputs#
Results land under gym.output_dir (default
/nemo_run/lightning35-eval-results):
gpqa.jsonl # one verified rollout per task/repeat
gpqa_materialized_inputs.jsonl
gpqa_aggregate_metrics.json # per-benchmark scores (mean/reward, pass@k, ...)
vllm_serve.log
summary.json # stage-level roll-up across benchmarks
The stage exits non-zero if any configured benchmark fails, and logs a per-benchmark status table.
Base-model evaluation#
The base checkpoint
(nvidia/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-Base-BF16) is evaluated with
21 short-context lm-evaluation-harness tasks plus RULER (64K–1M context) via
nemo-evaluator-launcher, not Gym. Those configs are maintained in the Gym
repo under scripts/more/base/.