Sergey Levine团队
Sergey Levine目前是UC Berkeley电气工程与计算机科学系的副教授,同时是RAIL(Robotic AI&Learning Lab@BAIR)实验室主任。除了在Berkeley的教职,Levine也是Google Brain的研究员,他也参与了Google知名的机器人大模型PALM-E,RT1和RT2。Sergey Levine于2009年获得斯坦福大学计算机科学的学士和硕士学位,并于2014年获得斯坦福大学计算机科学的博士学位,导师是Vladlen Koltun,他博士后期间在加州大学伯克利分校与Pieter Abbeel教授合作。他的研究重点是用于决策和控制的机器学习,重点关注深度学习和强化学习算法,应用方向主要在机器人和自动驾驶方面。他在发Paper方面非常的高产,Robot Learning的顶会或期刊(CoRL,ICML,RSS,ICRA,RSS等)。
主题相关作品
- Octo
Octo
在各种机器人数据集上预先训练的大型策略有可能改变机器人学习:这种通用机器人策略无需从头开始训练新策略,只需使用少量领域内数据即可进行微调,但具有广泛的泛化能力。然而,为了广泛应用于各种机器人学习场景、环境和任务,这些策略需要处理不同的传感器和动作空间,适应各种常用的机器人平台,并轻松高效地微调到新领域。本方法Octo是一种基于大型 Transformer 的策略,在 Open X-Embodiment 数据集(迄今为止最大的机器人操作数据集)上的 800k 条轨迹上进行训练。它可以通过语言命令或目标图像进行指示,并且可以在标准消费级 GPU 上在几个小时内通过新的感官输入和动作空间有效地微调到机器人设置。在 9 个机器人平台上的实验中,证明了 Octo 是一种多功能策略初始化,可以有效地微调到新的观察和动作空间。
模型架构
Octo模型主要由三个部分组成:输入编码器,用于将不同形式的输入统一编码为token序列;Transformer主干网络,用于处理输入token序列并输出对应的embedding;输出头,将Transformer输出解码为机器人动作。模型的整体架构如图2所示。
输入编码器将语言指令、目标图像、机器人传感器观察等不同modality的输入分别编码为统一格式的token。其中,语言指令通过预训练的语言模型编码为定长的token embedding序列;图像则先经过一个较浅的CNN提取特征,然后划分为多个patches并展平,从而得到图像token序列。最后将这些不同来源的输入token拼接为一个统一的序列送入Transformer主干网络。
Transformer接收这些输入token后,以块状注意力(block-wise attention)的方式处理它们。如图2顶部所示,不同来源的输入token序列先分别与对应的可学习的位置编码(position embedding)相加,然后依次输入到Transformer的每一层。每个输入token只能关注当前时刻之前的输入,而任务指令token(绿色方块)可以被所有其他token关注。此外,还引入了一些可学习的输出token(readout token,图中紫色方块)。每个输出token都关注它之前的输入token,但反过来输入token不会关注输出token。这些输出token就像是BERT中的[CLS]标记,作为截至当前步的观察序列的紧凑embedding表示。最后将输出token的embedding传入输出头,解码为机器人动作。
模型输出头采用diffusion过程对机器人动作进行建模。它将一个初始的高斯噪声向量解码为连续的机器人动作,解码过程通过多步的逐步去噪来实现。每一步去噪过程由浅层MLP实现,它以当前步的输出、Transformer输出的embedding、以及步骤编号作为输入。通过这种方式,模型能输出一段连续的未来机器人动作序列,即所谓的action chunk。
本文提出的Octo模型最大的特点在于其灵活性。得益于块状注意力和输出head的设计,在迁移学习到新机器人或任务时,可以很方便地增删输入输出modalities,而无需重新初始化或训练模型的大部分参数。如图2底部所示,在下游任务中需要新的观察信息时,只需引入新的对应输入token即可(虚线蓝色方块);类似地,需要输出新的动作空间时,只需引入新的可学习输出token(虚线紫色方块)并搭配新的输出头即可。预训练好的Transformer参数都可以原封不动地继承使用。这种灵活的设计使得Octo成为一个通用的机器人控制策略,能适应多种机器人平台和任务。
数据
Octo模型在目前最大规模的机器人操控数据集Open X-Embodiment dataset上训练,该数据集包含了约150万个机器人操控的轨迹。本文从中精选了25个子数据集共计800k个轨迹进行训练,涵盖了多个机器人平台和任务环境,数据来源如图3所示。
为了进行跨数据集的训练,本文对原始数据进行了必要的预处理和对齐。以统一夹爪动作空间为例,将所有数据集的夹爪指令对齐为: +1表示张开,0表示闭合。另外,为了防止过长的单个轨迹主导整个训练过程,本文对每条轨迹随机下采样至多100个时间步。
在训练时需要从这25个数据集中采样数据,一个简单的策略是按数据集大小等比例采样。但是其中一些更丰富、更多样化的数据集可能对提高模型泛化性更有帮助。因此,本文依据数据集大小设置基础采样概率,并对一些表现更佳的数据集的概率进行少量提升,最终各数据集的采样概率如图3所示。这种经过调整的采样策略在实验中取得了更好的效果。
训练目标与细节
与许多先前工作使用离散化动作空间或MSE回归动作不同,本文采用条件扩散模型(conditional diffusion model)作为动作输出头,以期对连续动作空间进行更好的建模。具体来说,每次训练时,先将专家动作序列加入高斯噪声,然后训练模型去除这些噪声以还原原始动作。通过这种方式,模型能学会输出与专家演示动作更相似的动作序列。
另一个细节是,本文模型每次输出一段连续的未来动作序列(action chunking),即预测从当前时刻开始的若干个未来时间步的动作,而不是单步预测。这样的序列化输出能得到更连贯平滑的动作轨迹。在测试时则采用滚动时域预测的方式,即预测未来若干步的动作,执行前几步,观察最新状态,再重新预测,以此类推。
本文还采用了一些常见的数据增强和正则化技巧,包括对训练图像进行随机裁剪、颜色变换等,以及对Transformer模型使用dropout和LayerNorm。模型训练时使用AdamW优化器,并设置初始学习率warmup和余弦衰减的学习率调度。表IV列出了主要的训练超参数。
最后,本文还训练了不同规模的Octo变体,如表V所示,包括参数量为2700万的Octo-Small和9300万的Octo-Base等。在实验中,更大规模的模型在开箱即用的零样本机器人控制上展现出了更强的能力。
开源代码与模型
为了方便研究人员的进一步研究和使用,本文将Octo训练和测试的全部代码开源,并提供了预训练好的模型权重。这包括:
- Octo-Small和Octo-Base的预训练权重,可直接用于测试或在下游任务上进行微调
- 模型微调的示例代码,可适配到新的观察和动作空间
- 完整的模型训练流水线代码,包括高效的Open X-Embodiment数据加载器
- 方便推理部署的模型前向代码
有了这些开源代码和模型,研究人员只需几行代码就能调用Octo模型对机器人进行控制。例如,加载一个预训练权重,给定语言指令和传感器观察,就能输出对应的机器人动作。同时,在新的机器人和任务上对模型进行微调也变得简单易行。清单1展示了一个最简单的模型推理代码例子。
综上,本文提出的Octo模型兼顾了通用性和灵活性,能以开箱即用的方式对多个机器人执行语言指令,也能高效地迁移到新的观察空间和动作空间。模型的训练和推理代码全部开源,为今后机器人学习领域的研究提供了一个很好的基础模型。
实验
实验场景介绍
该论文提出了一个开源的通用机器人操作策略Octo,论文实验主要评估Octo在零样本多机器人控制和few-shot策略微调中的性能,以及不同设计决策的影响。
实验设置
实验平台:在4个机构的9个真实机器人设置上进行评估,涵盖不同机器人、传感器配置和任务类型。
Datasets:Octo在Open X-Embodiment数据集的800k机器人轨迹上预训练。few-shot微调使用~100个目标域演示。
Baseline:零样本对比RT-1-X和RT-2-X。few-shot微调对比从头训练和VC-1预训练视觉表征。
metric:任务成功率
实验结果
零样本多机器人控制性能
目的:评估Octo在来自预训练数据的环境中对多个机器人的开箱即用控制能力
结果:
Octo在WidowX、UR5和RT-1机器人上的语言指定任务上优于RT-1-X。
在WidowX任务上,Octo与更大的RT-2-X模型表现相似。
Octo还支持目标图像条件,在WidowX上比语言条件高出25%的成功率。
Octo在新域上few-shot微调的性能
目的:评估Octo作为新任务和新机器人策略初始化的few-shot微调性能
实验细节概述:在6个包含新观测(力矩)、新动作空间(关节位置控制)和新机器人的评估设置上,使用~100个目标域演示和相同超参数进行微调,每个域评估20次。
结果:
在所有设置中,微调Octo优于从头训练和VC-1预训练视觉表征,平均高出52%。
结果凸显了Octo适应新观测、动作空间和机器人的能力,使其广泛适用于单臂双臂操作问题。
总结
Octo是一个基于大型transformer的策略预训练,它是迄今为止最大的机器人操作数据集,包含800k个机器人轨迹。Octo可以解决各种开箱即用的任务,Octo的组合设计能够调整新的输入和动作空间,使Octo成为广泛的机器人控制问题的通用初始化。除了模型本身,本方法还发布了完整的训练和微调代码,以及使大型机器人数据集更容易训练的工具。
虽然Octo在zeroshot和微调评估中都取得了很强的性能,但我们发现目前的模型仍然有一些缺点,我们在很大程度上将其归因于训练数据的特征。首先,我们发现当前的Octo模型难以充分处理手腕相机信息。通常,当只使用第三人称相机而不是将第三人称相机和手腕相机结合使用时,微调效果更强。此外,我们注意到语言条件策略性能和目标条件策略性能之间存在很大差异。在这两种情况下,训练数据中缺乏相应的模态可能是原因:只有27%的数据包含手腕相机信息,只有56%的预训练数据包含语言注释。
扩展用于训练Octo的数据是一种自然的改进途径。由于Open X-Embodiment数据集由最佳机器人演示组成,目前的模型通过模仿进行训练;未来的工作可能会考虑从次优或在线交互数据中学习,这些数据需要其他目标。此外,虽然我们专门在单臂和双臂机械手上训练和评估Octo;扩展到执行导航或移动操作的更广泛的机器人集将是一个高机会的方向。