首页 > 资讯 > 综合 > 正文
2023-09-09 07:12

ProgPrompt:使用大型语言模型生成定位机器人任务规划的程序

摘要

任务规划可能需要定义关于机器人需要在其中行动的世界的无数领域知识。为了改进这种工作,可以使用大型语言模型(llm)在任务规划期间对潜在的下一步动作进行评分,甚至可以直接生成动作序列,在没有附加领域信息的自然语言中给出指令。然而,这种方法要么需要列举所有可能的下一步得分,要么生成自由格式的文本,其中可能包含给定机器人在当前上下文中不可能执行的动作。我们提出了一个程序化的LLM提示结构,使计划生成功能能够跨越环境、机器人能力和任务。我们的主要见解是用环境中可用操作和对象的类似程序的规范,以及可以执行的示例程序来提示LLM。我们通过消融实验提出了关于提示结构和生成约束的具体建议,展示了VirtualHome家庭任务中最先进的成功率,并将我们的方法部署在用于桌面任务的物理机械臂上。网站和代码在progprompt.github.io

1 介绍

日常家务既需要对世界的常识性理解,也需要对当前环境的情境性知识。要为“做饭”创建一个任务计划,智能体需要常识:对象的可视性,比如炉子和微波炉可以用来加热;合乎逻辑的行动顺序,例如在加入食物之前必须预热烤箱;物体和动作的任务相关性,比如加热和食物,首先是与“晚餐”相关的动作。然而,如果没有状态反馈,这种推理是不可行的。代理需要知道在当前环境中有什么食物可用,比如冷冻室里是否有鱼,冰箱里是否有鸡肉。

在大型语料库上训练的自回归大型语言模型(LLMs)在输入提示条件下生成文本序列,具有显著的多任务泛化能力。这种能力最近被用来在机器人任务规划的背景下生成合理的行动计划(Ahn等人,2022;黄等,20022b, a;Zeng et al., 2022)通过对后续步骤进行评分或直接生成新步骤。在评分模式中,LLM从可能的空间中评估操作及其参数的枚举。例如,给定一个“做晚餐”的目标,第一个动作是“打开冰箱”,LLM可以对一系列可能的动作进行评分:“拿起鸡肉”、“拿起苏打水”、“关上冰箱”、“打开电灯开关”。在文本生成模式下,LLM可以生成接下来的几个单词,然后需要将这些单词映射到代理可用的动作和世界对象。例如,如果LLM生成“伸手并捡起泡菜罐”,那么该字符串必须整齐地映射到“捡起罐子”这样的可执行操作。在基于llm的任务规划中缺少的一个关键组件是来自环境的状态反馈。家里的冰箱里可能没有鸡肉、苏打水或泡菜,但一条高级指令“做晚饭”并不能给我们提供世界状态的信息。我们的工作在基于llm的机器人任务规划中引入了情境感知。

图1
figure 1

Progprompt利用llm在世界知识和编程语言理解方面的优势,生成可直接执行的情境任务计划

我们介绍了Progprompt,这是一个超越自然语言调节llm的提示方案。Progprompt利用编程语言结构,利用LLM是在包括许多编程教程和代码文档的大量网络语料库上训练的事实(图1)。Progprompt为LLM提供了一个python程序头,其中包含可用操作及其预期参数的import语句,环境对象列表和函数定义,如make_dinner,其主体是在对象上操作的操作序列。我们通过断言我们的计划的先决条件来结合来自环境的位置状态反馈,例如在试图打开冰箱之前靠近冰箱,并通过恢复行动响应失败的断言。更重要的是,我们表明,在Progprompt程序中包含自然语言注释来解释即将到来的动作的目标,可以提高生成计划程序的任务成功率。

2 背景及相关工作

2.1 任务计划

对于高级规划,机器人中的大多数工作使用预定义领域的搜索(Fikes和Nilsson, 1971;Jiang et al., 2018;Garrett et al., 2020)。在具有许多可行动作和对象的环境中,无条件搜索很难扩展(Puig等人,2018;Shridhar等人,2020),由于大分支因素。启发式通常用于指导搜索(拜尔等人,2007;霍夫曼,2001;Helmert, 2006;Bryce and Kambhampati, 2007)。最近的作品探索了基于学习的任务和运动规划,使用表征学习、分层学习、语言作为规划空间、学习构图技巧等方法(Akakzia等人,2021;Eysenbach et al., 2019;Jiang et al., 2019;Kurutach等人,2018;Mirchandani et al., 2021;奈尔和芬恩,2020;Shah et al., 2022;Sharma et al., 2022;Silver et al., 2022;Srinivas et al., 2018;徐等人,2018,2019;朱等人,2020)。我们的方法绕过搜索,直接生成包含条件推理和纠错的计划。

