【具身智能】π0论文阅读随笔
本文是在阅读《π0: A Vision-Language-Action Flow Model for General Robot Control》时记录的笔记,带有很强个人主观性,仅供参考。
前言
\(\pi_0\)是为了尽可能激发机器人在复杂,精确,灵巧任务中的潜力而设计的。
具体建立在一个VLM基础上,创新了流匹配机制,和一个训练范式。
本文主要讨论流匹配机制和训练范式。
(这两个在我看来是主要的创新点)
流匹配
前置
流匹配是一种构建与\(\pi_0\)基本工程架构上,再于其中一架构中的机制。
具体的,\(\pi_0\)可以视为一个VLM模型+一个动作专家模型
其中,VLM模型以PaliGemma模型为基础模型。
动作专家模型,专门处理VLM处理后的特征向量(这里将它称为条件动作特征向量),生成目标动作。
这里必须要解释清楚。(可能读完OpenVLA等看这个直接惯性思维了😂)
不同于其它的(OpenVLA)VLA,VLM直接就预测了动作,而没有专门的动作专家。
\(\pi_0\)是将VLM视为编码器+投影器,将输入转化到同一维度(通常是语言维度)上的特征向量。(即条件动作特征向量)
机制
训练函数
其中:
- \(A_t\)为目标动作序列, \(\mathbf{A}_t = \left[ \mathbf{a}_t, \mathbf{a}_{t+1}, \dots, \mathbf{a}_{t+H-1} \right]\),其中\(H=50\)
- \(o_t\)为条件动作特征向量,\(o_t = [I_t^1, \dots, I_t^n, \ell_t, q_t]\),其中\(I\)为图像,\(\ell\)为语言,\(q\)为机器人状态。(通过VLM后的)
- \(\mathbf{v}_\theta\)为动作专家网络,\(\mathbf{u}\)为去噪向量场
- \(τ\)为流匹配时间步
解释:
这类似于扩散模型。(倒不如说就是扩散模型的变体)
扩散模型即从随机噪声中去噪,得到秩序。
在机器人动作中,可视为从随机动作中去噪,得到有序动作。
至于为何叫扩散模型……
去噪不是一步到位,而是分成许多步(体现为\(τ\)流匹配时间步),一步一步去噪。这在现实世界中类似于分子从“无序”,通过扩散作用,变为“有序”。
而\(\mathbf{u}\)就是每步扩散的“标准答案”,网络\(\mathbf{v}_\theta\)被训练以拟合标准扩散过程。
推理
从纯噪声开始 \(A_t^0 \sim \mathcal{N}(0, I)\),通过网络\(\mathbf{v}_\theta\)去噪,生成最终动作序列 \(\mathbf{A}_t\)
其它细节
- \(\mathbf{u}(\mathbf{A}_t^T | \mathbf{A}_t) = \mathbf{A}_t - \epsilon\),即从纯噪声到目标动作的标准场
- 使用全双向注意力掩码,每单一动作的去噪可收集来自整个动作序列的信息,使得生成的动作更加平滑稳定
- 从强调较低时间步的 Beta 分布中对流匹配时间步 τ 进行采样,可理解为在噪声强度较大的环境中进行训练,以提高稳定性和生成能力
- 具体的扩散规则:\(\mathbf{A}_t^{\tau + \delta} = \mathbf{A}_t^\tau + \delta \mathbf{v}_\theta(\mathbf{A}_t^\tau, \mathbf{o}_t)\),其中\(\delta=0.1\)
- \(\pi_0\)的扩散模型是基于Transfomer构建的(与DDPM等图像的扩散模型区别)
- 通过上一条,在实现全双向注意力掩码时,可将\(o_t\)的K,V矩阵缓存(因为它在一次动作生成中不会改变),节省计算
关于扩散模型,后续可能会在时间充裕的情况下写关于扩散模型的具体细节的文章。
训练范式
预训练+后训练
-
预训练,在互联网大规模数据集上进行海量训练,赋予模型各种经验(例如对世界的“理解”,从错误中的纠正等)。
(数据质量低,多样化程度高) -
后训练,在下游任务中的高质量数据集(正确操作,细节操作等),赋予模型操作特定任务的高水平。
主要的就这两方面吧。
\(~\)

浙公网安备 33010602011771号