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

UCSD 王小龙组

王小龙是UCSD电子与计算机工程系的助理教授。他曾在加州大学伯克利分校与Alexei Efros和Trevor Darrell一起担任博士后研究员,在CMU RI获得了机器人学博士学位,师从Abhinav Gupta。他的研究重点是通过视频和物理机器人交互数据来学习3D和动态表示。促进机器人技能的学习,目标是使机器人能够在真实物理世界中与各种对象和环境有效互动。近期其团队分别在仿真和数据层面提出GenSim,Open X-Embodiment。

主题相关作品

  • GenSim
  • Open X-Embodiment
  • ExBody

GenSim

现有的数据生成方法通常侧重于场景级多样性(例如,对象实例和姿势),而不是任务级多样性,因为提出和验证新任务需要人工努力。这使得在模拟数据上训练的策略很难证明其significant任务级泛化。在本文中,我们提出通过利用大型语言模型(LLM)的grounding和编码能力来自动生成丰富的仿真环境和专家演示。我们的方法,被称为GENSIM,有两种模式:目标导向生成,目标任务给到LLM, LLM提出一个任务课程来解决目标任务;探索性生成,在LLM中,从以前的任务中引导并迭代地提出有助于解决更复杂任务的新任务。我们使用GPT4将现有benchmark扩展了10倍,达到100多个任务,在此基础上我们进行了监督微调,并评估了几个LLM,包括微调的gpt和Code Llama,用于机器人仿真任务的代码生成。此外,我们观察到LLMs生成的仿真程序在用于多任务策略训练时可以显著增强任务级泛化。我们进一步发现,在最小的sim-to-real适配下,在gpt4生成的模拟任务上预训练的多任务策略表现出更强的向现实世界中看不见的长视界任务的转移,并且比基线高出25%。

fig2

策略学习的自动任务生成

task creator

任务创建者的目标是提出新的任务描述和相应的代码实现,可以进一步分解为场景生成和演示生成。我们使用Ravens benchmark,它专注于运动原语,如推和拾取,可以通过每个时间步的两个末端执行器姿态参数化。从图3中的示例来看,模拟环境代码中的重置函数有效地初始化了资产及其属性和姿态,和参数化每个步骤动作的空间和语言目标一样。在探索性任务生成设置中,将提示pipeline生成与现有任务完全不同的新任务。在目标导向设置中,pipeline的目的是填充任务描述和指定任务名称的实现。探索性方法需要创造性和推理能力来提出新的任务,而目标导向方法侧重于将模拟编码作为一个特定的任务。
fig3
在这两种设置中(图3),语言链首先生成任务描述,然后生成相关的实现。任务描述包括任务名称、资产和任务摘要。我们在pipeline中采用少量提示来生成代码。将提示LLM从任务库中的现有任务中检索参考任务和代码。这个过程对于LLM确切地知道如何实现任务类(例如首先采样资产URDFs和构建场景的过程,然后添加空间目标和语言目标)至关重要。与其他LLM编码任务相比,机器人模拟中有各种各样的反馈形式,包括执行pipeline、模拟器、策略培训和人类。

TASK LIBRARY

在GenSim框架中,我们利用一个外部内存,称为任务库,来检索由任务创建者生成的任务,以提出更好的新任务,并训练多任务策略。任务库是从人工管理benchmark中的任务初始化的。它为任务创建者在描述生成阶段提供了过去的任务描述列表为条件,在代码生成阶段提供过去代码列表。然后,提示任务创建者从任务库中检索参考任务,作为编码新任务的示例,即检索增强生成(RAG)。在任务实现完成并能够成功生成演示之后,我们提示LLM对新任务和任务库进行反思,并就是否应该将新生成的任务添加到库中形成一个集成决策。在图4中,我们在GenSim生成的任务中观察到有趣的组合和外推行为。这些保存的任务代码可以离线使用,以生成用于多任务策略训练的演示轨迹数据。
fig4
在探索模式下生成的任务库可以用作迭代训练任务创建者的引导数据,以在目标导向模式下生成更好的模拟任务。这对于扩展任务生成和纳入人类反馈非常重要,因为使用微调模型作为任务创建者更经济。

LLM监督的多任务策略

一旦生成了任务,我们就可以使用这些任务实现来生成演示数据和训练操作策略。我们使用双流传输网络架构,通过可用性预测来参数化策略。从代码生成到语言条件行为克隆的过程可以看作是从LLM到机器人策略低级控制和环境操作可能性的蒸馏过程。将程序视为任务和相关演示数据的有效表示(图5),我们可以定义任务之间的嵌入空间,其距离度量对诸如物体姿态和形状等感知因素的变化更为稳健,但比语言指令更具信息性。

fig5

实验

回答三个问题:LLM能否设计实现仿真任务以及能否提高LLM任务生成的性能?LLM生成的任务能否提高策略泛化性以及是否生成任务越多越好?在LLM生成的仿真任务上预训练能否在迁移到真实世界时产生策略部署的收益?

评估LLM机器人仿真任务生成