我们将任务规划表述为元组。是环境中可用的所有对象的集合,是对象的一组属性,它也通知对象的功能,是一组可执行的操作,它根据定义为的当前环境状态而变化。状态是所有对象属性的特定赋值,是所有可能赋值的集合。表示转换模型,是初始状态和目标状态。代理不能访问目标状态,只能访问高级任务描述。

考虑一下“微波鲑鱼”这个任务。任务相关对象微波,鲑鱼将有属性修改在行动执行期间。例如,动作打开(微波)会将状态从变为允许,即。在本例中,目标状态可以包含条件和。

2.2 法学硕士规划

大型语言模型(LLM)是一个具有许多参数的神经网络,目前有数千亿个参数(Brown et al., 2020;Chen等人,2021)在无监督学习目标(如下一个令牌预测或掩模语言建模)上进行了训练。一个自回归的LLM是用最大似然损失来训练的,以模拟一个基于输入序列的令牌序列的概率,即,其中是模型参数。然后使用训练好的LLM进行预测,其中是所有文本序列的集合。由于搜索空间巨大,近似解码策略用于可追溯性(Holtzman et al., 2020;Luong et al., 2015;怀斯曼等人,2017)。

法学硕士在大型文本语料库上进行训练,并在提供相关提示输入时表现出多任务泛化。促使法学硕士生成对机器人任务规划有用的文本是一个新兴主题(Ahn et al., 2022;詹森,2020;黄等,20022a, b;Li et al., 2022;Patel和Pavlick, 2022)。由于缺乏与可执行计划或机器人动作序列配对的自然语言指令文本,提示设计具有挑战性(Liu et al., 2021)。设计任务计划预测提示可以分解为提示功能和答案搜索策略(Liu et al., 2021)。提示函数,将输入状态观察转换为文本提示。答案搜索是生成步骤,在此步骤中,LLM从整个LLM词汇表中输出或对一组预定义的选项进行评分。

与我们的工作最接近的是Huang等人(2022a)使用llm生成开放域计划。在该工作中,规划通过以下方式进行:1)选择提示示例()中的类似任务;2)开放式任务计划生成(答案搜索);3) 1:1预测到动作匹配。整个计划是开环生成的,没有任何环境交互,然后测试匹配操作的可执行性。然而,基于生成文本的动作匹配并不能确保该动作在当前情况下是可接受的。InnerMonologue (Huang et al., 2022b)引入了环境反馈和状态监测,但仍然发现LLM规划者提出的行动涉及场景中不存在的物体。我们的工作表明,一个受编程语言启发的提示生成器可以告知LLM所处的环境状态和可用的机器人动作,确保输出与机器人动作的兼容性。

相关的SayCan (Ahn et al., 2022)使用llm的自然语言提示来生成一组可行的计划步骤,使用学习的价值函数重新评分匹配的可接受动作。SayCan构建了一组用自然语言表达的所有可接受行为,并使用LLM对它们进行评分。这在具有组合动作空间的环境中是具有挑战性的。与我们的工作同时进行的是苏格拉底模型(Zeng et al., 2022),它也使用代码补全来生成机器人计划。我们更进一步(Zeng et al., 2022),在提示符中利用编程语言的其他熟悉特性。我们定义了一个包括导入语句来模拟机器人的功能,自然语言注释来引出常识性推理,以及断言来跟踪执行状态。我们的答案搜索是通过允许LLM直接生成一个完整的、可执行的计划程序来执行的。

图2
figure 2

我们的Progprompts包括导入语句、对象列表和示例任务(Planning提示)。生成计划是微波鲑鱼。我们突出显示提示注释、作为导入函数调用的操作(以对象作为参数)和带有恢复步骤的断言。状态反馈提示表示示例断言检查。我们通过一个断言成功或失败的场景进一步说明程序的执行,以及生成的计划如何在执行下一步之前纠正错误。完整执行显示在右下角。“…用于简洁

2.3 最近的发展Progprompt

