NVIDIA Isaac GR00T N1 中文速览

83 阅读3分钟

1. 产品简介

image.png

NVIDIA Isaac GR00T N1 是全球首个面向类人机器人的开源通用基础模型,可处理语言与图像等多模态输入,并在不同环境中完成抓取、搬运等操作任务。
模型由视觉-语言大模型(VLM)骨干与扩散式动作预测头组成,能“去噪”生成连续动作序列。


2. 训练数据

  • 真实机器人数据
  • 模拟数据(源自 Isaac GR00T Blueprint,可生成神经轨迹)
  • 互联网级视频数据

这些数据共同支持跨形态(cross-embodiment)学习,并允许用户在后续针对特定机器人或任务做增量微调。


3. 快速使用流程

步骤说明
1️⃣ 数据准备收集 (video, state, action) 三元组演示并转换成 LeRobot 兼容格式
2️⃣ 配置环境根据机器人形态选择示例配置文件
3️⃣ 微调/推理使用脚本对 GR00T N1 进行微调或直接推理
4️⃣ 部署Gr00tPolicy 接入机器人控制器执行动作

4. 目标人群

  • 人形机器人研究人员
  • 工程师 / 开发者需快速自定义机器人行为

5. 环境与依赖

场景系统GPUPythonCUDA
微调Ubuntu 20.04/22.04H100、L40、RTX 4090、A60003.1012.4
推理Ubuntu 20.04/22.04RTX 3090、RTX 4090、A60003.1012.4

其它依赖:ffmpeg libsm6 libxext6


6. 安装步骤

git clone https://github.com/NVIDIA/Isaac-GR00T
cd Isaac-GR00T

# 创建 Conda 环境(确保 CUDA 12.4 已装好)
conda create -n gr00t python=3.10
conda activate gr00t

pip install --upgrade setuptools
pip install -e .

# flash-attn 对 CUDA 版本敏感
pip install --no-build-isolation flash-attn==2.7.1.post4

7. 上手指南(getting_started)

7.1 数据格式与加载

from gr00t.data.dataset import LeRobotSingleDataset
from gr00t.data.embodiment_tags import EmbodimentTag
from gr00t.experiment.data_config import DATA_CONFIG_MAP

data_config   = DATA_CONFIG_MAP["gr1_arms_only"]
dataset = LeRobotSingleDataset(
    dataset_path="demo_data/robot_sim.PickNPlace",
    modality_configs=data_config.modality_config(),
    embodiment_tag=EmbodimentTag.GR1,
)
print(dataset[5])           # 访问样本

交互教程:getting_started/0_load_dataset.ipynb

7.2 推理

from gr00t.model.policy import Gr00tPolicy
policy = Gr00tPolicy(
    model_path="nvidia/GR00T-N1-2B",
    modality_config=...,
    embodiment_tag=EmbodimentTag.GR1,
    device="cuda"           # 建议 GPU
)
action = policy.get_action(dataset[0])

或启动服务:

python scripts/inference_service.py --model_path nvidia/GR00T-N1-2B --server
python scripts/inference_service.py --client      # 另一个终端发送请求

7.3 微调

# 查看可用参数
python scripts/gr00t_finetune.py --help

# 单 GPU 微调
python scripts/gr00t_finetune.py --dataset-path ./demo_data/robot_sim.PickNPlace --num-gpus 1

# LoRA 高效微调示例
python scripts/gr00t_finetune.py \
  --dataset-path ./demo_data/robot_sim.PickNPlace \
  --num-gpus 1 --lora_rank 64 --lora_alpha 128 --batch-size 32

建议:尽量增大 batch size,并训练约 20 k 步

7.4 评估

python scripts/eval_policy.py --plot --model_path nvidia/GR00T-N1-2B
# 或评估新模型
python scripts/eval_policy.py --plot \
  --dataset_path <DATASET_PATH> --embodiment_tag new_embodiment \
  --data_config <DATA_CONFIG>

脚本会生成「真实动作 vs 预测动作」图及未归一化 MSE-分数。


8. 性能提示

  • 微调:1× H100 或 L40 最快;A6000/RTX 4090 也可,但收敛更慢
  • LoRA 微调:推荐 2× A6000 或 4090
  • 推理:单样本实时推理,L40 与 4090 几乎无差别
  • 动作头:4 步去噪已足够,整体推理 ≈ 62 ms(L40 单卡)

9. 常见问题

问题解答
CUDA ARM (Jetson) 能跑吗?可以,参考 jetson-containers 项目
自有数据如何微调?先按 LeRobot 格式整理,再用 gr00t_finetune.py
Modality Config / Embodiment Tag / Transform Config 是什么?详见 getting_started/4_deeper_understanding.md
Gr00tPolicy 推理速度?L40 单卡:VLM 22.9 ms + 动作头 39.6 ms ≈ 62.5 ms

以上即为 GR00T N1 的中文快速指南。希望能帮助你在本地顺利安装、微调并部署该人形机器人基础模型。若有其它疑问,欢迎随时交流!