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

π₀:基于VLM的多任务具身操作基础模型

π₀:基于VLM的多任务具身操作基础模型

    • 摘要
    • 基于VLA流匹配模型的机器人基础模型,采用两阶段进行训练
    • Π0预训练的基础模型评测实验
    • 微调后的语言指令跟随实验
    • 使用微调学习全新更灵巧的技能
    • 学习复杂多阶段任务
    • π₀ ≈ octo + openvla?

π₀官方网址
OpenVLA解读
OCTO解读
π₀架构图

摘要

π₀是基于一种新颖的流匹配架构,该架构建立在预训练的视觉语言模型(VLM)之上。这种方法使模型能够继承互联网规模的语义知识,并有效地执行复杂和高度灵活的机器人控制任务。该方法的关键组成部分包括:

预训练的视觉语言模型(VLM): 模型利用预训练的VLM主干,利用从大规模数据中获得的广泛知识、语义推理和问题解决能力。
流匹配: 该架构采用流匹配(diffusion的一种变体),以表示复杂的连续动作分布。这使得模型能够生成高频率的动作块(高达50 Hz),适用于灵巧的操作任务。
跨本体训练: 模型在一个大型多样化的数据集上进行训练,该数据集包括来自多种机器人平台(单臂、双臂和移动操控器)和各种灵巧任务的数据。这种跨体现训练帮助模型在不同的机器人配置之间进行泛化。
动作专家:模型中集成了一个动作专家,通过流匹配生成连续动作,增强了模型执行精确和流畅操作技能的能力。
预训练和后训练阶段: 训练过程分为预训练和后训练两个阶段,预训练阶段在多样化的数据集上进行,以获取广泛的能力,后训练阶段则在高质量、特定任务的数据上进行微调,以提高模型在复杂任务上的表现。
总体而言,π₀政策结合了这些元素,创建了一个通用的机器人政策,能够执行多种任务,如折叠衣物、清理桌子和组装盒子,具有高度的灵活性和适应性。

基于VLA流匹配模型的机器人基础模型,采用两阶段进行训练

π₀模型
基础模型是一个约3B的多模态大模型(PaliGemma),其采用ViT对图像进行编码,采用SigLIP对文本进行编码,从一个预训练的 VLM (PaliGemma)的基础上继续训练,然后额外针对不同的 embodiment 使用不同的 action expert 以预测相应的动作。模型图片使用三个视角(左臂、右臂和第三人称),如果没有就 mask 掉。动作空间用了并集 18 维,如果没有就填充 0。

数据
采集数据使用的机器人

预训练阶段
VLM的初始权重来自于训练好的PaliGemma模型,在该预训练阶段,使用一个多样化的数据集进行训练,以获取广泛的能力和一般化能力,该数据集包含来自7种不同机器人和68个任务的灵巧操作数据,包括106M步的单臂数据和797M的双臂数据。此外,还结合了来自开放源代码数据集(如OXE、DROID和Bridge)的数据。

后训练(微调)阶段
在后训练阶段,模型使用高质量、特定任务的数据进行微调,以提高其在复杂任务上的表现。

Π0预训练的基础模型评测实验

在这里插入图片描述
在这里插入图片描述
π₀: 在预训练的VLM上继续预训练700k步;
π₀(parity): 在预训练的VLM上继续预训练160k步;
π₀-small: VLM未经网络数据的预训练,模型参数更小;
OpenVLA: 在混合数据上训练160k步
OpenVLA(UR5e only): 仅在部署用的机械臂UR5e上训练
Octo: 在混合数据上训练320k步
结论:即使是π₀-small,也远优于前SOTA模型

微调后的语言指令跟随实验

语言指令跟随任务
在这里插入图片描述
flat 是直接把大任务指令(比如把“垃圾装进袋子里”)给它;
human 是人为给定一步步的指令;
HL 指的是用 VLM 拆分成小指令
结论:模型π₀在执行语言指令方面表现出显著的提升,尤其是在接收来自人类专家的中间指令和高层次VLM策略提供的指令时。这表明,VLM的预训练对提高模型理解和执行复杂指令的能力至关重要。

使用微调学习全新更灵巧的技能

在这里插入图片描述
在这里插入图片描述
评估我们的模型在与预训练数据有显著不同的新任务上的表现,这些任务需要全新的行为。对于这些评估,我们在每个新任务上使用不同数量的数据对模型进行微调。尽管每个任务都是新的,我们将这些任务根据与预训练数据中任务的差异程度分为“层级”。

测试方法: 尝试10次,测试成功率;
结论:Π0可以更好地在较少数据下进行学习,预训练模型往往比从零开始训练的模型取得更大的提升。

学习复杂多阶段任务

在这里插入图片描述
在这里插入图片描述
我们通过微调和语言结合的方式来应对一系列具有挑战性的多阶段任务。对于其中一些任务,预训练中存在相关数据,但需要微调才能达到精通水平。对于另一些任务,预训练中没有相关数据。这些任务包括:叠衣服(预训练包含)、转移衣物(预训练包含)、折叠包装(预训练不包含)、放鸡蛋(预训练不包含)、将物品放入包装盒(预训练不包含)。

π₀ ≈ octo + openvla?

π₀
OCTO
OpenVLA


http://www.kler.cn/a/461400.html

相关文章:

  • sniff2sipp: 把 pcap 处理成 sipp.xml
  • 实现单例模式的五种方式
  • MySQL 入门大全:运算符
  • 机器学习之正则化惩罚和K折交叉验证调整逻辑回归模型
  • Spring Boot 3 构建统一的请求响应参数、异常处理、以及统一的异常状态码
  • 从单点 Redis 到 1 主 2 从 3 哨兵的架构演进之路
  • View Shadcn UI 正式版本 v2024.5.4 发布
  • C++【内存管理】
  • golang中的错误处理机制
  • Fetch处理大模型流式数据请求与解析
  • OpenLinkSaas使用手册-项目外部资源管理
  • HarmonyOS:@Require装饰器:校验构造传参
  • 深入解析 Android MediaHTTPConnection JNI 实现
  • 2024广东省职业技能大赛云计算——私有云(OpenStack)平台搭建
  • Java Web学生自习管理系统
  • 课程设计项目之基于Python实现围棋游戏代码
  • REDIS1.0
  • 【每日学点鸿蒙知识】长时任务、HarmonyAppProvision申请、preferences、Testing工具、应用保活
  • 2.ATK-DLRK3568 QT竖屏显示改为横屏显示
  • 【MySQL初级】第1-4章
  • quasar中@click.stop没有生效,点击按钮时候会跳转
  • 【2024年-9月-29日-开源社区openEuler实践记录】 Euler - Copilot - Framework:开启智能辅助编程新征程
  • Rabbitmq追问1
  • Go语言中值接收者和指针接收者的区别?
  • HTML<select>标签有关的定义和属性
  • 【人工智能机器学习基础篇】——深入详解监督学习之模型评估:掌握评估指标(准确率、精确率、召回率、F1分数等)和交叉验证技术