NVIDIA Isaac GR00T N1.5:LeRobot SO-101 手臂的后训练

NVIDIA 宣布推出 Isaac GR00T N1.5,这是 GR00T N1 基础模型的首次重大更新。该跨形体模型允许开发者处理多模态输入——包括语言和图像——以在多种环境中执行操作任务,并且能够针对特定的机器人硬件、任务和环境进行后训练。

通过 EmbodimentTag 实现跨形体适配

Isaac GR00T N1.5 使用 EmbodimentTag 系统,实现跨不同机器人平台的无缝定制。该系统允许模型适配原本未预训练的硬件,例如经济实惠的开源 LeRobot SO-101 手臂。通过将机器人指定为 new_embodiment,开发者可以微调基础模型的推理和操作能力,以匹配其特定的硬件配置。

LeRobot SO-101 的后训练工作流

将 GR00T N1.5 适配到 SO-101 手臂需要一个从数据集准备到实际部署的结构化流水线。

数据集准备与兼容性

微调需要兼容的数据集,例如 so101-table-cleanup 数据集。要使数据集“GR00T 兼容”,开发者必须配置 modality.json 文件,提供关于状态和动作模态的必要信息。单摄像头设置使用特定的模态配置,而双摄像头设置则需要不同的配置文件。

微调过程

模型使用 scripts/gr00t_finetune.py 脚本进行微调。训练的关键技术考虑包括:

  • VRAM 要求:默认设置大约需要 25GB 的显存。显存较低的用户可以使用 --no-tune_diffusion_model 标志来降低内存占用。
  • 训练参数:示例配置包括使用单 GPU、设置 max-steps(例如 10,000)以及指定 data-config(例如 so100_dualcam)。

评估与部署

在实际部署之前,使用 scripts/eval_policy.py 在开环环境中评估策略。验证通过后,模型通过 scripts/inference_service.py 部署为推理服务器,然后通过客户端脚本与实际机器人手臂通信。这样机器人即可根据语言指令执行任务,例如“抓取笔并放入笔筒”。

社区见解与技术优化

发布后,社区成员和 NVIDIA 作者指出了多种提升模型性能的优化策略:

  • 降低运动抖动:为了解决抖动问题,NVIDIA 建议移除 --no-tune_diffusion_model 标志,以确保整个专家头部被调优,并通过 data_config.py 增加动作时域。社区用户还推荐将去噪步数提升至 16,并将动作时域设为 16,以应对复杂任务。
  • 数据集版本:当前实现主要支持 LeRobot 数据集 v2。使用 v3 数据集的用户可能需要将其转换为 v2,或使用已集成 GR00T N1.5 并支持 v3 的 LeRobot 仓库。
  • 泛化能力:部分用户反馈,如果训练过度,模型可能会忽略文本提示,始终执行数据集中的单一动作,这表明需要平衡 max-steps 以避免过拟合。

“我建议所有在处理复杂任务的用户,至少使用 16 步的去噪,并设置类似 16 的动作时域。这是我唯一一次获得良好结果的设置。”

可用资源

  • 模型nvidia/GR00T-N1.5-3B 模型可在 Hugging Face 上获取。
  • 代码:微调脚本和示例数据集托管在 Isaac-GR00T GitHub 仓库
  • 数据集:示例数据集包括 youliangtan/so101-table-cleanupyouliangtan/so100_strawberry_grape

Sources