Octo 精武门? :开源的通用机器人模型

大模型技术论文不断,每个月总会新增上千篇。本专栏精选论文重点解读,主题还是围绕着行业实践和工程量产。若在某个环节出现卡点,可以回到大模型必备腔调重新阅读。而最新科技(Mamba,xLSTM,KAN)则提供了大模型领域最新技术跟踪。若对于构建生产级别架构则可以关注AI架构设计专栏。技术宅麻烦死磕LLM背后的基础模型。

关于机器人学习,标准做法是使用针对特定机器人和手头工作量身定制的数据集来训练策略。以这种方式从头开始需要为每项活动收集大量数据,并且生成的策略通常表现出很少的通用性。的确针对机器人和工作中收集的数据是最靠谱的解决方案,针对各种控制场景训练模型可以增强它们的泛化能力并在后续任务中表现更好。

与计算机视觉和自然语言处理中通用模型的普遍性相比,创建能够控制各种机器人的“通用机器人模型”已被证明是一项艰巨的挑战。处理具身智能、传感器配置、动作空间、任务规范、环境和计算预算是训练机器人统一控制策略时的独特问题。

一些机构通过将机器人观察结果直接转化为动作来实现通用机器人模型,在通过zero-shot或者few-shot将模型扩展到新领域和新的机器人。由于这些模型在各种活动、环境和机器人系统中的低层次视动控制的多功能性,它们通常被称为‘通用机器人策略’(Generalist Robot Policies,简称 GRPs)。

虽然在“通用机器人模型”方面已经取得了进展,但这些模型仍有很长的路要走。例如,它们无法对新领域进行有效微调;最大模型甚至不向公众开放。另一个问题是,它们将下游用户的输入(观察结果)限制性很高,例如有些仅仅支持单个摄像机流。

Octo

Octo是为构建开源的、广泛适用的通用机器人操作策略所做的持续努力。它是基于Transformer的扩散策略,采用Open X-Embodiment数据集中的 80万个机器人操作片段来进行预训练。它支持灵活的任务和观察定义,并且可以快速微调到新的观察和动作空间。即将推出两个初始版本的 Octo,分别是Octo-Small(27M参数)和Octo-Base(93M参数)。

Octo模型的设计强调灵活性和可扩展性,旨在支持各种常用的机器人、传感器配置和动作,同时提供一个通用且可扩展的训练方法,可以在大量数据上进行训练。Octo 支持自然语言指令和目标图像、观察历史以及通过扩散解码实现的多模态动作分布。此外还专门设计了Octo以支持对新机器人设置的高效微调,包括具有不同动作和不同摄像头与本体感觉信息组合的机器人。这种设计旨在使 Octo 成为一个灵活且广泛适用的通用机器人策略,能够用于各种下游机器人应用和研究项目。

Open X-Embodiment 是一个大规模、开放的机器人操作数据集,专门设计用于训练和评估机器人学习模型。它涵盖了广泛的机器人操作任务和环境,旨在为研究人员和开发人员提供丰富的训练数据,以推动通用机器人策略(Generalist Robot Policies, GRPs)的发展。

Octo其实是站在巨人的肩膀上,它的设计灵感来自于机器人模仿学习和可扩展的Transformer训练的最新研究,包括使用“denoising diffusion objectives” 进行动作解码和“动作块”(未来的行为)的预测,以及采用了可扩展ViT训练的模型结构和学习率调整计划。

模型架构

Octo的核心是一个基于Transformer的策略π。它由三个关键部分组成:input tokenizers,它将语言指令 ℓ、目标 g 和观察序列 o1,...,oH 转换为标记 Tl,Tg,T的输入标记器;处理这些标记并生成嵌入 el,eg,eo 的Transformer backbone(主干);以及产生所需输出的readout heads读取头R(e),即动作 a。


