正文
所以重要的比较是在最左边的条形图和最右边的条形图之间。平均而言,RTX模型,即最右边的条形图显示的平均值,比每个实验室拥有的特定于领域的方法是大约50%更好,成功率达到了63对41。这是与实验室为他们自己的任务开发的任何方法进行比较的,所以在某种意义上这是一个相当强的基线,因为那个实验室已经结合他们的方法开发了那个任务。所以他们的方法对于所讨论的任务来说应该是相当好的。
然而,这个通用模型平均而言超越了它大约50%。所以这非常令人兴奋。这表明我们
在自然语言处理(NLP)中看到的一些通用性优势可能正在成为现实世界中物理机器人系统中的现实。
当然,机器人基础模型不仅仅是数据集那么简单。近年来,另一个变得日益主流的板块是将大型基础模型适应于互联网规模数据的预训练,以用于机器人控制。在这方面最清晰的一步可能是 RT2 项目,该项目大约在两年前在谷歌研究开发,目的是要弄清楚视觉语言模型如何能被适应于机器人控制。
在RT2项目中,我们采用了一个视觉语言模型,这个模型是通过将一个大型语言模型适应于处理视觉输入,然后进一步微调以用于机器人控制而产生的。
这是很久以前的事了。现在,我们用一种相当简单的方式完成了这项工作。当你为感知任务训练一个视觉语言模型时,我们通常会使用像问题回答和图像描述这样的数据集,这些任务中你会得到一张图片,一个文本提示,然后模型应该产生一个文本答案。
我们只是将机器人数据以相同的方式框架化。机器人操作任务的一个单一时间步骤包括一张图片,一个文本命令,比如机器人应该做什么,然后得出一个答案,即机器人采取的行动以文本形式呈现,就像数值行动的文本表示。这不一定是表示机器人行动的好方法,但它足够好,可以将这种数据打包成视觉语言模型可以微调的格式。
实际上,它产生了一个非常擅长遵循语言的模型。但当然,最有趣的事情发生在我们结合这种大型视觉模型与 RTX 数据集时,这使得这种
跨机器人的泛化成为可能。
这是我们研究的RT2X模型,我们发现这个模型不仅擅长遵循语言指令,包含来自这些更多样化平台的数据实际上提高了数据中最具代表性的机器人平台的语言遵循能力。这实际上是有点令人惊讶的。
我们可能会预期提高那些数据不足的机器人的性能,即那些没有很多数据的机器人,但系统实际上甚至提高了我们拥有大量数据的机器人的性能
。
实际上,当包含所有来自其他体现的数据(由红色条形图表示)在困难的语言泛化任务上的性能大约是仅使用这个机器人的数据的基线性能的三倍。
再次强调,当包含来自各种来源的通用数据时,实际上可以超越更专业的系统。
该系统能够执行各种基本的空间推理风格的任务,并且泛化得相当广泛。
到目前为止描述的所有内容大致是2023年末的情况,那时机器人基础模型的状态如何?我们已经能够从视觉语言模型(VLM)继承互联网规模的知识来提升机器人,这就是RQ2的概念。我们有了一个通过聚合许多不同机器人的数据来弥合数据差距的线索,但仍有许多不足之处。虽然有一些有趣的语言遵循和空间推理的开始,但它们仍然只是相当基础的拾取和放置任务,当时还不清楚我们如何能够向更灵巧和复杂的行为发展。
泛化和语言遵循仍然相当有限,比如,按照机器人的标准,将苹果移动到罐头和橙子之间是相当酷的,但与你可能要求一个人做的工作相比,它是非常基础的。也就说明,架构根本没有真正适应机器人,架构基本上就是为标准视觉语言模型创建的。
所以还有很多工作要做。我们需要了解如何使用这些视觉语言动作模型学习复杂任务,我们需要处理不同形态的多样化机器人类型,而不仅仅是单臂机器人,我们需要为通用机器人策略开发正确的架构。在今天的讨论中,我将描述我们为解决这些限制所采取的一些步骤,谈论我们最近在开发的 π0 通用机器人策略。
基于 Difussion 的 π0 通用机器人模型
π0 模型现在是一个更适应机器人控制特定要求的模型,它实际上使用了像扩散这样的连续控制。我将描述我们如何通过顺序推理获得更好的视觉语言动作(VLA),而不是直接输出动作,机器人实际上可以思考执行任务的要求,并相应地调整其行为。
然后,我将以讨论如何通过强化学习获得更好的性能作为结束,通过微调 RL 向超人性能适应。但让我们从 π0 开始,以及我们如何尝试解决架构和多样化形态的挑战。
π0 是我们最近开发的新型 VLA,就在几个月前,它使用大型和多样化的数据集,但现在实际上能够控制非常不同的机器人、有双臂的机器人、单臂的机器人、有移动底座的机器人,并且它使用了一个更适应灵巧行为的架构,比如叠衣服和装箱。
这里是 π0 的构成:我们有来自各种不同机器人平台的数据,并且自己收集了七个不同平台的数据,这些数据真的是围绕灵巧性设计的。我们还采用了 RTX 的全部开放 X 体现数据集,所以这些数据是从所有不同的研究实验室汇总来的,以及来自 VLM 初始化的互联网规模的再训练。这些都被用来训练VLA模型。
π0 模型有一个特定的架构,它结合了扩散来输出高频连续动作,这对于更复杂的任务来说非常重要。然后它可以在零次尝试中被提示执行清理桌子等任务。对于特别复杂的任务,如叠衣服,它可以被高质量的后期训练数据微调。这实际上非常有趣,因为在语言模型的世界里,我们知道预训练和后期训练都非常重要。
我们还发现了一个类似的情况,对于真正复杂的任务,比如叠衣服,一个单独的后期训练阶段实际上非常重要,以获得出色的结果。所以让我更详细地逐一介绍这幅图的各个部分,先从模型架构开始。
π0 模型架构接收一到三张图片,这些图片来自机器人的基座摄像头以及安装在机械臂上的风险摄像头。如果机器人有一个机械臂,那么它就有一个风险摄像头。如果是两个机械臂,它就有两个风险摄像头。它还接收一个语言命令,这个命令指定了模型应该执行的操作。然后它使用我们称之为动作专家的变换器骨干网络的独立组件来将语言命令解码成动作。
所以在专家混合模型中,任务的不同部分有不同的模型参数副本,这里我们有两个副本,一个用于视觉语言输入,另一个用于连续动作输出。动作专家的工作基本上是处理任务的所有连续部分,它仍然可以关注图像语言部分的所有内部激活,但它专门用于连续输出。它接收连续的关节角度,并且输出一个由接下来的 50 个动作组成的连续动作块。
这是通过流匹配完成的,流匹配是扩散的一种变体,这非常重要,因为流匹配允许我们捕捉更复杂的动作分布。这些动作分布可能是多模态的,因为人类在演示行为时会使用许多不同的策略。通过这种方式处理连续动作,我们还可以处理高频控制,输出高达 50 赫兹的控制,每个新输出大约每半秒重新计算一次,输出 50 个未来时间步的动作。
这就是模型。但当然,要让这个模型工作,还有很多其他的事情要做。除了模型本身,我们当然需要正确的数据集。所以我们有预训练数据,正如我之前描述的,它来自许多不同类型的机器人。它包含了大约 10,000 小时的数据。
所以这是一个非常大的数据集,而且极其异质、有数百种任务,但并非所有数据都是高质量的,有些数据并不那么好,关键是它要足够大。就像大型语言模型(LLM)的预训练数据集可能包含丰富的知识一样,包括好的和不那么有用的,但非常多样化。