Vemprala等人(2023)在空中机器人、操纵和视觉导航等领域进一步探索了基于api的规划。他们讨论了构建交互api、动作和感知的设计原则,以及可用于为机器人应用程序生成代码的提示。Huang等人(2023)以SayCan (Ahn等人,2022)为基础,在使用LLM和基于预训练的价值函数对令牌进行评分的同时,逐令牌生成规划步骤。Cao和Lee(2023)探索使用llm生成行为树来研究分层任务规划。Skreta等人(2023)提出了通过语法验证器迭代纠错的方法,该语法验证器反复提示LLM使用先前的查询并附加错误列表。Mai等人(2023)与Zeng等人(2022)、Huang等人(2022b)的方法类似,将感知、计划、控制、记忆和对话零镜头的预训练模型集成在一起,用于主动探索和体现问答任务。Gupta和Kembhavi(2022)扩展了LLM代码生成和基于api的感知交互方法,用于各种视觉语言任务。Xie等人(2023a)、Capitanelli和Mastrogiovanni(2023)最近的一些作品使用PDDL作为翻译语言而不是代码,并使用LLM生成PDDL计划或目标。然后,经典规划器为PDDL目标进行规划或执行生成的计划。这种方法减少了使用LLM生成前提条件的需要,但是需要为规划器指定域规则。


目录

摘要
1 介绍
2 背景及相关工作
3.我们的方法: Progprompt
4 实验
5 结果
6 有限公司 结论和未来的工作
7 常见问题及讨论
笔记
参考文献

作者信息



相关的内容
搜索
导航

#####

3.我们的方法:Progprompt

我们将机器人计划表示为python程序。遵循LLM提示的范例,我们创建了一个结构化为Python代码的提示符,并使用LLM来完成代码(图2)。我们使用Python中可用的功能来构建提示符,这些提示符可以引出LLM来生成基于自然语言指令的机器人任务计划。

3.1 表示机器人计划为pytho网卡的功能

计划函数由对动作原语的API调用、总结动作的注释和跟踪执行的断言组成(图3)。原语动作使用对象作为参数。例如,“将鲑鱼放入微波炉”任务包括find(鲑鱼)之类的API调用。

图3
figure 3

Pythonic proprompt计划“把三文鱼放进微波炉”

我们利用代码中的注释为后续的操作序列提供自然语言摘要。注释有助于将高级任务分解为逻辑子任务。例如,在图3中,“将鲑鱼放入微波炉”任务被分解为使用注释“# grab salmon”和“# put salmon in microwave”的子任务。这种划分可以帮助LLM用自然语言表达其关于任务和子任务的知识,并帮助规划。评论也告知法学硕士当前的目标,减少不连贯、分歧或重复输出的可能性。Wei等人(2022)在之前的工作中也展示了类似的中间摘要(称为“思维链”)在提高法学硕士在一系列算术、常识和符号推理任务上的表现方面的功效。我们通过经验验证了注释的效用(表1;专栏评论)。

断言提供了一种环境反馈机制,鼓励满足前提条件,并允许在不满足前提条件时进行错误恢复。例如,在图3中,在抓取(鲑鱼)动作之前,计划断言代理靠近鲑鱼。如果没有,代理首先执行find(salmon)。在表1中,我们展示了这样的断言语句(列Feedback)有利于计划的生成,并提高了成功率。

3.2 有限公司指令编程语言PROM分

我们通过快速构建向LLM提供有关环境和基本动作的信息。正如在几次LLM提示中所做的那样,我们还为LLM提供了示例任务和计划的示例。图2演示了我们的提示函数,它接受所有信息(观察、动作原语、示例),并生成一个python提示,让LLM完成。然后,LLM将 <下一个任务> (.)预测为可执行函数(图2中的microwave_salmon)。

在微波鲑鱼任务中,LLM可以生成的合理的第一步是外卖(鲑鱼,杂货袋)。但是,负责执行计划的代理可能没有原始的take_out操作。为了通知LLM代理的操作原语,我们将它们作为python导入语句提供。这鼓励LLM将其输出限制为仅在当前上下文中可用的函数。要更改代理,Progprompt只需要一个表示代理操作的导入函数的新列表。杂货袋对象也可能不存在于环境中。我们以字符串列表的形式提供环境中可用的对象。由于我们的提示方案显式列出了模型可用的一组功能和对象,因此生成的计划通常包含代理可以采取的操作和环境中可用的对象。

Progprompt还包括一些示例任务——完全可执行的程序计划。每个示例任务都演示了如何使用给定环境中的可用操作和对象来完成给定任务。这些示例演示了任务名(作为函数句柄)与要执行的操作之间的关系,以及对要涉及的操作和对象的限制。

3.3 任务计划的生成和执行