任务和观察的Tokenizer:对于不同模态的将采用特定的标记器,例如语言指令 ℓ 、目标图像 g、和观察 o(例如,机械手腕和第三方的摄像视频流)转换为通用的“标记化”格式(上图左侧):

  • 语言输入经过标记化后,通过预训练的变压器,生成语言嵌入标记序列。这里采用了t5-base(111M)模型。

  • 图像观察和目标通过一个浅层卷积堆栈,然后分成一系列扁平化patches。

值得一提的是这里需要将通过将可学习的位置参数嵌入到任务和观察Token上,并将它们按顺序排列进行组装,输入Transformer中。


Transformer backbone(主干):一旦输入被转换为统一的标记序列,它们就会被Transformer 处理。这与之前的工作类似,这些工作在观察和动作序列上训练基于Transformer的策略。

Octo 变压器的注意力机制是(block-wise masked)块状遮罩的:观察标记只能与相同或更早时间步 To,0:t 中的标记发生因果关系。对应于不存在观察的标记完全被屏蔽了。这种模块化设计使能够在微调过程中添加和删除观察或任务。

除了这些输入标记块外,还插入了学习的Readout Tokens(紫色)。仔细观察上图,紫色的部分会与其之前的序列中的绿色和蓝色的标记相关联,但它不会被绿色或者蓝色的关联。因此,紫色标记的作用类似于BERT中的[CLS] 标记(分隔符)。

紫色标记的输出接着一个轻量级的“action head”(由一个三层多层感知器(MLP)组成,具有256的隐藏维度、残差连接和层归一化。)实现扩散。这个“action head”预测未来一系列的连续动作合集。


Octo允许在下游微调过程中灵活添加新的输入(含任务和观察现象)或输出。当下游任务中添加新的任务、观察现象或损失函数时,完全保留Transfomer的预训练权重。

只需根据规范的更改添加新的位置嵌入、新的轻量级编码器新头的参数。这与之前的架构不同,之前的架构要求添加或删除图像输入或更改任务规范将需要重新初始化或重新训练预训练模型的大部分组件。这种灵活性对于Octo成为真正“通用”的基础模型至关重要。

由于无法在预训练期间覆盖所有可能的机器人传感器和动作配置,因此在微调过程中能够调整Octo的输入和输出使之成为通用工具。

之前模型一般设计标准的Transformer或将视觉编码器与MLP输出头融合在一起,锁定模型所期望的输入类型和顺序。相比之下,对于Octo来说,在新的场景下,不需要从零开始训练。

训练数据

训练通用机器人策略的关键要素是机器人训练数据。与可以从网络上抓取的视觉和语言数据相比,大规模获取机器人数据具有挑战性,并且通常需要对硬件和人力进行大量投资。目前已经存在多个大型机器人导航和自动驾驶数据集,除此之外人们还做了很多努力使得数据集的规模和多样性不断增加。

这些数据集要么通过脚本化和自主策略收集,要么通过人类远程操作。Octo在Open X-Embodiment的数据集上进行了训练,Open-X 数据集包含大约150万个机器人剧集,其中选择了80万个用于Octo训练。迄今为止RT-X模型也仅仅使用了350K的受限子集。因此迄今为止,Octo使用了最大的机器人操作演示数据集进行训练。下面为训练数据集抽样权重和占比。

模型评估

在“零提示评估”中,Octo“开箱即用”(out-of-the-box)在不同环境中控制多个机器人,预训练数据囊括了这些环境。当使用自然语言指定任务时,Octo在三种不同的机器人平台上的表现优于当前最佳的通用机器人RT-1-X。此外,在WidowX和RT-1 Robot任务上,Octo的表现与RT-2-X相当。在这里请注意三种模型的参数规模(下面左下部分)。

这表明Octo具有较强的通用性和适应性,能够在多种机器人平台上实现较高的任务成功率,展现了其在预训练数据基础上进行任务执行的能力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/646379.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

01主动安全系统

“安全”一直是车主对车辆考核的重要指标。车辆安全可以分为从主动安全和被动安全两个方面进行分类。今天就来说说汽车主动安全系统的那些事儿。 01.什么是主动安全系统? 主动安全是指尽量自如地操纵控制汽车的安全系统措施。无论是直线上的制动与加速还是左右打方…

