ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

如何加速机器人评测:EasyWAM-Unified-Cosmos25 多卡分布式部署与调优教程

如何加速机器人评测:EasyWAM-Unified-Cosmos25 多卡分布式部署与调优教程

【免费下载链接】EasyWAM-Unified-Cosmos25

项目地址:https://ai.gitcode.com/OpenMOSS/EasyWAM-Unified-Cosmos25
点击查看免费下载

EasyWAM-Unified-Cosmos25 是 OpenMOSS 基于 Cosmos-Predict2.5-2B 发布的 World-Action Model 评测检查点仓库,配合 LIBERO 基准可完成完整的机器人评测流程。本文将手把手教你如何用多卡分布式部署把机器人评测时间压到最短:从检查点下载、一键启动多卡评测,到MULTIRUN.num_gpus关键参数与 4 个实用调优技巧,新手也能快速上手。

为什么 LIBERO 机器人评测这么慢?

在开始加速之前,先搞清楚时间都花在了哪里。

按 README.md 中的默认评测协议,机器人评测需要覆盖LIBERO 全部 4 个测试套件:

测试套件任务数每任务试验次数
Spatial1050
Object1050
Goal1050
LIBERO-101050

也就是说一次完整评测 = 40 个任务 × 50 次试验 =2000 次 rollout。每一次 rollout 都要在 LIBERO 仿真器中逐步执行,并反复调用 2B 规模的 Video DiT 模型做推理。单卡串行跑完,等待时间往往以"天"计——这正是多卡分布式评测要解决的问题。

三步启动多卡机器人评测

第一步:下载检查点与统计文件

仓库中已包含 LIBERO 全参数检查点,评测时需要两个文件:

  • 模型权重:libero_unified_cosmos25.pt
  • 数据归一化统计:libero_dataset_stats.json
hf download OpenMOSS-Team/EasyWAM-Unified-Cosmos25 \ libero_unified_cosmos25.pt \ libero_dataset_stats.json \ --local-dir ./checkpoints

💡 这两个文件只需下载一次,之后重复评测、换卡数重跑都可以直接复用,这是最容易被忽略的加速点。

第二步:准备运行环境

按照 README.md 的说明完成三件事即可:

  1. 安装 EasyWAM 代码库;
  2. 按官方 backbone 指南配置 Cosmos-Predict2.5-2B 依赖;
  3. 搭建 LIBERO 仿真环境。

第三步:一条命令启动分布式评测

python experiments/libero/run_libero_manager.py \ task=libero_easywam_unified_cosmos25 \ ckpt=./checkpoints/libero_unified_cosmos25.pt \ EVALUATION.dataset_stats_path=./checkpoints/libero_dataset_stats.json \ MULTIRUN.num_gpus=4

加上MULTIRUN.num_gpus=4后,评测任务就会被自动分配到 4 张 GPU 上并行执行,理想情况下总耗时约为单卡的 1/4。

关键参数详解:MULTIRUN.num_gpus 怎么用?

下面是本教程涉及的全部参数速查表:

参数作用说明
task评测任务配置固定为libero_easywam_unified_cosmos25
ckpt模型权重路径指向下载的.pt检查点
EVALUATION.dataset_stats_path数据统计文件路径用于状态与动作的归一化
MULTIRUN.num_gpus参与评测的 GPU 数量多卡分布式部署的核心开关,按需填写卡数

🚀多卡分配原理:num_gpus指定后,2000 次 rollout 会被切分成若干份,分别落在不同 GPU 上并行推进,最后汇总各卡的成功率得到最终结果。卡数越多,单次完整评测的墙钟时间越短。

4 个让机器人评测更快的调优技巧

1. 先用nvidia-smi确认真实可用卡数⚡

把num_gpus设置成你机器上实际可用的 GPU 数量,而不是理想数量。如果其中一张卡被其他进程占用,评测速度会明显掉队。

2. 用CUDA_VISIBLE_DEVICES精确指定用哪几张卡

如果你只希望用 0、1 号卡做评测,可以这样控制:

CUDA_VISIBLE_DEVICES=0,1 python experiments/libero/run_libero_manager.py \ task=libero_easywam_unified_cosmos25 \ ckpt=./checkpoints/libero_unified_cosmos25.pt \ EVALUATION.dataset_stats_path=./checkpoints/libero_dataset_stats.json \ MULTIRUN.num_gpus=2

3. 监控各卡利用率,发现"拖后腿"的卡

评测中途执行nvidia-smi,观察每张卡的显存与利用率。若某张卡长期空闲或显存暴涨,说明任务分配或显存分配存在问题,及时重启比硬等更划算。

4. 显存不够时优先降卡数而不是降精度

2B 规模的 Video DiT 对单卡显存要求不低(具体取决于图像分辨率等配置)。遇到 OOM 时,建议先减少num_gpus或与其他进程错峰使用,避免影响成功率的可比性。

评测结果速览:这个模型有多强?

跑完之后,你可以对照 README.md 中发布的官方基线判断结果是否正常。全参数检查点在 LIBERO 四套件上的任务成功率如下(50 次试验/任务):

模型SpatialObjectGoalLIBERO-10平均
🔥 EasyWAM-Unified97.899.497.093.096.8

同时在更难的 LIBERO-Plus 扰动测试(背景、光照、布局、噪声等 8 类扰动)中平均成功率达 78.2%,说明该检查点的鲁棒性也有保障。若你的评测结果与官方数值偏差过大,建议优先检查dataset_stats_path是否指向正确的 libero_dataset_stats.json。

常见问题 FAQ

Q:多卡评测的结果和单卡一致吗?一致。分布式只是把 2000 次 rollout 分组并行,每个 trial 的输入输出不变,最终成功率汇总方式与单卡协议相同。

Q:卡数越多一定越快吗?接近线性加速,但受主机 CPU、仿真器初始化与存储读写影响,卡数过多时边际收益会下降。建议从 2~4 卡起步,观察实际加速比再决定。

Q:我只想快速验证流程,不想跑满 2000 次?可以先用更少的任务数试跑,确认多卡并行正常后再执行完整协议。

总结

  • 机器人评测慢的根源是 4 套件 × 40 任务 × 50 试验的庞大 rollout 量;
  • 加上MULTIRUN.num_gpus=<卡数>即可开启多卡分布式评测,这是本仓库加速的核心开关;
  • 配合nvidia-smi检查、CUDA_VISIBLE_DEVICES选卡与利用率监控,可以进一步榨干硬件性能。

按照本文步骤操作,你就能把 EasyWAM-Unified-Cosmos25 的完整 LIBERO 评测从"过夜任务"变成"几小时任务"。更多协议细节与检查点说明,见仓库文档 README.md。

【免费下载链接】EasyWAM-Unified-Cosmos25

项目地址:https://ai.gitcode.com/OpenMOSS/EasyWAM-Unified-Cosmos25
点击查看免费下载

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进