题目:通过多专家讨论来进行视觉语言导航
摘要
视觉语言导航(VLN)是一项具体任务,需要广泛的技能,包括理解、感知和规划。对于这样一个多方面的挑战,以前的VLN方法完全依靠一个模型自己的思考在一轮内做出预测。然而,现有的模型,即使是最先进的大型语言模型 GPT4,仍然难以通过单轮自我思考来处理多个任务。
在这项工作中,我们从专家咨询会议中汲取灵感,引入了一种新颖的零样本VLN框架。在这个框架内,具有独特能力的大模型被充当领域专家。我们提出的导航智能体,即 DiscussNav,可以在每一步行动之前与这些专家积极讨论以收集必要的信息。这些讨论涵盖了关键的导航子任务,例如指令理解、环境感知和完成度估计。通过全面的实验,我们证明与领域专家的讨论可以通过感知指令相关信息、纠正无意的错误以及筛选不一致的运动决策来有效地促进导航。代表性 VLN 任务 R2R 的性能表明,我们的方法在所有指标上都大大超过了领先的零样本 VLN 模型。此外,真实的机器人实验显示了我们的方法相对于单轮自我思考的明显优势。
介绍
视觉语言导航 (VLN) 是一个令人兴奋的新兴研究领域,专注于开发能够遵循自然语言指令来导航真实 3D 环境的具身智能体。在 VLN 领域取得成功对于创建专为个人和家庭使用而设计的服务机器人至关重要,这有可能对人类生活产生重大影响。因此,视觉语言导航已成为具身人工智能领域的研究热点[1]、[2]、[3]、[4],在学术和工业领域都取得了实质性进展。
按照指令在室内场景导航是一项非常具有挑战性的具体任务,需要敏锐的观察和细致的思考。在每个动作步骤中,导航智能体需要了解指令中指定的所有动作和地标,观察全景场景以识别关键对象,并检查访问的位置以估计指令完成情况。每个动作决策都依赖于这些子任务的成功执行,每个子任务都需要不同的知识和能力。
面对如此多方面的挑战,以前的方法完全依赖于一种决策模型,要么是经过专门训练的VLN模型[1]、[5]、[6]、[7]、[8]、[9]、[10],要么是零样本大语言模型[11],对每一步的运动进行预测。如图 1 顶部所示,这些模型被动地将所有可访问的导航信息作为输入,并在一次执行中通过自己的知识和推理直接做出运动预测。这种推理是一种单轮自思考范式,要求决策模型根据预先准备的信息独立地同时处理多个VLN子任务。然而,即使是最先进的大型语言模型 GPT4 仍然难以同时完成多个不同的领域任务。虽然使用 VLN 模拟器数据训练模型可以增强其在模拟环境中的性能,但相机设置和环境差异中的巨大模拟与真实差距对其在真实机器人上的部署构成了重大障碍。如表3所示,模拟成功率超过70%的训练模型无法完成现实世界中的一条指令,这表明它并不真正具备通过当前的单轮自我思考来应对多个导航子任务的能力。因此,我们在这项工作中探索了一种新的推理范式来解决单轮自我思考的问题。
在人类社会中,国际组织或国家政府经常召开专家咨询会议[12]、[13]、[14]、[15]来解决健康、环境、能源等专业领域的问题。这些聚会作为与领域专家进行深入讨论的平台,提供了做出明智决策所必需的宝贵见解和信息。这次专家咨询会给我们带来了启发。如果导航智能体可以在移动之前与多个领域专家进行讨论,他们将更有信心做出移动决策。
大规模训练的最新进展使大模型具有各种领域知识和能力。我们发现它们潜在的导航功能可以通过特殊prompt激活,这激发了我们创建具有大模型的领域专家的想法。因此,我们分析了VLN的推理过程,并抽象出指令分析、视觉感知、完成度估计和决策测试四个关键子任务。根据子任务要求,我们精心分配专家的角色并在一系列提示中定义相应的任务。
通过使用这些prompt指导大模型,可以创建 VLN 的八个不同领域专家。与这些专家一起,我们设计了一个由大语言模型驱动的零样本 VLN 代理。 DiscussNav不是完全自行思考,而是可以在做出移动决策之前主动与多位专家讨论,如图1底部所示。(图1中指令分子专家抽取的结果好像不对?)与单轮自我思考相比,多位专家讨论可以有效减轻决策者的负担。决策模型并通过多个大模型的集体力量获得更好的性能。此外,在讨论过程中,我们引入了动作分解和完成估计的验证机制,以纠正讨论过程中可能出现的错误。
本文的创新点:
1、我们推出 DiscussNav,这是一种新颖的零样本导航代理,它通过与多个领域专家的积极讨论来利用集体力量。
2、我们通过向大型模型分配特定的角色和任务来创建多个用于视觉语言导航的领域专家,完全消除人类的参与。(为什么要消除人类的参与?)
3、在代表性视觉语言导航任务 R2R 和真实机器人上的实验表明了与领域专家讨论导航代理零样本性能的有效性。
本文方法
受人类行为的启发,我们设计了一个零样本视觉语言导航框架。导航代理 DiscussNav 可以主动发起与大型模型驱动的领域专家的讨论,以在代理做出移动决策之前收集所需的信息。在本节中,我们将介绍如何组建 DiscussNav 代理和领域专家。然后,我们将说明DiscussNav在每一步行动之前如何与专家进行导航讨论。
用于视觉语言导航的 DiscussNav 代理
我们基于讨论问题语料库和强大的大语言模型 GPT4 创建 DiscussNav 代理。图2左框显示讨论问题语料库。在导航过程中,DiscussNav代理会一一填写这些问题模板的槽位,并与相应的领域专家进行讨论,收集用于导航的信息。图2右框展示了DiscussNav代理如何指示大语言模型根据地标、导航轨迹、完成估计和场景视觉信息等多专家讨论结果做出运动决策。大语言模型GPT4需要首先按照检查完成估计的正确性等一系列要求进行思路链,然后在“预测”字段中写下移动决策,以方便解析。在每个推理时间,遵循集束搜索机制,大型语言模型可以针对一个输入同时产生 N 个不同的响应。与贪心搜索相比,集束搜索可以覆盖更多的可能性。 DiscussNav 代理将与决策测试专家讨论这些预测,以做出最终的移动决策。
大型模型驱动的领域专家
多源数据集的大规模训练使大型模型具备丰富的领域知识和能力。同时,自回归指令调整使得大型语言模型和多模态大型模型对给定的提示敏感。利用这一功能,我们可以通过分配特定的角色并在输入的提示中定义明确的任务要求来探索大型模型的专业知识并激活其领域能力。因此,如图3顶行所示,我们通过特定提示建立多个领域专家进行视觉语言导航。下面介绍创建过程。
指令分析专家
导航指令通常涉及一系列动作和地标。由于语法结构的原因,一些动作和地标不容易理解。以指令“刚经过墙上的视力检查表就停止”为例,动作序列是“走过”、“停止”而不是相反的顺序,而地标是“墙上的视力检查表” “视力检查表”、“墙”。为了准确识别动作序列,我们将动作分解专家的角色分配给 GPT4,并定义检测给定导航指令中所有动作的任务。专家将原始人类指令作为输入,并期望以顺序方式产生分解的动作。此外,我们创建了 GPT4 驱动的地标提取专家,目标是识别地标并对其类型进行分类。我们提出“确保每个地标的完整性”的要求,以方便专家。请注意,为了保证动作分解的正确性,我们在地标专家的正式任务之前添加了纠错任务,这要求专家根据原始指令的句子结构检查动作顺序。
视觉感知专家
完成度估计专家
在导航过程中,每个动作可能需要多个步骤来执行,这会导致移动步骤与执行的动作之间的错位。导航代理应该知道他们已经完成了哪些操作以及他们需要在当前环境中执行哪些下一步操作。首先,我们将轨迹总结专家的角色分配给ChatGPT,并定义其简化导航历史中的环境描述和思维过程的任务。以导航历史作为输入,专家将去除环境描述中的冗余对象并过滤思维过程中的非本质推理。为了使轨迹清晰,该专家的输出遵循“[Step t] Observation : ...Thought : ...”的格式。然后,我们通过GPT4创建完成度估计专家。专家需要首先建立一个思维链过程,根据历史轨迹来估计已经执行了哪些操作。在思考中,专家需要(1)检查导航轨迹中经过的地标,(2)分析每个移动步骤的方向变化,以及(3)估计已经执行了哪些动作。这样的思考过程可以进一步提高专家估计的准确性。然后,代理应在“预测”字段中写下“已执行的操作”、“正在进行的操作”和“等待执行的操作”。
决策测试专家
通过波束搜索设置,导航代理每次可以输出 N 个不同的预测。如果这 N 个预测之间存在差异,则智能体必须选择一个预测来执行。为了应对这一挑战,我们首先将思想融合专家的角色分配给ChatGPT,并定义其任务为“将给定的思维过程融合为一个思想”。专家会将导致相同运动决策的思维过程作为输入,并将其原因总结为一个。然后,我们要求GPT4承担决策测试专家的角色,完成“根据思维过程和当前环境评估每个运动预测的可行性”和“选择最可靠的预测作为最终决策”等任务。专家将读取当前步骤中的所有思想预测对,按照思想链思维来比较它们的推理过程,并选择“预测”字段中最合适的预测作为导航代理在当前步骤中的最终移动决策。
与多专家进行讨论的导航决策
通过导航代理 DiscussNav 和领域专家,我们定义了一个讨论机制,规定了讨论顺序和对象。在这一部分中,我们将介绍我们的 DiscussNav 代理如何与多位专家进行讨论。
指令分析
在收到人类的导航指令后,DiscussNav 首先咨询动作分解专家“你能分解指令{指令}中的动作吗?”。专家会将导航指令分解为一系列操作。然后,DiscussNav 询问地标提取专家“你能提取指令 {instruction} 中的地标吗?”。专家将回复导航地标和相应类型。通过这些交互,DiscussNav 可以全面了解其在导航过程中应执行的操作以及必须经过的地标。
视觉感知
在每一个移动步骤中,DiscussNav都会与视觉感知专家进行交互,以更新其对周围环境的认知。在本工作中,我们将每个方向的视野设置为30°,每个位置从0°到360°总共12个方向。在讨论场景级视觉信息时,为了减少场景观察专家的幻觉,智能体将根据地标类型提出问题,而不是直接询问具体地标是否存在。例如,如果地标与一个房间相关联,例如“厨房”,代理将提示专家“您在当前方向{direction id}可以看到哪个房间”。在涉及由颜色定义的地标(例如“红地毯”)的情况下,DiscussNav 将询问专家“您在当前方向 {direction id} 上可以看到什么颜色的物体”。这些有针对性的讨论有助于代理专注于与指令相关的视觉信息。利用 RAM 的功能,DiscussNav 和对象检测专家之间的通信是直接的。 DiscussNav 只是向专家呈现当前环境视图,并接收场景中所有对象的标签作为反馈。
完成度评估
感知环境后,导航代理应该确定需要执行哪些操作。为了收集更多决策所需的信息,代理将与竣工估算专家进行沟通。首先,DiscussNav 向轨迹总结专家提供导航历史记录,包括过去的观察和思维过程,并指示其过滤掉不相关的信息并总结每一步轨迹。随后,代理将分解的动作和格式化的轨迹呈现给完成估计专家,了解“已执行的动作”、“正在进行的动作”和“等待执行的动作”。历史轨迹和专家的反馈将指导运动规划。
运动决策
通过与不同领域专家的多轮讨论,智能体获得了指令需求、周围12个方向的视觉信息以及正在进行的执行状态的全面信息。有了这些信息,智能体就会进行独立的思考链来做出 N 次预测。如果这些预测指向同一方向,DiscussNav 代理将直接执行它进行移动。然而,如果这 N 个预测之间存在不一致,DiscussNav 代理将向决策测试专家寻求帮助。
决策测试
为了根据 N 个预测做出最终决策,代理会将这些思想预测对传递给决策测试专家。思维融合专家首先将导致相同运动预测的思维过程分类为一组,并分别融合这些思维组。举例来说,对于五个思想预测对,如果有三对对应位置A,其余两对对应位置B,则专家将得出A位置思想预测对和B位置思想预测对。因此,决策测试专家将根据当前环境对这些思想预测对进行分析,以制定 DiscussNav 动作的最终决策。
实验结果
3的决策图画错了,还缺一个完成度专家
总结
在这项工作中,我们引入了一种用于视觉语言导航的创新零样本框架。我们增强了导航智能体DiscussNav 的功能,使其能够与多个领域专家进行积极讨论,从而在采取行动之前收集有价值的专业见解。通过我们的实验,我们深入研究了这种新颖范式在增强大型语言模型在具体任务上的性能方面的潜力。我们的研究结果强调了基于讨论的推理相对于基于自我思考的推理的好处。展望未来,未来的方向包括扩大大型模型驱动领域专家的名册,从而在讨论中提供更丰富的导航建议。此外,我们预计通过设计不同的讨论主题,将该框架扩展到更广泛的具体任务。