接上文
第二部分 GR00T N1.5
2.1 整体概览:GR00T N1.5相比N1的改进
- GR00T N1.5 使用 NVIDIA Eagle VLM 对文本和视觉观察进行编码
- 然后,视觉语言嵌入通过 VLM 生成,再由 DiT 进行交叉注意力处理,DiT 处理状态和加噪的动作
总之,与 N1 相比,主要的不同之处在于以下几点:
- 在预训练和微调期间,视觉语言模型(VLM)都是固定的
- 连接视觉编码器与语言模型(LLM)的适配器多层感知机(MLP)被简化,并在输入到 LLM 的视觉和文本token嵌入中都添加了层归一化
2.1.1 模型和数据改进:预训练和微调期间VLM被冻结,且VLM升级为Eagle 2.5
- 冻结的视觉语言模型(Frozen VLM) 在预训练和微调过程中,视觉语言模型保持不变,从而保留了语言理解能力并提高了泛化能力
增强的视觉语言模型定位(Enhanced VLM Grounding) 更新至 Eagle 2.5 版本,具备更出色的定位能力和物理理解能力,在 GR-1 定位任务中实现了 40.4 的交并比(IoU)——相比之下,Qwen2.5VL 为 35.5
- 简化的适配器(Simplified Adapter) 在视觉编码器和语言模型之间简化了多层感知机(MLP)连接,并增加了层归一化
FLARE集成(FLARE Integration),下文2.3节会详解
除了 N1 所使用的流匹配损失外,对于 N1.5,作者还添加了未来潜在表示对齐(参见 FLARE 项目)FLARE 并非生成性地对未来的帧进行建模,而是将模型与目标未来的嵌入进行对齐
作者发现添加 FLARE 不仅提高了策略性能,还解锁了从人类视频中学习的能力![]()
DreamGen集成(DreamGen Integration),下文2.3节会详解 引入通过 DreamGen 生成的合成神经轨迹,从而能够泛化到超出遥操作数据的新行为和任务
如下图所示,
1 首先在遥操作机器人轨迹上对视频世界模型进行微调。
2 给定初始帧和语言指令后,模型会生成展现预期行为的视频序列。
3 由于这些视频缺少动作标注,作者通过潜在动作模型或逆向动力学模型推断伪动作,形成称之为神经轨迹的序列。
2.1.2 性能改进
- 语言指令遵循:在 GR-1 操作任务中,语言指令遵循能力显著提升,从 N1 版本的 46.6% 提升至 93.3%
- 数据效率:在低数据量场景(零样本和少样本情况)下表现更优
- 更好的新物体泛化能力
- 新增的具身化头部: 通过 EmbodimentTag.OXE_DROID 头部支持单臂机器人末端执行器(EEF)控制空间 通过 EmbodimentTag.AGIBOT_GENIE1 头部支持配备夹爪的人形机器人,从关节空间控制扩展到更广泛的机器人兼容性
这些改进使得 GR00T N1.5 在需要强大语言理解能力、少样本适应性和对新物体及环境泛化能力的应用中表现尤为出色
2.2(选读) FLARE:基于隐式世界建模的机器人学习
FLARE 的核心是从动作去噪网络的隐藏状态中预测机器人未来观测的紧凑表示。FLARE 主要包括两个关键阶段
- 首先,预训练一个紧凑且具备动作感知能力的观测嵌入模型。虽然通用嵌入模型也可用于目标未来嵌入,但作者发现,针对下游控制任务显式优化的动作感知嵌入,因其紧凑性和任务对齐性,能带来更优的性能和效率
- 接下来,通过引入极少量的附加 token,与diffusion transformer协同训练,这些 token 被优化用于预测未来观测嵌入 该方法对现有 VLA 架构 [7,8] 只需极小的修改,因此具有广泛适用性且易于部署
最后,FLARE还支持从无动作标签的数据源中学习,例如人类视频
- 通过利用GoPro采集的人类第一视角演示视频——使用头戴式GoPro摄像机采集的以自我视角为主的人体视频数据集
- 并且每个物体仅需一条真实机器人演示,FLARE成功学习了新的抓取策略,凸显了其在利用非结构化数据源进行大规模机器人学习方面的潜力
2.2.1 研究背景:包含流匹配损失函数
在本研究中,继π0 和GR00T N1 [7,8] 之后,作者采用flow-matching [9] 作为从人类示范中拟合动作的学习目标
表示机器人的观测,其包括图像输入(可能来自多个视角)和语言指令
为机器人的本体状态
为从专家示范中提取的动作片段- 且定义
为观测的视觉-语言嵌入
,通过最小化以下流匹配损失
当然,也可以写成是:
2.2.2 通过「未来潜在表示对齐」进行潜在世界建模
- 通过状态编码器编码的当前本体感受状态

