0. 简介

在复杂环境中进行导航和理解,并持续较长时间,是机器人面临的一项重大挑战。与机器人互动的人可能会想要询问诸如某事件发生的地点、发生的时间或距离现在有多长时间等问题,这就要求机器人能够对其部署的长时间历史进行推理。为了解决这一问题,我们提出了一种用于具身机器人的检索增强记忆系统,称为ReMEmbR。《ReMEmbR: Building and Reasoning Over Long-Horizon Spatio-Temporal Memory for Robot Navigation》该系统旨在实现机器人导航的长时间视频问答。为了评估ReMEmbR,我们引入了NaVQA数据集,其中我们对长时间机器人导航视频进行了空间、时间和描述性问题的标注。ReMEmbR采用了一种结构化的方法,包括记忆构建和查询阶段,利用时间信息、空间信息和图像来高效处理不断增长的机器人历史。我们的实验表明,ReMEmbR在性能上优于大型语言模型(LLM)和视觉语言模型(VLM)基线,使ReMEmbR能够以低延迟实现有效的长时间推理。此外,我们将ReMEmbR部署在机器人上,展示了我们的方法能够处理多样化的查询。数据集、代码、视频及其他材料可在以下链接找到:https://nvidia-ai-iot.github.io/remembr


1. 主要贡献

为了评估我们的系统,我们构建了导航视频问答数据集NaVQA,该数据集要求方法输出位置信息、时间信息或自由格式文本。我们的数据集由210个问题组成,这些问题是从7个长时间导航视频的子集中抽取的。该数据集旨在促进关于导航机器人长时间记忆构建和推理的进一步研究。具体而言,我们:

  • 设计了NaVQA数据集,以评估1)机器人在其部署过程中是否见过事件或物体,2)何时见到特定事件或物体,3)这些事件或物体发生的地点,以及4)如何推理这些时空方面以回答问题;
  • 引入了ReMEmbR,这是一种检索增强的LLM代理,能够形成函数调用以检索相关记忆,并基于实时记忆构建过程回答问题;
  • 提供了ReMEmbR在机器人上的实际部署的定性结果,测试ReMEmbR是否能够对其长时间部署进行推理。

2. 问题表述

我们将问题表述为一种针对机器人的长时间视频问答任务的变体。与标准的视频问答不同,机器人在K分钟内被部署,并主动从各种传感器中积累历史记录 H 1 : K H_{1:K} H1:K。由于其持续的部署,历史记录的大小随着时间的推移单调增加。因此,我们的工作集中在两个问题上:有效地构建这一长历史记录 H 1 : K H_{1:K} H1:K的表示,并随后查询该表示以回答问题和生成导航目标。

为了有效地构建记忆,我们考虑图像历史 H I H_I HI、位置历史 H P H_P HP和时间戳历史 H T H_T HT。我们假设机器人具备定位能力,例如使用基于激光雷达的定位、GPS或里程计信息来提供度量坐标。在构建记忆表示后,用户向机器人提出关于其可能见过的空间、时间或描述性信息的问题 Q Q Q。具体而言,我们的目标是给定历史记录和问题预测答案 A A A,即 p ( A ∣ Q , H ) p(A|Q,H) p(AQ,H)

2.1 问题

机器人需要在其历史记录中定位信息;然而,我们关注的是使这些信息可操作。对于空间问题,例如“最近的洗手间在哪里?”,机器人必须推理出它所见过的所有洗手间及洗手间的标志。然后,系统必须提供前往最近洗手间的具体 ( x , y ) (x,y) (x,y)位置。通过用坐标表述空间问题,机器人可以根据这些信息导航到目标。

用户可能还想查询某个事件发生的时间,或了解机器人完成某项任务的时长。因此,我们定义了两种类型的时间问题:时点问题和持续时间问题。时点问题,例如“你什么时候看到箱子掉下来的?”其答案为“15分钟前”,指的是相对于现在的特定时刻。持续时间问题则关注活动的长度,例如“你在建筑物内待了多久?”其答案为“10分钟”。这些时间问题使机器人能够回顾其先前的行动。

最后,描述性问题询问环境、机器人可能见过的活动或机器人过去的状态。这一广泛类别可以是是非问题,例如“今天人行道上忙吗?”或更具描述性的问题,如“你在街道的哪一侧行驶?”这些描述性问题确保我们的机器人能够有效地记住用户所询问的相关细节。为了捕捉这些问题,我们构建了NaVQA数据集。然后,我们设计了ReMEmbR,作为解决这一任务的一个步骤。

3. ReMEmbR

由于机器人是具身的,并且持续存在于环境中,我们将任务分解为两个不同的阶段:记忆构建和查询

