机器人需要能够适应其传感器、环境和任务的策略,同时还要在机载计算硬件上运行。世界模型为学习物理交互提供了基础,但其体量往往使设备端部署面临较大挑战。NVIDIA Cosmos 3 Edge的推出正是为了解决这一问题。

Cosmos 3 Edge是Cosmos 3系列中的一款40亿参数全能模型(配备基于NVIDIA Nemotron的20亿参数推理器)。它与NVIDIA Cosmos 3 Nano和NVIDIA Cosmos 3 Super使用相同的物理世界数据进行预训练,具备相同的物体运动与交互基础认知,且体积足够精简,可在NVIDIA Jetson Thor上实现设备端运行。

完成本教程后,你将获得一个经过后训练的Cosmos 3 Edge操控策略,该策略可在Jetson Thor上运行,并在闭环仿真中进行评估。

你将学习如何:

对Cosmos 3 Edge进行后训练以预测机器人动作;

在Jetson Thor上部署所得策略;

在滚动时域控制循环中运行推理;

在闭环仿真中评估策略行为。

每个步骤均可从开源的cosmos-framework代码库中复现,发布的检查点也已在HuggingFace上提供。

世界基础模型与设备端部署

世界基础模型通过大规模多模态数据集进行预训练,这些数据集涵盖物体运动和物理交互的规律,例如物体如何下落、滑动以及对接触作出响应。Cosmos能够基于物理理解与预测能力原生生成动作。这种先验知识为机器人策略训练提供了有价值的起点,而无需策略从头学习所有物理关系。

然而,将这些模型部署到实体机器人上会引入两个实际约束:

设备内存:模型及其运行时状态必须适配机器人的可用内存;

控制延迟:完整的推理流水线必须足够快,以满足机器人所需的控制频率。

对Cosmos 3 Edge进行后训练正是为了应对上述约束。所得策略模型可适配Jetson Thor的内存,推理直接在机器人本地运行,无需卸载至数据中心GPU。

控制延迟方面,DROID动作策略可在机器人本地实时运行。在NVIDIA Jetson AGX Thor T5000上,以640×540分辨率、15 Hz运行时,每个动作块的生成时间约为1.53秒,而单个动作块覆盖约2.13秒的机器人运动。由于下一个动作块在当前动作块执行完毕前即已就绪,机械臂可持续运动,全程无需数据中心GPU参与。该策略通过生成动作块并在每次推理周期后重新规划,支持设备端连续流式推理,而非在每次观测后都重新规划。

在闭环RoboLab任务中,后训练策略达到22.9%的成功率。这些结果表明,一个40亿参数的世界基础模型完全可以作为实用的、实时的、设备端策略骨干。该模型可适配Jetson AGX Thor并完全在机器人本地运行。

数据集准备

本教程中的发布策略基于nvidia/Cosmos3-DROID数据集进行训练。该数据集包含76,000条成功的遥操作轨迹,覆盖86个任务和564个场景,总时长约350小时,采用Franka Panda机械臂和Robotiq夹爪采集。

数据集以640×360分辨率的LeRobotDataset v3.0格式打包,需经过以下三个阶段准备:

过滤空闲帧和非任务帧;

筛选成功示教用于训练;

训练时应用随机裁剪、缩放和颜色抖动。

hf download nvidia/Cosmos3-DROID --repo-type dataset --local-dir Cosmos3-DROID

将数据转换为LeRobot Dataset v3格式(包含逐帧相机视频、关节状态、夹爪状态、动作和任务指令)。

对于类DROID的Franka设置,主要修改的是数据集路径。若使用不同的机体,则需要自定义实验配置,以定义动作空间、维度、相机布局和归一化设置。

Cosmos 3支持多种机体,包括双臂Franka、UR、WidowX 250、LeRobot SO101等。完整机体列表请参阅Cosmos 3 Edge模型卡。

后训练前提条件

开始前,请确认具备以下条件:

最新版Cosmos框架;

经验证的训练硬件:配备NVIDIA GB200 Grace Blackwell超级芯片的NVIDIA DGX Station,或配备NVIDIA GB300 Grace Blackwell Ultra桌面超级芯片的设备;

支持的NVIDIA CUDA及容器版本:CUDA 13.0(cu130),NGC 26.06-py3;

Cosmos 3 Edge基础检查点访问权限;

Cosmos3-DROID数据集访问权限;

Hugging Face访问Token。

这是基础模型后训练,而非单GPU微调。验证运行使用64节点4× GB200,训练60,000次迭代,耗时约68小时(约17,400 GB200小时),请据此规划计算资源。

