本文是在阅读《π0: A Vision-Language-Action Flow Model for General Robot Control》时记录的笔记,带有很强个人主观性,仅供参考。

前言

π0\pi_0π0是为了尽可能激发机器人在复杂,精确,灵巧任务中的潜力而设计的。

具体建立在一个VLM基础上,创新了流匹配机制,和一个训练范式。

本文主要讨论流匹配机制和训练范式。
(这两个在我看来是主要的创新点)

流匹配

前置

流匹配是一种构建与π0\pi_0π0基本工程架构上,再于其中一架构中的机制。

具体的,π0\pi_0π0可以视为一个VLM模型+一个动作专家模型

其中,VLM模型以PaliGemma模型为基础模型。

动作专家模型,专门处理VLM处理后的特征向量(这里将它称为条件动作特征向量),生成目标动作。

这里必须要解释清楚。(可能读完OpenVLA等看这个直接惯性思维了😂)
不同于其它的(OpenVLA)VLA,VLM直接就预测了动作,而没有专门的动作专家。
π0\pi_0π0是将VLM视为编码器+投影器,将输入转化到同一维度(通常是语言维度)上的特征向量。(即条件动作特征向量)

机制

训练函数

Lτ(θ)=Ep(At∣ot),q(At∣At)∥vθ(Atτ,ot)−u(Atτ∣At)∥2L^τ(\theta) = \mathbb{E}_{p(\mathbf{A}_t | \mathbf{o}_t), q(\mathbf{A}_t | \mathbf{A}_t)} \|\mathbf{v}_\theta(\mathbf{A}_t^τ, \mathbf{o}_t) - \mathbf{u}(\mathbf{A}_t^τ | \mathbf{A}_t)\|^2Lτ(θ)=Ep(Atot),q(AtAt)vθ(Atτ,ot)u(AtτAt)2

其中:

  • AtA_tAt为目标动作序列, At=[at,at+1,…,at+H−1]\mathbf{A}_t = \left[ \mathbf{a}_t, \mathbf{a}_{t+1}, \dots, \mathbf{a}_{t+H-1} \right]At=[at,at+1,,at+H1],其中H=50H=50H=50
  • oto_tot为条件动作特征向量,ot=[It1,…,Itn,ℓt,qt]o_t = [I_t^1, \dots, I_t^n, \ell_t, q_t]ot=[It1,,Itn,t,qt],其中III为图像,ℓ\ell为语言,qqq为机器人状态。(通过VLM后的)
  • vθ\mathbf{v}_\thetavθ为动作专家网络,u\mathbf{u}u为去噪向量场
  • τττ为流匹配时间步

解释:

这类似于扩散模型。(倒不如说就是扩散模型的变体)

扩散模型即从随机噪声中去噪,得到秩序。

在机器人动作中,可视为从随机动作中去噪,得到有序动作。

至于为何叫扩散模型……

去噪不是一步到位,而是分成许多步(体现为τττ流匹配时间步),一步一步去噪。这在现实世界中类似于分子从“无序”,通过扩散作用,变为“有序”。

u\mathbf{u}u就是每步扩散的“标准答案”,网络vθ\mathbf{v}_\thetavθ被训练以拟合标准扩散过程。

推理

从纯噪声开始 At0∼N(0,I)A_t^0 \sim \mathcal{N}(0, I)At0N(0,I),通过网络vθ\mathbf{v}_\thetavθ去噪,生成最终动作序列 At\mathbf{A}_tAt

其它细节

  • u(AtT∣At)=At−ϵ\mathbf{u}(\mathbf{A}_t^T | \mathbf{A}_t) = \mathbf{A}_t - \epsilonu(AtTAt)=Atϵ,即从纯噪声到目标动作的标准场
  • 使用全双向注意力掩码,每单一动作的去噪可收集来自整个动作序列的信息,使得生成的动作更加平滑稳定
  • 从强调较低时间步的 Beta 分布中对流匹配时间步 τ 进行采样,可理解为在噪声强度较大的环境中进行训练,以提高稳定性和生成能力
  • 具体的扩散规则:Atτ+δ=Atτ+δvθ(Atτ,ot)\mathbf{A}_t^{\tau + \delta} = \mathbf{A}_t^\tau + \delta \mathbf{v}_\theta(\mathbf{A}_t^\tau, \mathbf{o}_t)Atτ+δ=Atτ+δvθ(Atτ,ot),其中δ=0.1\delta=0.1δ=0.1
  • π0\pi_0π0的扩散模型是基于Transfomer构建的(与DDPM等图像的扩散模型区别)
  • 通过上一条,在实现全双向注意力掩码时,可将oto_tot的K,V矩阵缓存(因为它在一次动作生成中不会改变),节省计算

关于扩散模型,后续可能会在时间充裕的情况下写关于扩散模型的具体细节的文章。

训练范式

预训练+后训练

  • 预训练,在互联网大规模数据集上进行海量训练,赋予模型各种经验(例如对世界的“理解”,从错误中的纠正等)。
    (数据质量低,多样化程度高)

  • 后训练,在下游任务中的高质量数据集(正确操作,细节操作等),赋予模型操作特定任务的高水平。

主要的就这两方面吧。

 ~ 

Logo

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

更多推荐