[EAI-018] π0: A Vision-Language-Action Flow Model for General Robot Control

Paper Card

论文标题:π0: A Vision-Language-Action Flow Model for General Robot Control
论文作者:Kevin Black, Noah Brown, Danny Driess, Adnan Esmail, Michael Equi, Chelsea Finn, Niccolo Fusai, Lachy Groom, Karol Hausman, Brian Ichter, Szymon Jakubczak, Tim Jones, Liyiming Ke, Sergey Levine, Adrian Li-Bell, Mohith Mothukuri, Suraj Nair, Karl Pertsch, Lucy Xiaoyang Shi, James Tanner, Quan Vuong, Anna Walling, Haohuan Wang, Ury Zhilinsky
论文出处:/
论文链接:https://arxiv.org/abs/2410.24164
论文被引:/
项目主页:https://www.physicalintelligence.company/blog/pi0

Abstract

机器人学习有望充分发挥灵活、通用和灵巧的机器人系统的潜力,并解决人工智能领域一些最深层次的问题。然而,将机器人学习提升到有效现实世界系统所需的通用水平,在数据、通用性和鲁棒性方面面临重大障碍。在本文中,我们讨论了通用机器人策略(即机器人基础模型)如何应对这些挑战,以及如何为复杂且高度灵巧的任务设计有效的通用机器人策略。我们提出了一种基于预训练视觉语言模型 (VLM) 的新型 flow matching 架构,以继承互联网规模的语义知识。然后,我们讨论如何在来自多个灵巧机器人平台(包括单臂机器人、双臂机器人和移动机械臂)的大型多样化数据集上训练此模型。我们根据模型通过直接提示执行任务的能力、遵循人类和高级 VLM 策略的语言指令的能力以及通过微调获取新技能的能力来评估我们的模型。我们的结果涵盖了各种各样的任务,例如折叠衣物、清洁桌子和组装盒子。

Summary

当前最先进的VLA模型,long-horizon task 执行能力示例:

https://live.csdn.net/v/460336
https://live.csdn.net/v/460335
https://live.csdn.net/v/460334
https://live.csdn.net/v/460332

研究背景

灵活且通用的模型可以被赋予执行各种机器人行为的任务,具有巨大的实际意义,但它们也可能为解决当今机器人学习面临的一些最棘手的挑战提供解决方案,例如数据的可用性、泛化和鲁棒性。 在自然语言 [1] 和计算机视觉 [39] 中,在多样化的多任务数据上进行预训练的通用基础模型往往优于专门定制和专门的解决方案。 同样,我们可能会发现,对于有效的专门机器人系统,在高度多样化的机器人数据上进行预训练,然后针对所需的任务进行微调或提示,可能更有效。 这可以解决数据稀缺的挑战,因为通用模型可以访问更多的数据源——包括来自其他任务、其他机器人,甚至非机器人源的数据——并且它可以解决鲁棒性和泛化挑战,因为多样化的数据显示出更广泛的观测和行动覆盖范围,提供各种场景、校正和恢复行为,而这些行为在更狭窄的专业数据中可能不存在。 因此,采用大规模预训练方法来进行机器人学习,有可能解决该领域中的许多挑战。

然而,开发这种通用的机器人策略——即机器人基础模型——涉及许多重大挑战。

  • 首先,任何此类研究都必须在非常大的规模上进行,因为大规模预训练的全部好处通常在较小的规模上并不存在 [54]。
  • 其次,它需要开发合适的模型架构,能够有效地利用不同的数据源,同时能够表示与复杂物理场景交互所需的错综复杂和微妙的行为。
  • 第三,它需要合适的训练配方。 这也许是最重要的组成部分,因为最近大型模型在 NLP 和 CV 方面的进展很大程度上依赖于精心策划的预训练和后训练数据策略 [35]。

方法介绍

请添加图片描述

本文提出了一个原型模型和学习框架 π0,它说明了如何解决这三个瓶颈。 图 1 中说明了模型和系统。 模型建立在 VLM 的基础上,继承了语言和视觉语言模型的一般知识、语义推理和解决问题的能力。 然后,进一步训练模型以整合机器人动作,将其转变为视觉语言动作 (VLA) 模型 [7]。 为了使利用各种不同的机器人数据源成为可能,我们采用了跨具身训练 [10],其中来自多种机器人类型的数据被合并到同一个模型中。 这些不同的机器人类型具有不同的配置空间和动作表示,包括单臂和双臂系统,以及移动机械臂。 此外,为了使执行高度灵巧和复杂的身体任务成为可能,我们使用了动作分块架构 [57],并使用流匹配(一种扩散变体)来表示复杂的连续动作分布 [28, 32]。 这使得模型能够以高达 50 Hz 的频率控制机器人,以执行诸如洗衣服折叠之类的灵巧任务。 为了将流匹配与 VLM 相结合,使用了一种新颖的动作专家,它用基于流的输出增强了标准 VLM。

