Instruct2Act:使用大型语言模型将多模态指令映射到机器人动作

news2024/11/27 14:42:09

Instruct2Act:使用大型语言模型将多模态指令映射到机器人动作

基础模型在多种应用中取得了重大进步,包括文本到图像的生成、全景分割和自然语言处理。本文提出了一个名为Instruct2Act的框架,该框架利用大型语言模型将多模态指令映射为机器人操作任务的顺序动作。
具体来说,Instruct2Act使用大型语言模型生成Python程序,构成了一个完整的机器人任务的感知、规划和行动循环。
在感知部分,预定义的API用于访问多个基础模型,其中"Segment Anything Model"(SAM)精确地定位候选物体,而CLIP对它们进行分类。
通过这种方式,该框架利用基础模型的专业知识和机器人的能力,将复杂的高级指令转化为精确的策略代码。我们的方法可以调整和灵活地适应各种指令模态和输入类型,并满足特定任务需求。
我们通过在不同场景下的机器人任务中评估,验证了我们的方法的实用性和效率。此外,我们的零射击方法在许多任务中都超越了许多最先进的基于学习的策略。
在这里插入图片描述

近年来,大型语言模型(LLMs),如GPT-3、LLaMA和ChatGPT在人类文本生成和理解自然语言指令方面取得了前所未有的进步。这些模型在被训练大量收集的语料库并吸收人类反馈后,展示了出色的零样本泛化能力。继续发展的工作,例如Visual ChatGPT,结合了多种视觉基础模型,利用提示管理器实现视觉绘图和编辑。此外,VISPROG提出了一种神经符号化方法,用于复杂的视觉任务,包括图像理解、操作和知识检索。受到将LLMs和多模态基础模型结合的巨大潜力的启发,我们的目标是开发通用的机器人操纵系统。我们是否能建立一个像ChatGPT那样支持机器人操作、视觉目标达成和视觉推理的机器人系统?

开发能够在动态环境中执行复杂任务的通用机器人系统是机器人研究中的一大挑战。这样的系统必须具备感知环境、选择相关机器人技能,并将它们适当地排列以实现长期目标的能力。实现这些功能需要集成各种技术,包括感知、规划和控制,以使机器人能够在非结构化环境中自主操作。受到从LLMs的文档字符串中合成简单Python程序的强大能力的启发,CaP直接基于几个在上下文中的示例语言命令生成以机器人为中心的策略代码。然而,由于代码的高精度要求,它受限于感知API可以提供的内容,并且在解释更长更复杂的命令时会遇到困难。

为了解决这些挑战,我们提出了一种新的方法,利用多模态基础模型和LLMs同时实现感知识别、任务规划和低级控制模块。与现有的直接生成策略代码的方法(如CaP)不同,我们生成可以帮助降低执行复杂任务的错误率的决策制定动作。具体来说,我们使用各种基础模型(如SAM和CLIP)精确地在环境中定位和分类对象。然后,我们结合机器人技能和LLMs生成决策制定动作。

我们在多个领域和场景中评估了我们的方法,包括简单的物体操纵、视觉目标达成和视觉推理。我们的框架提供了一个易于使用的通用机器人系统,并在VIMABench的六个代表性元任务中显示出强大的竞争性能能力。我们的方法可以作为机器人研究领域的强基线方法,并有助于开发更智能、更有能力的机器人。

论文相关特点

  • 通用机器人系统。 我们介绍了一个通用功能的机器人系统Instruct2Act,该系统利用LLMs的上下文学习能力和多模态指令生成来自自然语言和视觉指令的中级决策制定动作。
  • 灵活的模态输入。 本文研究了机器人任务(如操纵和推理)上的统一模态指令输入,并提出了一个灵活的检索架构来处理各种类型的指令。
  • 强大的零样本性能和最小的代码开销。 与最先进的基于学习的策略相比,我们提出的Instrcut2Act显示出优越的性能,甚至无需微调。此外,与从头开始训练的方法相比,使用基础模型的适应效果相对较小。

境中的物体的精确定位和分类

结合外部模块作图像处理,通过结合LLMs的自然语言理解和生成能力,以及各种基础模型,例如SAM和CLIP,来实现环境中的物体的精确定位和分类。这些信息结合机器人技能,可以由LLMs生成决策行动。这种方法的优点是,相比直接生成策略代码的传统方法,例如CaP,此方法可以通过生成决策行动来减少执行复杂任务的错误率。

视觉基础模型的应用

