groot-ray-serve: parameterize live rollout into an N_ROLLOUTS fan-out#784
Open
IanDJordan wants to merge 1 commit into
Open
groot-ray-serve: parameterize live rollout into an N_ROLLOUTS fan-out#784IanDJordan wants to merge 1 commit into
IanDJordan wants to merge 1 commit into
Conversation
Make the "one shared policy fleet, many independent simulators" story actually runnable from a single knob, plus carry over the notebook quality fixes and a security note. - run_rollout takes a worker_id; GIF/results filenames are per-worker so fanned-out rollouts no longer clobber each other (was hardcoded to 99). - Step 5 launches N_ROLLOUTS SimActors (each holds one GPU; the Anyscale autoscaler provisions nodes to fit, capped by max-workers). Step 6 collects the list, shows the first success, and falls back to the pre-recorded clip only if none succeed; cleanup kills every actor. - N_ROLLOUTS = 1 reproduces the prior single-rollout behavior exactly. - policy_server.py: document the pickle-over-HTTP trust assumption on both predict_http endpoints (comment only, no behavior change). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Lands two things for the
groot-ray-servetemplate in one diff:policy_server.py), andN_ROLLOUTSfan-out so the headline story — one shared policy fleet, many independent simulators — is actually runnable from a single knob.New this round —
N_ROLLOUTSfan-outrun_rollouttakes aworker_id; GIF/results filenames are now per-worker (was hardcoded to99, so fanned-out rollouts would clobber each other).N_ROLLOUTSSimActors (each holds one GPU; the Anyscale autoscaler provisions nodes to fit, capped by max-workers). Step 6 collects the list, displays the first success, and falls back to the pre-recorded clip only if none succeed. Cleanup kills every actor.N_ROLLOUTS = 1reproduces the prior single-rollout testing behavior exactly.Notebook overhaul (correctness / robustness)
SimActor—serve.shutdown()doesn't reclaim it, so it previously pinned a whole GPU + CPU after the run.run_rolloutpreviously built ashell=Truebash command string (a Ray actor shelling out to bash, whichcd'd and ran thetimeoutbinary before launchingpython sim_worker.py). It now runssubprocess.run([...], cwd=…, timeout=…)directly — python → python, dropping the bash layer and its shell quoting/injection footgun. The subprocess itself is retained on purpose — Isaac Sim/Omniverse Kit can't boot inside a Ray worker.exit_code == 0and a fresh file before trusting the live GIF (prevents re-displaying a previous run's clip as if it succeeded); throttled the progress print.~200 ms-1.5 s.sys.path.insert; documented thatserve.start(host=0.0.0.0)is load-bearing (binds the proxy so off-node sim workers can reach the policy), not redundant withserve.run.policy_server.py: documented the pickle-over-HTTP trust assumption on bothpredict_httpendpoints (comment only, no behavior change).Validation
pre-commit run --all-filespasses (incl.check-readmebyte-exact match andcheck-build-yaml); no template dependency changes (socheck-depsetsis unaffected)./test-template groot-ray-serve) + dev->staging->prod re-publish to follow after approval.🤖 Generated with Claude Code