模型首先在一个非常大而多样的语料库上进行预训练,然后在更窄和更精心策划的数据集上进行微调,以诱导所需的模式行为——灵活性、效率和稳健性。仅在高质量数据上进行训练不会教模型如何从错误中恢复,因为错误在这种数据中很少见。 仅在较低质量的预训练数据上进行训练不会教模型高效而稳健地行动。 将两者结合起来可以提供所需的行为:模型尽可能地以类似于高质量数据的方式行动,但仍然具有一套可以在出现错误时部署的恢复和修正方法

我们工作的贡献包括一个基于 VLM 预训练和流匹配的新颖通用机器人策略架构,以及对这种机器人基础模型的预训练/后训练方法的实证研究。 我们对模型进行了开箱即用的评估,包括使用语言命令、微调到后续任务以及与高级语义策略结合使用,该策略输出中间语言命令以执行复杂且时间跨度长的任务。 通过在超过10,000小时的机器人数据上进行预训练,并对各种灵巧任务进行微调来评估我们的方法,包括折叠衣物(见图2)、清理桌子、将餐具放入微波炉、将鸡蛋放入纸箱、组装盒子以及装袋杂货。

相关工作

我们的工作与最近提出的视觉-语言-动作 (VLA) 模型最为相关,这些模型使用为机器人控制微调的预训练 VLM [7, 24, 55]。 这些模型采用自回归离散化来以类似于文本标记的方式表示动作。 相比之下,我们的模型采用了一种新颖的设计,通过流匹配 [32, 28] 微调 VLM 以生成动作,流匹配是扩散 [20, 46] 的一种变体。 这使我们能够处理高频动作块 [57](高达 50 Hz)和高度灵巧的任务,这些任务对之前的自回归 VLA [7] 构成了重大挑战。 这与最近关于用于动作生成的扩散模型的一些工作类似 [9, 60]。 与这些工作相比,我们的模型使用预训练的 VLM 主干 [5]

由于我们的目标之一是研究复杂和灵巧的行为,因此我们使用了更大的数据集,约有 10,000 小时的演示,并辅以开源 OXE 数据集 [10]。 这代表了迄今为止最大的机器人学习实验。 在这种规模下,更复杂的预训练/后训练配方非常有效——类似于用于大型语言模型的配方,预训练阶段赋予模型广泛的知识基础,然后在后训练阶段通过更高质量的精选数据进行细化,以实现预期行为。

我们说明的任务的复杂性远远超出了先前的工作。 虽然最近的研究已经展示了许多更复杂和更灵巧的行为,例如系鞋带[58]或烹饪虾[17],但我们展示了框架可以学习非常长的任务,有时长达几十分钟,这些行为结合了物理灵巧性和组合复杂性。 据我们所知,我们的工作展示了端到端机器人学习文献中最长的灵活性任务

模型架构

请添加图片描述

π0模型(如图3所示)主要由语言模型Transformer骨干组成。 遵循标准的后期融合 VLM 方法 [3, 11, 30],图像编码器将机器人的图像观测嵌入到与语言符元相同的嵌入空间中。 我们进一步用特定于机器人的输入和输出来增强该主干——即本体感受状态和机器人动作。 π0 使用条件流匹配 [28, 32] 来建模动作的连续分布。 流匹配为我们的模型提供了高精度和多模态建模能力,使其特别适合高频灵巧任务。 我们的架构灵感来自 Transfusion [59],它使用多个目标训练单个 Transformer,其中符元 1 对应于通过流匹配损失进行监督的连续输出,以及对应于通过交叉熵损失进行监督的离散输出。 在 Transfusion 的基础上,我们还发现,使用针对特定于机器人(动作和状态)符元的一组独立权重可以提高性能。 此设计类似于具有两个混合元素的专家混合 [45, 25, 12, 16],其中第一个元素用于图像和文本输入,第二个元素用于特定于机器人的输入和输出。 将第二组权重称为动作专家

原则上模型可以从头开始初始化或从任何 VLM 主干微调,但在实践中使用 PaliGemma-3B [5] 作为基础模型,它在大小和性能之间提供了便捷的权衡。 为动作专家添加了 3 亿个参数(从头开始初始化),总共 33 亿个参数。

数据构建

