ChatGPT for Robotics: Design Principles and Model Abilities翻译

摘要

本文介绍了一项有关使用OpenAI的ChatGPT以用于机器人技术应用的实验研究。我们概述了一个策略,该策略结合了提示工程的设计原理并创建了高级函数库,该函数库可以适应不同的机器人任务,模拟器和形态。我们主要关注对不同提示工程技术,以及执行各种类型机器人任务有效性的评估。除了特定任务的提示函数的使用以及通过对话进行闭环推理外,我们还探索了ChatGPT进行自由对话,解析XML标签和生成代码的能力。我们的研究涵盖了机器人技术领域内的一系列任务,从基本的逻辑,几何和数学推理,再到复杂的领域,例如空中导航,操控和实体智能体。我们表明,ChatGPT可以有效地解决大量的此类任务,同时允许用户通过自然语言指令与之进行交互。除这些研究外,我们还引入了一种名为PromptCraft的开源研究工具,该工具包含一个平台,其中研究员可以在其中协作上传并投票能够促进机器人应用的良好样例,同时还包含了用ChatGPT集成的机器人模拟器,使得用户更容易使用基于ChatGPT的机器人技术。

1.介绍

在这里插入图片描述
  自然语言处理(NLP)的快速发展导致了大型语言模型(LLM)的发展,例如BERT,GPT-3和Codex,它们正在彻底改变各种应用场景。这些模型在各种任务中取得了显着的结果,例如文本生成,机器翻译和代码生成等。这些模型家族的最新成员是OpenAI ChatGPT,这是一种预训练的文本生成模型,使用人类反馈进行了微调。与以前仅在单个提示(任务)下运行的模型不同,ChatGPT通过对话提供了特别令人印象深刻的交互技巧,将文本生成与代码生成相结合。我们本文的目标是研究ChatGPT的能力以及如何推广到机器人技术领域。
  与纯文本应用不同,机器人系统需要深入理解现实世界的物理规则,环境上下文同时具备执行物理行为的能力。一个生成式机器人模型需要具有强大的常识知识和复杂的世界模型,并且能够与用户交互以解释和执行物理命令,并且对现实世界进行感知。这些挑战超出了语言模型的原始范围,因为它们不仅需要理解给定文本的含义,而且还需将意图转化为具备物理动作的逻辑序列。
  近年来,将语言模型纳入机器人系统系统中已经有不同的尝试。这些努力主要集中在使用语言字符嵌入模型,LLM特征以及用于特定形式或场景的多模态模型。应用范围从视觉语言导航,基于语言的人机交互和视觉语言操作控制。但是,尽管在机器人技术中使用LLM具有潜在优势,但大多数现有方法都受到刚性范围和有限的函数集的限制,或者由于其开环特性而不允许从用户反馈中进行流体交互和行为纠正。
  当使用具有高级智能体计划或代码生成任务时,诸如GPT-3,LaMDA和Codex之类的模型在zero-shot机器人场景中表现出希望。这些早期的演示激发了我们调查ChatGPT作为机器人领域的潜在用途更广泛的工具,因为它结合了自然语言和代码生成模型的优势以及对话的灵活性。ChatGPT参与自由形式的对话和捕获长上下文的能力使用户可以以更自然的方式与模型进行互动,并具有灵活的行为纠正。
  在本文中,我们旨在证明ChatGPT用于机器人技术应用的潜力。我们概述了一个关键概念,即构建一个高级函数库,该概念可以解锁ChatGPT解决机器人应用程序的能力。考虑到机器人技术是一个多元化的领域,存在多种平台,场景和工具,因此存在各种各样的库和API。我们没有要求LLM输出特定平台或函数库的代码,这可能涉及广泛的微调,而是创建一个简单的高级函数库,然后通过改函数库将其链接到后端实际选择的平台以及API。因此,我们允许ChatGPT从自然对话中解析用户意图,并将其转换为高级函数调用的逻辑链。我们还概述了一些及提示工程指南,以帮助ChatGPT解决机器人技术任务。
  我们的研究表明,ChatGPT能够以zero-shot的方式解决各种与机器人相关的任务,同时适应多种形式,并允许通过对话进行闭环推理。此外,我们旨在展示当前的模型限制,并提供有关如何克服它们的想法。 我们的主要贡献如下:

  • 我们演示了将ChatGPT应用于机器人任务的管道。该管道涉及多种提示技术,例如自由形式的自然语言对话,代码提示,XML标签和闭环推理。我们还展示了用户如何利用高级函数库,以允许模型可以快速解析人类意图并生成解决问题的代码;
  • 我们引入了一个协作开源平台PromptCraft,研究人员可以在这里共同工作,以提供在LLM和机器人环境联合工作的正例(和负例)提示策略的示例。提示工程是一门基本的经验科学,我们希望为研究人员提供一个简单的界面,以作为一个社区进行知识贡献。我们的目标是提供不同的环境,用户可以测试他们的提示,并欢迎新的贡献;
  • 我们发布了一个模拟工具,该工具与Microsoft AirSim结合使用,并集成了ChatGPT。 AirSim-ChatGPT 模拟包含用于无人机导航的示例环境,并旨在成为研究人员探索ChatGPT如何启用机器人方案的起点。

