大模型时代的具身智能系列专题(十)

Sergey Levine团队

Sergey Levine目前是UC Berkeley电气工程与计算机科学系的副教授,同时是RAIL(Robotic AI&Learning Lab@BAIR)实验室主任。除了在Berkeley的教职,Levine也是Google Brain的研究员,他也参与了Google知名的机器人大模型PALM-E,RT1和RT2。Sergey Levine于2009年获得斯坦福大学计算机科学的学士和硕士学位,并于2014年获得斯坦福大学计算机科学的博士学位,导师是Vladlen Koltun,他博士后期间在加州大学伯克利分校与Pieter Abbeel教授合作。他的研究重点是用于决策和控制的机器学习,重点关注深度学习和强化学习算法,应用方向主要在机器人和自动驾驶方面。他在发Paper方面非常的高产,Robot Learning的顶会或期刊(CoRL,ICML,RSS,ICRA,RSS等)。

主题相关作品

  • Octo

Octo

fig1
在各种机器人数据集上预先训练的大型策略有可能改变机器人学习:这种通用机器人策略无需从头开始训练新策略,只需使用少量领域内数据即可进行微调,但具有广泛的泛化能力。然而,为了广泛应用于各种机器人学习场景、环境和任务,这些策略需要处理不同的传感器和动作空间,适应各种常用的机器人平台,并轻松高效地微调到新领域。本方法Octo是一种基于大型 Transformer 的策略,在 Open X-Embodiment 数据集(迄今为止最大的机器人操作数据集)上的 800k 条轨迹上进行训练。它可以通过语言命令或目标图像进行指示,并且可以在标准消费级 GPU 上在几个小时内通过新的感官输入和动作空间有效地微调到机器人设置。在 9 个机器人平台上的实验中,证明了 Octo 是一种多功能策略初始化,可以有效地微调到新的观察和动作空间。

模型架构

fig2

Octo模型主要由三个部分组成:输入编码器,用于将不同形式的输入统一编码为token序列;Transformer主干网络,用于处理输入token序列并输出对应的embedding;输出头,将Transformer输出解码为机器人动作。模型的整体架构如图2所示。

输入编码器将语言指令、目标图像、机器人传感器观察等不同modality的输入分别编码为统一格式的token。其中,语言指令通过预训练的语言模型编码为定长的token embedding序列;图像则先经过一个较浅的CNN提取特征,然后划分为多个patches并展平,从而得到图像token序列。最后将这些不同来源的输入token拼接为一个统一的序列送入Transformer主干网络。

Transformer接收这些输入token后,以块状注意力(block-wise attention)的方式处理它们。如图2顶部所示,不同来源的输入token序列先分别与对应的可学习的位置编码(position embedding)相加,然后依次输入到Transformer的每一层。每个输入token只能关注当前时刻之前的输入,而任务指令token(绿色方块)可以被所有其他token关注。此外,还引入了一些可学习的输出token(readout token,图中紫色方块)。每个输出token都关注它之前的输入token,但反过来输入token不会关注输出token。这些输出token就像是BERT中的[CLS]标记,作为截至当前步的观察序列的紧凑embedding表示。最后将输出token的embedding传入输出头,解码为机器人动作。

模型输出头采用diffusion过程对机器人动作进行建模。它将一个初始的高斯噪声向量解码为连续的机器人动作,解码过程通过多步的逐步去噪来实现。每一步去噪过程由浅层MLP实现,它以当前步的输出、Transformer输出的embedding、以及步骤编号作为输入。通过这种方式,模型能输出一段连续的未来机器人动作序列,即所谓的action chunk。

本文提出的Octo模型最大的特点在于其灵活性。得益于块状注意力和输出head的设计,在迁移学习到新机器人或任务时,可以很方便地增删输入输出modalities,而无需重新初始化或训练模型的大部分参数。如图2底部所示,在下游任务中需要新的观察信息时,只需引入新的对应输入token即可(虚线蓝色方块);类似地,需要输出新的动作空间时,只需引入新的可学习输出token(虚线紫色方块)并搭配新的输出头即可。预训练好的Transformer参数都可以原封不动地继承使用。这种灵活的设计使得Octo成为一个通用的机器人控制策略,能适应多种机器人平台和任务。

数据

fig3
Octo模型在目前最大规模的机器人操控数据集Open X-Embodiment dataset上训练,该数据集包含了约150万个机器人操控的轨迹。本文从中精选了25个子数据集共计800k个轨迹进行训练,涵盖了多个机器人平台和任务环境,数据来源如图3所示。

