“他山之石,可以攻玉”,站在巨人的肩膀才能看得更高,走得更远。在科研的道路上,更需借助东风才能更快前行。为此,我们特别搜集整理了一些实用的代码链接,数据集,软件,编程技巧等,开辟“他山之石”专栏,助你乘风破浪,一路奋勇向前,敬请关注!
大型语言模型(LLMs)已经展示了显著的零样本泛化能力,最先进的聊天机器人能够对日常生活中的常见问题给出合理的回答。然而,目前为止,LLMs并未能可靠地解决长期规划问题。相反,一旦以一种规范的方式给出问题,传统的规划方法就能够运用有效的搜索算法快速找到正确的,甚至是最优的解决方案。为了把这两者的优势结合起来,本文提出了LLM+P,这是第一个将传统规划方法的优点整合到LLMs的框架中。LLM+P接收一个用自然语言描述的规划问题,然后返回一个以自然语言表述的,解决该问题的正确(或最优)方案。LLM+P首先将语言描述转化为一个用规划领域定义语言(PDDL)编写的文件,然后利用传统规划方法快速找到解决方案,最后将找到的解决方案翻译回自然语言。此外,我们还定义了一组取自常见规划场景的基准问题。通过在这些基准问题上进行全面的实验,我们发现LLM+P能够为大多数问题提供最优解决方案,而LLMs在大多数问题上却无法提供可行的方案。
Planning Domain Definition Language (PDDL) 是一种用于描述人工智能规划问题的语言。它包括领域定义和问题定义两个部分。
领域定义描述了可能的动作和它们的效果,每个动作都有一些前提条件,这些条件必须满足才能执行该动作,以及每个动作的效果,描述了动作执行后世界的状态如何改变。
问题定义描述了一个具体的规划问题,包括初始状态和目标状态。初始状态描述了规划问题开始时世界的状态,而目标状态描述了我们希望达到的状态。
例如,一个简单的"搬箱子"问题可以这样描述:
领域定义:
(define (domain move)
(:requirements :strips)
(:predicates (robot-at ?x) (box-at ?x) (goal-at ?x))
(:action move-robot :parameters (?from ?to) :precondition (robot-at ?from) :effect (and (not (robot-at ?from)) (robot-at ?to)))
(:action move-box :parameters (?from ?to) :precondition (and (robot-at ?from) (box-at ?from)) :effect (and (not (box-at ?from)) (box-at ?to) (not (robot-at ?from)) (robot-at ?to)))
)
问题定义:
(define (problem move-1)
(:domain move)
(:objects location1 location2 location3)
(:init (robot-at location1) (box-at location2) (goal-at location3))
(:goal (and (box-at location3)))
)
这个例子中,机器人和箱子可以在不同位置移动,目标是将箱子移动到目标位置。
然后,我们可以使用规划器,如 Fast Downward,来求解这个问题。Fast Downward 是一个非常知名的规划器,它使用了一种名为"因果图"的数据结构来帮助搜索解决方案。Fast Downward 接受 PDDL 描述的问题作为输入,然后使用各种搜索策略和启发式方法来寻找一个解决方案,即一系列的动作序列,这些动作将系统从初始状态引导到目标状态。
PDDL的优点是可扩展性强,但处理连续动作或状态、不确定效果或不完全信息的能力有限。
本节首先使用一个实际的例子探讨如何以PDDL的形式构建规划提示,然后介绍LLM+P方法。
虽然LLMs在规划(或者说长期推理)方面表现得不尽人意,但它们在描述和翻译文本输入方面,包括以PDDL格式重写规划提示,方面做得很好。直观上,我们可以将PDDL视为一种不同于英语的语言,所以将规划提示以PDDL的形式重写其实就是一项“机器翻译”的任务,这是LLMs擅长的领域。这里我们提供了一个由GPT-4写就,没有进行任何优化的PDDL问题文件示例。我们可以看到,生成的文件似乎遵循了正确的PDDL语法,但使用了一个虚构的谓词(empty),并且漏掉了b1在桌子上的初始条件。
LLMs已经展示出了在不进行微调的情况下进行上下文学习的能力。上下文学习,指的是LLMs仅通过对一些输入-标签对(示例)的条件化,就能执行未见过的下游任务的能力。这里我们提供了一对用自然语言和PDDL描述的问题,作为GPT-4的上下文。当我们将这个上下文与上述示例中的提示结合起来时,生成的PDDL问题文件可以直接由规划器解决。
在介绍了LLM将问题以PDDL编码和上下文学习的能力后,我们现在准备介绍所提出的LLM+P解决方案(见图1的底部)。具体来说,我们假设对于每个问题领域,一个人类专家可以提供一个领域描述(也就是说,动作的先决条件和效果),这个描述将对该领域中出现的所有问题实例起到固定的作用。虽然自动生成这个描述的问题是另一个有价值的研究课题,但在这项提出的工作中,我们假设这个描述是以一个PDDL领域文件的形式存在的。LLM+P方法可以直接应用为给机器人系统指定任务的自然语言接口。例如,假设我们想要一个机器人扮演酒保的角色来制作鸡尾酒。告诉它可以执行哪些动作是合理的,但让它自己推断如何最有效地利用一组要组合的配料来制作新的鸡尾酒。此外,我们假设该代理人提供了一个最小的示例,演示了在该领域中一个简单问题的PDDL形式是什么样的。接下来,代理人提供了一个新的(可能非常复杂的)问题(P)。然后,LLM利用上下文学习来推断出与P对应的PDDL问题文件。一旦生成了问题的PDDL文件,我们将其与提供的领域PDDL文件一起输入到任何经典的规划方法中,生成一个PDDL方案。最后,LLM将PDDL方案翻译回自然语言,完成了LLM+P的流程。
总结来说,LLM+P的假设是:
本文目的在于学术交流,并不代表本公众号赞同其观点或对其内容真实性负责,版权归原作者所有,如有侵权请告知删除。
收藏,分享、在看,给个三连击呗