通过这项工作,我们希望为未来融合LLM和机器人技术的研究开辟新的机会和途径。我们认为,我们的发现将激发和指导在这个领域的进一步研究,为开发新的创新机器人系统系统铺平了道路,这些系统可以以自然,直观的方式与人类互动。有关更多详细信息,我们鼓励读者在项目网页中查看我们实验的详细视频。

2.Robotics with ChatGPT

在这里插入图片描述
  提示LLM以进行机器人技术控制具有一些挑战,例如对问题提供完整而准确的描述,确定正确的可用的函数调用和API集合,并使用特殊参数改变答案结构。为了有效利用ChatGPT进行机器人技术应用,我们构建了由以下步骤组成的管道:

  1. 首先,我们定义一个高级机器人函数库。该库可以包含特定的场景,并应将其映射到机器人平台的实际实现,并用ChatGPT可以理解的描述进行命名;
  2. 接下来,我们为ChatGPT构建提示,该提示描述了目标,同时还包含了库中允许调用的高级函数。该提示还可以包含有关约束的信息,或者ChatGPT应该如何构建其响应;
  3. 用户处于循环中,通过直接分析或通过仿真来评估ChatGPT的代码输出,并为ChatGPT提供有关输出代码质量和安全性的反馈;
  4. 在迭代ChatGPT生成的实现之后,可以将最终代码部署到机器人上。

以家用机器人的示例,我们在图2中显示了该管道的可视化描述。

2.1 Construction and description of the robotics API library

在这里插入图片描述
  机器人技术是一个完善的领域,已经存在许多调用库,无论是黑盒的还是开源的,它们都可以用于在感知和动作场景下实现基本功能(例如,目标检测和分割,映射,运动规划,控件,抓握)。如果在提示中正确指定,LLM可以使用这些预定义的函数进行机器人的推理和执行。
  一个重要的提示设计要求是所有API名称都必须描述整体函数行为。清晰的名称对于LLM推理API各功能间的关系至关重要,并为问题产生所需的结果。因此,我们可以定义高级函数,这些函数是对各个库实际实现的封装。例如,一个名为detect_object(object_name) 的函数可以内部链接到OpenCV函数或计算机视觉模型,而诸如move_to(x, y, z)之类的函数可以内部调用运动规划和避障pipeline,以使用底层电机命令驱动无人机。在提示中列出这些的高级函数集合允许ChatGPT创建行为基础的逻辑序列,并泛化到不同场景和平台。
  根据上下文,我们希望能够解释API的功能,并在需要时将其分解为具有清晰输入和输出的子组件,类似于代码文档。在图3中,我们提供了一个很好的API提示策略的示例,以用于家庭烹饪机器人场景。所提出的策略允许ChatGPT根据机器人实际上可以执行任务的命令来推理任务的顺序和内容。相比之下,我们推荐有兴趣的读者阅读附录A.1,以了解当没有给出API指南的情况下,ChatGPT是如何推理的,这将导致无限答案文本,或者是附录A.2,是一个未具体指定API的示例,这导致函数调用参数出现hallucinations。
  我们注意到,与经典symbolic AI中需要对象和函数之间具有严格的预定义关系,这种脆性结构不同,LLM能够在处理特定相关问题时完全定义新函数和概念。该函数在处理机器人技术应用时赋予了LLM的灵活性和鲁棒性。图4显示了ChatGPT如何在需要解决问题的情况下创建新的高级概念,甚至是低级代码,甚至可以融合现有的API。循环中的用户可以利用此能力作为设计策略,并且在当前的函数不足以求解手头的任务时,可以在LLM的帮助下迭代定义新的API。
在这里插入图片描述

2.2 Clear description of the task details in the prompt