启动后训练

后训练高层次分为四个步骤:下载数据集、将基础检查点转换为分布式检查点(DCP)格式、应用数据筛选过滤器、启动训练。

# 下载Cosmos3-DROID数据集(成功分割)

hf download nvidia/Cosmos3-DROID --repo-type dataset --local-dir /path/to/Cosmos3-DROID

# 将基础检查点转换为DCP格式(一次性操作;在CPU上运行——重新打包权重,无需GPU计算)

python -m cosmos_framework.scripts.convert_model_to_dcp \

-o /path/to/Cosmos3-Edge-dcp --checkpoint-path Cosmos3-Edge

# 启动后训练

bash examples/launch_sft_action_policy_droid_nano.sh

配置Cosmos 3 Edge训练

在代码库中找到以下文件:

cosmos_framework/configs/base/experiment/action/posttrain_config/action_policy_droid_nano.py

该启动器注册了Cosmos 3 Nano的训练配方。若要训练Cosmos 3 Edge,启动前需进行以下三处修改:

将NANO_MODEL_CONFIG导入替换为EDGE_MODEL_CONFIG(来自configs/base/experiment/sft/models/edge_model_config.py);

将BASE_CHECKPOINT_PATH设置为转换步骤中得到的Cosmos 3 Edge DCP检查点;

将examples/launch_sft_action_policy_droid_nano.sh重命名为examples/launch_sft_action_policy_droid_edge.sh。

其他所有内容(包括数据集、动作空间、筛选过滤器和训练计划)保持不变。

# 启动后训练

bash examples/launch_sft_action_policy_droid_edge.sh

如需最新的端到端说明(包括检查点转换、环境配置和筛选过滤器设置),请参阅DROID后训练复现指南和模型卡,这些资源会随代码库同步更新。

在Jetson Thor上部署策略服务器

该策略通过WebSocket策略服务器提供服务,使用OpenPI协议——这是DROID策略生态系统中通用的协议。客户端发送观测字典,服务器返回动作块。对于Edge而言,服务器在Jetson Thor上原生运行。模型权重约为9 GB(BF16格式),可适配Thor的板载内存,因此策略服务器和控制客户端均在机器人本地运行,无需数据中心GPU介入。

在机器人上启动策略服务器:

export HF_TOKEN=<your_hf_token>

# Thor:启用eager模式运行;标准Triton轮子缺少sm_110a内核

export TORCHDYNAMO_DISABLE=1

python -m cosmos_framework.scripts.action_policy_server_robolab \

--checkpoint_path nvidia/Cosmos3-Edge-Policy-DROID \

--port 8000 \

--format-prompt-as-json True

# 首次启动将下载权重,需数分钟;完成后执行:

curl localhost:8000/healthz # -> OK

由于服务器在Thor上运行,host="localhost",请求不会离开机器人。设备端策略实时运行,这正是Cosmos Edge所实现的设备端推理能力。

运行推理

DROID策略是状态条件策略,即joint_position和gripper_position是真实的模型输入,而非样板代码。在没有机械臂的情况下,使用零值作为占位符;以下调用仅用于验证服务器能够返回格式正确的动作块。

import numpy as np

from PIL import Image

from openpi_client.websocket_client_policy import WebsocketClientPolicy

client = WebsocketClientPolicy(host="localhost", port=8000)

observation = {

"prompt": "put the marker in the basket",

"observation/wrist_image_left": np.asarray(Image.open("wrist.jpg")),

"observation/exterior_image_1_left": np.asarray(Image.open("left.jpg")),

"observation/exterior_image_2_left": np.asarray(Image.open("right.jpg")),

"observation/joint_position": np.zeros(7, dtype=np.float32), # 仅用于冒烟测试

"observation/gripper_position": np.float32(0.0), # 仅用于冒烟测试

}

result = client.infer(observation)

actions = result["action"] # [32, 8]:7个关节位置 + 夹爪,15 Hz

同样的调用可置于重新规划循环中。每个周期读取最新的相机数据以及机械臂实测的关节和夹爪位置(替换上述零值),执行动作块的前缀部分,然后重新请求:

def get_observation():

return {

"prompt": "put the marker in the basket",

"observation/wrist_image_left": read_camera("wrist"),

"observation/exterior_image_1_left": read_camera("left"),

"observation/exterior_image_2_left": read_camera("right"),

"observation/joint_position": robot.joint_positions(), # 真实值,7个浮点数

"observation/gripper_position": robot.gripper_position(),

}

while not task_done():

