Contents — find the section you need
许多视觉-语言-动作 (VLA) 模型将图像、语言和动作表示为一个词元序列,并逐个预测下一个词元。由 Physical Intelligence 于 2024 年发布的 π0 (pi-zero) 改变了动作生成机制本身:它不再采用自回归词元化的方式对动作进行标记,而是生成一个具有条件流匹配的连续动作块。本文将逐步分析论文“π0:用于通用机器人控制的视觉-语言-动作流模型”(Black、Brown、Driess 等人,《Physical Intelligence》,arXiv:2410.24164)中描述的设计。
本文基于原始论文 (arXiv:2410.24164) 和 PaliGemma 论文 (arXiv:2407.07726) 中的描述。
0. 您将学到什么
-
与 RT-2 和 OpenVLA 等自回归 VLA 模型相比,π0 有哪些变化
-
PaliGemma VLM 主干网和专用“动作专家”如何协同运行
-
条件流匹配如何生成动作,包括推理时的欧拉积分
-
如何处理七种机器人类型的异构跨具身训练
-
为什么预训练和后训练要分成两个阶段进行
1. 首先是结论:π0 是什么?
π0 是一个通用机器人控制模型,它结合了预训练的视觉语言模型 (PaliGemma) 和专用的动作专家,后者通过条件流匹配生成连续的动作块。单个模型接收摄像头图像、自然语言指令和机器人的关节状态,然后一次性输出最多包含 50 个未来步骤的动作序列。该模型已在来自七个不同机器人平台的数据上进行预训练,可以零样本执行某些任务,并且旨在通过微调以适应新任务,只需相对较少的数据即可完成。
2. 为什么使用流匹配生成动作?
早期的视觉语言算法 (VLA),例如 RT-2 和 OpenVLA,将连续的动作值(关节角度、速度等)离散化到预定义的区间中,并将它们分配给原本未使用的语言模型词汇表中的标记。这使得图像、语言和动作可以作为一个标记序列来处理。这种方法易于实现,但有两个局限性。首先,由于动作是逐个生成的,因此高频、高维动作序列的生成速度可能较慢。其次,离散化是对动作空间的粗略近似,这使得表示平滑、精确的动作(例如折叠布料或倾倒液体)变得更加困难,因为在这些动作中形变和接触至关重要。
π0 通过避免动作标记化,并使用流匹配(一种扩散模型)来解决这两个问题,只需一次遍历动作表示即可生成一个包含 50 个步骤的连续动作块。该论文明确指出,这种设计能够处理频率高达 50 Hz 的高灵敏度任务和动作块。
3. 输入什么?
π0 接收三种类型的输入:
-
图像 o_t:来自多个摄像头视角的 RGB 图像(最多三个视角,具体取决于配置)
-
语言指令:自然语言任务描述,例如“折叠衬衫”
-
本体感觉 q_t:状态向量,例如机器人的关节角度
这些输入被合并为一个观测值 o_t = [I_t^1, \dots, I_t^n, \ell_t, q_t]。由于不同机器人配置的摄像头数量和关节自由度不同,因此需要进行填充和掩码处理以对齐尺寸,如下所述。
4. 预测结果是什么?
输出是一个动作块 A_t = [a_t, a_{t+1}, \dots, a_{t+H-1}],其中包含从当前时间开始的 H=50 个动作。与每次生成一个动作标记的自回归模型不同,π0 一次性生成整个动作块。通过流匹配生成此数据块是 π0 的核心思想。
5. 基本架构
π0 运行一个预训练的 VLM(PaliGemma)以及一个专门用于动作生成的小型“动作专家”。这两个 Transformer 在同一层内并行运行。
图 1 — PaliGemma(图像和语言)和动作专家(状态和噪声动作)使用不同的参数集,但通过分块因果注意力机制共享相同的 Transformer 层。
动作专家的向量场通过 10 个欧拉积分步骤进行累积,生成一个 50 步的动作块。
6. 组件的技术细节
PaliGemma 主干网和动作专家
VLM 主干网基于 Google 于 2024 年发布的 PaliGemma 初始化。PaliGemma 将 SigLIP-So400m 视觉编码器与 Gemma-2B 语言模型相结合,形成一个 3B 参数的 VLM。其目的是将从互联网规模的预训练中学习到的视觉和语言知识迁移到机器人动作生成中。
除了 PaliGemma(约 30 亿参数)之外,π0 还增加了一个约 3 亿参数的动作专家:一个较小的 Transformer 模型,宽度为 1024,MLP 维度为 4096。PaliGemma 的相应参数为:宽度 2048,深度 18 层,MLP 维度 16384。因此,完整的 π0 模型约有 33 亿参数。
关键在于,这两个网络并非完全独立运行。它们使用不同的参数集来处理不同的词元类型,但共享相同的 Transformer 层。 PaliGemma 处理图像和语言词元,而动作专家处理状态和带噪声的动作词元;信息通过共享层中的块级因果注意力机制在它们之间传递。动作词元可以在其所属块内进行双向关注,但训练约束阻止它们查看未来的信息。这类似于混合专家模型的思想,它允许一个模型结合离散的语言输出(使用交叉熵损失函数训练)和连续的动作输出(使用流匹配损失函数训练)。
基于条件流匹配的动作生成
π0 使用条件流匹配生成动作,它属于基于扩散的生成方法家族。在训练过程中,真实动作块 A_t 和高斯噪声 \epsilon \sim \mathcal{N}(0, I) 沿时间参数 \tau \in [0,1] 线性混合,生成带噪声的动作 A_t^\tau。
为了使 A_t^\tau 向真实动作 A_t 移动,目标方向定义如下。
动作专家被训练成一个网络v_\theta(A_t^\tau, o_t),该网络根据观测值o_t和带噪声的动作A_t^\tau预测目标向量场。损失函数是预测向量场与目标向量场之间的平方误差。
在推理阶段,采样从纯噪声A_t^{\tau=0} = \epsilon开始。前向欧拉方法将预测向量场从\tau=0积分到\tau=1,从而组装最终的动作块。
本文使用\delta = 0.1,即10个积分步骤,从\tau=0到\tau=1。 RT-2/OpenVLA 中的自回归标记生成会重复执行动作块长度范围内的序列解码,而 π0 则通过 10 次更新步骤对整个动作块进行精细化处理。因此,更新次数不会随着动作块长度的增加而增长,这正是其速度优势的实际来源。
跨具身学习——在不同机器人上训练同一模型
π0 的训练数据涵盖七个不同的机器人平台:UR5e、双臂 UR5e、Franka、双臂 Trossen、双臂 ARX 和 AgileX、移动版 Trossen 和移动版 ARX,以及移动版 Fibocom。摄像头数量为 2-3 个,自由度数量则根据机器人的不同而从 7 到 17 个不等。
为了在一个模型中表示这些异构数据,π0 应用了以下归一化方法:
-
状态向量 q_t 和动作向量 a_t 被填充至训练数据的最大自由度(18 维)。自由度较少的机器人使用零填充来填充未使用的条目。
-
对于摄像头少于三个的机器人,缺失的图像槽位将被掩蔽,以便注意力机制忽略这些位置。
-
由于样本数量会因任务和机器人组合的不同而显著变化,因此对于包含 n 个样本的组合,采样将以 n^{0.43} 为权重。这可以降低数据丰富的任务的主导地位。
完整的训练集包含约 9 亿个时间步,或约 10,000 小时:包括 Physical Intelligence 自身来自 68 个任务和 7 个机器人的数据,以及 Open X-Embodiment (OXE)、Bridge v2 和 DROID 等公共数据集。
两阶段训练方案——预训练和后训练
π0 训练大致分为两个阶段。预训练 使用完整、庞大且多样化的数据集。它利用任务名称和分段标注将执行过程划分为几秒的单元,从而构建广泛的基础知识。后训练 使用高质量、经过筛选的数据,专注于特定的下游任务,将基础知识转化为所需的行为。
论文给出了这种划分的具体原因:“如果我们只使用高质量数据进行训练,模型将无法学习如何从故障中恢复。” 预训练中多样化的执行数据(并非总是完美无缺)使模型积累了在出现问题时进行恢复的经验。训练后的高质量数据进一步提升了模型执行目标任务的能力,使其达到预期的精度。
为什么选择流匹配而不是传统的扩散模型?
标准的扩散模型,例如 DDPM(去噪扩散概率模型),假设噪声的添加和去除遵循非线性路径,通常需要数十甚至数百次迭代。而 π0 中的条件流匹配则使用线性高斯概率路径,将噪声 \epsilon 和真实动作 A_t 用直线 (A_t^\tau = \tau A_t + (1-\tau)\epsilon) 连接起来。由于路径是直线,需要学习的向量场更简单,只需少量积分步骤(π0 中为 10 次)即可达到目标动作的有效精度。本文认为,这种方法是生成高频、高维动作块并接近实时速度的实用选择。
7. π0 与其他 VLA 动作生成方法的区别
VLA 动作生成方法可以分为三大类。
| 方面 | 自回归分词(RT-2、OpenVLA) | 扩散头(例如 Octo) | 流匹配(π0) |
|---|---|---|---|
| 动作表示 | 逐个预测离散化的动作值 | 通过扩散过程生成连续值,并以 Transformer 输出为条件 | 通过流匹配生成连续值 |
| 生成迭代次数 | 随块长度而变化;块越长,速度越慢 | 取决于扩散步骤的数量 | 积分步骤较少;π0 使用 10 个积分步骤 |
| 适用于高频、灵巧动作 | 离散化可能成为瓶颈 | 可以生成平滑的输出,但多阶段会增加延迟 | 能够相对快速地生成高频块(高达 50 Hz) |
| 实现简易性 | 简单:扩展语言模型词汇表 | 需要专用扩散头 | 需要专用动作专家和向量场设计 |
| 计算成本 | 较大的顺序解码开销 | 中等到高,取决于扩散步骤 | 相对较轻,因为它使用的步骤较少 |
| 实现难度 | 相对较低;现有的语言模型基础架构可重用 | 中等 | 高;参数共享和损失设计跨越两种输出类型 |
自回归分词易于实现,但随着动作块的增长,顺序解码会增加延迟。扩散头可以生成平滑的连续值,但需要多阶段生成过程。π0 介于这两种方法之间:它处理连续值,同时在固定的少量积分步骤中生成整个动作块。从模仿学习的角度来看,行为克隆 (BC) 和 DAgger 描述了如何学习从观察到动作的映射,而 π0 是使用大型向量模型和专用生成头实现该映射的一种方式。参见“模仿学习和逆强化学习”了解基础知识。
8. 难点/复杂环境
论文中报告的评估结果展现的是总体趋势,而非普遍保证。在几个实际任务(例如折叠衬衫、清理餐桌、打包杂货和从烤面包机中取出面包)上,未经微调的预训练基础模型比 OpenVLA 和 Octo 等现有基线模型表现出更高的成功率。π0 在折叠衬衫等任务上的表现尤其接近可靠模型,而 OpenVLA 和 Octo 则远远落后。然而,这种差异也反映了预训练数据的规模和多样性,因此很难将优势完全归因于流匹配。
论文还指出了一个直接的局限性:任务与预训练数据所代表的任务越接近,其优势就越大;而与预训练数据分布相差甚远的任务则更依赖于训练后数据的质量和数量。对于组装盒子或包装鸡蛋等耗时较长的多阶段任务,报告的成功率可能相对较高,但某些方面仍不及简单的单动作任务那样接近完美。
更一般地说,跨具身学习的零填充方法并不能自动扩展到具有全新自由度配置(训练中未包含)的机器人。此外,流程匹配集成步骤的数量(10)是固定的,这限制了推理用户在速度-精度权衡方面的精细度调整。
9. 如何在实践中选择
对于必须使用单一模型处理多种任务的通用操作机器人,π0 是一个不错的起点:其设计支持一些零样本行为,并且可以使用相对较少的数据进行微调。Physical Intelligence 已通过 openpi 代码库开源了权重和代码,降低了定制机器人实验的门槛。
对于诸如折叠布料或倾倒液体这类对接触和流畅轨迹要求较高的任务,流动匹配模型(或扩散头模型,例如 Octo)可能比依赖离散动作标记的自回归 VLA 更合适。
如果目标仅仅是以低延迟执行简单的拾取和放置任务,π0 的 33 亿个参数可能过多。轻量级的特定任务模仿模型,例如小型基于 BC 的网络,可能在实现成本和运行成本之间取得更好的平衡。
如果某个特定机器人将执行一组固定的任务,那么在特定任务数据上训练一个更窄的模型可能比使用像 π0 这样的大型预训练模型更高效。通用模型和专用模型之间的选择取决于目标任务的多样性和可收集的数据量。
对于 π0.5、π0.6 和 π0.7 等较新版本,以及更广泛的 VLA 架构和 LIBERO 基准测试的竞争情况,请参阅“VLA 技术趋势”。关于模仿学习、逆强化学习以及 BC/DAgger 中的协变量偏移问题的基础知识,请参阅“模仿学习和逆强化学习”。
10. 三行总结
-
π0 在同一 Transformer 层中运行 PaliGemma VLM(3B)和专用动作专家(300M),通过条件流匹配生成连续动作块。
-
它根据 A_t^\tau = \tau A_t + (1-\tau)\epsilon 预测目标向量场 u = \epsilon - A_t,然后在推理时使用 10 个欧拉积分步骤生成一个 50 步的动作块。这与自回归分词的主要区别在于,自回归分词的解码速度会随着动作块的增长而降低。
-
它使用零填充和加权采样对七种机器人类型进行训练,然后将多样化的预训练数据与高质量的后训练数据分开,以平衡模型的通用性和特定任务的性能。
参考资料
一个能够生成动作的模型能否在不进行任何调整的情况下操控一个未知的机器人?
关节配置、动作表示、观测数据和训练数据接口必须匹配。作为基础模型并不意味着无需调整即可兼容。
评论
请先登录。
暂无数据。