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-cleanup和youliangtan/so100_strawberry_grape。