原文链接
模型框架

模型结构

1. 模型架构:双专家协作(Vision-Language + Action Expert)

π0并没有从零开始发明一个新架构,而是采用了类似 混合专家模型(MoE) 的变体,将“语义理解”和“动作控制”解耦:

  • VLM 主干(大脑): 基础是 PaliGemma (3B)
    • 它负责处理图像输入(通过 SigLIP 编码器)和文字指令(通过 Gemma 2B 语言模型)。
    • 这部分继承了互联网的海量常识。比如它知道“杯子”是什么,也知道“洗碗”通常包含哪些步骤。
  • 动作专家(Action Expert,肌肉神经): 这是一个额外增加的 300M 参数 模块。
    • 权重隔离: 图像和文字标记(Tokens)走 VLM 权重;而机器人的关节状态(Proprioception)和动作标记(Action Tokens)走“动作专家”权重。
    • 注意力共享: 关键点在于,虽然权重不同,但它们在 Transformer 的自注意力层(Self-Attention)是互通的。这意味着“动作标记”可以随时查阅“图像标记”提取出的特征,从而实现精准避障。

2. 动作生成机制:条件流匹配(Conditional Flow Matching)

这是 π0 最核心的技术创新。传统的机器人模型(如 RT-1)通过分类(离散化)预测动作,而 π0 使用的是连续生成。
为什么不用扩散模型(Diffusion)而用流匹配(Flow Matching)?
扩散模型(如之前著名的 Diffusion Policy)是通过不断“去噪”来生成动作,虽然效果好,但在实时性要求极高的机器人领域,计算成本略高且路径复杂。
流匹配的工作原理:

  1. 定义“流”: 模型学习的是一个向量场(Vector Field)。想象一下,你有一堆乱七八糟的随机噪声点(代表完全随机的动作),流匹配的目标是寻找一条最短的直线路径,将这些噪声点推向真实的动作轨迹。
  2. 动作块(Action Chunking):
    π0 不是一次预测一个动作,而是一次预测未来 50 个时间步(H=50) 的动作序列。
  3. 推理过程(Inference):
    • 从高斯噪声 A0 开始。
    • 利用模型预测的“速度场” vθ,通过 10 步欧拉积分(Euler Integration)。
    • 每一层积分都让动作更接近真实轨迹。
    • 优势: 相比扩散模型,它的路径更直(概率路径更简单),收敛更快,生成的动作轨迹更加平滑且高频(最高支持 50Hz 控制)。

3. 数据处理:跨形态兼容(Cross-Embodiment)

需要同时指挥不同的机器人(有的 7 轴,有的 14 轴,有的有底盘),它是如何做到的?

  • 最大动作空间对齐:
    模型定义了一个统一的向量空间(例如 18 维),这是所有机型中最大的动作自由度。
    • 如果是一个只有 7 维动作的单臂机器人,剩下的维度就填充零(Zero-padding)。
    • 通过这种方式,同一个神经网络可以输入不同维度的状态并输出对应的控制指令。
  • 图像掩码(Masking):
    有的机器人有 3 个摄像头,有的只有 2 个。模型会对缺失的图像位置进行掩码处理,使其不干扰决策。

4. 训练过程:预训练与后训练的“食谱”

论文强调,模型的效果很大程度上取决于训练数据的组合方式:
第一阶段:大规模预训练 (The “Foundation”)

  • 目标: 获取通用物理常识和鲁棒性。
  • 数据: 10,000+ 小时数据,包含大量的“非完美”操作。
  • 作用: 让机器人学会“即便被推了一下,或者物体滑落了,该如何补救”。它学会的是基本的物理规则。

第二阶段:后训练/微调 (The “Alignment”)

  • 目标: 获取高精度的技能。
  • 数据: 针对特定复杂任务(如折衣服、组装纸箱)的高质量演示数据。
  • 作用: 这类似于 LLM 的指令微调(SFT)。通过高质量数据,让机器人学会“优雅、高效、连贯”地完成任务,而不仅仅是“能动”。

总结:

  • 输入: 机器人拍下当前的几张照片,加上关节角度 qt,再加上人类说的一句“把桌子清理干净”。
  • 编码: 图像变 Patch,文字变 Embedding,动作初值是一堆噪声。
  • 计算: VLM 部分理解场景,动作专家部分结合场景特征,通过流匹配计算出接下来 50 步的“推力方向”。
  • 积分: 经过 10 次迭代,动作序列从噪声变成了平滑的轨迹。
  • 执行: 机器人快速执行这组动作,并在 0.5 秒后再次循环整个过程(闭环控制)。

公式

1. 预测目标:动作块 (Action Chunking)