具体来说,我们测量“语法正确”的通过率序列,“语法正确”测量了基本的编码语法问题以及答案格式问题,“运行时验证”测试了资产幻觉和代码推理能力,最后“任务完成”测量了任务演示的设计(选择位置运动的成功)。这些指标显示在图6的x轴中。我们的指标具有从语法到运行时的增量结构,以成功地生成演示,其中前一个指标失败意味着后一个指标失败。为了将这些任务生成能力提炼成更经济和可扩展的语言模型,并潜在地进行自我改进,我们使用任务库中的100个gpt4生成的任务作为调优的数据集。我们使用OpenAI API对GPT模型进行微调,并通过这个微调过程获得更好的性能。此外,我们还用LoRA 微调了开源LLMs,如Code-Llama。我们使用带有简短提示的任务名称作为输入tokens,任务代码作为自回归训练的输出tokens。

fig6

任务级生成

我们采用Ravens benchmark中提出的0(失败)到100(成功)分数,该benchmark考虑了完成任务的部分分数。仿真机器人设置为带有吸力夹持器的Universal robot UR5e。策略输入是自顶向下的RGB-D重建,输出是一个功能映射,然后将其转换为选择和放置操作。我们使用CLIPort架构,但是该框架独立于我们使用的策略参数化。测试任务集没有特别选择。我们发布了一个由GPT生成的语言条件benchmark(带有模型权重和任务列表),范围从10个任务到100个任务,用于研究具有环境可能性预测的scaling策略学习。
fig7

适配预训练模型到真实世界

我们假设,通过在模拟中扩展LLM生成的训练任务的多样性,训练后的策略将在现实场景中表现出更强的适应性。为了进一步增强从模拟到真实的过渡,我们结合了一个适应现实世界的过程。这个过程包括为每个任务收集一小部分真实世界的数据,然后对数据进行扩充,并对模拟预训练模型进行超过50次的微调。我们使用配备吸力钳的XArm-7机器人进行现实世界的实验。鸟瞰相机面朝下安装,捕捉RGB-D观测。在表1中,对70个gpt4生成的任务进行预训练的模型在12个任务的10次试验中实现了62.5%的平均成功率,与仅对CLIPort任务进行预训练的基线相比增加了20%以上,比仅对50个任务进行预训练的模型提高了15%。从质量上讲,没有充分预训练的基线模型通常会选择或放置错误的对象,而没有调整的基线会导致分散性预测。
tab1

总结

提出了GenSim,一个可扩展的LLM框架,以增强机器人策略的各种仿真任务,其目的是将LLM的基础和编码能力提炼到低级策略中。我们研究了目标导向和探索性方法中的LLM提示、检索增强生成和微调,以生成新的仿真任务代码。我们利用生成的任务来训练多任务策略,这些策略显示了对模拟和现实世界中的新任务的泛化能力。
局限性:生成的代码仍然包含基本的语法错误,并且存在幻觉,并且缺乏物理和几何细节的基础。另一个问题是代码生成评估度量是不完美的(例如不一致的语言描述),因此生成的任务可能需要在策略训练之前进行一些手动过滤。最后,我们只探索了桌面拾取和放置任务生成,生成灵巧和复杂的机器人任务可能更具挑战性。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue 2.0使用Vue-count-to给数字添加增长动画

在开发后台管理系统时,时常会遇到数据汇总,为了页面展示更生动,用户体验更好,通常会对汇总的数字加一个逐步递增动画。 实现这个效果一般是用的 Vue-count-to这个插件,这是一款简单好用的一个数字滚动插件,…

HTML5 视频 Vedio 标签详解

HTML5 引入了 <video> 标签&#xff0c;允许开发者在网页中直接嵌入视频文件&#xff0c;而不需要依赖第三方插件。本文将全面介绍 <video> 标签的各种属性&#xff0c;并通过实例代码详细说明其用法。 一、基础用法 1. 基本结构 HTML5 中使用 <video> 标…

达梦数据库修改兼容模式设置

达梦数据库兼容模式设置及服务管理操作手册 1. 查询兼容模式 在达梦数据库中&#xff0c;可以通过以下 SQL 查询当前兼容模式&#xff1a; SELECT para_name, para_value FROM v$dm_ini WHERE para_name COMPATIBLE_MODE;2. 设置兼容模式 使用 sp_set_para_value 函数设置…

如何申请微信支付0.2%-0.3%的手续费优惠? 详细步骤

随着微信支付在日常交易中的普及&#xff0c;许多商家开始关注如何降低支付手续费的问题。近期&#xff0c;微信支付推出了一项新的费率优惠政策&#xff0c;允许商家享受0.2%-0.3%的费率优惠。这一政策无疑为商家带来了实质性的成本节约。那么&#xff0c;商家如何申请这一费率…

Oracle RAC 集群配置共享目录ACFS

Oracle RAC 集群配置共享目录ACFS 应用场景&#xff1a;创建的ACFS文件系统用于部署OGG做数据同步使用。 1、创建共享磁盘组 create diskgroup OGG external redundancy disk /dev/mapper/ASM08, /dev/mapper/ASM09; 2、创建 acfs 文件系统 ACFS文件系统 在ASM磁盘组中通过A…