为了进行跨数据集的训练,本文对原始数据进行了必要的预处理和对齐。以统一夹爪动作空间为例,将所有数据集的夹爪指令对齐为: +1表示张开,0表示闭合。另外,为了防止过长的单个轨迹主导整个训练过程,本文对每条轨迹随机下采样至多100个时间步。

在训练时需要从这25个数据集中采样数据,一个简单的策略是按数据集大小等比例采样。但是其中一些更丰富、更多样化的数据集可能对提高模型泛化性更有帮助。因此,本文依据数据集大小设置基础采样概率,并对一些表现更佳的数据集的概率进行少量提升,最终各数据集的采样概率如图3所示。这种经过调整的采样策略在实验中取得了更好的效果。

训练目标与细节

与许多先前工作使用离散化动作空间或MSE回归动作不同,本文采用条件扩散模型(conditional diffusion model)作为动作输出头,以期对连续动作空间进行更好的建模。具体来说,每次训练时,先将专家动作序列加入高斯噪声,然后训练模型去除这些噪声以还原原始动作。通过这种方式,模型能学会输出与专家演示动作更相似的动作序列。

另一个细节是,本文模型每次输出一段连续的未来动作序列(action chunking),即预测从当前时刻开始的若干个未来时间步的动作,而不是单步预测。这样的序列化输出能得到更连贯平滑的动作轨迹。在测试时则采用滚动时域预测的方式,即预测未来若干步的动作,执行前几步,观察最新状态,再重新预测,以此类推。

本文还采用了一些常见的数据增强和正则化技巧,包括对训练图像进行随机裁剪、颜色变换等,以及对Transformer模型使用dropout和LayerNorm。模型训练时使用AdamW优化器,并设置初始学习率warmup和余弦衰减的学习率调度。表IV列出了主要的训练超参数。

最后,本文还训练了不同规模的Octo变体,如表V所示,包括参数量为2700万的Octo-Small和9300万的Octo-Base等。在实验中,更大规模的模型在开箱即用的零样本机器人控制上展现出了更强的能力。

开源代码与模型

为了方便研究人员的进一步研究和使用,本文将Octo训练和测试的全部代码开源,并提供了预训练好的模型权重。这包括:

  • Octo-Small和Octo-Base的预训练权重,可直接用于测试或在下游任务上进行微调
  • 模型微调的示例代码,可适配到新的观察和动作空间
  • 完整的模型训练流水线代码,包括高效的Open X-Embodiment数据加载器
  • 方便推理部署的模型前向代码

有了这些开源代码和模型,研究人员只需几行代码就能调用Octo模型对机器人进行控制。例如,加载一个预训练权重,给定语言指令和传感器观察,就能输出对应的机器人动作。同时,在新的机器人和任务上对模型进行微调也变得简单易行。清单1展示了一个最简单的模型推理代码例子。

综上,本文提出的Octo模型兼顾了通用性和灵活性,能以开箱即用的方式对多个机器人执行语言指令,也能高效地迁移到新的观察空间和动作空间。模型的训练和推理代码全部开源,为今后机器人学习领域的研究提供了一个很好的基础模型。

实验

实验场景介绍

该论文提出了一个开源的通用机器人操作策略Octo,论文实验主要评估Octo在零样本多机器人控制和few-shot策略微调中的性能,以及不同设计决策的影响。

实验设置

实验平台:在4个机构的9个真实机器人设置上进行评估,涵盖不同机器人、传感器配置和任务类型。
Datasets:Octo在Open X-Embodiment数据集的800k机器人轨迹上预训练。few-shot微调使用~100个目标域演示。
Baseline:零样本对比RT-1-X和RT-2-X。few-shot微调对比从头训练和VC-1预训练视觉表征。
metric:任务成功率
fig4

实验结果

零样本多机器人控制性能
fig5
目的:评估Octo在来自预训练数据的环境中对多个机器人的开箱即用控制能力
结果:
Octo在WidowX、UR5和RT-1机器人上的语言指定任务上优于RT-1-X。
在WidowX任务上,Octo与更大的RT-2-X模型表现相似。
Octo还支持目标图像条件,在WidowX上比语言条件高出25%的成功率。

Octo在新域上few-shot微调的性能
tab1
目的:评估Octo作为新任务和新机器人策略初始化的few-shot微调性能
实验细节概述:在6个包含新观测(力矩)、新动作空间(关节位置控制)和新机器人的评估设置上,使用~100个目标域演示和相同超参数进行微调,每个域评估20次。
结果:
在所有设置中,微调Octo优于从头训练和VC-1预训练视觉表征,平均高出52%。
结果凸显了Octo适应新观测、动作空间和机器人的能力,使其广泛适用于单臂双臂操作问题。

总结