在这里插入图片描述
  通过对所需的机器人任务及其上下文提供清晰简洁的描述,ChatGPT可以产生更准确的响应。除了机器人API以外,良好的上下文描述应包含:

  • 约束和要求:指定与任务相关的约束或要求。例如,如果任务涉及移动目标,则可以指定要移动的目标的重量,大小和形状。
  • 当前状态:描述机器人系统的当前状态。例如,如果任务是拾取一个目标,则可以描述机器人和目标的当前位置和方向。
  • 目标和物体:陈述任务的目标和物体。如果任务要组装一个拼图,则可以指定需要组装的零件数量以及所需的完成时间。
  • 解决方案示例:说明如何解决类似任务以作为一种指导LLM提出解决策略的手段。例如,如果任务涉及与用户的交互,我们可以描述一个示例,即机器人什么时候以及如何使用用户的输入的示例(见图5)。请注意,启动也可以引入偏见,因此我们应该提供各种示例,并避免过度规定的语言。

即使是设计良好的提示,也可能没有包含问题所需的所有必要信息,或者在某些情况下,ChatGPT无法以zero-shot的方式生成正确的响应。在这些情况下,我们发现用户可以采取的简单有效的策略是在聊天格式中发送其他说明来描述问题,并使其自身纠正。依靠GPT-3或Codex模型的先前方法要求用户重新设计输入提示并从头开始生成新的输出。但是,ChatGPT的对话能力是一种令人惊讶的有效校正工具。第3.2节和补充视频显示了用户和ChatGPT之间交互行为的示例。

2.3 Special arguments to bias the answer’s structure

可以使用不同的提示方法来迫使模型的输出遵守某些特定模式。例如,用户可能希望自动解析ChatGPT的输出,以便在其他脚本中使用它以实时执行。如图3所示,一个简单的策略是直接要求ChatGPT以特定语言(例如Python,C ++)生成代码。通常以下是自由格式的文本段落,然后是代码块。可以通过要求模型使用XML标签来帮助我们自动解析输出,从而产生更结构化的响应,如图5所示。
  在其他设置中,用户可能希望迫使模型按照列表模式输出答案,而不是代码或自由形式的文本。附录A.3显示了这种方法的示例,其中用户提示的最后一行用于指导模型的输出。

3.ChatGPT abilities for solving robotics problems

在本节中,我们将更深入地研究ChatGPT解决机器人问题的能力。具体而言,我们研究了ChatGPT在处理各种机器人技术相关的任务时的表现,从简单的时空推理问题一直到现实世界中的空中智能体和操纵部署。我们强调了在这些实验中观察到的几种有趣的能力。
  尽管ChatGPT的能力令人印象深刻,但实际部署安全考虑不应被忽略,尤其是在物理机器人部署的情况下。如图2所示,我们发现有必要在循环上让人类为ChatGPT产生意外行为的情况下进行监视和干预。此外,模拟器的使用可能特别有助于在现实世界中部署之前评估模型的性能。我们强调,将ChatGPT用于机器人技术不是一个完全自动化的过程,而是充当增强人类能力的工具。
  我们在附录B中为本节中的问题提供了所有初始提示。为了简洁起见,我们仅包括每个任务中的简短摘录。完整的对话可以在以下git库中找到:https://github.com/microsoft/PromptCraft-Robotics。

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

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

相关文章

总结如何设计一款营销低代码可视化海报平台

背景 我所在的部门负责的是活动业务,每天都有很多的营销活动,随之而来的就是大量的H5活动页面。而这些H5活动已经沉淀出了比较固定的玩法交互,我们开发大多数的工作也只是在复制粘贴这种大量的重复工作。 在基于此背景下我开始了低代码平台…

我们来聊聊如何选择一家靠谱的学习机构

随着云时代的来临,大数据技术越来越受各位朋友的青睐,这其中不乏有很多是0基础的朋友,我相信大多数朋友都会考虑找一家靠谱的培训机构集中学习一段时间,从而进入大数据行业,因为这是最有效率的方式。那么在众多的机构中…

又有人因为买考研资料被骗!4种常见骗局曝光,第三种最可恶!

前短时间在微博上看到了一位伙伴,他就因为“被骗”陷入了无限自责当中: 到底因为什么被骗我们不去追问,但是就像“每年都有人忘带准考证”的新闻一样,“xxx因买考研资料被骗”、“xxx因买押题资料花了上千元”已经是考研人的“常规…

电脑城最简单骗局,仍然有无数人上当

今天在一个微信群中偶然看到有群友提起自己去电脑城买电脑的故事,这位朋友和我一样,也是搬砖程序员一枚,他说电脑城的业务员告诉他说:“你看上的那款电脑,不适合你,因为这个型号的电脑只能从应用市场下载软…

哎,开发又被骗了……