LLM根据Progprompt提示符完全推断给定的任务。生成的计划在虚拟代理或物理机器人系统上执行,使用针对环境执行每个操作命令的解释器。断言检查在执行期间以闭环方式完成,提供当前环境状态反馈。

4 实验

我们在虚拟家庭环境和物理机器人操作臂上进行了实验来评估我们的方法。

4.1 仿真实验

我们在虚拟家庭(VH)环境中评估了我们的方法(Puig等人,2018),这是一个典型家庭活动的确定性模拟平台。VH状态是一组对象和属性。编码像in(三文鱼,微波)和agent_close_to(三文鱼)这样的信息。动作空间是{抓、放、放、走、找、开、关、开、关、坐、站}。

我们试验了3个VH环境。每个环境包含115个唯一的对象实例(图2),包括类级别的副本。每个对象都有与其动作启示相对应的属性。有些对象还具有语义状态,如加热、洗涤或使用。例如,食品类别中的对象可以在任何时候被加热。

我们创建了一个70个家庭任务的数据集。任务是由高级指令构成的,比如“微波鲑鱼”。我们收集了一个从初始状态完成任务的真实动作序列,并记录了定义了一组符号目标条件的最终状态。

在执行生成的程序时,我们结合环境状态反馈来响应断言。VH以具有对象属性和关系的状态图的形式提供观察。为了检查这种环境中的断言,我们从状态图中提取有关相关对象的信息,并提示LLM以文本提示的形式返回该断言是否成立(图2状态反馈提示)。我们选择这种设计而不是基于规则的检查,因为它更通用。

4.2 真正的机器人实验

我们使用了一个带平行爪爪的Franka-Emika Panda机器人。我们假定你可以随意取走。该策略将目标对象和目标容器的两个点云作为输入,并执行取放操作,将对象放置在容器上或容器内。我们使用Danielczuk等人(2021)的系统来实现该策略,并使用MPPI进行运动生成,使用SceneCollisionNet (Danielczuk等人,2021)来避免碰撞,并使用Contact-GraspNet (Sundermeyer等人,2021)生成抓取姿势。

我们为Progprompt的动作grab_and_putin(obj1, obj2)指定了一条导入语句。我们使用开放词汇对象检测模型ViLD (Gu et al., 2022)来识别和分割场景中的对象,并为提示构建可用的对象列表。在虚拟环境中,对象列表是所有任务的通用全局变量,而在这里,对象列表是每个计划函数的局部变量,这允许更大的灵活性来适应新对象。LLM输出一个包含形式为grab_and_putin(obj1, obj2)的函数调用的计划。在这里,对象obj1和obj2是文本字符串,我们使用ViLD分割蒙版和深度图像映射到点云。由于现实世界的不确定性,我们没有在桌面计划中实现基于断言的闭环选项。

表1 e对虚拟家园上生成的程序进行估价
表2Progprompt在VH测试时间任务上的性能及其接地真动作序列长度|一个|

4.3 e估值指标

我们使用三个度量来评估系统性能:成功率(SR)、可执行性(Exec)和目标条件召回(GCR)。与任务相关的目标条件是演示中在初始状态和最终状态之间发生变化的一组目标条件。SR是实现所有与任务相关的目标条件的执行的百分比。执行是计划中在环境中可执行的部分操作,即使它们与任务无关。GCR是用真实最终状态条件与生成的计划达到的最终状态的集合差值除以任务特定目标条件的个数来测量的;SR只有GCR。

5 结果

我们表明,Progprompt是提示llm为虚拟和物理代理生成任务计划的有效方法。

5.1 虚拟实验结果

表1总结了我们的任务计划生成和执行系统在VirtualHome可见环境中的性能。我们使用GPT3作为语言模型主干来接收Progprompt提示并生成计划。每个结果在单个VH环境中跨10个任务的5次运行中得到平均值。运行期间性能的可变性源于对LLM输出的采样。在评估了VH上1到7个提示的性能后,我们在每个提示中包含了3个python任务计划示例,并发现2个或更多提示对GPT3的性能大致相同。计划的例子被固定为:“把酒杯放在厨房橱柜里”、“扔掉酸橙”和“洗杯子”。

我们还包括最近GPT4主干的结果。与GPT3语言模型不同,GPT4是一个经过强化学习和人类反馈(RLHF)训练的聊天机器人模型,作为一个有用的数字助手OpenAI(2023)。GPT4将一个系统提示作为输入,后面跟着一个或多个用户提示。GPT4不是简单地在提示符中自动完成代码,而是将用户提示解释为问题,并作为助手生成答案。为了使GPT4自动完成我们的提示,我们使用了以下系统提示:你是一个有用的助手…用户提示如图2所示。