Octo是一个基于大型transformer的策略预训练,它是迄今为止最大的机器人操作数据集,包含800k个机器人轨迹。Octo可以解决各种开箱即用的任务,Octo的组合设计能够调整新的输入和动作空间,使Octo成为广泛的机器人控制问题的通用初始化。除了模型本身,本方法还发布了完整的训练和微调代码,以及使大型机器人数据集更容易训练的工具。

虽然Octo在zeroshot和微调评估中都取得了很强的性能,但我们发现目前的模型仍然有一些缺点,我们在很大程度上将其归因于训练数据的特征。首先,我们发现当前的Octo模型难以充分处理手腕相机信息。通常,当只使用第三人称相机而不是将第三人称相机和手腕相机结合使用时,微调效果更强。此外,我们注意到语言条件策略性能和目标条件策略性能之间存在很大差异。在这两种情况下,训练数据中缺乏相应的模态可能是原因:只有27%的数据包含手腕相机信息,只有56%的预训练数据包含语言注释。

扩展用于训练Octo的数据是一种自然的改进途径。由于Open X-Embodiment数据集由最佳机器人演示组成,目前的模型通过模仿进行训练;未来的工作可能会考虑从次优或在线交互数据中学习,这些数据需要其他目标。此外,虽然我们专门在单臂和双臂机械手上训练和评估Octo;扩展到执行导航或移动操作的更广泛的机器人集将是一个高机会的方向。

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

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

相关文章

VMD-PSO-LSTM单维时序预测模型(单输入单输出)-附代码

VMD-PSO-LSTM单维时序预测模型(单输入单输出) 1)首先对原始单维数据进行VMD分解,分解为K个模态分量和1个残差分量 2)将各个模态分量输入模型,建立模型进行预测 3)将各个预测结果相加得到最终…

MCU 的最佳存储方案 CS 创世 SD NAND

MCU 的最佳存储方案 CS 创世 SD NAND 【SD NAND】大家都知道 MCU 是一种 “麻雀” 虽小,却 “五脏俱全” 的主控。 大家都知道 MCU 是一种 “麻雀” 虽小,却 “五脏俱全” 的主控。它的应用领域非常广泛,小到手机手表,大到航空航…

【堡垒机小知识】堡垒机审计日志的定义以及作用概述

随着数字化进程的加速,企业对于IT信息系统的依赖程度不断加深,而保障IT系统的网络安全至关重要,因此不少企业纷纷购买了堡垒机。今天我们就来简单概述一下堡垒机审计日志的定义以及作用。 堡垒机审计日志定义 堡垒机审计日志是记录堡垒机上所…

xml 取值错误 #{} boolean 一直为 false

取值时 #{param.msgStatus} 一直是false&#xff0c;java代码里面显示true。 <select id"findPageOaReading" resultType"com.focusin.data.office.func.dto.ProcessMessageInfoDTO">select i.*, t.template_name procdefNamefrom process_message_…

VBA excel 表格将多行拆分成多个表格或 文件 或者合并 多个表格

excel 表格 拆分 合并 拆分工作表按行拆分为工作表工作表按行拆分为工作薄 合并操作步骤 拆分 为了将Excel中的数万行数据拆分成多个个每个固定行数的独立工作表&#xff0c;并且保留每个工作表的表头&#xff0c;你可以使用以下VBA脚本。这个脚本会复制表头到每个新的工作表&…

练习实践-linux启动耗时分析

练习实践-启动耗时整体概览&#xff0c;具体服务的启动细节 参考来源&#xff1a; B站up主林哥讲运维&#xff1a;一分钟学会&#xff1a;可视化查看系统启动时的性能 如何使用Linux命令查看系统的启动进程&#xff08;linux查看启动进程&#xff09; 解决ubuntu开机变慢&…

BitMart 宣布将销毁 264万枚 BMX,为何平台币掀起销毁热潮?

根据 BitMart 2024年4月18日发布的官方公告&#xff0c;BitMart 将于 5 个工作日内销毁 2,637,063 枚 BMX&#xff0c;价值约 94.9 万美元。根据 BitMart 白皮书中关于「回购机制」的规定&#xff0c;BitMart 2024 年第一季度平台手续费收入的 20% 将用于 BMX 的月度回购和销毁…

碳化硅MOSFET短路保护方法

碳化硅MOSFET短路保护方法 1.概述2.IGBT和碳化硅MOSFET器件特性3.短路保护方法比较4.总结 1.概述 碳化硅 (SiC) MOSFET 已成为硅 (Si) IGBT 的潜在替代产品&#xff0c;适用于光伏逆变器、车载和非车载电池充电器、牵引逆变器等各种应用。与 Si IGBT 相比&#xff0c;SiC MOSFE…

C语言基础:字符串函数使用和剖析(2)