论文提到了视觉任务上的基础模型的使用,包括使用预训练的图像编码器改进从图像中提取的视觉特征,使用大规模的视觉基础模型进行更好的图像分析
同时,预训练的LLMs在文本理解和生成方面也取得了重大进展。最近的研究试图将LLMs的推理能力与视觉基础模型的视觉理解能力相结合。这一点与论文提出的Instruct2Act非常相似,其目标是通过利用先进的基础模型,借助LLM的推理能力,赋予机器人感知能力。

基础模型在机器人学中的应用

LID使用预训练的语言模型来初始化政策网络,其中目标和观察结果被嵌入;R3M探索了如何通过对多元化的人类视频数据进行时差对比学习和视频语言训练,使得下游的机器人操作任务学习数据更为高效;CACTI提出了一个可扩展的视觉模仿学习框架,该框架利用预训练模型将像素值映射到低维的潜在嵌入,从而提高了泛化能力。Instruct2Act框架则采用了视觉基础模型作为可以通过API调用的模块化工具,无需进行微调,从而消除了数据收集和训练成本的需求。

具体实现

Instruct2Act使得机器人能够根据用户的指令以及一个由顶视摄像头捕捉的观察图像来执行一系列的动作。它旨在改变环境中的物体状态,以匹配指令描述中的配置。它使用大型语言模型(LLM)生成可以执行的感知到动作的代码。任务相关的变量(包括在任务指令中使用的图像剪裁和图像到机器人坐标的转换)被存储在一个可以通过API访问的环境缓存中。系统使用感知模型获得对其操控环境的视觉理解。基于这些信息,系统生成可执行的动作代码,机器人在可用的低级控制器的帮助下执行这些代码。为了指导LLM的输出,我们向LLM提供API定义和上下文示例。

为了帮助LLM完成机器人任务,我们提供了一个设计好的提示,以引导LLM的生成,并伴随具体的任务指令。这个提示包括应用程序接口(API)和上下文示例来展示他们的使用,这将在下一节中介绍。LLM的最终输入是一系列的代码API,使用示例和任务指令。LLM的输出是一个可以被Python解释器执行来驱动机器人动作的Python函数字符串

使用LLM作为机器人驱动有几个优点。首先,由LLM的API生成的机器人策略具有高度的灵活性,因为上下文示例可以被调整以指导LLM的行为并适应新的任务。其次,通过直接利用视觉基础模型,无需收集训练数据或进行训练过程,且任何基础模型的改进都可以提高动作准确性,而无需额外的成本。最后,简单的API命名和可读的Python代码使得生成的策略代码高度可解释。

具体控制实现:
在获取了输入图像的语义信息(包括目标对象的位置和语义类别)后,我们需要在图像空间和动作空间之间建立一个映射来生成可执行的动作。我们使用一个预定义的变换矩阵将物体位置转换为机器人坐标,并应用边界夹持来防止意外的动作。LLM根据指令和上下文示例识别合适的动作。
在这里插入图片描述

具体的驱动:

可以利用大型语言模型(LLM)通过为其提供设计好的提示来驱动机器人任务。这包括应用程序编程接口(API)、使用示例和任务说明。LLM输出一个可以执行机器人动作的Python函数。这种方法具有多个优点,包括灵活性、无需训练数据以及由于基础模型的改进动作准确性。在获取输入图像的语义信息后,建立图像空间和动作空间之间的映射,以生成可执行的动作。

论文通过提供任务的API定义和使用示例的方式演示了这种工作原理的示例,如“将斑点方块放入绿色容器中”和“将拖动的对象旋转150度”。

Instruct2Act的提示

完整的Instruct2Act提示应包括有关第三方库、API定义和上下文示例的信息。这有助于LLM理解如何使用API并执行计算。根据机器人系统层次结构的功能,对API进行分类。例如,SAM()函数是感知模块的一部分。作者还为不同模块提供了完整的代码示例。提示的设计涵盖了所有任务,并包含较少的上下文示例。

使用现成的基础模型进行感知

Instruct2Act使用现成的视觉基础模型,如Segment Anything Model(SAM)和CLIP模型,通过两个API进行访问:SAM()和CLIPRetrieval()。这些函数分析任务的视觉元素。然而,使用预训练的视觉模型时可能存在不正确和不完整的问题。作者通过应用各种图像处理技术和过滤机制来解决这些问题。

结果的评估

论文使用六个桌面操纵元任务来评估所提出的方法。示例包括视觉操纵、旋转和重新排列任务,每个任务都与单模态和多模态指令相关联。
在这里插入图片描述

