type
status
date
slug
summary
tags
category
icon
password
🧠
pi0.5是PI公司发布的最新的一代图像-语言-动作(VLAs)模型,到底它比pi0功能上优越在哪,解决了哪些pi0悬而未决的问题呢?请听我细细道来。
 

pi0.5的发展意义

开放世界泛化问题

目前,大多数机器人学习系统仍在训练数据匹配的环境中评估,缺乏开放世界下的泛化。如果机器人的任务只是一些基本原语(如抓取),那么通过基于模型的控制或特定 policy,可以实现较好的泛化,甚至泛化到新家庭环境。但这类方法难以扩展到通用机器人所需的全任务覆盖能力。而pi0.5致力于解决长时间多阶段的任务(传统模型可以尝试1分钟左右的简单任务泛化,而pi0.5可以实现15分钟左右的任务)

面向家庭环境的任务系统

pi0.5的测试评估选择在模型未接触过的陌生家庭环境中进行测试,这一方面证明pi0.5的模型泛化能力,另一方面也体现了技术服务社会的理念。

模型概述

双阶段训练过程

notion image
论文中展示的pi0.5架构的训练过程如图。模型权重从在网络上训练的标准 VLM 初始化,然后分两个阶段进行训练:一个预训练阶段旨在使模型适应多种机器人任务,以及一个后训练阶段旨在使模型专门用于移动操作并配备高效测试时推理的机制。在预训练期间,所有任务(包括具有机器人动作的任务)都使用离散标记表示,这导致了简单、可扩展和高效的训练。
预训练期间,pi0.5使用广泛的机器人和非机器人数据进行训练:(论文中对数据来源和功能做如下阐释)
多样化的移动操作器数据(MM)。我们使用了约 400 小时的数据,这些数据来自在约 100 个不同家庭环境中执行家务任务的移动操作器,其中一些环境展示在图 7 中,这些机器人使用于第四节 E 部分。这个训练集的这部分与我们评估任务最直接相关,这些评估任务包括在新环境、未见过环境中的类似清洁和整理任务。 多样化的多环境非移动机器人数据(ME)。我们还收集了在多种家庭环境中使用单臂或双臂的非移动机器人数据。这些手臂固定在表面或安装平台上,由于它们明显更轻便且易于运输,我们能够使用它们在更广泛的家庭环境中收集更多样化的数据集。然而,这些 ME 数据来自与移动机器人不同的形态。 跨主体实验室数据(CE)。我们在实验室中收集了各种任务(例如,摆桌子、折叠衬衫)的数据,环境较为简单的桌面,以及多种机器人类型。其中一些任务与我们的评估高度相关(例如,将盘子放入垃圾桶),而另一些则不相关(例如,磨咖啡豆)。这些数据包括单臂和双臂操作器,以及静态和移动底座。我们还包含了开源的 OXE 数据集[15]。该数据集是π0所使用数据集的扩展版本。 高层子任务预测(HL)。将“打扫卧室”等高层任务指令分解为“调整毯子”和“捡起枕头”等较短的子任务,类似于语言模型的思维链提示,可以帮助训练好的策略推理当前场景并更好地确定下一步行动。对于 MM、ME 和 CE 中的机器人数据,其中任务涉及多个子任务,我们手动标注所有数据,并使用子任务的语义描述来训练π0.5,使其能够根据当前观察结果和高层指令,联合预测子任务标签(作为文本)以及动作(基于子任务标签)。这自然地导致了一个既能作为高层策略(输出子任务)又能作为执行这些子任务动作的低层策略的模型。我们还标注了当前观察结果中显示的相关边界框,并在预测子任务之前训练π0.5来预测它们。 多模态网络数据(WD)。最后我们包含一组多样化的网络数据,涉及图像描述(CapsFusion [ 87], COCO [ 12])、问答(Cambrian-7M [ 77], PixMo [ 19], VQAv2 [ 32])以及物体定位,用于预训练。对于物体定位,我们进一步扩展标准数据集,增加了带有边界框标注的室内场景和家庭物体的网络数据。
在后训练期间,模型具有一个和pi0相同设计的动作专家,以便以更细粒度的精度表示动作,并实现更计算高效的实时控制推理。在推理时,模型首先为机器人生成一个高级子任务,然后基于这个子任务通过动作专家预测低级动作。此阶段的目的既是为我们的应用场景(家庭中的移动操作)专门化模型,又是要添加一个能够通过流匹配产生连续动作块的专家。

机器人系统

notion image
本次使用的机器人系统如图。使用两种类型的移动机械手进行了所有实验。两个平台都配备了两个带有平行钳口夹持器和腕戴式单目 RGB 摄像头的 6 DoF 臂、一个轮式全息底座和一个躯干升降机构。底座的状态和动作空间对应于线性(2D)和角(1D)速度,躯干升降机构为 1D(上/下)或 2D(上/下和前/后)。除了两个腕式摄像头外,机器人的手臂之间还安装了一个前向和后向摄像头。使用所有四个摄像头进行 high-level 推理,使用腕式和前向摄像头进行 low-level 过程。状态空间和动作空间的总维度为18或19,具体取决于平台。
控制系统则是pi0.5直接控制手臂进行端到端的动作和导航,不需要额外的路径规划。