strcmp&#xff08;字符串比较,比较两个字符串是否相等&#xff09; int strcmp ( const char * str1, const char * str2 ); int main() {const char* p1 "abcdef";const char* p2 "sqwer";if ("abcdef" "sqwer")//千万不能这么比…

nginx中配置ssl证书(宝塔面板)

首先申请一个SSL证书&#xff0c;这里我申请的joyssl的免费证书。提交订单申请后&#xff0c;按照页面提示在域名解析中将CNAME和记录值配置好。 比如我用的阿里云&#xff0c; 这是好后&#xff0c;需要等几分钟&#xff0c;然后域名检验成功。 然后点击joyssl的左侧菜单的“证…

grep、sed、awk

grep&#xff1a;文本过滤工具 sed: 文本编辑工具 awk: 格式化文本 grep -n 显示行号 -i 忽略大小写 -v 取反 -o 只保留关键消息 # 找出文件的空行 grep ^$ test.txt -n # 找出文件非空行内容 grep ^$ test.txt -n -v # 找出文件非空行内容&#xff0c;并且排除注释&#xff…

大创报名步骤

目录 一、注册 二、创建项目 三、报名 一、注册 进入注册/登录 点击 点击 填写个人信息 二、创建项目 找到解压的文件 随便选一个 项目简介在你选择的文件中截取一段 询问自己寝室的人 被邀请者需要在微信公众号上搜索 “全国大学生创业服务网” 选择我的消息中同意 三、报名…

Facebook商城号怎么做?思路与操作分析

2016 年&#xff0c;Facebook打造了同名平台 Facebook Marketplace。通过利用 Facebook 现有的庞大客户群&#xff0c;该平台取得了立竿见影的成功&#xff0c;每月访问量将超过 10 亿。对于个人卖家和小企业来说&#xff0c;Facebook Marketplace是一个不错的销货渠道&#xf…

金士顿U盘被写保护的解决方法

1.适用的U盘芯片信息 USB设备ID: VID 0951 PID 1666 设备供应商: Kingston 设备名称: DataTraveler 3.0 设备修订版: 0110 产品制造商: Kingston 产品型号: DataTraveler 3.0 产品修订版: PMAP 主控厂商: Phison(群联) 主控型号: PS2251-07(PS2307) - F/W 08.03.50 [2018-…

使用python绘制日历热力图

使用python绘制日历热力图 日历热力图效果代码 日历热力图 日历热力图&#xff08;Calendar Heatmap&#xff09;是一种数据可视化图表&#xff0c;用于展示时间数据的分布和趋势。它将数据按天映射到一个日历中&#xff0c;通过颜色的变化表示每天的数据值大小。这种图表常用…

nginx平滑升级

#平滑升级 kill -USR2 <PID号> //查看nginx版本 [rootl1 logs]# nginx -v //查看nginx版本 nginx version: nginx/1.26.0 [rootl1 logs]# 安装一个1.25版本实验一下 [rootl2 ~]# cd /opt/ [rootl2 opt]# [rootl2 opt]# lsnginx-1.25.5.tar.gz nginx-1.26.0.tar.…

J-Lin烧录

1、J-linK介绍 J-Link是由德国SEGGER公司推出的&#xff0c;主要用于支持仿真ARM内核芯片的JTAG仿真器。它支持JTAG和SWD两种模式&#xff0c;可以配合多种集成开发环境&#xff08;如IAR EWAR, ADS, KEIL, WINARM, RealView等&#xff09;使用&#xff0c;支持ARM7/ARM9/ARM…

【Python编程】【Jupyter Notebook】启动时报错:no available port could be found

一、报错描述 在Jupyter Notebook中编写程序&#xff0c;无法运行&#xff0c;提示由于没有可供监听的端口&#xff0c;无法启动Jupyter服务器&#xff0c;如下图所示&#xff1a; 二、原因分析 通过报错信息&#xff0c;猜测大概是由于网络环境的原因。首先&#xff0c;关闭…

代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素

一、704. 二分查找 题目链接&#xff1a;https://leetcode.cn/problems/binary-search/description/ 文章讲解&#xff1a;https://programmercarl.com/0704.%E4%BA%8C%E5%88%86%E6%9F%A5%E6%89%BE.html 视频讲解&#xff1a;https://www.bilibili.com/video/BV1fA4y1o715 1.…

使用Matlab软件绘制函数图像

【实验目的】 1.利用Matlab实现平面上曲线和三维空间中曲线绘制&#xff0c;重点掌握隐函数、极坐标图像绘制的相关命令。 2.利用Matlab实现三维曲面绘制&#xff0c;加深对高等数学课程所学内容的理解 【实验内容与实现】 1、用两种方法绘制下面的曲线图 &#xff08;1&am…