X2Doris使用指南:界面化数据迁移工具 - 轻松实现整库迁移至Doris

什么是X2Doris X2Doris 是 SelectDB 团队开发的,专门用于将各种离线数据迁移到 Apache Doris 中的核心工具,该工具集 自动建 Doris 表 和 数据迁移 为一体,目前支持了 Apache Doris/Hive/Kudu/StarRocks 数据库往 Doris 或 SelectDB Cloud 迁…

AI预测福彩3D采取888=3策略+和值012路一缩定乾坤测试5月26日预测第2弹

昨天的8883大底成功命中,但是由于昨天杀了对子,结果昨天开了对子,导致最终与中奖号码擦肩而过。今天继续基于8883的大底,使用尽可能少的条件进行缩号,同时,今天将准备两套方案,一套是我自己的条…

Dockerfile文件详细介绍

前言 Dockerfile是一个文本文件,包含了用于构建Docker镜像的所有命令和说明。它定义了容器的运行环境、依赖以及启动方式,是创建Docker镜像的核心部分。 由于制作镜像的过程中,需要逐层处理和打包,比较复杂,所以Docke…

Day 3:1738. 找出第 K 大的异或坐标值

Leetcode 1738. 找出第 K 大的异或坐标值 给你一个二维矩阵 matrix 和一个整数 k &#xff0c;矩阵大小为 m x n 由非负整数组成。 矩阵中坐标 (a, b) 的 值 可由对所有满足 0 < i < a < m 且 0 < j < b < n 的元素 matrix[i][j]&#xff08;下标从 0 开始计…

SVN创建分支,分支合并,切换分支。通俗易懂

1、首先在svnbucket.com远程仓库上创建项目&#xff0c;这里我创建了个测试demo&#xff1a; 2、先把svn仓库的项目检出到自己的文件夹&#xff0c;我这里是demo001文件夹&#xff0c;此时并没有创建truck, branches, tags这三个目录&#xff1a; 3、 在demo001文件夹里新建tru…

电量计量芯片HLW8110的前端电路设计与误差分析校正.pdf 下载

电量计量芯片HLW8110的前端电路设计与误差分析校正.pdf 下载地址&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1vlCtC3LGFMzYpSUUDY-tEg 提取码&#xff1a;8110

氢燃料电池汽车行业发展

文章目录 前言 市场分布 整车销售 发动机配套 氢气供应 发展动能 参考文献 前言 见《氢燃料电池技术综述》 见《燃料电池工作原理详解》 见《燃料电池发电系统详解》 见《燃料电池电动汽车详解》 市场分布 纵观全球的燃料电池汽车市场&#xff0c;截至2022年底&#xff…

微信小程序基础 --模板语法(4)

模板语法 1、wxml视图结构 1.1 概述 开发文档&#xff1a;https://developers.weixin.qq.com/miniprogram/dev/framework/quickstart/code.html#WXML-%E6%A8%A1%E6%9D%BF 从事过网页编程的人知道&#xff0c;网页编程采用的是 HTML CSS JS 这样的组合&#xff0c;其中 HT…

2010-2024年别克维修手册和电路图线路接线图资料更新

经过整理&#xff0c;2010-2024年别克汽车全系列已经更新至汽修帮手资料库内&#xff0c;覆盖市面上99%车型&#xff0c;包括维修手册、电路图、新车特征、车身钣金维修数据、全车拆装、扭力、发动机大修、发动机正时、保养、电路图、针脚定义、模块传感器、保险丝盒图解对照表…

类的内存对齐位段位图布隆过滤器哈希切割一致性哈希

文章目录 一、类的内存对齐1.1规则1.2原因 二、位段2.1介绍2.2内存分配问题2.3跨平台问题2.4使用的注意事项 三、位图的应用3.1 给40亿个不重复的无符号整数&#xff0c;找给定的一个数。&#xff08;int的范围可以到达42亿多&#xff09;3.2 给定100亿个整数&#xff0c;设计算…