多模态输入处理

将输入分类型进行处理,Instruct2Act能够处理多模态指令,包括纯语言指令和语言-视觉指令。对于纯语言输入,Instruct2Act利用大型语言模型(LLM)从指令中提取查询,然后使用该查询从环境中获取适当的对象。对于语言-视觉指令,指令包括目标对象或状态的图像,Instruct2Act使用该图像获取所需的对象。

Instruct2Act还提供了一种指向-语言增强指令的方法,其中使用光标移动方法生成指向提示,用于引导分割。

该方法使用VIMABench中的各种任务进行了评估。实验结果显示,Instruct2Act在性能上与最先进的基于学习的方法VIMA相当。在需要多个步骤的任务中,它也明显优于VIMA。

Instruct2Act在多模态指令任务中的性能通常优于单模态指令。该方法还展示了在L2和L3泛化任务上强大的泛化能力。此外,该方法是零样本学习的,意味着它能够在没有任何先前训练的情况下执行这些任务。

疑惑: “Instruct2Act还提供了一种指向-语言增强指令的方法,其中使用光标移动方法生成指向提示,用于引导分割。” 不熟悉的领域,这个是怎么实现的?

错误生成情况的处理

缺乏使用示例的情况下,模型可能生成不必要的动作,如在Listing 2中所见,或者不返回已执行的信息,如在Listing 4中所见。然而,我们很高兴发现,LLM能够通过调用SaveFailureImage函数来处理执行失败的情况
在这里插入图片描述

和adapter一起使用

在这里插入图片描述

其他

Instruct2Act中的处理模块A.2可以解决预训练模型在没有进行微调的情况下直接用于下游任务所出现的问题,如不完整性或错误。在这个全程执行机器人任务的循环中,我们制定了各种处理程序,分别针对感知、规划和执行这三个模块,并针对桌面操作领域进行了设计。例如,图像预处理方法,我们使用灰度阈值过滤器和闭合形态学操作来减少阴影对目标对象识别的影响。在遮罩后处理中,我们开发了一套处理模块来处理SAM的输出,包括基于遮罩大小的过滤过程、扩张操作以及非极大值抑制(NMS)操作等。

此外,通过引入指向语言增强指令,用户可以通过点击来选择目标对象,这些点击点将作为点提示来引导SAM的分割过程。结果显示,与纯语言指令模式相比,使用指向语言增强模式的Instruct2Act效果更好。

结论

Instruct2Act框架利用LLM将多模态指令映射到机器人领域的顺序动作。通过LLM生成的策略代码,使用API调用各种视觉基础模型来获得对任务集的视觉理解。为了弥补零样本设置中的差距,引入了一些处理模块。广泛的实验证实了Instruct2Act在机器人操作任务中的有效性和灵活性。

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

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

相关文章

代码随想录算法学习心得 42 | 121. 买卖股票的最佳时机、122.买卖股票的最佳时机II...

一、买卖股票的最佳时机 链接:力扣 描述:给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算…

iOS添加测试设备报错ineligible for 14 days

2023年7月8日申请苹果个人开发账号审核通过。 2023年7月10日在苹果开发平台分别创建Certificates、Identifiers、Devices添加一台测试设备、Profiles,将已经准备好的项目打包上传,使用testflight测试app,使用测试设备一切顺利。 2023年7月1…

中缀表达式转前、后缀表达式