与 LLM 训练通常分为预训练和后训练阶段一样,我们的模型采用了多阶段训练。 预训练阶段的目标是让模型接触各种任务,以便它能够获得广泛适用且通用的物理能力,而后训练阶段的目标是使模型能够熟练流畅地执行所需的下游任务。 因此,预训练数据集和后训练数据集的要求是不同的:预训练数据集应该涵盖尽可能多的任务,并且在每个任务中应该涵盖多种行为。 后训练数据集应该涵盖有利于有效任务执行的行为,这些行为应该表现出一致且流畅的策略。 直观地说,多样化(但质量较低)的预训练数据使模型能够从错误中恢复并处理高度不同的情况,这些情况在高质量的后训练数据中可能不会出现,而后训练数据则教会模型如何出色地执行任务

预训练和后训练

请添加图片描述

图4中概述了我们的预训练混合体。 由于每个训练示例对应一个时间步——即一个元组 (𝐨t,𝐀t) ——在本讨论中以时间步来量化数据。 9.1% 训练混合物由开源数据集组成,包括 OXE [10]、Bridge v2 [52] 和 DROID [23]。 这些数据集中的机器人和任务通常具有一到两个摄像头,并使用低频控制,在 2 到 10 Hz 之间。 然而,这些数据集涵盖了各种各样的物体和环境。 为了学习灵巧和更复杂的任务,还使用了来自我们自己数据集的 903M 个时间步的数据,其中 106M 个时间步来自单臂机器人,797M 个时间步来自双臂机器人。 这些数据包含 68 个任务,每个任务都包含复杂的行为——例如,“洗碗” 任务包括将各种不同的盘子、杯子、餐具放入洗碗槽中,并将各种各样的垃圾放入垃圾桶中。 请注意,此任务定义与先前的工作有很大不同,先前的工作通常使用名词和动词的任何组合(例如,“拿起杯子” 与 “拿起盘子”)来构成一个不同的任务。

由于数据集的大小有些不平衡(例如,更困难的洗衣服任务被过度表示),我们通过 n^0.43 对每个任务-机器人组合进行加权,其中 n 是该组合的样本数量,这样过度表示的组合就会被降低权重。 配置向量 𝐪t 和动作向量 𝐚t 始终具有数据集中最大机器人的维数(在本例中为 18,以适应两个 6-DoF 臂、2 个夹爪、一个移动底座和一个垂直驱动的躯干)。 对于配置空间和动作空间维数较低的机器人,我们将配置和动作向量进行零填充。 对于图像数量少于三张的机器人,我们也会将缺失的图像槽位掩盖。

在训练后阶段,使用较小的特定任务数据集对模型进行微调,使其专门用于特定的下游应用。 如前所述,对“任务”的定义相当广泛,例如“端盘”任务需要操纵各种不同的物体。 不同的任务需要完全不同的数据集,最简单的任务只需要 5 个小时,而最复杂的任务则需要 100 个小时甚至更长时间的数据。

语言和高级策略

需要语义推理和高级策略的更复杂的任务,例如清理餐桌,也可以从高级策略中受益,该策略将高级任务(例如“清理餐桌”)分解为更直接的子任务(例如“拿起餐巾”或“将餐巾扔进垃圾桶”)。 由于我们的模型经过训练可以处理语言输入,因此我们可以使用高级 VLM 进行这些语义推断,这是一种类似于 SayCan [2] 的 LLM/VLM 规划方法。 使用这种高层次策略来帮助我们的模型制定一些实验任务的高层次策略,正如我们将在VI节中讨论的那样。

机器人系统配置

请添加图片描述

我们灵巧操作数据集包括 7 种不同的机器人配置和 68 种任务。 我们在图5中总结了这些平台:

UR5e:一只手臂带有一个平行爪夹具,手腕安装了一个肩上摄像头,总共两个摄像头图像,一个 7 维配置和动作空间。

双臂 UR5e: 两个 UR5e 设置,总共三个摄像头图像和一个 14 维配置和动作空间。

Franka:Franka 设置有两个摄像头,一个 8 维配置和动作空间。

双臂 Trossen:此设置在基于 ALOHA 设置 [4, 57] 的配置中,有两个 6 自由度的 Trossen ViperX 机械臂,带两个手腕摄像头和一个底座摄像头,以及一个 14 维配置和动作空间。

双臂 ARX 和双臂 AgileX:此设置使用两个 6 自由度的机械臂,并支持 ARX 或 AgileX 机械臂,带三个摄像头(两个手腕和一个底座),以及一个 14 维配置和动作空间。 此类别包含两个不同的平台,但由于它们的运动学特性相似,我们将它们归为一类。