Linux文件系统原理

Linux文件系统 冯诺依曼在1945年提出计算机的五大组成部分 运算器&#xff1a;CPU 控制器&#xff1a;CPU 存储器&#xff1a;内存和硬盘 输入设备&#xff1a;鼠标、硬盘 输出设备&#xff1a;显示器一、硬盘结构 机械硬盘结构 扇区&#xff1a;硬盘的最小存储单位&#xff…

【JAVASE】抽象类

1、抽象类概念 在面向对象的概念中&#xff0c;所有的对象都是通过类来描绘的&#xff0c;但是反过来&#xff0c;并不是所有的类都是用来描绘对象的&#xff0c;如果一个类中没有包含足够的信息来描绘一个具体的对象&#xff0c;这样的类就是抽象类。比如&#xff1a; 说明&a…

基础IO用户缓冲区 、inode、硬软链接【Linux】

文章目录 用户缓冲区磁盘磁盘分区EXT2文件系统的存储方案 inode软链接硬链接 用户缓冲区 代码一&#xff1a; 1 #include<stdio.h>2 #include<unistd.h>3 #include<string.h> 4 int main()5 {6 const char * fstr &…

Linux下的调试器 : gdb指令详解

&#x1fa90;&#x1fa90;&#x1fa90;欢迎来到程序员餐厅&#x1f4ab;&#x1f4ab;&#x1f4ab; 主厨&#xff1a;邪王真眼 主厨的主页&#xff1a;Chef‘s blog 所属专栏&#xff1a;青果大战linux 总有光环在陨落&#xff0c;总有新星在闪烁 gdb是什么 gdn是linu…

SQL注入:原理及示例讲解,配置mysql环境变量,pikachu靶场搭建

SQL注入原理 SQL注入&#xff08;SQL Injection&#xff09;是一种代码注入技术&#xff0c;攻击者通过将恶意的SQL代码插入到应用程序的输入字段中&#xff0c;诱使后台数据库执行这些恶意代码&#xff0c;从而对数据库进行未授权的操作。常见的操作包括获取敏感数据、篡改数…

Liunx基本指令以及权限(个人笔记)

Linux指令和权限 1.指令1.1ls指令1.2pwd命令1.3cd指令1.4touch指令1.5mkdir指令1.6rm指令1.7man指令1.8cp指令1.9mv指令1.10cat指令1.11less指令1.12head指令1.13tail指令1.14date显示1.15Cal指令1.16find指令1.17grep指令1.18zip/unzip指令1.19tar指令1.20bc指令1.21uname -r指…

Python数据可视化(五)

实现GUI效果 借助 matplotlib&#xff0c;除可以绘制动画内容外&#xff0c;还可以实现用户图形界面的效果&#xff0c;也就是 GUI 效果。 GUI是用户使用界面的英文单词首字母的缩写。接下来&#xff0c;我们就以模块widgets中的类RadioButtons、 Cursor 和 CheckButtons 的使用…

属于程序员的浪漫,一颗会跳动的心!!!

绘制一颗会跳动的心❤ 嘿嘿 可以说是程序员的专属浪漫了吧&#xff0c;就像点燃一颗LED灯一样&#xff1f;&#xff08;我瞎说的啊&#xff0c;大家别当真&#xff0c;我很菜的&#xff01;&#xff01;&#xff01;&#xff01;&#xff09; 程序就在下面啦&#xff0c;然…

​✨聚梦AI绘图插件-for photoshop(基于ComfyUI) 内测版V0.1发布

&#x1f388;背景 photoshop本身是有AI生成能力的&#xff0c;不过限于种种原因&#xff0c;国内使用很不方便。 photoshop也是有AI插件的&#xff0c;不过大多安装起来比较复杂&#xff0c;或者&#xff0c;干脆就会收费。 所以我们做了一个免费的AI插件&#xff0c;期望能…