当前位置: 首页 > news >正文

视觉语言动作模型VLA的持续升级:从π0之参考基线Octo到OpenVLA、TinyVLA、DeeR-VLA、3D-VLA

第一部分 VLA模型π0之参考基线Octo

1.1 Octo的提出背景与其整体架构

1.1.1 Octo的提出背景与相关工作

许多研究使用从机器人收集的大量轨迹数据集来训练策略

  1. 从早期使用自主数据收集来扩展策略训练的工作[71,48,41,19-Robonet,27,30]
  2. 到最近探索将现代基于transformer的策略与大型演示数据集相结合的工作[10-Rt-1,40,98-ALOHA或ACT,28-Mobile aloha,83,86- Open-world object manipulation using pre-trained vision-language models]

这些工作主要集中在单一的embodiment上,而Octo则在跨多个体现组装的机器人数据集上训练策略,增加了训练数据集的有效规模,并允许对多种机器人设置进行微调

最近,论文集中于扩展机器人策略的泛化能力。多项研究利用多样的非机器人数据或预训练的视觉-语言基础模型来提升策略对新场景和任务的泛化能力[86,103,96,16,38,11,84,36,4,37,7,3,46,15,23]

  • 与Octo更密切相关的是最近的研究,这些研究在多个机器人具体化数据上训练机器人策略:
    GNM模型[81,80]在机器人导航设置中实现了泛化
    而RoboCat[9]和RT-X[67]控制多个单臂操作机器人
  • 虽然这些模型在策略学习上取得了令人印象深刻的成果,但一个关键问题是它们缺乏灵活性:通常要求用户坚持使用预训练期间的传感器输入和动作空间,并且不支持适应新的观测和动作空间。此外,最大的模型尚未公开

    Octo在多个方面与这些工作不同:它在更大且更多样化的机器人数据混合上进行训练,通过高效微调新机器人设置支持更广泛的下游应用,并且它是完全开源和可复现的

Octo 的设计灵感来源于机器人模仿学习和可扩展transformer训练的几项最新进展,包括使用去噪扩散目标[34-DDPM]进行动作解码[17-Diffusion policy,31-Scaling Up and Distilling Down: Language-Guided Robot Skill Acquisition,85-Nomad],预测“动作块”,即未来动作序列[98-ALOHA或ACT,17,28-Mobile aloha],以及受可扩展视觉transformer训练文献启发的模型布局和学习率计划[22-ViT,97]

训练通用机器人策略的一个关键要素是机器人训练数据

  1. 与可以从网络上抓取的视觉和语言数据不同,获取大规模的机器人数据具有挑战性,通常需要在硬件和人工劳动上进行大量投资。有多个大型机器人导航和自动驾驶数据集[29,95,13,87,80,43,89]
  2. 近年来,也有多个努力构建规模和多样性不断增加的机器人操作数据集,这些数据集要么通过脚本和自动策略收集[19,41,42,12,71,30],要么通过人工遥控收集[59,60,25,90,39,10,26,6,77,63,79]

Octo 在Open X-Embodiment 数据集[67]上进行了训练,这是最近汇集了上述许多机器人数据集的努力。Open-X 数据集包含约 150 万个机器人剧集,作者又为Octo训练收集了80万条数据

1.1.2 Octo的模型架构:涉及输入Tokenizers、Transformer骨干、action head

Octo的核心是一个基于Transformer的策略π「我很是怀疑,π0的取名很可能得到了这点的启发,^_^

它由三个关键部分组成:

  • 输入Tokenizers,用于转换的语言指令\ell、目标g、观察序列o_{1}, \ldots, o_{H}转化为token序列\left[\mathcal{T}_{l}, \mathcal{T}_{g}, \mathcal{T}_{o}\right]
  • 一个处理token并生成嵌入e_{l}, e_{g}, e_{o}=T\left(\mathcal{T}_{l}, \mathcal{T}_{g}, \mathcal{T}_{o}\right)的transformer骨干
  • 生成所需动作a的readout头R(e)

