GR00T-N1.7 LIBERO closed-loop evaluation
Each episode executes model actions in LIBERO untilcheck_success() becomes
true or the episode reaches its step limit.
Result
Per-task results
Each task contains 50 fixed initial states.Evaluation settings
The evaluation uses:
benchmark/gr00t/libero_rollout_server.pyto expose PhyAI through the NVIDIA policy-server protocol.benchmark/gr00t/libero_closed_loop_client.pyto run LIBERO episodes and save the result after every episode.
Reproduce
Prepare the checkpoint as described in ws1. The PhyAI reproduction runs LIBERO from a pinned simulator container. It requires Docker, NVIDIA Container Toolkit, and a CUDA GPU. From the PhyAI repository root, set:--online on the first run.
The built-in processor does not require remote code. Only pass
--trust-remote-code for a custom processor repository whose code you trust.
With CUDA graphs enabled, --max-batch-size is the captured batch size and
must equal the client’s actual request batch. This client sends one environment
per request, so both values are 1; when using the official client, set it to
the same value as --n-envs.
--capture-suite libero_10 scans all ten tasks before the socket is bound, then
deduplicates profiles by their complete Backbone and Action Head Graph structure.
The ten canonical prompts share the same structure, so setup runs one
representative warmup and captures one graph for each stage. Runtime requests
only replay these graphs. For a custom fixed task subset, replace it with one
repeated --capture-task "..." argument per task structure; equivalent
structures are still captured only once.
The Action Head uses SDPA in this CUDA Graph path. If the optional FlashInfer
backend is selected, the scheduler disables CUDA Graphs for both the Backbone
and Action Head so the complete request runs eagerly.
After Server is ready and listening appears, run the client from another
terminal with the same exported variables:
--resume skips completed (task_id, episode) pairs after an interruption.
The result records the server identity in server_info and the result group in
backend.
Official baseline
To reproduce the official baseline, prepare LIBERO with Isaac-GR00T, then start the NVIDIA server:5555, --backend official, and
result file /results/official.json. Use the remaining evaluation arguments
shown above.
