本文提出了一个人机协作中的规划与推理任务基准(PARTNR),旨在研究家庭活动中的人机协调。PARTNR任务展现了日常任务的特点,如空间、时间和异构agent能力约束。我们采用大型语言模型(LLMs)构建了一个半自动化的任务生成流程,并融入了循环中的模拟以进行实现和验证。PARTNR是同类基准中规模最大的,包含10万个自然语言任务,涉及60栋房屋和5819个独特物品。围绕规划、感知和技能执行等维度,对PARTNR任务上的最新大语言模型(SoTA)进行了分析。分析结果显示,SoTA模型存在显著局限性,如协调性差、任务跟踪失败以及错误恢复能力不足。当大型语言模型与人类真实用户配对时,它们所需的步骤数是两人协作的1.5倍,比单个人类多1.1倍,这凸显了这些模型有待提升的潜力。论文还进一步表明,使用规划数据对较小的大型语言模型进行微调,可以实现与体积为其9倍的大型模型相当的性能,同时在推理速度上快8.6倍。PARTNR凸显了协作式实体agents面临的重大挑战,并旨在推动该领域的研究发展。
Code:
Website:
内容出自国内首个具身智能全栈学习社区: 具身智能之心知识星球, 这里包含所有你想要的。
想象这样一个家用机器人:它能像人与人之间的互动那样,使用自然语言与人类在日常活动中协作。这种场景需要两个关键特性:机器人与人类之间的动态协作,以及使用自然语言进行交流。当前具身人工智能(embodied AI)的基准测试通常只满足其中一个条件;要么机器人是独立运作的,要么任务不是用自然语言指定的。尽管具身人工智能领域取得了显著进展,但在评估机器人在协作环境中的表现的现实基准测试方面仍存在空白。为了弥补这一空白,我们推出了人机协作中的规划与推理任务基准(PARTNR),这是一个新颖的基准测试,用于评估具身人工智能agent在模拟室内环境中与人类在各种家庭活动上的协作能力。
PARTNR由10万个自然语言指令和与之配套的评价函数组成,重点关注四种任务类型:(1)无约束任务,其中子任务可以由任一agent以任何方式完成,(2)包含空间约束的空间任务,(3)需要按顺序执行的时间任务,以及(4)包含无法由其中一个agent完成的动作的异构任务。除了长时规划、新型部分可观察环境以及大状态和动作空间等传统挑战外,PARTNR还强调了有效协作动态(如任务分配和跟踪合作伙伴的进度)的必要性。
创建这样一个具有大规模自然语言任务和定制评价函数的基准测试面临着重大挑战。当前的基准测试通常依赖于模板化任务或由人类设计的任务和评价,这可能限制了数据集的多样性或规模。为了克服这一问题,本文提出了一种使用大型语言模型(LLMs)并结合循环模拟接地(simulation-in-the-loop grounding)的半自动化生成方法。首先,大型语言模型生成任务和评价函数,这些函数与模拟房屋中的物品和家具相关联。接下来,采用循环模拟来过滤掉幻觉和不可行的指令,并通过人工标注来增强多样性和准确性。然后,利用一套经过验证的1000条指令和评价函数以及多样化的模拟房屋,通过上下文提示引导大型语言模型创建10万个任务。
由于PARTNR包含自然语言任务,且大型语言模型(LLMs)在规划方面已展现出显著成效,我们探索了如何提示和微调LLMs,以评估它们在协作场景中的有效性。我们研究了环境可观性(即完全可观或部分可观)、集中式与分散式多智能体控制、学习到的或特权机器人技能、以及基于LLMs的规划中对3D世界信息进行接地的不同方式的影响。除了这些使用合成人类伙伴进行的自动化评估外,还进行了包含真实人类参与的评估,让人们单独执行任务、与人类伙伴一起执行任务或与LLMs指导的机器人伙伴一起执行任务。总体而言,发现LLMs在协调、任务跟踪以及处理感知和技能错误方面存在困难。虽然人类能够解决93%的PARTNR任务,但在非特权条件下,当前最先进(SoTA)的LLMs仅能成功完成30%的任务。此外,在分散式多智能体设置中,由于跟踪伙伴动作的能力较差,导致出现了多余动作,完成任务所需的步骤比单智能体多1.3倍。相比之下,在我们的包含真实人类参与的实验中,人类搭档的表现优于单独的人类,这凸显了改进LLMs协作策略的潜力。LLMs还难以从技能失败和感知接地错误中恢复,当移除特权技能和特权感知时,其性能会降低。在比较模型大小时,我们发现经过微调的较小模型Llama3.1-8B的性能与未经微调的Llama3.1-70B相当,但推理速度却快了8.6倍。在与真实人类共同参与的评估中,这一更快的推理速度发挥了重要作用,因为经过微调的模型所需步骤更少,为人类分担了更多任务。
PARTNR能够在各种协作场景中实现对具身智能体的可重复、大规模和系统性的评估。通过系统性的评估,我们揭示了当前基于LLM的规划器的关键局限性,为未来的研究指明了有趣的方向。
基于语言的具身人工智能基准测试。大量关于具身人工智能中语言基准测试的工作都集中在导航或具身问答上,这些任务涉及导航和信息收集,但不需要智能体修改其环境。与本文的工作更为接近的是指令遵循基准测试,在这些基准测试中,智能体通过与环境的交互来完成通过语言描述的任务,尽管任务的多样性有限。相比之下,我们利用大型语言模型(LLMs)生成多样化的任务定义和场景初始化,并将其扩展到多智能体设置中。使用LLMs扩大任务生成的规模这一想法在最近的一些工作中得到了探索。然而,这些工作往往侧重于相对短期内的单智能体任务,而本文考虑的是长期的多智能体问题。表1将相关基准测试与PARTNR进行了比较。
具身多智能体基准测试。多项工作已经提出了具身多智能体基准测试。其中许多基准测试都集中在简单2D环境中的协调问题上,这限制了它们在现实世界场景中的应用。最近的工作开发了研究更真实环境和活动中协作的基准测试,这些基准测试关注在大型、部分可观察的3D环境中重新排列物体或家具,或在柜台空间内操作物体。然而,这些基准测试通常局限于一组预定义且数量有限的任务,这些任务往往不是用自然语言描述的,并且主要涉及物体的重新排列。相比之下,PARTNR涵盖了一个开放的任务集,每个任务都用自然语言描述,要求智能体在空间和时间的约束下重新排列物体,并要求执行只能由人类智能体完成的异构动作(例如洗碗或打开烤箱)。
我们推出了PARTNR基准测试,旨在训练和评估机器人与人类合作解决自然语言任务的能力。PARTNR涵盖了四种类型的任务:(1)无约束任务,即子任务可以由任一智能体以任何方式完成。例如,“让我们把所有脏盘子移到水槽里。”(2)空间任务,需要推理物体的空间位置。例如,“让我们把书放在书架上,彼此紧挨着。”(3)时间任务,子任务的执行顺序很重要。例如,“让我们先把餐桌上的蜡烛拿走,再把盘子端到桌上。”(4)异构任务,涉及超出机器人能力的动作。例如,“让我们在把盘子放到架子上之前先把它们洗干净。”在机器人的技能不支持洗涤的场景中,完成这项任务需要对智能体的能力进行推理。我们的基准测试包括自然语言指令和相应的评估函数,这两者都是使用大型语言模型(LLMs)大规模生成的。具体来说,我们生成了1000条经过人工验证的指令和相应的评估函数,并将它们作为即时提示示例,扩展到其他具有不同布局和物体的场景中的100000项任务。我们自动生成的一个独特之处在于,在生成循环中整合了一个实体模拟器,这大大减少了大型语言模型可能出现的幻觉和不可行动作等错误。
1 基于仿真循环的任务指令生成
尽管基于大型语言模型(LLM)的任务生成在之前的文献中已有研究,但这些生成的任务并未超出用户创建的 in-context prompts的范围。在PARTNR中,使用了基于仿真循环的生成技术,将大语言模型与环境、智能体和可用动作相结合。具体来说,在Habitat 3.0模拟器中实例化了一个仿真环境,该环境填充了HSSD数据集,包含60栋独特的房屋和5819个OVMM对象。模拟房屋被解析为房间和可用家具的列表,并与所有可用目标一起传递给大语言模型。利用这些信息,要求大语言模型在场景中生成自由形式、可行的任务,以及初始场景状态描述。例如,如果生成的任务是“清理客厅的餐具”,大型语言模型应该生成一个客厅内有多个餐具的初始场景。在这个阶段,还会向场景中添加额外的目标,以在环境中制造混乱。任务、初始状态和混乱一旦生成,就会在模拟器中实例化,并过滤掉不可行的指令。例如,如果房屋没有客厅,“清理客厅的餐具”就是无效的。同样,如果生成的任务需要模拟器不支持的动作,如折叠,则该任务会被过滤掉。通常,幻觉的产生率很高,导致大量情节被丢弃。我们观察到,在过滤掉不可行的指令后,生成指令的多样性通常受到限制。例如,大多数指令都使用相同的对象(如餐具)或类似的房间(如厨房或餐厅)。为了增加生成任务的多样性,我们进行了手动标注,以确保任务和对象的多样性,例如,通过修改指令以激发特定特征,来维持无约束、空间、时间和异构任务的平衡分布。这一过程产生了1000个经过人工标注和仿真验证的任务。
对于大规模生成而言,这种手动标注并不实际。相反,我们利用这1000条经过人工标注的指令作为提示中的示例,来扩展生成规模。向大语言模型提供房屋描述和一个示例任务,并指示它修改任务以适应新的房屋。例如,将任务“清理客厅里的所有餐具”修改为“清理卧室里的所有玩具”。这样做可以在保持原始标注指令集多样性的同时,确保在模拟器中成功实例化的高可能性。从质量上看,我们过滤或编辑了约90%的自由形式生成的指令,而只有约10%的扩展指令需要这样做。使用LLama3-70B-Instruct来生成所有指令。最后,所有任务都经过基于人类反馈的循环过滤。在这一步中,人类使用我们的基于人类反馈的工具尝试完成任务,并消除难以检测的物理上不可行的指令,比如要求一个物体同时出现在两个位置。图2概述了我们的流程。
为了判断智能体是否成功完成了指令“清理客厅里的所有餐具”,我们需要一个评价函数来验证是否已从任何客厅中移除了所有勺子、叉子和其他餐具。然而,手动标注任务所需的所有重新排列和状态变化既耗时又由于每个任务的独特性而在大规模上难以实现。与指令生成类似,我们采用大型语言模型(LLM)来创建一个评价函数,该函数无需任何手动标注即可评估任务完成情况。具体来说,利用大型语言模型生成基于谓词的Python程序的能力,这需要使用三种类型的API:一个命题列表,指示实体之间必须满足的关系;一组依赖项,指示何时应查询命题;以及一组约束,指示命题必须如何满足。为这些组件中的每一个定义了一个富有表达力的词汇,以便对基准测试中的所有任务进行评估(例如,图3)。密切相关的评价系统包括使用PDDL或BDDL定义任务。选择构建一个新的基于Python的评价系统,因为这两个系统都无法在保持人类和大型语言模型可解释性的同时评估PARTNR任务;例如,BDDL不支持随时间变化的评估。由于PARTNR任务具有时间依赖性(例如,多步骤重新排列),因此评价函数的输入是任务执行期间模拟器状态的完整序列。评价函数返回三个指标:(1)完成百分比(PC ∈ [0, 1]),即相对于约束而言已满足的命题的百分比;(2)成功(S ∈ {True, False}),衡量任务是否成功完成,定义为S := (PC = 1);以及(3)失败解释(FE),一种人类和大型语言模型可解释的语言描述,用于说明智能体未能完成任务的原因。
使用CodeLLama-70B-instruct来生成评价函数。如图3所示,生成完美的评价函数并非易事。大型语言模型(LLM)必须根据自然语言指令和特定的模拟环境,正确分类所有可能的动作空间,这可能相当复杂。例如,在图3中,指令“把植物放在架子上”指的是“架子”,但房间里有两个架子。评价函数必须允许选择任意一个架子,同时要求放置所有植物,并最终考虑相邻关系。命题或约束中的任何错误或缺失值都会导致评价函数失效。因此,我们观察到LLM生成的错误率很高,特别是关于错误命题和时间顺序约束的错误。
为了减轻这些不准确性,遵循与指令生成相似的半自动化程序。首先为1000条人工标注的指令生成评价函数,并进行手动标注以进行修正。这产生了包含1000对经过人工验证的指令和评价函数的数据集。接下来,为扩展的100000条指令集生成评价。请注意,扩展指令是通过向LLM提供标注集中的示例指令来生成的。我们检索相应的标注评价函数,并将其提供给LLM。这与检索增强生成等方法类似,并通过人工检查发现,将评价函数生成的准确率从50%提高到92%。最后一步是,要求人类用户使用我们基于人类反馈的评价工具解决所有PARTNR任务。所有在人类用户6次尝试(3次单人尝试,3次多人尝试)后仍未解决的任务都被视为不可行,并从数据集中删除。我们发现,自动化生成的指令中约有90%准确,评价函数中约有92%准确,综合生成准确率为90% × 92% = 83%。