计算 p ( A ∣ Q , H 1 : K ) p(A|Q,H_{1:K}) p(AQ,H1:K)通常是困难的,因为长历史记录对基于Transformer的模型计算开销较大,或者可能导致状态空间模型(如LSTM)中的遗忘。我们注意到,对于给定的问题,通常不需要大量历史记录就能提供正确答案。相反,仅需要历史记录的一个子集 R ⊆ H 1 : K R \subseteq H_{1:K} RH1:K

因此,我们可以在给定最优历史子集 R ∗ ⊆ H 1 : K R^* \subseteq H_{1:K} RH1:K的情况下计算答案。在实践中,我们无法计算 R ∗ R^* R,必须抽样一个 R R R,使其包含与 R ∗ R^* R相同的信息。为此,我们构建一个记忆表示 V V V,该表示通过函数 F : V → R F: V \to R F:VR进行抽样,其中 F ( V ) = { h ∣ h ∈ H 1 : K } F(V) = \{h|h \in H_{1:K}\} F(V)={hhH1:K}。我们将问题分解如下:

p ( A ∣ H 1 : K , Q ) = p ( A ∣ R ∗ , Q ) ≈ p ( A ∣ R , Q ) , (1) p(A|H_{1:K},Q) = p(A|R^*,Q) \approx p(A|R,Q), \tag{1} p(AH1:K,Q)=p(AR,Q)p(AR,Q),(1)

使得 R ∼ F ( V ) R \sim F(V) RF(V)。然后,我们的目标是估计 R ∗ R^* R,使得从 R R R H H H推导出的答案是一致的。为此,我们必须在确保答案可以从历史 H H H和子集 R R R中预测的同时,最小化 R R R的大小:

R ∗ = arg ⁡ min ⁡ R ∣ R ∣ s.t. arg ⁡ max ⁡ A p ( A ∣ R , Q ) = arg ⁡ max ⁡ A ′ p ( A ′ ∣ H , Q ) (2) R^* = \arg\min_R |R| \quad \text{s.t.} \\ \quad \arg\max_A p(A|R,Q) = \arg\max_{A'} p(A'|H,Q) \tag{2} R=argRminRs.t.argAmaxp(AR,Q)=argAmaxp(AH,Q)(2)

使用记忆表示 V V V抽样策略 F F F使得在给定长历史的情况下,计算变得更加可行。接下来,我们详细说明ReMEmbR如何在记忆构建阶段聚合记忆表示 V V V,以及在查询阶段如何抽样 R ∼ F ( V ) R \sim F(V) RF(V)

3.1 记忆构建

随着机器人随时间聚合信息,我们将可查询的记忆表示 V V V定义为一个向量数据库。向量数据库通常用于存储数百万个向量嵌入,并使用量化的近似最近邻方法高效地进行搜索。由于这些数据库在搜索方面效率高,我们使用向量数据库来存储时间、位置和视觉表示。机器人在其部署过程中感知静态物体、场景和动态事件。我们想指出,记忆表示 V V V必须在不知道问题 Q Q Q的情况下构建,因此必须足够通用以应对任何潜在问题。随着机器人实时移动,我们聚合 t t t秒的图像帧 H I i : i + t H_{I_{i:i+t}} HIi:i+t计算该段记忆的嵌入表示。我们使用VILA [47]对每个连续的 t t t秒段进行视频字幕生成,为每个时间段生成字幕 L i : i + t L_{i:i+t} Li:i+t。这些字幕捕捉了机器人随时间所见的低级细节,随后我们使用文本嵌入函数 E E E对其进行嵌入。我们使用mxbai-embed-large-v1 [48]嵌入模型来嵌入这些字幕。随着时间的推移,机器人将文本字幕、位置和时间戳的向量表示 E ( L I i : i + t ) , H P i : i + t , H T i : i + t E(L_{I_{i:i+t}}), H_{P_{i:i+t}}, H_{T_{i:i+t}} E(LIi:i+t),HPi:i+t,HTi:i+t添加到向量数据库 V V V中。

3.2 查询

在向量数据库 V V V就位后,查询阶段可以开始。为了收集历史子集 R R R,我们使用LLM代理作为抽样函数 F F F来抽样数据库 V V V

在这里插入图片描述

图2:(左)我们设计了ReMEmbR,包括记忆构建阶段和查询阶段。记忆构建阶段运行VILA [47]视频字幕生成模型,嵌入字幕,然后将字幕嵌入、位置和时间向量存储到向量数据库中。随后,当用户提出问题时,向量数据库查询循环便开始于一个大型语言模型(LLM)。 (右)接着,我们在我们构建的NaVQA数据集上评估ReMEmbR。NaVQA包含如上所示的三种类型的问题。然后,我们将ReMEmbR部署在机器人上。

…详情请参照古月居

Logo

更多推荐