Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

feat: generalize run_rollout_only.py into a single-controller simulator

Open
#4,860 0 comments 0 reactions 1 assignee View on GitHub

Maintainers usually reply within 2 days

@shikicloud is already working on this.

Since Oct 22, 2026.

  • #4914 by @shikicloud — open

Assessment

This issue has not been assessed yet.

Description

Feature

Background

#4814 adds examples/run_rollout_only.py, which runs a GRPO recipe's rollouts exactly as training would, without creating a trainer. A training stand-in holds each step where policy.train() would run, and the weight version advances through the refit calls without moving any weights. This covers the rollout-only case on both the sync and async paths.

Proposal

Build on that driver and evolve it into examples/run_single_controller_simulator.py. In the simulator, each side of the training loop is a pluggable backend, and any combination of the two can run:

  • Train backend
    • automodel
    • mcore
    • cpu: a mock that stands in for the train step and refit and uses no GPU resources
  • Rollout backend
    • any of the existing generation backends
    • cpu: a mock that returns synthetic rollouts and uses no GPU resources
  • Modes
    • rollout_only: what #4814 supports today, i.e. a real rollout backend with the trainer stubbed out
    • train_only: a real train backend fed by mock rollouts
    • train + rollout: both backends real, the full loop

Because either side can be swapped for the cpu mock, one side can be run, profiled and tuned on its own, with the same config and step loop as the full run, and without allocating GPUs for the other side.

Dominant language
Python
Stars
2.1k
Forks
612
Avg merge
3d 14h
Merged PRs (30d)
267

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from NVIDIA-NeMo/RL

All issues in NVIDIA-NeMo/RL

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.