对于第一部分输入Tokenizers,作者使用特定模态的tokenizers将任务定义(例如,语言指令\ell和目标图像g)和观察o(例如,手腕和第三人称摄像机流)转换为一种通用的“tokenized”格式

  • 语言输入被Tokenized
    通过一个预训练的transformer生成一系列语言嵌入token——使用t5-base(111M)模型 [74]
  • 图像观测和目标
    通过一个浅卷积堆栈,然后分割成一系列扁平化的patches [22-ViT]。通过将可学习的位置嵌入添加到任务和观察token中,然后将它们按顺序排列\left[\mathcal{T}_{T}, \mathcal{T}_{o, 1}, \mathcal{T}_{o, 2}, \ldots\right]

对于后两个部分transformer骨干和读出头:一旦输入被转换为统一的token序列,它们就会被transformer处理(见下图图2,顶部)。这类似于先前的工作,这些工作在观测和动作序列上训练基于transformer的策略 [92, 73-Robot learning with sensorimotor pre-training]

  • Octo transformer的注意力模式是块状掩蔽的:观测token只能因果地关注来自相同或更早时间步\mathcal{T}_{o, 0: t}的token以及任务token\mathcal{T}_{T}

    对应于不存在的观测的token被完全屏蔽(例如,没有语言指令的数据集)。这种模块化设计使得能够在微调过程中添加和删除观测或任务(见下文)
  • 除了这些输入token块之外,作者还插入了学习的readout token\mathcal{T}_{R, t}

    readout tokens在\mathcal{T}_{R, t}中关注序列中之前的观测和任务token,但不被任何观测或任务token关注——因此,它们只能被动地读取和处理内部嵌入,而不影响它们
    Readout tokens的作用类似于BERT中的 [CLS]标记,作为到目前为止观测序列的紧凑向量嵌入

    一个实现扩散过程的轻量级“动作头”被应用于readout tokens的嵌入。这个动作头预测几个连续动作的“块”,类似于之前的工作[98-ALOHA或ACT, 17-Diffusion policy]
    A lightweight “action head” that implements the diffusion process is applied to the embeddings for the readout tokens. This action head predicts a “chunk" of several consecutive actions, similar to prior work [98, 17].

这种设计使得能够在下游微调期间灵活地向模型添加新的任务、和观察输入,或动作输出头。在下游添加新任务、观察或损失函数时,可以完全保留transformer的预训练权重,只需根据规范的变化添加新的位置嵌入、新的轻量级编码器或新头部的参数(见下图图2,底部)

这与之前的架构形成对比 [10-Rt-1, 81],在这些架构中,添加或移除图像输入或更改任务规范需要重新初始化或重新训练预训练模型的大型组件

这种灵活性对于使Octo成为真正的“通用”模型至关重要:毕竟无法涵盖所有可能的机器人传感器和在预训练期间的动作配置中,能够在微调期间调整Octo的输入和输出。先前的模型设计使用标准的transformer骨干或将视觉编码器与MLP输出头融合,锁定了模型所期望的输入类型和顺序。相比之下,切换Octo的观察或任务不需要重新初始化大部分模型

2.1 Octo的训练数据、训练目标、训练细节

2.1.1 训练数据

Octo在Open X-Embodiment数据集[67]中25个数据集的混合上训练Octo,这是一个多样化的机器人学习数据集集合。总之,Octo的训练混合包括来自多个机器人体现和场景的各种任务的演示数据

这些数据集不仅在机器人类型方面是异质的,而且在传感器(例如,包括或不包括腕部摄像头)和标签(例如,包括或不包括语言指令)方面也是异质的。详见下图图3

为了创建我们的训练混合物 D

  1. 首先通过去除所有不包含图像流的Open-X数据集以及那些不使用增量末端执行器控制的数据集来整理数据
  2. 还去除过于重复、图像分辨率低或由过于小众任务组成的数据集。对于剩余的数据集,根据任务和环境将它们大致分类为“更多样化”和“较少样化”数据集,然后在训练过程中将更多样化数据集的权重加倍
  3. 且还降低了一些包含许多重复情节的数据集的权重,以避免其主导混合数据
  4. 最后,对任何缺失的摄像机通道进行零填充,并在数据集之间对齐夹持器动作空间,使得夹持器命令+1表示“夹持器打开”,0表示“夹持器关闭”
    这点,对于RDT、π0也是一样的,毕竟涉及到不同种类的异构数据,所以需要做一定的对齐