从表1中我们可以得出几个结论。首先,在使用相同的大型语言模型主干的所有指标上,Progprompt(第3-6行)在很大程度上优于先前的工作(Huang等人,2022a)(第8行)。其次,我们观察到,Codex (Chen et al., 2021)和达芬奇模型(Brown et al., 2020)——它们本身就是GPT3的变体——在任务中表现出好坏参半的成功。特别是,原始GPT3版本Davinci不能匹配基本GPT3性能(第2行与第3行),这可能是因为它的提示符长度限制了它只能使用2个任务示例,而其他行可以使用3个。此外,Codex在每个指标(第1行与第3行)上的表现都超过了GPT3,这可能是因为Codex明确接受了编程语言数据的训练。然而,就每分钟的查询数量而言,Codex的访问有限,因此我们在接下来的消融实验中继续使用GPT3作为我们的主要LLM主干。我们对社区的建议是使用类似程序的提示符来进行基于LLM的任务规划和执行,基本GPT3在这方面工作得很好,并且我们注意到,对编程语言数据(如Codex)进行进一步微调的LLM可以做得更好。我们还报告了davincii -003和GPT4 (row *)的结果,GPT4分别是本报告提交时该系列中最新的GPT3变体和最新的GPT变体。davincic -003具有更好的SR和GCR,表明它可能具有更好的常识理解,但与Codex相比执行率较低。在我们的任务中,最新型号GPT-4似乎并不比最新的GPT3变体更好。我们的大多数结果使用davincii -002变体(我们在本文中称为GPT3),这是进行本研究时可用的最新模型。

我们探讨了几个Progprompt的消蚀。首先,我们发现示例程序中的反馈机制,即断言和恢复操作,提高了跨指标的性能(第3行相对于第4行,第5行相对于第6行),唯一的例外是,当提示示例代码中没有注释时,没有反馈的Exec提高了一点。其次,我们观察到从提示代码中删除注释大大降低了所有指标的性能(第3行与第5行相比,第4行与第6行相比),突出了编程语言结构中自然语言指导的有用性。

我们还评估了Langprompt,它是Progprompt的替代品,可以从可用对象和示例任务计划的自然语言文本描述中构建提示(第7行)。Langprompt与Huang等人(2022a)构建的提示类似。Langprompt的输出是生成的动作序列,而不是我们建议的类似程序的结构。因此,我们对GPT2进行了微调,以学习一种策略,将生成的序列映射到模拟环境中的可执行动作。我们使用训练集中的35个任务,并标注文本步骤和相应的动作顺序,得到400个数据点用于该策略的训练和验证。我们发现,虽然这种方法通过GCR实现了合理的部分成功,但它与程序可执行性Exec不匹配(Huang et al., 2022a),并且没有生成任何完全成功的任务执行。

表2显示了测试集中每个任务的Progprompt性能。我们观察到,与提示示例类似的任务,如扔掉苹果与洗盘子,具有更高的GCR,因为基本真理提示示例暗示了良好的停止点。即使有高执行,一些任务的GCR也很低,因为一些任务有多个适当的目标状态,但我们只针对一个“真正的”目标进行评估。例如,在微波和电镀三文鱼后,代理商可能会把三文鱼放在桌子或台面上。

表3Progprompt此外,虚拟家庭的结果部分场景。我们e评估10项任务,每项任务分成两组场景之外的VH场景Env-0在哪儿其他报告结果发生

我们在另外两个VH环境中评估Progprompt(表3)。对于每个环境,我们在提示中的示例任务之后附加一个代表新环境的新对象列表,然后是在新场景中要完成的任务。动作原语和其他Progprompt设置保持不变。我们评估10个任务,每个任务运行5次。对于像在洗碗机里洗餐具这样的新任务,Progprompt能够在新场景中推断出cutlery指的是勺子和叉子,尽管在示例提示中cutlery总是指刀。

图4
figure 4

机器人计划执行展演示例,展示分类任务上的相关对象:香蕉、草莓、瓶子、盘子和盒子,并进行分心对象训练。法学硕士认识到香蕉和草莓是水果,并产生计划步骤,把它们放在盘子上,而把瓶子放在盒子里。LLM忽略分心对象训练。使用的提示符结构如图1所示

5.2 定性分析及局限性

