用途
本技能用于在 LIBERO 和 RoboCasa 仿真环境中评估 NVIDIA Cosmos Policy。Cosmos Policy 是一个视觉-语言-动作(VLA)模型,使用 Cosmos Tokenizer 将视觉观测编码为离散 token,再根据语言指令和视觉上下文预测机器人动作。该技能面向需要在公开基准上复现评估结果、分析推理延迟与吞吐,或在 GPU 集群上为机器人仿真配置无头 EGL 渲染的用户。
主要能力
- 在 LIBERO 基准上运行评估,支持 libero_spatial、libero_object、libero_goal、libero_10 四个任务套件。
- 在 RoboCasa 基准上运行评估,支持单任务与多任务扩展。
- 提供官方公开评估入口:cosmos_policy.experiments.robot.libero.run_libero_eval 与 cosmos_policy.experiments.robot.robocasa.run_robocasa_eval。
- 覆盖空白机器集群启动流程,包括依赖同步与渲染环境变量导出。
- 提供推理性能分析所需的配置项(如去噪步数、chunk 大小、开环步数等)。
使用方式
环境安装
git clone https://github.com/NVlabs/cosmos-policy.git
cd cosmos-policy
# Follow SETUP.md to build and enter the supported Docker container.
# Then, inside the container:
uv sync --extra cu128 --group libero --python 3.10
无头渲染配置
export CUDA_VISIBLE_DEVICES=0
export MUJOCO_EGL_DEVICE_ID=0
export MUJOCO_GL=egl
export PYOPENGL_PLATFORM=egl
LIBERO 冒烟评估
uv run --extra cu128 --group libero --python 3.10 \
python -m cosmos_policy.experiments.robot.libero.run_libero_eval \
--config cosmos_predict2_2b_480p_libero__inference_only \
--ckpt_path nvidia/Cosmos-Policy-LIBERO-Predict2-2B \
--config_file cosmos_policy/config/config.py \
--use_wrist_image True \
--use_proprio True \
--normalize_proprio True \
--unnormalize_actions True \
--dataset_stats_path nvidia/Cosmos-Policy-LIBERO-Predict2-2B/libero_dataset_statistics.json \
--t5_text_embeddings_path nvidia/Cosmos-Policy-LIBERO-Predict2-2B/libero_t5_embeddings.pkl \
--trained_with_image_aug True \
--chunk_size 16 \
--num_open_loop_steps 16 \
--task_suite_name libero_10 \
--num_trials_per_task 1 \
--local_log_dir cosmos_policy/experiments/robot/libero/logs/ \
--seed 195 \
--randomize_seed False \
--deterministic True \
--run_id_note smoke \
--ar_future_prediction False \
--ar_value_prediction False \
--use_jpeg_compression True \
--flip_images True \
--num_denoising_steps_action 5 \
--num_denoising_steps_future_state 1 \
--num_denoising_steps_value 1 \
--data_collection False
结果解析
import json
import glob
# Find latest evaluation result from the official log directory
log_files = sorted(glob.glob("cosmos_policy/experiments/robot/libero/logs/**/*.json", recursive=True))
with open(log_files[-1]) as f:
results = json.load(f)
print(results)
RoboCasa 安装与评估
git clone https://github.com/moojink/robocasa-cosmos-policy.git
uv pip install -e robocasa-cosmos-policy
python -m robocasa.scripts.setup_macros
python -m robocasa.scripts.download_kitchen_assets
RoboCasa 单任务冒烟评估命令与 LIBERO 类似,使用 --group robocasa、--config cosmos_predict2_2b_480p_robocasa_50_demos_per_task__inference、--ckpt_path nvidia/Cosmos-Policy-RoboCasa-Predict2-2B,并指定 --task_name TurnOffMicrowave、--obj_instance_split A、--num_trials_per_task 2 等参数。
适用场景
- 在 LIBERO 或 RoboCasa 基准上评估 NVIDIA Cosmos Policy。
- 分析 Cosmos Policy 的推理延迟与吞吐。
- 在 GPU 集群上为机器人仿真配置无头 EGL 渲染。
限制与注意事项
- 不适用于从零训练或微调 Cosmos Policy(应使用官方 Cosmos 训练文档)。
- 不适用于 OpenVLA 系列策略(应使用 fine-tuning-openvla-oft)。
- 不适用于 Physical Intelligence pi0 模型(应使用 fine-tuning-serving-openpi)。
- 不适用于真实机器人评估,仅面向仿真。
- 计算需求:LIBERO 冒烟评估(1 次试验)约需 1x A40/A100、约 16GB 显存、5-10 分钟;LIBERO 完整评估(50 次试验)约 2-4 小时;RoboCasa 单任务(2 次试验)约需 1x A40/A100、约 18GB 显存、10-15 分钟;RoboCasa 全任务约 4-8 小时。
- 官方参考成功率:LIBERO-Spatial 98.1%、LIBERO-Object 100.0%、LIBERO-Goal 98.2%、LIBERO-Long 97.6%、LIBERO 平均 98.5%、RoboCasa 平均 67.1%。这些数值依赖检查点、任务套件、随机种子和仿真器设置,复现时需记录确切命令与环境。
- 无头 GPU 节点上必须同时设置 CUDA_VISIBLE_DEVICES、MUJOCO_EGL_DEVICE_ID、MUJOCO_GL=egl 和 PYOPENGL_PLATFORM=egl。
- 若主机 Python 安装出现二进制兼容问题,应回退到 SETUP.md 支持的容器工作流。
- 重复运行时保持任务名、对象划分、种子和试验次数固定,以保证可比性。
常见问题
- 主机 Python 二进制兼容或加载器失败:在官方容器/运行时中重跑。
- LIBERO 在非交互 shell 中提示配置路径:预创建 ~/.libero/config.yaml。
- EGL 初始化或关闭噪声:先对齐 EGL 环境变量;仅关闭阶段的 EGL_NOT_INITIALIZED 警告可视为低信号,除非作业以非零退出。
- RoboCasa 厨房对象采样 NaN 或资产查找失败:重跑资产设置并确认补丁版 robocasa 安装完整。
- MuJoCo 渲染不匹配:验证 GPU 设备对齐。
资源
- Cosmos Policy 仓库:https://github.com/NVlabs/cosmos-policy
- LIBERO 基准:https://github.com/Lifelong-Robot-Learning/LIBERO
- Cosmos 兼容 RoboCasa 分支:https://github.com/moojink/robocasa-cosmos-policy
- 上游 RoboCasa 项目:https://github.com/robocasa/robocasa
- MuJoCo 文档:https://mujoco.readthedocs.io/