2.1.2 训练目标

作者使用条件扩散解码头来预测连续的、多模态的动作分布 [类似34-DDPM, 17-Diffusion policy]「We use a conditional diffusion decoding head to predict continuous, multi-modal action distributions [34 , 17 ]

  1. 重要的是,每次动作预测仅执行一次transformer骨干的前向传递,之后的多步去噪过程完全在小型扩散头内进行,且作者发现这种策略参数化在零样本和微调评估中优于使用MSE动作头或离散动作分布训练的策略 [10-Rt-1]
    Importantly, only one forward pass of the transformer backbone is performedper action prediction, after which the multi-step denoising process is carried out entirely with in the small diffusion head. We found this policy parameterization to outperform policies trained with MSE action heads or discretized action distributions [ 10] in both zero-shot and finetuning evaluations.
  2. 为了生成一个动作,我们采样一个高斯噪声向量xK ∼ N 0, I 并应用 K步去噪,使用一个学习到的去噪网络 ϵθ (xk, e, k),该网络以先前去噪步骤的输出xk、步骤索引k和transformer动作读数的输出嵌入e为条件:
    xk−1 = α(xk − γϵθ (xk, e, k ) + N 0, σ2I ). (1)

    超参数 α, γ, 和 σ 对应于噪声计划:使用来自 [66]的标准余弦计划。我们使用 [34] 中首次提出的标准 DDPM 目标训练扩散头,其中向数据集动作添加高斯噪声,并训练去噪网络 ϵθ (xk, e, k) 以重建原始动作

有关扩散策略训练的详细解释,请参见 Chi 等人 [17],且在原论文的附录 D 中列出了所有超参数

作者在微调期间使用相同的扩散训练目标并更新完整模型,这一方法优于冻结预训练参数子集的方法。在所有微调实验中,采用相同的方法:给定一个包含大约100条轨迹的小型目标领域数据集,使用余弦衰减学习率衰减和线性预热进行50k步的微调

第二部分 OpenVLA

第三部分 TinyVLA


http://www.mrgr.cn/news/78791.html

相关文章:

  • .NET AI 开发人员库 --AI Dev Gallery简单示例--问答机器人
  • 基于Python的投资组合收益率与波动率的数据分析
  • SpringBoot | @Autowired 和 @Resource 的区别及原理分析
  • python3中的匿名函数
  • 设计模式 行为型 策略模式(Strategy Pattern)与 常见技术框架应用 解析
  • C++Primer 复合类型
  • 贪心算法理论
  • JavaScript 前端开发:从入门到精通的奇幻之旅
  • 自动驾驶目标检测融合全貌
  • 点击A组件跳转到B页面的tab的某一列
  • 云备份实战项目
  • 探索嵌入式硬件设计:揭秘智能设备的心脏
  • 【Rust在WASM中实现pdf文件的生成】
  • debian 11 虚拟机环境搭建过坑记录
  • Flink常见面试题
  • 嵌入式C编程:宏定义与typedef的深入对比与应用
  • Python知识分享第十六天
  • Hadoop生态圈框架部署(九)- Hive部署
  • MySQL中如何减少回表
  • 微服务即时通讯系统的实现(服务端)----(3)
  • 基础Web安全|SQL注入
  • 《装甲车内的气体卫士:上海松柏 S-M4 智能型气体传感器详解》
  • 从0开始学PHP面向对象内容之常用设计模式(策略,观察者)
  • 腾讯微众银行前端面试题及参考答案
  • 提升分布式系统响应速度:分布式系统远程调用性能提升之道
  • 开源多媒体处理工具ffmpeg是什么?如何安装?使用ffmpeg将M3U8格式转换为MP4