我们从Progprompt手动检查生成的程序及其执行轨迹,并描述常见的故障模式。许多失败源于将Progprompt设置为对已部署环境及其特性不可知的决策,这可以通过显式通信来解决,例如,将目标环境的对象可视性作为Progprompt提示的一部分。

  • 环境工件:坐着时,VH代理无法找到或与附近的对象交互,并且一些对象的常识性动作,例如打开电视架的橱柜,在VH中不可用。

  • 环境复杂性:当对象不可访问时,生成的断言可能不够。例如,如果代理在机柜中发现一个对象,它可能不打算打开机柜来抓取该对象。

  • 没有向代理提供操作成功反馈,这可能导致后续操作失败。计划中的断言恢复模块可以提供帮助,但生成的断言恢复模块不能涵盖所有可能性。

  • 不完全生成:一些计划因LLM API上限而缩短。一种可能性是使用提示和部分生成的计划再次查询LLM。

除了这些失效模式外,我们严格的最终状态检查意味着如果代理完成了任务,我们可能会推断失败,因为环境目标状态不会与我们预先计算的ground truth最终目标状态相匹配。例如,在煮完咖啡后,代理可能会把咖啡壶带到另一张桌子上。类似地,一些任务描述是模糊的,并且有多个看似正确的程序。例如,“做晚饭”可以有多种可能的解决方案。Progprompt生成了使用煎锅和炉子烹饪鲑鱼的计划,有时代理会添加辣椒或酸橙,有时会配上水果,或者用餐具盛在盘子里。当在不同的VH环境中运行时,代理会烹饪鸡肉。Progprompt能够为这些复杂的任务生成计划,同时使用场景中可用的对象,而任务中没有明确提到。然而,对这些任务的自动评估需要列举所有有效和无效的可能性,或者引入人工验证。

此外,我们注意到,虽然当前状态法学硕士的推理能力令人印象深刻,但我们提出的方法并没有提出任何提供保证的要求。然而,表1中报告的评估提供了在我们的任务设置中不同llm的能力的见解。虽然我们的方法有效地防止了LLM生成不可用的动作或对象,但值得承认的是,根据LLM的生成质量和推理能力,仍然存在幻觉的可能性。

表4按任务类型对物理机器人的测试结果

5.3 物理机器人结果

物理机器人实验结果如表4所示。我们对表4中列出的4个难度递增的任务进行评估。对于每个任务,我们执行两个实验:一个在只包含必要对象的场景中,并添加一到四个干扰对象。

所有显示的结果都使用带有注释的Progprompt,而不是反馈。我们的物理机器人设置不允许可靠地跟踪系统状态和检查断言,并且容易由于诸如抓手滑动之类的事情而发生随机故障。现实世界引入了随机性,使系统之间的定量比较变得复杂。因此,我们打算将物理结果定性地证明,我们的提示方法可以轻松地将llm生成的计划约束和接地到物理机器人系统中。我们报告了一个额外的度量计划SR,它指的是计划是否可能成功,提供了成功的拾取和放置执行而没有夹具故障。

在任务之间,无论是否有干扰对象,系统几乎总是成功的,只有在排序任务上失败。由于随机夹持器故障,没有干扰物的下井失败。有两个干扰物的实验失败了,因为模型错误地把汤罐当成了瓶子。生成的计划的可执行性始终为Exec=1。执行转出示例如图4所示。

本研究完成后,我们使用与第5.1节相同的系统提示,使用GPT-4重新尝试生成失败的计划。GPT-4能够成功地预测正确的计划,而不是把汤罐和瓶子混淆。

6 有限公司结论和未来的工作

我们提出了一个用于机器人任务规划的LLM提示方案,该方案结合了LLM的两大优势:常识推理和代码理解。我们构建的提示包括对世界和机器人能力的定位理解,使llm能够直接生成可执行的计划作为程序。我们的实验表明,Progprompt编程语言特性在一系列指标上提高了任务性能。我们的方法直观灵活,可以广泛地推广到新的场景、代理和任务,包括真实的机器人部署。

作为一个社区,我们只是在机器人计划生成和完成任务规划的表面。我们希望研究更广泛的编程语言功能的使用,包括实数来表示测量值,嵌套字典来表示场景图,以及更复杂的控制流。来自NLP社区的一些工作表明,llm可以做算术和理解数字,但它们在复杂机器人行为生成方面的能力仍然相对未被充分探索。



下载原文档:https://link.springer.com/content/pdf/10.1007/s10514-023-10135-3.pdf