移动 Trossen 和移动 ARX:此设置基于 Mobile ALOHA [57] 平台,在移动底座上安装了两个 6 自由度的机械臂,它们可以是 ARX 机械臂或 Trossen ViperX 机械臂。 非完整底座增加了两个动作维度,形成了一个 14 维配置和 16 维动作空间。 有两个手腕摄像头和一个底座摄像头。 此类别包含两个不同的平台,但由于它们的运动学特性相似,我们将它们归为一类。

移动 Fibocom:两个 6-DoF ARX 机械臂安装在全向底座上。 底座增加了三个动作维度(两个用于平移,一个用于方向),构成 14 维配置空间和 17 维动作空间。

图4中总结了数据集中每个机器人的比例。

实验结果

我们研究以下研究问题:

在经过预训练数据中存在的各种任务训练后,π0 的表现如何? 我们通过直接评估 π0,并与其他机器人基础模型进行比较来研究这个问题。

π0 遵循语言指令的表现如何? 这些实验将 π0 与 π0-small 进行比较,后者是我们的模型的一个较小版本,没有 VLM 初始化,以评估其在遵循语言指令方面的表现。

π0 与专门为解决灵巧操作任务而提出的方法相比如何? 这些实验研究了下游任务,对于这些任务,我们可以从预训练初始化微调我们的模型,或者从头开始在特定于任务的数据上训练它,并与为灵巧操作提出的先前方法进行比较。 我们旨在评估我们的架构和预训练程序的益处。

π0 能否适应复杂的多阶段任务? 在我们最后的实验组中,我们对π0进行微调,使其能够完成一些特别复杂的任务,包括折叠衣服和收拾餐桌。 完成这些任务需要 5 到 20 分钟。 一些任务需要高级策略的指导。

基础模型评估

请添加图片描述

第一组实验评估了模型在经过完整的混合预训练后,没有任何后训练的效果,以评估基础模型在执行各种任务方面的表现。 我们将它与文献中的其他机器人基础模型进行了比较:包括 VLA 和从零开始在相同预训练混合物上训练的较小模型。在以下任务上进行评估,图6 中进行了可视化,每个任务都通过语言命令指挥到同一个基础模型。

衬衫折叠: 机器人必须折叠一件平铺的T恤。

清理餐桌(简单): 机器人必须清理桌子,将垃圾放入垃圾桶,将餐具放入餐具桶。 分数表示放入正确容器中的物品数量。

清理餐桌(困难): 清理餐桌任务的更难版本,包含更多物品和更具挑战性的配置,例如餐具有意放置在垃圾物品上,物品互相阻挡,以及一些不在预训练数据集中的物品。

购物袋装袋: 机器人必须将所有杂货物品装袋,例如薯片、棉花糖和猫粮。

从烤面包机中取出吐司: 机器人从烤面包机中取出吐司。

为这些实验提供比较具有挑战性,因为很少有先前的模型能够在这个规模上运行。 我们将其与OpenVLA[24]进行比较,OpenVLA是一个70亿参数的VLA模型,最初是在OXE数据集[10]上训练的。 在完整的混合数据集上训练OpenVLA。 对于OpenVLA来说,这是一个非常困难的混合数据集,它不支持动作分块或高频控制。 还与 Octo [50] 进行比较,这是一个较小的 93M 参数模型。 虽然 Octo 不是 VLA,但它确实使用扩散过程来生成动作,为我们的流匹配 VLA 提供了一个宝贵的比较点。 我们还在与我们的模型相同的混合数据集上训练 Octo。 由于时间限制,我们无法像完整模型一样训练 OpenVLA 和 Octo 相同的 epoch 数量。 因此,我们也与我们模型的“计算奇偶校验”版本进行比较,该版本只训练了 160k 步(与我们主模型的 700k 步相比),这等于或低于提供给基线的步数(OpenVLA 为 160k,Octo 为 320k)。 我们还包括一个仅在 UR5e 数据上微调的 OpenVLA 模型版本,没有进行跨嵌入训练,希望在 UR5e 任务上提供一个更强的基线。 最后,我们加入了与π0-small模型的比较,它可以被视为没有VLM预训练的我们模型的缩小版本。

与 π0-small 的比较说明了将 VLM 预训练纳入的重要性。 不幸的是,很难将最后一次比较进行公平的比较:π0-small 使用的参数更少,但更大的模型在没有预训练的情况下很难使用。 总体而言,这些实验表明 π0 提供了一个强大的预训练模型,能够有效地执行各种任务,并与各种机器人协同工作,其性能远超以往的模型

请添加图片描述

语言指令遵从