中缀表达式:按照人为理解的运算优先顺序进行计算,如ab 前缀表达式:运算符在括号之前,如ab 后缀表达式:运算符提在括号之后,如ab 解题步骤: ①用括号把每一个表达式括起来(可以先全部括起来后挨…

RPC分布式网络通信框架(一)—— protobuf的使用

文章目录 一、protobuf的好处二、如何创建proto三、编译生成的C类UserServiceRpcUserServiceRpc_Stub四、序列化和反序列化序列化反序列化 粘包问题解决调用者组包提供者解包 一、protobuf的好处 1、protobuf是二进制存储的,xml和json都是文本存储的。故protobuf占…

综合布线系统(PDS)

综合布线系统(PDS) 综合布线系统的基本标准 ● TIA/EIA-568A/B:商业大楼电信布线标准 ● EIA/TIA-569:电信通道和空间的商业大楼标准 ● EIA/TIA-570:住宅和N型商业电信布线标准 ● TIA/EIA-606:商业大楼电信基础设施…

windows便签推荐哪款?

随着科技技术的进步,越来越多的人喜欢使用便签软件,因为它们能帮助我们快速记录和管理重要的信息和任务。在快节奏的现代生活中,便签软件成为了我们生活和工作中不可或缺的工具。特别是对于经常使用电脑的用户来说,一款优秀的便签…

戴尔外星人x16r1原装Win11系统带F12还原功能

戴尔外星人x16r1原装Win11系统带F12还原功能 电脑恢复到新机状态,完成: 1.系统恢复到预装系统,与新机买来状态完全一致; 2.隐藏恢复分区,戴尔与外星人相同,可以用来开机F12进入supportassis os recovery…

选择排序

选择排序 排序步骤(有n个数需要排序) 在一组序列中找到最大/小的元素,将其与序列的起始位置交换;此时可进一步缩小排序范围,将改序列的起始位置移出;寻找剩余范围序列中的最大/小值,与此时序列…

deeplabv3+源码之慢慢解析 第二章datasets文件夹(1)voc.py--voc_cmap函数和download_extract函数

系列文章目录(更新中) 第一章deeplabv3源码之慢慢解析 根目录(1)main.py–get_argparser函数 第一章deeplabv3源码之慢慢解析 根目录(2)main.py–get_dataset函数 第一章deeplabv3源码之慢慢解析 根目录(3)main.py–validate函数 第一章deeplabv3源码之…

JS UMD规范实现

UMD实现范例 (function (root, factory) {if (typeof module object && typeof module.exports object) {console.log(是commonjs模块规范,nodejs环境);var depModule require(./umd-module-depended);module.exports factory(depModule);} else if (t…

ElasticSearch入门教程--集群搭建和版本比较

文章目录 一、ElasticSearch 集群二、Elasticsearch的核心概念2.1、分片(Shards)2.2、副本(Replicas)2.3、路由计算2.4、倒排索引 三、Kibana简介四、Spring Data ElasticSearch 一、ElasticSearch 集群 Elasticsearch 集群有一个…

python pytorch 纯算法实现前馈神经网络训练(数据集随机生成)-续

python pytorch 纯算法实现前馈神经网络训练(数据集随机生成)-续 上一次的代码博主看了,有两个小问题其实,一个是,SGD优化的时候,那个梯度应该初始化为0,还一个是我并没有用到随机生成batch。 …

Flowable边界事件-定时边界事件

定时边界事件 定时边界事件一、定义1. 图形标记2. 完整的流程图3. XML标记 二、测试用例2.1 定时边界事件xml文件2.2 定时边界事件测试用例 总结 定时边界事件 一、定义 时间达到设定的时间之后触发事件 由于定时边界事件和开始定时事件几乎差不多,四种情况我就不一…

14、双亲委托模型

双亲委托模型 先直接来看一幅图 双亲委派模型的好处: 主要是为了安全性,避免用户自己编写的类动态替换Java的一些核心类,比如 String。 同时也避免了类的重复加载,因为JVM中区分不同类,不仅仅是根据类名&#xff0c…

React 新版官方文档 (二) useState 用法详解

背景 本文默认读者对 useState 有最为基本的了解,比如知道他的写法应当是怎样的,下面着重介绍部分重要的、在开发过程中会踩的坑和一些特性,最后动手实现一个最基本的 useState 代码 useState ⭐️ 注意事项: 状态只在下次更新时异步变化&…

Shiro教程(一):入门概述与基本使用

Shiro 第一章:入门概述 1.1 Shiro是什么 Apache.Shiro是一个功能强大且易于使用的Java安全(权限)框架。Shiro可以完成:认证、授权、加密、会话管理、与Web集成、缓存等。借助Shiro可以快速轻松地保护任何应用程序——从最小的移…

用于3D渲染和平面设计应该怎么选择显卡?

首先了解快速解决3D渲染本地配置不足,节省硬件成本的方法: 本地电脑资源不足,在不增加额外的硬件成本投入的情况下,想要快速提升渲染速度,可使用渲云云渲染,且可批量渲染,批量出结果&#xff0…

centos7密码忘记恢复方法

首先启动系统看到如下界面: 然后按"e"键,看到下面的界面 然后使用"↓"按键移动光标, 移动到linux16 将上图中红色箭头指向的ro替换成下图中画红线的内容: ro替换成rw init/sysroot/bin/sh。 然后按CTRLX进入…

【ABAP】数据类型(五)「结构体概要」

💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后端的开发语言ABAP,SQL进行任务的完成,对SAP企业管理系统,SAP ABAP开发和数据库具有较…