用途
本技能面向 NVIDIA Cosmos Policy 的评估工作流,目标是在 LIBERO 与 RoboCasa 两个仿真环境中运行并复现该策略的评估结果。它基于公开的 cosmos-policy 仓库,覆盖空白机器搭建、无头 GPU 评估以及推理性能分析。
Cosmos Policy 是一种视觉-语言-动作(VLA)模型:使用 Cosmos Tokenizer 将视觉观测编码为离散 token,再根据语言指令与视觉上下文预测机器人动作。其架构要点包括:视觉编码器采用 Cosmos Tokenizer(离散 token);语言条件通过交叉注意力接入语言嵌入;动作预测采用自回归动作 token 生成。
支持的公开评估入口为 cosmos_policy.experiments.robot.libero.run_libero_eval 与 cosmos_policy.experiments.robot.robocasa.run_robocasa_eval。
主要能力
- LIBERO 评估:支持冒烟评估与全量基准(四个任务套件,每任务 50 次试验)。
- RoboCasa 评估:支持单任务冒烟评估与多任务扩展。
- 无头 GPU 渲染配置:通过 EGL 相关环境变量在集群节点上运行仿真。
- 推理性能分析:用于分析推理延迟与吞吐。
- 结果解析:从官方日志目录读取 JSON 结果。
使用方式
环境安装
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
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)
全量 LIBERO 评估
对 libero_spatial、libero_object、libero_goal、libero_10 四个套件循环运行,将 --num_trials_per_task 设为 50。
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 评估入口为 cosmos_policy.experiments.robot.robocasa.run_robocasa_eval,使用配置 cosmos_predict2_2b_480p_robocasa_50_demos_per_task__inference 与检查点 nvidia/Cosmos-Policy-RoboCasa-Predict2-2B。
集群启动环境变量
export CUDA_VISIBLE_DEVICES=0
export MUJOCO_EGL_DEVICE_ID=0
export MUJOCO_GL=egl
export PYOPENGL_PLATFORM=egl
export HF_HOME=${HF_HOME:-$HOME/.cache/huggingface}
export TRANSFORMERS_CACHE=${TRANSFORMERS_CACHE:-$HF_HOME}
算力需求
- LIBERO 冒烟评估(1 次试验):1x A40/A100,约 16 GB 显存,5-10 分钟。
- LIBERO 全量评估(50 次试验):1x A40/A100,约 16 GB 显存,2-4 小时。
- RoboCasa 单任务(2 次试验):1x A40/A100,约 18 GB 显存,10-15 分钟。
- RoboCasa 全任务:1x A40/A100,约 18 GB 显存,4-8 小时。
预期性能基准
官方评估参考值(与具体设置和随机种子相关):LIBERO-Spatial 98.1%,LIBERO-Object 100.0%,LIBERO-Goal 98.2%,LIBERO-Long 97.6%,LIBERO 平均 98.5%,RoboCasa 平均 67.1%。复现时成功率仍取决于检查点选择、任务套件、随机种子与仿真器设置,应同时记录确切命令与环境。
适用场景
- 在 LIBERO 或 RoboCasa 基准上评估 NVIDIA Cosmos Policy。
- 分析 Cosmos Policy 的推理延迟与吞吐。
- 在 GPU 集群上为机器人仿真配置无头 EGL 渲染。
限制与注意事项
- 不适用于从零训练或微调 Cosmos Policy(应使用官方 Cosmos 训练文档)。
- 不适用于 OpenVLA 系列策略(应使用 fine-tuning-openvla-oft)。
- 不适用于 Physical Intelligence pi0 模型(应使用 fine-tuning-serving-openpi)。
- 不适用于真实机器人评估,仅面向仿真。
- 无头 GPU 节点上必须同时设置 CUDA_VISIBLE_DEVICES、MUJOCO_EGL_DEVICE_ID、MUJOCO_GL=egl 与 PYOPENGL_PLATFORM=egl。
- 若主机 Python 安装出现二进制兼容问题,应回退到 SETUP.md 支持的容器工作流。
- 设置与评估应使用同一缓存目录,以复用 Hugging Face 与依赖缓存。
- 重复运行时保持任务名、对象划分、随机种子与试验次数固定,以保证可比性。
- 常见问题包括:主机 Python 二进制兼容或加载失败、非交互式 shell 下 LIBERO 提示配置路径、EGL 初始化或关闭噪声、RoboCasa 厨房对象采样 NaN 或资产查找失败、MuJoCo 渲染不匹配。
- 使用前应确认 GPU 显存、模型检查点与许可、框架版本与输入格式;对影响结果的参数应向用户确认而非猜测。
- 商业或公开发布前需检查模型与数据集许可。
- 涉及费用、共享 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/