对基本 π0 模型进行了微调,使其能够在评估域集中遵循语言命令。 我们将这个微调的π0模型与π0-small模型进行比较,我们发现它是上一节中最强的基线。我们仍希望本实验能阐明 π0 的语言能力。 每个任务的语言指令包括要拾取的物体和放置这些物体的位置,其中包含大约 2 秒长的语言标记片段。 每个完整任务都包含许多此类片段。 此评估中的任务包括:

洗碗: 机器人必须清洁桌子,将餐具和刀叉放入垃圾桶,并将垃圾放入垃圾桶。

摆放餐桌: 机器人必须从垃圾桶中取出物品来摆放餐桌,包括餐垫、餐具、银器、餐巾和杯子,并根据语言指示进行调整。

购物袋装袋: 机器人必须将杂货物品打包,例如咖啡豆袋、大麦、棉花糖、海藻、杏仁、意大利面和罐头放入袋子中。

请添加图片描述

图8中展示了我们评估中的语言条件任务并展示了评估结果。 我们评估了五个不同的条件。 π0-flat(和 π0-small-flat)对应于直接用任务描述(例如,“打包杂货”)命令模型,没有中间语言命令。 π0-human(和 π0-small-human)从人类专家用户那里提供中间步骤命令(例如,选择哪个物体以及放置在哪里)。

请添加图片描述

图9的结果(每个任务平均进行了10次试验)显示,π0的语言遵循准确率显著高于π0-small。 这表明从更大的预训练 VLM 初始化开始有了显著的改进。 这种能力转化为在专家人类指导 (π0-human) 和高级模型指导 (π0-HL) 下的性能提升。 结果表明,π0 的语言遵循能力直接转化为在具有高级指导的复杂任务上更好的自主性能。

学习新的灵巧任务

请添加图片描述

评估模型在与预训练数据有很大差异的新任务上的表现,这些任务需要全新的行为。 对于这些评估,我们使用不同数量的数据为每个新任务微调模型。 虽然每个任务都是新的,但我们根据任务与预训练数据之间的差异程度将任务划分为“层级”。 任务如图10所示:

UR5e 堆叠碗。 此任务需要堆叠碗,共有四种不同尺寸的碗。 由于此任务需要抓取和移动餐具,类似于预训练数据中的洗碗任务,因此我们将它归类为“简单”级别。 训练数据包含各种碗,评估中使用了一系列已见过和未见过的碗。

毛巾折叠。 此任务需要折叠毛巾。 由于这类似于衬衫折叠,而衬衫折叠存在于预训练中,因此我们将它归类为“简单”级别。

将保鲜盒放入微波炉。 此任务需要打开微波炉,将一个塑料容器放入其中,然后关闭它。 容器有不同的形状和颜色,评估中使用了一系列已见过和未见过的容器。 容器操作类似于预训练数据,但预训练中没有微波炉。

替换纸巾。 此任务需要从支架上取下旧的纸巾纸筒,并用新的纸巾卷替换它。 由于预训练中没有找到此类物品,因此我们认为这“很难”。

抽屉里的 Franka 物品。 此任务需要打开抽屉、将物品放入抽屉以及关闭抽屉。 由于预训练中没有 Franka 机器人的类似任务,因此我们认为这“很难”。

我们将微调后的模型与 OpenVLA [24] 和 Octo [50] 进行比较,它们也采用预训练和微调方法。 由于我们的目标是评估特定模型(而不是架构),因此我们使用这些模型在 OXE [10] 上训练的公开可用的预训练检查点,然后将它们微调到每个任务。我们假设 π0 架构与 VLM 初始化应该已经为各个任务提供了更强大的起点,而预训练过程应该进一步提高其性能,尤其是在微调数据集较小时。

图 11 显示了各种方法在所有任务上的性能,每个任务平均进行了10次试验,并使用了不同数量的微调数据。在 堆叠碗微波炉中的保鲜盒 任务中包含所有基线。结果表明,π0 通常优于其他方法。有趣的是,最强的先前模型是在目标任务上从头开始完全训练的模型,这表明在这些领域利用预训练对先前方法提出了重大挑战。虽然在 Tupperware 任务上,π0 的 5 小时策略表现与基线相似,但 1 小时版本明显更好。如预期的那样,预训练对于更类似于预训练数据的任务带来了更大的改进,尽管预训练模型通常优于非预训练模型,有时甚至可以提高 2 倍。

请添加图片描述

掌握复杂的多阶段任务

请添加图片描述

在我们最后的实验集中,我们通过结合微调和语言来解决一系列具有挑战性的多阶段任务。 对于其中一些任务,数据存在于预训练中,但需要微调才能达到熟练程度。 对于某些任务,预训练中不存在数据。 此次评估中的任务如图12所示:

折叠衣服: 该任务需要一个静态(非移动)双臂系统来折叠衣物。 衣物从一个随机堆叠的箱子里开始,目标是取出衣物,折叠它,然后放在之前折叠好的衣物堆顶。 随机堆叠的初始配置带来了重大挑战,因为策略需要推广到任何配置。 该任务出现在预训练中。

移动式洗涤: 这里,图5中的Fibocom移动机器人必须折叠衣物,在控制方向和位移的同时面临许多相同的挑战。 该任务出现在预训练中。

干衣机卸载: 这里,Fibocom 移动机器人需要从干衣机中取出衣物,并将其放入洗衣篮中。 该任务出现在预训练中。

餐桌清理: 此任务需要在一个杂乱的场景中用各种新奇的物体整理桌子,这比我们开箱即用评估中的基准测试提出了更大的挑战:策略必须能够泛化到形状和大小各异的未见物体,并执行复杂的灵巧动作,例如旋转抓爪以拿起大盘子,并小心地抓取薄而易碎的物品,如眼镜。 机器人必须处理密集的杂物并智能地排序各种行为——例如,为了清洁带有垃圾的盘子,它必须先拿起盘子,然后将其内容物摇入垃圾桶,然后将盘子放入垃圾桶中。 该任务没有出现在预训练中。

箱子搭建: 机器人必须组装一个从扁平状态开始的纸板箱。 此任务提出了许多重大挑战:盒子需要以正确的方式弯曲,并且机器人需要在折叠其他部分时按住盒子的一部分,利用两只手臂甚至桌子的表面来支撑折叠动作。 机器人可能需要重试一些折叠,需要一种反应灵敏且智能的策略。 该任务没有出现在预训练中。

外带盒: 此任务要求将几件食物从盘子里移到外带盒中,需要将这些食物打包到盒子里,以使它们不会伸出来,然后用两只手臂将盒子关上。 该任务没有出现在预训练中。

包装鸡蛋: 机器人需要从碗里拿出六个鸡蛋,并将它们装进蛋盒,然后关上蛋盒。 鸡蛋需要以适合其在碗中姿势的方式抓住,然后放在蛋盒中的空槽中。 由于鸡蛋的形状、光滑度以及需要小心放置,这带来了挑战。 关闭盒子需要使用两只手臂。 该任务没有出现在预训练中。

结果(显示每个任务在10次试验中的平均分数)如图13所示。1.0分代表完美执行,而部分分数对应于部分完成的任务(例如,0.5表示一半的物体被正确整理)。 这些任务非常困难,我们无法用其他方法解决它们。 因此,我们使用这些任务来比较我们方法的消融研究,评估π0在预训练和微调之后、仅在预训练之后开箱即用(“开箱即用”)以及在没有预训练的情况下在微调数据上进行训练(“从零开始”)。 结果表明,π0 可以解决许多这些任务,我们的完整预训练和微调配方在所有任务中表现最佳。 请注意,许多这些更困难的任务显示出使用预训练模型后有很大的改进,表明预训练在更困难的任务中特别有用。 π0 在不同任务上的绝对性能存在差异,这可能是由于任务难度的差异以及任务在预训练中代表程度的不同。 我们相信,在如此具有挑战性的任务上实现这种自主性能,代表了学习策略在灵巧机器人操作方面的新水平。

实验结论

我们提出了一种训练机器人基础模型的框架 π0,它包括在高度多样化的数据上进行预训练,然后进行开箱即用评估或对复杂的下游任务进行微调。 我们的经验评估研究了结合灵活性、泛化能力和时间上扩展的多阶段行为的任务。 我们的模型将互联网规模的视觉-语言模型 (VLM) 预训练与流匹配相结合,用于表示复杂的、高频的动作块。 我们的预训练混合物包含来自 7 种不同机器人配置和 68 项任务的 10,000 小时的灵巧操作数据,以及从 OXE [10]、DROID [23] 和 Bridge [52] 收集的大量先前机器人操作数据。 我们的微调实验包括 20 多项任务,模型优于各种基线,包括之前的 VLA 模型 [24] 和专门为灵巧操作设计的模型 [57, 9]。 我们还研究了我们的后训练配方如何实现高度复杂的任务,例如折叠来自任意初始配置的多件衣物或组装箱子。

