SuperAPI AI 工具集

evaluating-cosmos-policy

智能体与模型

查看项目

更新于 10-21 16:25

技能介绍

用途

本技能面向 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/