24年5月来自UC Berkeley、Stanford、CMU和Deepmind的论文“Octo: An Open-Source Generalist Robot Policy”。
在各种机器人数据集上预训练的大策略有可能改变机器人学习:这种通用机器人策略无需从头开始训练新策略,只需使用少量域内数据即可进行微调,但具有广泛的泛化能力。然而,为了广泛应用于各种机器人学习场景、环境和任务,这些策略需要处理各种传感器和动作空间,适应各种常用的机器人平台,并轻松高效地微调到新域。这项工作旨在为开发开源、广泛适用的通才机器人操作策略奠定基础。作为第一步,引入 Octo,一种基于大型 Transformer 的策略,在 Open X-Embodiment 数据集(迄今为止最大的机器人操作数据集)上的 800k 条轨迹上进行训练。它可以通过语言命令或目标图像进行指示,并且可以在标准消费级 GPU 上在几个小时内通过新的感官输入和动作空间有效地微调到机器人设置。在 9 个机器人平台上进行的实验中,Octo 可以作为一种多功能的策略初始化,可以有效地微调以适应新的观察和行动空间。
机器人学习的常用方法,是针对特定机器人和手头任务收集的数据集训练策略。以这种方式从头开始学习需要为每个任务进行大量的数据收集工作,并且生成的策略通常仅表现出狭窄的泛化能力。原则上,从其他机器人和任务中收集的经验提供了一种可能的解决方案,将模型暴露于各种机器人控制问题,这可能会提高下游任务的泛化能力和性能。然而,即使通用(general purpose)模型在自然语言 [68, 88])和计算机视觉 [76, 44] 中变得无处不在,构建可以控制许多机器人执行许多任务的类似“通用机器人模型”也已证明具有挑战性。在机器人技术中训练统一的控制策略提出了独特的挑战,需要处理不同的机器人实施例、传感器设置、动作空间、任务规范、环境和计算预算。
朝着这个方向,一些研究提出了机器人基础模型,这些模型直接将机器人观察结果映射到动作,并为新领域和机器人提供零样本或少样本泛化。将这些模型称为“通才(generalist)机器人策略”(GRP),强调它们能够在任务、环境和机器人系统中执行低级视觉运动控制 [75、9、23、103、10、81、1、91、35、94、45]。例如,GNM 模型 [80] 适用于不同的机器人导航场景,RoboCat 模型 [9] 处理目标条件任务的不同机器人实施例,RT-X 模型 [67] 适用于五种机器人实施例执行语言条件操作。虽然这些模型代表了迈向真正的“通用机器人模型”的重要一步,但它们在多个重要方面受到限制:它们通常将下游用户限制在一组预定义且通常具有限制性的输入观察中,例如单个摄像机流;它们缺乏对新领域进行有效微调的支持;重要的是,这些模型中最大的模型不向公众开放。
本文设计了一个系统,用于预训练通才机器人策略,使其更适合下游机器人应用中的接口多样性。模型的核心是一个Transformer架构,它将任意输入tokens(根据观察和任务创建)映射到输出tokens(然后解码为动作),这些tokens可以在多样化的机器人和任务数据集上进行训练。无需额外训练,此策略可以接受不同的摄像头配置(例如,工作区或腕式摄像头),可以控制不同的机器人,并且可以通过语言命令或目标图像进行引导 - 只需更改输入到模型中的tokens即可。最重要的是,添加适当的适配器并使用小型目标域数据集和可访问的计算预算,进行微调,该模型可以适应具有新感官输入、动作空间或形态的新机器人设置。
Octo 模型,开源通才机器人策略,可以通过微调适应新的机器人和任务(包括新的感官输入和动作空间)。Octo 模型的设计强调灵活性和规模:它支持各种常用的机器人、传感器配置和动作,同时提供可在大量数据上进行训练的通用且可扩展的配方。它还支持自然语言指令、目标图像、观察历史和通过扩散解码进行的多模态分块动作预测 [17]。此外,Octo 可以高效地微调新的机器人设置,包括具有不同动作空间和不同相机和本体感受信息组合的机器人。选择这种设计是为了使 Octo 成为一种灵活且广泛适用的通用机器人策略,可用于各种下游机器人应用和研究项目。
如图所示Octo 模型架构。左图:Octo 分别使用预训练语言模型和轻量级 CNN 对任务描述(绿色)和输入观察(蓝色)进行token化。上图:Transformer 主干处理任务和观察tokens序列并生成读数的 tokens(紫色),这些tokens会传递到输出头以产生动作。下图:Transformer 的逐块注意结构允许在微调期间添加或删除输入和输出:例如,可以添加新的观察(蓝色,虚线)或动作空间(紫色,虚线),而无需修改任何预训练参数。
使用来自 Open X-Embodiment 数据集 [67] 的 25 个数据集混合数据集对 Octo 进行训练,Open X-Embodiment 数据集是一个多样化的机器人学习数据集集合。训练混合数据集包括来自多个机器人实例和场景的各种任务演示数据。这些数据集不仅在机器人类型方面是异构的,而且在传感器(例如,包括或不包括腕式摄像头)和标签(例如,包括或不包括语言指令)方面也是异构的。
如图所示训练数据组合:这些数据集具有图像观察、末端执行器动作并表现出不同的行为。饼图直观地显示了每个数据集对每个训练批次的平均贡献分数。数据集权重由每个数据集中的样本数量决定,并进行小幅修改以平衡数据集大小和多样性。
为了创建训练混合数据集 D,首先删除所有不包含图像流的 Open-X 数据集以及不使用增量末端执行器控制的数据集,整理数据。还删除了重复性过高、图像分辨率低或包含过于小众任务的数据集。对于剩余的数据集,根据任务和环境将它们粗略地分为“更多样化”和“更少样化”数据集,然后在训练期间将更多样化数据集的权重加倍。还降低一些具有许多重复情节的数据集权重,避免主导混合。最后,对任何缺失的相机通道进行零填充,并对齐数据集之间的夹持器动作空间,使得夹持器命令 +1 表示“夹持器已打开”,0 表示“夹持器已关闭”。虽然最终的训练混合效果很好,但未来应该对数据混合质量进行更彻底的分析,以便对一般机器人策略进行预训练。
使用条件扩散解码头来预测连续的多模态动作分布 [34, 17]。重要的是,每个动作预测只执行一次 Transformer 主干网络的前向传递,之后多步去噪过程完全在小扩散头内进行。这种策略参数化在零样本和微调评估中都优于使用 MSE 动作头或离散化动作分布 [10] 训练的策略。为了生成动作,采样高斯噪声向量 xK ∼ N (0, I),并使用学习到的去噪网络 εθ(xk, e, k) 应用 K 步去噪,该网络取决于上一个去噪步骤的输出 xk、步骤索引 k 和 Transformer 动作读数的输出嵌入 e :
使用 [34] 中提出的标准 DDPM 目标来训练扩散头,其中在数据集动作中添加高斯噪声并训练去噪网络 εθ(xk,e,k) 以重建原始动作。
在微调过程中使用相同的扩散训练目标并更新整个模型,这种方法比冻结预训练参数子集的方法效果更好。在所有微调实验中,采用相同的方法:给定一个包含大约 100 条轨迹的小目标域数据集,使用余弦衰减学习率衰减和线性预热对 50k 步进行微调。
使用 AdamW 优化器 [51] 和逆平方根衰减学习率计划 [97],权重衰减为 0.1,梯度剪裁为 1.0。使用 TPU v4-128 pod 对 ViT-B 进行 300k 步训练,批处理大小为 2048,耗时 14 小时。在具有 24GB VRAM 的单个 NVIDIA A5000 GPU 上对同一模型进行微调运行大约需要 5 个小时,并且可以通过多 GPU 训练加快速度。
用 2 帧观察历史进行训练;在初步实验中,第一个附加帧以外的收益显着减少。用后见之明目标重标记 [2],它从轨迹的未来中均匀地选择一个状态来分配为目标图像,类似于之前的工作 [54、90、81、77、63]。在训练期间应用常见的图像数据增强,并随机将每个训练示例的语言指令或目标图像清零,以使 Octo 能够以语言指令或目标图像为条件。对于没有语言注释的数据集,始终使用目标图像条件。这使模型能够主要从自监督的视觉观察中学习控制,并减轻语言注释的负担,类似于先前对多上下文模仿学习的研究 [54, 62, 61, 63]。
对来自 4 所机构 9 种机器人学习设置的代表性范围评估 Octo 的能力(如图所示)。用与预训练数据相匹配的机器人设置,测试 Octo 开箱即用(“零样本”)控制不同机器人执行语言和目标图像任务的能力,其中所有机器人都由增量末端执行器控制动作控制,观察空间是 RGB 图像。还评估了 Octo 对新环境和任务的数据高效微调能力,包括新观察结果(“Berkeley Insertion” 中的力-扭矩输入)、新动作空间(“Berkeley Pick-Up” 中的关节位置控制)和新机器人实施例(“Berkeley Coke” 和“Berkeley Bimanual”)。每个微调设置使用 ∼ 100 个域内演示,并在 NVIDIA A5000 GPU 上在不到 5 小时内完成微调,所有设置使用相同的超参数。评估任务测试 Octo 与不同目标交互的能力(例如“WidowX BridgeV2”)、解决长期任务的能力(例如“Stanford Coffee”)以及执行精确操作的能力(例如“Berkeley Insertion”)。