【论文阅读】π0 : A Vision-Language-Action Flow Model for General Robot Control
- [1 为什么要读本论文](#1 为什么要读本论文)
- [2 背景](#2 背景)
- [3 方法](#3 方法)
-
- [3.0 模型架构](#3.0 模型架构)
-
- [3.0.1 输入输出](#3.0.1 输入输出)
- [3.0.2 交互方式](#3.0.2 交互方式)
- [3.0.3 去噪方案](#3.0.3 去噪方案)
- [3.1 低质量数据和高质量数据的兼顾](#3.1 低质量数据和高质量数据的兼顾)
- [3.2 预训练---低质量数据+自适应权重](#3.2 预训练—低质量数据+自适应权重)
- [3.3 后训练](#3.3 后训练)
1 为什么要读本论文
该论文有2个里程碑式的意义:
- 系统应用预训练-微调的训练框架。之前的RT-2是直接将用网络数据训练的预训练模型进行微调,在微调阶段拿操作数据进行训练,从而才获得了对物理世界的理解,比如抓,取。π0在预训练中就加入操作数据,使得预训练模型本身就具备文本理解和物理世界的理解,形成了一个原生的基座模型。然后再在高质量高灵巧度的数据上进行训练,从而泛化到更多的场景中。
- 采用Flow matching大大提高动作生成效率,使灵巧控制(高达50Hz)成为可能。
2 背景
当前机器人学习(robot learning)领域面临的3大难题:
- 高质量机器人数据获取
- 泛化性
- 鲁棒性
该论文认为需要构建一个基座模型(foundation model)来解决上述问题:
- 基座模型在预训练时使用大量的网络数据和多样的机器人数据,在微调时使用少量的高质量数据,因此避免了大规模高质量数据的获取。
- 通过多样的机器人数据,提高模型的泛化性和鲁棒性。
为了构建这样的基座模型,有3个难点:
- 数据规模
- 模型框架
- 训练策略
3 方法
3.0 模型架构
Pre-trained VLM + 基于FM的action expert
论文 | 预训练模型 | 大小 |
---|---|---|
RT-2 | PaLI-X / PaLM-E | 55B / 562B |
OpenVLA | 视觉DINO v2 + 语言 LLaMA v2 / Gemma | 最大3.2B + 7-70B |
π0 | PaliGemma | 3B |
GR00T | Eagle-2 | 1.3B |
3.0.1 输入输出
输入:
- 图像
- 指令,比如"fold shirt"
- 本体状态
- 动作噪声
输出:去噪后的动作
3.0.2 交互方式
其中图像和指令通过VLM处理,本体状态通过action expert模型(随机初始化)处理。然后通过Transformer进行交互。
- 文本图像tokens 只和自己交互,不与状态 / 噪声动作进行交互,避免污染VLM的语义空间。
- 状态tokens 可以与自己和文本图像进行交互,使得自身状态和外部环境进行对齐和理解。
- 动作tokens 可以与状态 和 文本图像进行交互,获取全面的内外部信息,从而进行去噪。
3.0.3 去噪方案
从标准正态分布线性去噪。这种方式性能很好(A simple linear Gaussian probability path can achieve strong empirical performance)。
去噪10步。注意:为了提高运算效率,将attention中的keys / values进行cache。
cache的原理:cache的是经过了线性变换(k = Wk, v = Wv)后的keys and values,节约的也是线性变换的时间。
3.1 低质量数据和高质量数据的兼顾
高质量数据的作用是效率和鲁棒,低质量数据的作用是让模型能够从错误中恢复(recover from mistakes)。
3.2 预训练---低质量数据+自适应权重
预训练采用了3种不同的数据,并且每种不同的数据配以不同的权重n^0.43。其中n是该种类型的数据量。样本多的权重相对更小,样本少的权重相对更大。数据分布:
- 网络数据
- 团队自行收集的灵巧操作数据集。包括7种机器人配置和68种任务。
- OXE数据集。包含22种机器人。
预训练的目标是构建一个基础模型(base model),目标是广泛的泛化性(broad capabilities and generalization)。因此数据集可能是低质量的,模型会学习到如何从错误中恢复。
预训练模型采用PaliGemma,是一个3B的VLM模型。它是将视觉编码的信息作为语言tokens,和文本输入一起进行处理。这种方法是通用的做法(standard late fusion VLM recipe)。
3.3 后训练
与预训练目标(通过多样性的数据构建泛化性)不同,后训练的目标是要让模型学习流畅的灵巧的动作。因此数据集是高质量的。