- 加噪的动作片段
——由动作编码器编码 - 以及一组 M 个可学习的未来token
FLARE的方法类似于表示对齐(REPA)[11]在提升文本到图像扩散模型中的应用,但由于潜在世界建模的设定,存在几个重要的不同之处
- 首先,将DiT策略与未来嵌入对齐,而不是当前观测的嵌入
- 其次,FLARE的架构引入了可学习的未来token,使得流匹配和对齐在DiT中沿着各自独立的路径进行,并通过自注意力机制相互作用通过这种方式,鼓励DiT模块在保持其通过动作流匹配进行动作预测能力的同时,能够在内部推理未来的潜在状态
令B表示批量维度,D表示嵌入维度,可以将潜在对齐目标写为
总体损失函数为
通过实证研究,作者发现λ = 0.2 在他们的实验中表现最佳
2.2.3 动作感知的未来嵌入模型
虽然FLARE的未来潜在对齐框架能够广泛兼容多种嵌入模型,但作者发现引入动作感知的未来嵌入能够在性能和效率上带来进一步提升
为此,作者提出了一种紧凑的视觉-语言嵌入方法,用于描述机器人当前的观测,并针对策略学习进行了显式优化。该设计目标有两个方面:一是实现嵌入的紧凑性,二是确保对动作的感知能力
- 具体来说,作者利用SigLIP-2 [12] 中的视觉和文本编码器,对机器人的图像观测和文本指令进行编码。编码后的tokens 通过四层自注意力transformer 模块进行融合,以捕捉跨模态依赖关系
- 随后,应用Q-former [13] 模块,将融合后的序列压缩为M = 32 个可学习查询token,从而生成一种紧凑、固定大小的表征,自然地泛化到多摄像头输入 为了确保动作感知性,作者将视觉语言嵌入端到端地与常规动作流匹配目标一起训练,通过附加8DiT 模块来预测机器人的动作 通过这种方式,所有与任务相关的信息都能被保证被捕获在潜在token 嵌入中
- 为了对嵌入模型进行预训练,作者利用了多样化的跨形态机器人数据集,包括来自GR00T N1 [8]的模拟和现实世界人形桌面操作数据,以及OpenX-Embodiment [14]的另外七个数据集,总计约2,000小时的机器人数据
在预训练完成后,作者在下游领域和任务中,将下游策略与潜在世界模型及动作预测目标联合进行后训练
- 具体而言,在后训练阶段,使用预训练的嵌入模型对下游策略的编码器进行初始化,同时也采用了预训练的嵌入模型用于定义未来潜在表示的预测目标
- 为缓解预训练与下游视觉观测之间的分布偏移,作者并未将嵌入模型完全冻结,而是采用了相对于策略编码器的指数滑动平均(EMA)更新策略。该方法使嵌入模型能够在策略微调过程中,随着视觉和语言编码器的演化逐步适应。实验证明,EMA的更新率为0.995时效果最佳
介绍一下基于Q-former的紧凑型视觉-语言嵌入模块的架构细节具体来说,作者采用siglip2-large-patch16-256作为视觉和语言编码器的主干网络 SigLIP2视觉编码器将分辨率为256×256的机器人图像处理为256个patch token 而语言编码器则将填充后的机器人指令编码为32个语言token 这256个视觉token与32个语言token拼接后,通过四层自注意力Transformer,生成288个融合的视觉-语言token
为了获得紧凑的表示,采用Q-former架构[13],其中32个可学习的查询token(随机初始化)通过交替的自注意力和交叉注意力层与288个融合token进行交互where 32 learnable query tokens—randomly initialized—interact with the 288 fused tokens through interleaved self-attention and cross-attentionlayers 最终输出32个压缩的视觉-语言token
2.3(选读) DreamGen:通过视频世界模型解锁机器人学习中的泛化能力
如下图所示
- 在目标机器人上对视频世界模型进行微调,以捕捉特定实体的动力学和运动学特征
- 以初始帧和语言指令对的方式为模型提供提示,从而生成大量机器人视频,这些视频既包含微调过程中学到的熟悉行为,也涵盖在未见场景下的新颖行为
- 随后,利用潜在动作模型[13]或逆动力学模型(IDM)[14]提取伪动作
- 最后,将得到的视频-动作序列对(称为神经轨迹)用于下游视觉运动策略的训练
此前的研究主要关注将视频世界模型用作实时规划器[15,16,17,18,19],而DREAMGEN则将其视为合成数据生成器,充分发挥其在物理推理、自然运动和语言基础等方面的强先验能力
在接下来的小节中,将详细介绍DREAMGEN的4个不同步骤(如图2所示),即如何创建和利用神经轨迹来训练视觉-运动机器人策略
2.3.1 步骤1:视频世界模型微调
- 为了减缓模型对先前互联网视频知识的遗忘,作者在不同的视频世界模型微调中默认采用低秩适应(LoRA)[21] 在微调这些模型时,主要关注两个指标:指令跟随性和物理规律跟随性,以判断视频世界模型是否已最佳适应目标机器人领域(详细内容见原论文的第4节)
- 在大多数后续机器人实验中,作者采用WAN2.1 [9]作为基础视频世界模型 当训练数据集中包含多个视角(如RoboCasa [20]和DROID [22])时,作者将这些视角拼接为一个2×2的网格(其中一个网格为黑色像素),并对视频世界模型进行微调 且还观察到,每个视频世界模型与微调数据对之间所需的最佳微调量是不同的
2.3.2 步骤2:视频世界模型推演
在对视频世界模型在目标机器人实体上进行微调后,作者利用不同的初始帧和语言指令生成合成机器人视频
- 对于仿真实验,从模拟器中收集新的初始帧,并针对每个任务随机化目标物体或环境的位置
- 对于现实世界实验,手动拍摄新的初始帧,同时随机化目标物体的位置
- 对于环境泛化实验,我们还会拍摄新环境的初始帧,但仅使用在单一环境中收集的数据来训练视频世界模型(相关图片见附录B)
- 最后,在行为泛化实验中,作者手动设计新的行为提示,并在原论文的第4.3节视频基准中包含所有候选项
2.3.3 步骤3:伪动作标注
- IDM 动作
- 潜在动作对于潜在动作,作者采用了LAPA潜在动作模型[13],该模型具有transformer编码器-解码器架构,并在多样化的机器人和人类视频上进行训练。潜在动作模型通过VQ-VAE目标进行训练,使得潜在动作能够捕捉视频中两个帧之间的视觉变化信息 为了从生成的视频中获取潜在动作,作者将潜在动作模型以轨迹的当前帧和未来帧(向前1秒)为条件进行推理 且采用与GR00T N1 [5]相同的预量化连续嵌入作为潜在动作。用于训练潜在动作模型的具体数据混合如表3所示。潜在动作的一个优势在于,训练潜在动作模型时不需要目标机器人具身的真实动作标签
2.3.4 步骤4:基于神经轨迹的策略训练
由于神经轨迹不包含状态信息,作者将状态信息设为零值
- 更具体地说,给定图像观测
和任务指令
,训练策略生成,该输出可以是潜在动作,也可以是上一小节中的IDM 标注动作 - 由于神经轨迹与底层机器人策略架构无关,展示了DREAMGEN 在为三种不同视觉运动策略模型生成合成训练数据方面的有效性,分别是Diffusion Policy [24]、π0 [2] 和GR00T N1 [5]
且作者提出了两种基于神经轨迹的训练方案:
- 一种是与真实世界轨迹联合训练
- 另一种是仅使用带有IDM动作标签的神经轨迹进行训练
在神经轨迹与真实轨迹联合训练时,采用1:1的采样比例
对于GR00T N1,通过使用独立的动作编码器和解码器,将这两类轨迹视为不同的体现
在行为和环境泛化实验中,仅使用神经轨迹进行策略训练
2.4 训练细节
作者在 1000 个 H100 GPU 上对 GR00T N1.5 进行了 25 万步的训练,全局批处理大小为 16384。与 N1 一样,且使用了带有余弦学习率计划和 0.05 预热比例的 AdamW 优化器
- 在预训练和后训练阶段,都使用了 0.2 的 FLARE 损失系数
预训练混合数据集包括内部的 GR-1 数据、OpenXE、模拟的 GR-1(又名 DexMG)、来自 DreamGen 的神经轨迹以及 AgiBot-Beta
第三部分 使用GR00TN1.5的一般流程
3.1 使用流程、先决条件、安装、数据格式与加载
3.1.1 使用GR00TN1.5的一般流程
以下是使用GR00TN1.5的一般流程
- 假设用户已经收集了一组以(视频、状态、动作)三元组形式的机器人演示数据三元组
- 用户首先需要将演示数据转换为LeRobot兼容的数据模式『详细信息见getting_started/LeRobot_compatible_data_schema.md』,该模式与上游Huggingface兼容LeRobot
- 代码库提供了不同配置的示例,用于在不同机器人形态下进行训练
- 代码库提供了便捷的脚本,用于在用户数据上微调预训练的GR00TN1.5模型,且支持推理运行
- 用户将把Gr00t策略连接到机器人控制器,以便在目标硬件上执行动作
3.1.2 使用上的先决条件
以下是使用上的先决条件
已在 Ubuntu 20.04 和 22.04 系统上,以及 H100、L40、RTX4090 和 A6000 GPU 上对微调代码进行了测试。以及Python==3.10,CUDA版本12.4
在推理测试中,已在Ubuntu 20.04和22.04,GPU: RTX3090、RTX4090和A6000上进行了测试
如果尚未安装CUDA 12.4,请按照此处的说明进行安装
如果尚未安装tensorrt,请按照此处的说明进行安装
请确保系统已安装以下依赖项:ffmpeg、libsm6、libxext6
3.1.3 安装指南
克隆该仓库:
git clone https://github.com/NVIDIA/Isaac-GR00T
cd Isaac-GR00T创建一个新的conda环境并安装依赖项。推荐使用Python 3.10『请注意,请确保您的CUDA版本为12.4。否则,可能会在正确配置flash-attn模块时遇到困难』:
conda create -n gr00t python=3.10
conda activate gr00t
pip install --upgrade setuptools
pip install -e .[base]
pip install --no-build-isolation flash-attn==2.7.1.post4 3.1.4 数据格式与加载
- 为了加载和处理数据,该库使用了 Huggingface LeRobot 数据,但采用了更为详细的模态和注释方案——称之为“LeRobot 兼容数据模式”一个 LeRobot 数据集的示例存储在此:./demo_data/robot_sim.PickNPlace.(包含额外的modality.json 文件) 关于数据集格式的详细说明可参见:getting_started/LeRobot_compatible_data_schema.md 通过Embodiment Tag系统支持多种形态
一旦数据按照此格式组织好,就可以使用LeRobotSingleDataset类加载数据
from gr00t.data.dataset import LeRobotSingleDataset
from gr00t.data.embodiment_tags import EmbodimentTag
from gr00t.data.dataset import ModalityConfig
from gr00t.experiment.data_config import DATA_CONFIG_MAP
# get the data config data_config = DATA_CONFIG_MAP["fourier_gr1_arms_only"]
# get the modality configs and transforms modality_config = data_config.modality_config() transforms = data_config.transform()
# This is a LeRobotSingleDataset object that loads the data from the given dataset path. dataset = LeRobotSingleDataset( dataset_path="demo_data/robot_sim.PickNPlace", modality_configs=modality_config, transforms=None, # we can choose to not apply any transforms embodiment_tag=EmbodimentTag.GR1, # the embodiment to use )
# This is an example of how to access the data. dataset[5]- getting_started/0_load_dataset.ipynb是一个关于如何加载数据并对其进行处理的交互式教程。与GR00TN1.5模型进行接口对接
- scripts/load_dataset.py 是一个可执行脚本,内容与笔记本相同
可尝试运行该脚本以加载数据集
python scripts/load_dataset.py --dataset-path ./demo_data/robot_sim.PickNPlace3.2 推理
- GR00TN1.5模型托管在Huggingface上
- 示例跨体数据集可在 demo_data/robot_sim.PickNPlace 获取
课程咨询可找苏苏老师VX:julyedukefu008或七月其他老师
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.