Measure a model, then make it better.
Start with a baseline on any environment, then train with reinforcement learning against its verifier: the model practises, gets scored, and learns from what scored well. Each round is kept only if it beats the best score so far.
Evaluate, or improve.
GSM8K200 questions · seed 0
Qwen2.5-1.5B14.0%
Qwen2.5-0.5B5.0%Baseline, check, train, keep the best.
Every project runs the same pipeline, so a better number always means a better model.
Baseline
Measure the model before anything changes, on a fixed number of episodes.
Check
Confirm the environment's tier, so the reward really separates good from bad.
Train
Run rounds of the learner you picked against the environment's verifier.
Keep the best
Held-out tasks after every update; a worse round is reverted.
Training that can't go backwards.
train() holds out tasks and evaluates after every update. An update that makes held-out performance worse is reverted, so the best model so far is the one you keep.
- Held-out tasksScored after every update, never trained on.
- Reverted if worseA round that lowers the held-out score is rolled back.
- Learning signal reportedYou see what fraction of groups carried any signal at all.
Each round kept only if it improvesGRPO · held-out
Round 4 was worse, so it was reverted0.71
Built in, or the one you use.
Ready means run end to end for real. Beta means the job is generated and tested and the reward path checked against real environments, but not yet run end to end on a GPU.
| Status | What it runs | |
|---|---|---|
| Nenyax learners | Ready | In-context, GRPO, DAPO, RLOO, RFT, DPO |
| TRL | Beta | GRPOTrainer or DPOTrainer |
| Unsloth | Beta | GRPO with 4-bit loading and LoRA |
| verl | Beta | GRPO, PPO, RLOO, REINFORCE++ |
| prime-rl | Beta | On a Verifiers environment wrapping Nenyax |
| OpenRLHF | Beta | PPO with a remote reward server |
| Tinker | Beta | Hosted LoRA, environment stays local |
Everything a run keeps, and where it runs.
Settings, data and machines stay yours; the result stays repeatable.
Held-out reward0.81
- learner
- grpo
- model
- Qwen2.5-0.5B-Instruct
- lr
- 3e-6
- rounds
- 10
- group_size
- 8
- batch
- 4
- max_new_tokens
- 128
examples/configs/grpo_local.toml
Every setting next to its curve
The learner, model, learning rate and rounds are kept with the result, so a run can be repeated.
Your machine runner online
Keys stay home
Training runs on compute you control; Nenyax owns none.
Langfuse
LangSmith
PhoenixDatasets to start from
SFT pairs, DPO preferences or a distillation set, made from your own traces.
StackChange
vLLM · Qwen3-8B
RunPod · your account
Modal
verlSwap the trainer, keep the environment
Move from the built-in GRPO to verl or TRL without touching the environment or its verifier.
Baseline, then train.
Good to know.
Put a model through its first round.
Measure a baseline, then improve from there on your own stack.
nenyax train reasoning_gym:basic_arithmetic \ --learner grpo --provider vllmkept only if it improves