result = client.infer(get_observation())

execute_actions(result["action"][:16], hz=15) # 执行32个动作中的前16个,然后重新规划

只执行前缀部分并重新规划是标准做法:策略每隔几秒自我修正,由于是状态条件策略,每次重新规划都从机械臂的实际位置出发,而非依赖上一个动作块的预设位置。启动服务器时启用视频解码功能,可在动作旁边返回策略的预测展示,便于检查世界模型对所生成动作块的预测内容。

在仿真中评估策略

验证策略无需实体机器人。事实上,建议先在仿真中评估策略,再在实体机器人上直接评估,以避免意外行为对开发者或机器人造成影响。RoboLab——RoboLab排行榜背后的Isaac Lab-Arena基准——是开放的,其客户端连接到相同的策略服务器。它在物理引擎中执行每个动作块,并将渲染后的观测流传回,形成覆盖120个语言条件操控任务的真正闭环。

# 克隆RoboLab并获取场景资产

git clone https://github.com/NVlabs/RoboLab.git && cd RoboLab

git lfs pull

# 构建仿真镜像并针对策略服务器运行单个任务

./docker/build_docker.sh latest

./docker/run_docker.sh latest

python policies/cosmos3/run.py --task BananaInBowlTask

# 或在多个环境中无头运行以统计成功率

python policies/cosmos3/run.py --task BananaInBowlTask --num-envs 10 --headless

替换--task参数可测试120个任务中的任意一个,从而更全面地了解策略行为。每次运行都会生成视口和机器人相机视频以及成功日志,便于同时检查结果和产生该结果的轨迹。

在闭环RoboLab评估中,后训练的Edge策略在任务套件中达到22.9%的成功率。该结果是以远低于更大规模Cosmos 3变体的推理计算量实现的(Nano达到36.8%),这正是Edge所做的权衡取舍:以具备竞争力的成功率,实现实时、完全在机器人本地的自主运行。

注意:NVIDIA Isaac Sim 5.x需要NVIDIA RTX Server Driver 580或更高版本。构建前请在RoboLab和Isaac Sim文档中确认所支持的驱动程序版本。

后训练的更多应用

提升机器人控制的后训练技术同样适用于其他能力,例如为机器人训练生成合成数据。开发者可以创建专门的世界模型,生成针对其环境和任务定制的高质量合成数据,适用于室内和室外机器人训练。

例如,Aigen对Cosmos进行了后训练,以生成多样化的合成作物和杂草变体,使自动除草系统仅凭1%的真实世界数据即可实现出色性能。

更广泛地看,Cosmos的开放权重与框架(采用OpenMDW1.1许可证)使后训练成为一种强大、灵活且便捷的方式,可用于创建专用的、高性能的、精准的物理AI自定义模型。

后续资源

下载Cosmos Edge策略权重和数据

参与8月20日Cosmos Labs直播

探索Cosmos Edge在Jetson上的应用

下载Cosmos 3检查点

在GitHub上获取代码

体验Cosmos 3 Nano Reasoner和Cosmos 3 Nano

Q&A

Q1:Cosmos 3 Edge和Cosmos 3 Nano的主要区别是什么?

A:Cosmos 3 Edge是专为设备端部署设计的40亿参数模型,可直接在NVIDIA Jetson Thor上运行,无需数据中心GPU。Cosmos 3 Nano参数规模更大,在闭环RoboLab评估中成功率为36.8%,而Cosmos 3 Edge为22.9%。Edge的核心优势在于体积小、延迟低,能在机器人本地实时运行,是对计算资源和成功率之间的主动权衡。

Q2:Cosmos 3 Edge后训练需要哪些硬件和计算资源?

A:后训练需要配备NVIDIA GB200 Grace Blackwell超级芯片的DGX Station或GB300 Grace Blackwell Ultra桌面超级芯片,支持CUDA 13.0环境。验证运行使用64节点4× GB200,训练60,000次迭代,耗时约68小时,总计约17,400 GB200小时。这是基础模型后训练,计算量较大,不适合单GPU微调场景。

Q3:在没有实体机器人的情况下,如何验证Cosmos 3 Edge策略的效果?

A:可以使用RoboLab进行闭环仿真评估。RoboLab是基于Isaac Lab-Arena的开放基准,支持120个语言条件操控任务。通过克隆RoboLab仓库、构建仿真Docker镜像,连接相同的WebSocket策略服务器,即可在物理引擎中执行动作块并获取渲染观测,每次运行均会生成视频和成功日志,建议在上实体机器人前先完成仿真验证。

NVIDIA