公式:
A t = [ a t , a t + 1 , … , a t + H − 1 ] A_t = [a_t, a_{t+1}, \dots, a_{t+H-1}] At=[at,at+1,,at+H1]

  • 数学拆解:
    • A t A_t At:机器人输出的“动作大礼包”。
    • a t a_t at:每一个瞬间的具体指令(如:手肘转动 5 度)。
    • H H H:预测的时间跨度(论文中设定为 50 个时间步)。
  • 大白话翻译:

    “未雨绸缪”: 机器人不再是动一下想一下,而是一次性规划好未来 50 个瞬间的所有动作。这就像你投篮时,大脑预先算好了从起跳到出手的整套路径,而不是落地后再想下一步。


2. 感官输入:机器人看到了什么 (Observation)

公式:
o t = [ I t 1 , … , I t n , ℓ t , q t ] o_t = [I^1_t, \dots, I^n_t, \ell_t, q_t] ot=[It1,,Itn,t,qt]

  • 数学拆解:
    • I t n I^n_t Itn:多个相机的图像(眼睛看到的画面)。
    • ℓ t \ell_t t:人类的语言指令(耳朵听到的要求)。
    • q t q_t qt:机器人当前的关节角度(身体感觉到的姿态)。
  • 大白话翻译:

    “眼耳手脑协同”: 模型在做决定前,会同时审视:画面里有什么、主人让干什么、以及我的手现在伸到了哪里。


3. 生成机制:流匹配路径 (Probability Path)

流匹配(Flow Matching)的目标是将随机噪声(无序)平滑地转化成精准动作(有序)。

公式:
q ( A t τ ∣ A t ) = N ( τ A t , ( 1 − τ ) I ) q(A^\tau_t | A_t) = \mathcal{N}(\tau A_t, (1 - \tau)I) q(AtτAt)=N(τAt,(1τ)I)

  • 数学拆解:
    • τ \tau τ (Tau):时间轴,从 0 0 0(纯噪声)逐渐变到 1 1 1(目标动作)。
    • A t A_t At:理想的真动作。
    • I I I:标准噪声(乱码)。
  • 大白话翻译:

    “洗照片的过程”: 想象你在洗照片。刚开始是一张模糊的白纸( τ = 0 \tau=0 τ=0),随着显影液作用,照片一点点变清晰,直到最后出现完美图像( τ = 1 \tau=1 τ=1)。这个公式定义了动作从“混乱”到“清晰”的演变路径。


4. 训练目标:学习那个“推力” (Loss Function)

我们要训练模型学会:看到模糊的动作,该往哪个方向“推”才能变回正确动作。

公式:
L τ ( θ ) = E ∥ v θ ( A t τ , o t ) − u ( A t τ ∣ A t ) ∥ 2 L^\tau(\theta) = \mathbb{E} \| v_\theta(A^\tau_t, o_t) - u(A^\tau_t | A_t) \|^2 Lτ(θ)=Evθ(Atτ,ot)u(AtτAt)2

  • 数学拆解:
    • L L L:损失函数(数值越小,模型越聪明)。
    • v θ v_\theta vθ模型预测出的“推力”(它的猜测)。
    • u u u真实的“推力方向”(标准答案)。
  • 大白话翻译:

    “寻找修正力”: 我们给机器人看一个被噪声污染的废动作 A t τ A^\tau_t Atτ,问它:“想变回真动作,该往哪儿使劲?”模型给个答案( v θ v_\theta vθ),我们拿它跟标答( u u u)比对。差距越小,说明机器人纠错能力越强。


5. 推理执行:如何一步步产生动作 (Inference)

在实验室干活时,机器人通过多次微调(迭代)来生成最终动作。

公式:
A t τ + δ = A t τ + δ v θ ( A t τ , o t ) A^{\tau+\delta}_t = A^\tau_t + \delta v_\theta(A^\tau_t, o_t) Atτ+δ=Atτ+δvθ(Atτ,ot)

  • 数学拆解:
    • A t τ A^\tau_t Atτ:当前的动作草稿。
    • δ \delta δ (Delta):每一步修正的小幅步长。
    • v θ v_\theta vθ:模型给出的修正指导。
  • 大白话翻译:

    “十步成画”:

    1. 初始: 先随手瞎画一个动作(噪声 A 0 A^0 A0)。
    2. 修画: 问模型“怎么改?”,模型指个方向,机器人就把动作往那边挪一点点( δ \delta δ)。
    3. 循环: 同样的步骤重复 10 次。
    4. 结果: 10 步之后,最初的“瞎画”就变成了能够折衣服、摆碗筷的精准指令。

总结:向量 A A A 到底长什么样?

最后生成的向量 A A A 在计算机里是一个 50行 × 18列 的数字矩阵:

  • 列(18维): 代表机器人的“物理维度”(如 14 个手臂关节电机、2 个夹爪开合、2 个底盘轮子速度)。
  • 行(50行): 代表未来的“时间刻度”(每行代表 0.02 秒后的动作)。

π 0 \pi_0 π0 的本质就是:利用大模型的大脑理解环境信息( o t o_t ot),通过流匹配的推力( v θ v_\theta vθ),把一团乱麻(噪声)梳理成一份完美的 50 步行动方案( A A A)。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