核心优化点:

作为一个与时间信息强关联的模型架构,pi0.5相较于pi0对时间的升级后的处理是相当值得注意的。有关核心代码部分的详细说明,可以参考我的这一篇博客

pi0的处理方式

对于时间信息,pi0模型的处理思路是这样的:
1. 编码:它将标量timestep通过posemb_sincos编码成一个高维向量time_emb。 2. 复制:它将time_emb复制action_horizon份,得到time_tokens。 3. 拼接:它将time_tokensaction_tokens(代表 在序列维度上拼接jnp.concatenate)。 4. 融合:它用一个action_time_mlp来“融合”这两个拼接在一起的token块。 5. 输入:最后,这个融合后的、“既包含信息又包含信息”的token块,被作为普通的 token 送入PaliGemma Backbone。
这种操作面临的问题是:
信号间接且易“稀释”:时间的信息被混在token序列里。它需要流经整整18层的 Transformer Block。在每一层,这个“时间信号”都不可避免地会与“内容信号”(即本身)通过自注意力和FFN发生“串扰”和“稀释”。
学习负担重:PaliGemma必须自己学会:“我得在18层之后的序列末尾去读取这几个特殊的token,理解它们代表时间,然后我再‘记起’我应该根据这个来调整我所有的行为。”这是一个非常困难且间接的学习任务。

pi0.5的处理方式

代码中,if self.pi05分支用了一种更先进、更根本的解决方案:分离“内容”和“过程”,将作为“全局控制信号” (AdaRMS) 。
“内容”路径:action_tokens(代表直接作为token进入PaliGemma。这路只负责回答:“我正在处理什么内容?“过程”路径 (AdaRMS)timestepposemb_sincos编码后,进入专属的time_mlp进行处理。它被生成为一个特殊的、单独的向量adarms_cond。这个adarms_cond不进入 token序列。相反,它被作为一个“VIP参数”直接传递self.PaliGemma.llm函数调用:adarms_cond=[None, adarms_cond]。这路只负责回答:“我现在应该处于什么工作模式?
这种方法的“高效”之处在于: adarms_cond被gemma.py接收后,一路广播到一层Transformer Block内部的RMSNorm层。在gemma.py中:RMSNorm接收到这个cond并用一个线性层处理,生成三个控制信号:scale, shift, gate。并使用这些信号来动态地改变网络的计算。
那么使用这种动态时间控制器有什么好处呢?当(高噪声)时,我们需要增大推演的过程,“大刀阔斧”的对噪点数据进行改动,而当 (低噪声)时,我们则需要“精雕细琢”,防止已经大致完成的结果被大幅修改。通过任务解耦和动态地控制,使得模型的“虚假关联”概率大大降低,增强了模型的性能,也简化了赘余的代码结构。

总结

pi0.5相比pi0,在如下方面有变动
对比维度
π0
π0.5
模型结构
使用统一Transformer,包含VLM和flow-matching动作专家;全程使用continuous action预测
使用两阶段架构: 预训练使用离散token的语言-视觉对齐 后训练引入flow-matching动作专家生成连续动作
动作表示
始终使用flow matching来生成连续动作
预训练用离散token预测动作 后训练加入连续动作chunk学习
高层推理能力
无显式高层任务规划模块,接收完整语言提示
拥有高层推理机制根据用户指令自动规划子任务(chain-of-thought风格),提升长时任务能力
训练数据
仅使用机器人动作数据(MM, ME, CE)
使用联合训练配方: • 移动操控数据(MM) • 多环境机械臂数据(ME) • 实验室跨机器人数据(CE) • 高层语言标签数据(HL) • 网页图文数据(WD) • 人类语言演示(VI)
泛化能力
能解决训练中接触过的任务,但泛化受限
能在训练中从未见过的家庭环境中成功完成复杂任务(如整理床铺、厨房收拾等)
对语言指令理解能力
有限,缺少多样语言监督
通过多源语言数据(WD + HL + VI)训练,语言理解和跟随能力更强,可处理更复杂自然语言任务
模型效果(实验)
在mock home和真实家庭测试中完成率较低
显著优于π0和π0-FAST+Flow,在多阶段任务和语言跟随任务中表现更佳
在功能性上,pi0.5解决了pi0对高级语言指令理解不佳、泛化能力较差的问题,在继承pi0的VLM+动作专家双训练架构基础上,在训练数据集和代码中有关时间信息的运用方面的变化尤其明显且重要。
 
【Flow matching】再读流匹配算法【VLA】openVLA/pi0对比学习记录
Loading...