我们的框架大体上类似于大语言模型的训练程序,这些程序通常包括在从网络上抓取的非常大的数据集上预训练一个基础模型,然后进行一个后训练程序,旨在“对齐”模型,使其能够遵循指令并执行用户命令。 一般认为,这些模型中大部分的“知识”是在预训练阶段获得的,而后训练阶段的作用是告诉模型如何利用这些知识来完成用户命令。 我们的实验表明,类似的现象也可能发生在机器人基础模型中,其中预训练模型具有一些零样本能力,但像洗衣服这样的复杂任务需要使用高质量数据进行微调。 只对这些高质量数据进行训练会导致一个脆弱的模型,该模型不能可靠地从错误中恢复,而以零样本方式运行预训练模型并不总是表现出在后训练数据中所展示的流畅策略。

此类模型存在一些局限性,并且有充足的空间供未来研究。

  • 首先,我们的实验还没有全面了解预训练数据集的构成方式:我们结合了所有可用的数据,但理解哪些类型的数据更有助于添加以及如何加权仍然是一个开放问题。
  • 我们的评估工作中并非所有任务都可靠地工作,而且目前尚不清楚如何预测需要多少数据以及哪种数据才能实现接近完美的性能。
  • 最后,还需要观察在组合高度多样化的数据(特别是来自不同任务和不同机器人的数据)时,正向迁移有多少:尽管我们的结果表明,通用预训练机器人基础模型可能成为现实,但未来需要研究这种通用性是否扩展到更多不同的领域,例如自动驾驶、导航和腿式运动。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/4205.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

医院挂号就诊系统设计与实现(代码+数据库+LW)

摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装医院挂号就诊系统软件来发挥其高效地信息处理的作用&#…

解锁辅助驾驶新境界:基于昇腾 AI 异构计算架构 CANN 的应用探秘

💓 博客主页:倔强的石头的CSDN主页 📝Gitee主页:倔强的石头的gitee主页 ⏩ 文章专栏:《AI大模型》 期待您的关注 目录 一、引言 二、CANN 是什么 1. 异构计算与人工智能的关系 2. CANN 的定义和作用 3. CANN 的技…

【前端】CSS学习笔记

目录 CSS的简介CSS的概念语法 CSS的引入方式内联样式(行内样式)内部样式外部样式(推荐) 选择器全局选择器元素选择器类选择器ID选择器合并选择器后代选择器子选择器相邻兄弟选择器通用兄弟选择器伪类选择器:link:visited:hover:ac…

深度学习 DAY1:RNN 神经网络及其变体网络(LSTM、GRU)

实验介绍 RNN 网络是一种基础的多层反馈神经网络,该神经网络的节点定向连接成环,其内部状态可以展示动态时序行为。相比于前馈神经网络,该网络内部具有很强的记忆性,它可以利用它内部的记忆来处理任意时序的输入序列,…

[STM32 HAL库]串口空闲中断+DMA接收不定长数据

一、空闲中断 STM32的串口具有空闲中断,什么叫做空闲呢?如何触发空闲中断呢? 空闲:串口发送的两个字符之间间隔非常短,所以在两个字符之间不叫空闲。空闲的定义是总线上在一个字节的时间内没有再接收到数据。触发条件…

计算机网络 (49)网络安全问题概述

前言 计算机网络安全问题是一个复杂且多维的领域,它涉及到网络系统的硬件、软件以及数据的安全保护,确保这些元素不因偶然的或恶意的原因而遭到破坏、更改或泄露。 一、计算机网络安全的定义 计算机网络安全是指利用网络管理控制和技术措施,保…

机器学习中的方差与偏差

文章目录 方差与偏差1.1 数据1.1.1 数据的分布1.1.2 拟合 1.2 方差与偏差1.2.1 泛化误差的拆分1.2.2 理解方差偏差 1.3 方差-偏差trade-off1.3.1 方差-偏差trade-off1.3.2 方差与偏差诊断 1.4 降低策略1.4.1 噪声1.4.2 高偏差1.4.3 高方差 方差与偏差 1.1 数据 1.1.1 数据的分…

力扣 有效的括号

括号匹配问题,找到符合的进行抵消。 题目 从题可以看出是嵌套的括号先匹配先做抵消,类似就近原则,这也是栈的典型例题。可以通过枚举多种不同的情况慢慢用if与else做返回。 时间复杂度:O(n),其中 n 是字符串的长度。…

js: 区分后端返回数字是否为null、‘-’ 或正常number类型数字。

问&#xff1a; 这是我的代码<CountTo v-if!isNaN(Number(item.num))> <span v-else>{{item.num}}</span> 我希望不是null的时候走countTo&#xff0c;是null的时候直接<span>{{item.num}}</span>显示 回答&#xff1a; 最终结果&#xff1a; …

Chapter5.4 Loading and saving model weights in PyTorch

