GR00T-N1.7 LIBERO 闭环成功率
每个 episode 都会在 LIBERO 中执行模型动作,直到check_success() 返回真或达到
episode 步数上限。
结果
逐任务结果
每个任务包含 50 个固定初始状态。测试配置
测试使用以下两个脚本:
benchmark/gr00t/libero_rollout_server.py:将 PhyAI 包装为 NVIDIA policy-server 协议。benchmark/gr00t/libero_closed_loop_client.py:运行 LIBERO episode,并在每个 episode 后保存结果。
复现
先按照 ws1 准备 checkpoint。PhyAI 复现使用固定版本的 LIBERO 仿真容器,环境 需要 Docker、NVIDIA Container Toolkit 和 CUDA GPU。 在 PhyAI 仓库根目录设置:--online。
内置processor不需要执行远程代码;只有在使用可信的自定义processor仓库时才传入
--trust-remote-code。
启用CUDA Graph时,--max-batch-size就是捕获Graph所用的batch,必须与
客户端实际请求batch一致。此处客户端每次发送一个环境,因此两者都为1;
使用官方客户端时,应将其设为与--n-envs相同的值。
--capture-suite libero_10会在绑定端口前扫描全部十个任务,并按Backbone
和Action Head的完整Graph结构对profile去重。这十条标准任务描述的结构
相同,因此setup只对一条代表profile执行预热,两个阶段分别只捕获一张
Graph;运行时只回放这些Graph。测试自定义固定任务子集时,将其替换为
重复的--capture-task "...";等价结构仍只捕获一次。该CUDA Graph路径中的
Action Head使用SDPA;选择可选FlashInfer backend时,scheduler会同时关闭
Backbone和Action Head的CUDA Graph,让完整请求统一走eager。看到
Server is ready and listening 后,在另一个终端重新导出相同变量并运行:
--resume 会跳过已经完成的 (task_id, episode)。结果中的
server_info 记录服务端身份,backend 记录结果分组。
官方基线
复现官方基线时,按照 Isaac-GR00T 说明准备 LIBERO 环境, 然后启动 NVIDIA server:5555,设置 --backend official,并将结果写入
/results/official.json。其余参数沿用上面的测试配置。
