
英伟达震撼发布GR00T N1,全球首个开放通用人形机器人模型,颠覆多模态操控,开启机器人智能新纪元 精华
近日,英伟达发布 NVIDIA Isaac GR00T N1。
在人工智能与机器人技术的交汇处,NVIDIA Isaac GR00T N1的诞生标志着人形机器人领域的一次重大突破。作为全球首个开放的通用人形机器人推理与技能基础模型,GR00T N1不仅能够处理包括语言和图像在内的多模态输入,还能在多样化的环境中执行复杂的操控任务。这一模型的训练基于庞大的人形机器人数据集,结合了真实捕捉数据、合成数据以及互联网规模的视频数据,使其具备了强大的适应性和可定制性。无论是研究人员还是专业开发者,GR00T N1都提供了一个强大的平台,以最小的数据量实现特定任务的模型微调,并最终部署到实际硬件中执行。
白皮书链接:https://d1qx31qr3h6wln.cloudfront.net/publications/GR00T_1_Whitepaper.pdf
项目链接:https://github.com/NVIDIA/Isaac-GR00T/?tab=readme-ov-file
网站链接:https://developer.nvidia.com/isaac/gr00t Huggingface
链接:https://huggingface.co/nvidia/GR00T-N1-2B
NVIDIA Isaac GR00T N1
NVIDIA Isaac GR00T N1 是世界上第一个用于通用人形机器人推理和技能的开放基础模型。该跨实体模型采用多模态输入(包括语言和图像)来在不同环境中执行操作任务。
GR00T N1 是在广泛的人形数据集上进行训练的,该数据集包括真实捕获的数据、使用 NVIDIA Isaac GR00T Blueprint 组件生成的合成数据以及互联网规模的视频数据。它可通过后期训练适应特定的实施例、任务和环境。
GR00T N1 的神经网络架构是视觉语言基础模型和扩散 Transformer 头的组合,可对连续动作进行去噪。以下是架构示意图:
以下是使用 GR00T N1 的一般步骤:
- 假设用户已经以(视频、状态、动作)三元组的形式收集了机器人演示的数据集。
- 用户首先将演示数据转换为 LeRobot 兼容的数据模式(更多信息见),该模式与上游Huggingface LeRobotgetting_started/LeRobot_compatible_data_schema.md兼容。
- 我们的 repo 提供了配置不同配置的示例,用于使用不同的机器人实施例进行训练。
- 我们的 repo 提供了方便的脚本,用于根据用户数据微调预先训练的 GR00T N1 模型并运行推理。
- 用户将连接Gr00tPolicy到机器人控制器以在目标硬件上执行操作。
目标受众
GR00T N1 适用于人形机器人研究人员和专业人士。此存储库提供以下工具:
- 利用预先训练的基础模型进行机器人控制
- 对小型自定义数据集进行微调
- 使用最少的数据使模型适应特定的机器人任务
- 部署模型进行推理
重点是通过微调实现机器人行为的定制。
先决条件
- 我们已经在 Ubuntu 20.04 和 22.04、GPU:H100、L40、RTX 4090 和 A6000 上测试了代码以进行微调,并且 Pythnotallow==3.10、CUDA 版本 12.4。
- 为了进行推理,我们在 Ubuntu 20.04 和 22.04 上进行了测试,GPU:RTX 4090 和 A6000
- 如果您尚未安装 CUDA 12.4,请按照此处的说明(https://docs.nvidia.com/cuda/cuda-installation-guide-linux/)进行安装。
- 请确保您的系统中安装了以下依赖项:ffmpeg,libsm6,libxext6
安装指南
克隆仓库:
创建新的 conda 环境并安装依赖项。我们建议使用 Python 3.10:
请注意,请确保您的 CUDA 版本为 12.4。否则,您可能无法正确配置 flash-attn 模块。
开始使用此 repo
我们在文件夹中提供了可访问的 Jupyter 笔记本和详细文档./getting_started。实用程序脚本可在文件夹中找到./scripts。
数据格式及加载
- 为了加载和处理数据,我们使用Huggingface LeRobot 数据(https://github.com/huggingface/lerobot),但具有更详细的元数据和注释模式(我们称之为“LeRobot 兼容数据模式”)。
- 此模式要求数据在特定的目录结构中格式化才能够加载。
- 这是此处存储的模式的示例:./demo_data/robot_sim.PickNPlace
- 数据组织指南可在getting_started/LeRobot_compatible_data_schema.md
- 一旦您的数据以这种格式组织起来,您就可以使用类加载数据LeRobotSingleDataset。
- getting_started/0_load_dataset.ipynb是一个关于如何加载数据并处理数据以便与 GR00T N1 模型交互的交互式教程。
- scripts/load_dataset.py是一个可执行脚本,内容与笔记本相同。
推理
- GR00T N1 模型托管在Huggingface(https://huggingface.co/nvidia/GR00T-N1-2B)上。
- 示例交叉实施数据集可在 demo_data/robot_sim.PickNPlace 获得。
- getting_started/1_gr00t_inference.ipynb 是一个用于构建推理管道的交互式 Jupyter 笔记本教程。
用户还可以使用提供的脚本运行推理服务。推理服务可以在服务器模式或客户端模式下运行。
在不同的终端上,运行客户端模式向服务器发送请求。
微调
用户可以运行下面的微调脚本,使用示例数据集对模型进行微调。教程可在 中找到getting_started/2_finetuning.ipynb。
然后运行微调脚本:
您还可以从我们的 huggingface sim 数据发布中下载示例数据集
建议的微调配置是将批量大小增加到最大,并进行 20k 步的训练。
硬件性能考虑因素
- 微调性能:我们使用 1 个 H100 节点或 L40 节点进行最佳微调。其他硬件配置(例如 A6000、RTX 4090)也可以使用,但可能需要更长时间才能收敛。确切的批次大小取决于硬件以及正在调整模型的哪个组件。
- 推理性能:对于实时推理,大多数现代 GPU 在处理单个样本时的表现都差不多。我们的基准测试显示 L40 和 RTX 4090 之间的推理速度差异很小。
对于新实施例的微调,请查看getting_started/3_new_embodiment_finetuning.ipynb。
评估
为了对模型进行离线评估,我们提供了一个脚本,该脚本可以在数据集上评估模型并将其绘制出来。
运行新训练的模型
运行离线评估脚本
然后,您将看到真实值与预测值动作的图表,以及动作的非规范 MSE。这将指示该策略在数据集上是否表现良好。
本文转自AI生成未来 ,作者:AI生成未来
原文链接:https://mp.weixin.qq.com/s/Ak3iOji0q9x0BdgDBB6P3Q