开源还是闭源这是一个问题

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

线性数据结构-数组

数组&#xff1a;线性数据结构&#xff08;一维数组结构&#xff09; 线性的数据结构强调存储和顺序 数组在内存存储空间上是连续的&#xff0c;并且长度固定不可变更 数组扩容 因为数组定长&#xff0c;当想往长度为8的数组中添加第九个元素时&#xff0c;操作系统会开辟一段…

如何在 c++ 里,让子类访问到父类的私有数据成员?答案之一:使用第三方友元类或友元函数

看 STL 库的代码时候&#xff0c;见有这种写法&#xff0c;感觉挺神奇的。故简化逻辑后&#xff0c;写个玩具验证一下。本来这是很别扭的做法。既然父类让数据成员私有了&#xff0c;还要让子类去调用&#xff0c;何苦呢&#xff1f;但看大师们的写法&#xff0c;果然 c 编译器…

LAMMPS - 分子动力学模拟器

本文翻译自&#xff1a;https://www.lammps.org/ 文章目录 一、关于 LAMMPS下载作者R&D 100 二、LAMMPS 亮点毛细血管中的血流 一、关于 LAMMPS 官网&#xff1a; https://www.lammps.org/ github &#xff1a;https://github.com/lammps/lammps LAMMPS 分子动力学模拟器…

上位机图像处理和嵌入式模块部署(f103 mcu定时器配置)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 在mcu开发过程当中&#xff0c;有一种开发模式用的比较多&#xff0c;那就是中断while&#xff08;1&#xff09;。这里面的中断&#xff0c;又是以…

【mysql数据库】mycat中间件

MyCat 简介 Mycat 是数据库 中间件 。 1、 数据库中间件 中间件 是一类连接软件组件和应用的计算机软件&#xff0c; 以便于软件各部件之间的沟通 。 例子 Tomcat web 中间件 。 数据库 中间件 连接 java 应用程序和数据库 2、 为什么要用 Mycat ① Java 与数据库紧耦合 …

关于各种儿童竞赛的小讨论

大家好&#xff0c;我是阿赵。   在过去的一个周末&#xff0c;连续两天&#xff0c;我儿子都代表学校参加了小学组的竞赛&#xff0c;分别是GoC编程竞赛和小小科学家的化学竞赛。   我儿子今年4年级&#xff0c;在这读小学的4年里面&#xff0c;他加入过很多所谓的“校队”…

【Linux】操作系统之冯诺依曼体系

&#x1f389;博主首页&#xff1a; 有趣的中国人 &#x1f389;专栏首页&#xff1a; Linux &#x1f389;其它专栏&#xff1a; C初阶 | C进阶 | 初阶数据结构 小伙伴们大家好&#xff0c;本片文章将会讲解 操作系统中 冯诺依曼体系 的相关内容。 如果看到最后您觉得这篇文…

数据仓库应该用什么方案——数据仓库实施方案概述

数据仓库的设计和实施是一个复杂的过程&#xff0c;通常需要根据具体的企业需求和资源来确定最佳的方案。以下是一个详细的数据仓库实施方案概述&#xff0c;但请注意&#xff0c;由于数据仓库的具体实现细节可能因技术栈、业务需求和数据源的不同而有所变化&#xff0c;因此我…

jsp实验19 File

三、源代码以及执行结果截图&#xff1a; readJSPFile.jsp <% page contentType"text/html" %> <% page pageEncoding "utf-8" %> <% page import"java.io.*"%> <style> #tom{ font-family:宋体;font-size:2…

基于Chisel语言的FPGA流水灯程序

目录 一、 内容概要二、 Chisel介绍三、 Chisel的使用四、 流水灯实现五、 心得体会六、 参考链接 一、 内容概要 Chisel介绍Chisel使用流程Chisel流水灯实操 二、 Chisel介绍 Chisel 是一种构建硬件描述语言&#xff08;HDL&#xff09;的高级编程语言&#xff0c;它允许硬…

盘点我们班的一些梗

六一儿童节马上就要到了&#xff0c;祝大家六一快乐哇&#xff01;今天就来盘点我们班的一些梗。 1.鲁滨逊一个&#xff0c;星期五两个 这个梗源自苏联拍的《鲁宾逊漂流记》&#xff0c;鲁滨逊对星期五说&#xff1a;“现在我们需要更多面包&#xff0c;因为我们有两个人。”…

指纹浏览器大全

具体请前往&#xff1a;国内外指纹浏览器大全

脚本编程游戏引擎的挑战与解决方案

哈喽呀&#xff0c;大家好&#xff0c;淼淼又来和大家见面啦&#xff0c;许多行业内的小伙伴们都知道脚本编程游戏引擎在游戏开发中扮演着越来越重要的角色。然而&#xff0c;脚本编程游戏引擎的开发和运行过程中往往会面临许多挑战和问题。这一期淼淼将带大家一起探讨脚本编程…