原来有朋友给我说:人性经不起考验。 但是我觉得还是诚信的人比较多的。 但是直到我又被鸽了…… 怎么说又? 上周开发,接了个活,做完了,鸽我了。 不过这次鸽的我更心寒了。 前两天,有个粉丝私信我&#xff0…

谈谈培训机构的-骗局-怎么避免被坑

前言 本文只谈"骗局",不谈其他,绝不引战,如有错误,希望指出我会及时改正,想要讨论的可以在留言区写下你的观点和经历。 为什么要写这篇文章呢,近些年培训这个话题也比较火,很多在看这…

这些培训机构的骗局,一定要注意

本文作者:十三 Github:https://github.com/ZHENFENG13 前言 本文只谈"骗局",不谈其他,绝不引战,如有错误,希望指出我会及时改正。 为什么要写这篇文章呢,近些年培训这个话题也比较火&…

谈谈培训机构的-骗局-给新人一些建议

前言 本文只谈"骗局",不谈其他,绝不引战,如有错误,希望指出我会及时改正,想要讨论的可以在留言区写下你的观点和经历。 为什么要写这篇文章呢,近些年培训这个话题也比较火,很多在看这…

Postman测试@RequestBody发送请求时报400错误

postman测试requestbody时碰到400错误 原因: ●传参数如果不使用RequestBody,在使用Postman进行Post请求时, 通常做法是填入key和value的值即可。 ●传参数如果使用RequestBody,在使用RequestBody注解时,在发送请求时,就需要在Postman的"…

Postman(06)Postman调接口报错400 Bad Request

📚 问题背景 今天有个盆友碰见一个很有趣的问题,他在本地写了个接口,想要用Postman做一下测试,他说自查了一遍,接口写法没问题,项目启动也非常正常,但是在Postman里一调就报错“400 Bad Reques…

Postman报401错误

问题: 出现401 无权限 解决办法: 重新获得token,然后重新写一个新的token的值就好了。

postman 的post请求报 400 Bad Request

记录一下postman的post 请求出错的问题: 以上的请求是token过期,只需要将token 的value值换一下。 以上的请求是你的post请求体的参数类型写错了,我这里是把startTime和endTime写错格式, 因为java代码中规定了格式为:…

POST请求 status 415错误解决方法(POSTMAN测试)

问题 测试的时候使用postman进行测试,结果出现了415错误,状态 已解决解决方法 经仔细排查代码发现需使用application/json格式,进行body内容的发送。操作如图

Postman报:400 Bad Request

前言 使用Postman发送Post请求报400,入参为JSON;Postman截图 二、分析 1、Postman请求并没有请求到后台Api(由于语法错误,服务器无法理解请求);2、入参出错范围:cookie、header、body、form…

Postman发送post请求时报400错误,Required request body is missing

项目形参位置存在RequestBody注解,用Postman发送post请求时报400错误,Required request body is missing。 错误图示: 解决方法: 方法一: 项目中形参位置不使用RequestBody,在Postman进行Post请求时&…

Postman报401错误,Unauthorized以及其他接口如何填上token

用Postman测试接口,报401错误,Unauthorized Unauthorized是指没有权限,我们想要测试这个接口,但是前提要用户登录获得权限,现在怎么办呢? 我们测试登录的接口,拿到token 接着,我们…

Sam Altman 示范 ChatGPT 自定义指令

OpenAI的CEO在社交媒体上亲自推广ChatGPT的自定义功能。这一大段的prompt词是什么意思?我们让GPT翻译下: 那么,如果制作成MixCopilot的工作流是怎么样的?只需要打开编辑器,在角色节点输入以上提示词,保存下…

计算机考研网络复试总结

记:2020年5月17日,我终于结束了令人煎熬的研究生复试。2020年注定不平凡,研究生网络复试感觉还挺好的,一来可以节省一笔不小的开支,二来没有一群导师面对面提问的那么有压力。接下来谈一谈自己的感受以及老师问的题目。…

杭电复试笔记第六天

又是忙碌又焦急的一天。 早上六点起来,小明同学就开始学习英语,被逼无奈的我也跟着学习英语,本身骨子里就是个懒散的人,羡慕小明同学这种自学能力超强,超用功的男生。和小明同学一起复习了很多专业课知识。然后直接奔…

川大计算机差额复试比例,四川大学研究生复试比例

chanchangben 新兵答主 02-19 TA获得超过9921个赞 研究生复试后可以选择服从调剂。开通调剂系统的几天之内,不少院校并没有完成复试工作,所以像标题说的那些进入了第一志愿复试的人,这个时候并不知道自己会不会被刷掉,但这个时候调…