5 Pretraining on Unlabeled Data 5.4 Loading and saving model weights in PyTorch 训练LLM的计算成本很高&#xff0c;因此能够保存和加载LLM的权重至关重要。 ​ 在PyTorch中&#xff0c;推荐的方式是通过将torch.save函数应用于.state_dict()方法来保存模型权重&#x…

运动相机拍视频过程中摔了,导致录视频打不开怎么办

3-11 在使用运动相机拍摄激烈运动的时候&#xff0c;极大的震动会有一定概率使得保存在存储卡中的视频出现打不开的情况&#xff0c;原因是存储卡和相机在极端情况下&#xff0c;可能会出现接触不良的问题&#xff0c;如果遇到这种问题&#xff0c;就不得不进行视频修复了。 本…

Python制作简易PDF查看工具PDFViewerV1.0

PDFViewer PDF浏览工具&#xff0c;Python自制PDF查看工具&#xff0c;可实现基本翻页浏览功能&#xff0c;其它功能在进一步开发完善当中&#xff0c;如果有想一起开发的朋友&#xff0c;可以留言。本软件完全免费&#xff0c;自由使用。 软件界面简洁&#xff0c;有菜单栏、…

SpringBoot实现定时任务,使用自带的定时任务以及调度框架quartz的配置使用

SpringBoot实现定时任务&#xff0c;使用自带的定时任务以及调度框架quartz的配置使用 文章目录 SpringBoot实现定时任务&#xff0c;使用自带的定时任务以及调度框架quartz的配置使用一. 使用SpringBoot自带的定时任务&#xff08;适用于小型应用&#xff09;二. 使用调度框架…

Output

AUTOSAR OS模块详解(三) Alarm 本文主要介绍AUTOSAR OS的Alarm&#xff0c;并对基于英飞凌Aurix TC3XX系列芯片的Vector Microsar代码和配置进行部分讲解。 文章目录 AUTOSAR OS模块详解(三) Alarm1 简介2 功能介绍2.1 触发原理2.2 工作类型2.3 Alarm启动方式2.4 Alarm配置2.5…

openharmony应用开发快速入门

开发准备 本文档适用于OpenHarmony应用开发的初学者。通过构建一个简单的具有页面跳转/返回功能的应用&#xff08;如下图所示&#xff09;&#xff0c;快速了解工程目录的主要文件&#xff0c;熟悉OpenHarmony应用开发流程。 在开始之前&#xff0c;您需要了解有关OpenHarmon…

使用傅里叶变换进行图像边缘检测

使用傅里叶变换进行图像边缘检测 今天我们介绍通过傅里叶变换求得图像的边缘 什么是傅立叶变换&#xff1f; 简单来说&#xff0c;傅里叶变换是将输入的信号分解成指定样式的构造块。例如&#xff0c;首先通过叠加具有不同频率的两个或更多个正弦函数而生成信号f&#xff08;x…

用户中心项目教程(四)---Vue脚手架完成前端初始化

目录 1.项目的创建 2.使用开发工具打开 3.项目运行方法 4.使用按钮组件 5.全局注册 6.如何进行组件的测试 7.使用组件的效果展示 8.关于这个vue项目内容的说明 1.项目的创建 这个前提你是你完成了我的教程&#xff08;三&#xff09;里面的相关配置&#xff0c;不然你可…

《自动驾驶与机器人中的SLAM技术》ch4:基于预积分和图优化的 GINS

前言&#xff1a;预积分图优化的结构 1 预积分的图优化顶点 这里使用 《自动驾驶与机器人中的SLAM技术》ch4&#xff1a;预积分学 中提到的散装的形式来实现预积分的顶点部分&#xff0c;所以每个状态被分为位姿&#xff08;&#xff09;、速度、陀螺零偏、加计零偏四种顶点&am…

二叉搜索树(TreeMapTreeSet)

文章目录 1.概念2.二叉搜索树的底层代码实现(1)首先构建二叉树(2)实现插入功能&#xff1b;(3)实现查找(4)删除&#xff08;重点&#xff09; 3.TreeMap 1.概念 TreeMap&TreeSet都是有序的集合都是基于二叉搜索树来实现的 二叉搜索树&#xff1a;是一种特殊的二叉树 若左子…

【QT用户登录与界面跳转】

【QT用户登录与界面跳转】 1.前言2. 项目设置3.设计登录界面3.1 login.pro参数3.2 界面设置3.2.1 登录界面3.2.2 串口主界面 4. 实现登录逻辑5.串口界面6.测试功能7.总结 1.前言 在Qt应用程序开发中&#xff0c;实现用户登录及界面跳转功能是构建交互式应用的重要步骤之一。下…