24年9月来自 Nvidia、USC 和 UTAustin 的论文“ReMEmbR: Building and Reasoning Over Long-Horizon Spatio-Temporal Memory for Robot Navigation”。
在较长时间内导航和理解复杂环境对机器人来说是一项重大挑战。与机器人互动的人可能会问一些问题,例如某事发生在哪里、何时发生或发生多久了,这需要机器人对其部署的长期历史进行推理。为了解决这个问题,引入用于具身机器人的检索增强记忆 (ReMEmbR),这是一种专为机器人导航的长范围视频问答设计的系统。为了评估 ReMEmbR,引入 NaVQA 数据集,在其中为长范围机器人导航视频标注空间、时间和描述性问题。ReMEmbR 采用一种结构化方法,涉及记忆构建和查询阶段,利用时间信息、空间信息和图像来有效处理不断增长的机器人历史。实验表明,ReMEmbR 优于 LLM 和 VLM 基线,使 ReMEmbR 能够以低延迟实现有效的长范围推理。
机器人越来越多地被部署在各种各样的环境中,包括建筑物、仓库和户外环境。在部署过程中,机器人会感知一系列物体、动态事件和现象,而这些很难用传统的表示方法(如度量或语义地图)来概括。此外,这些机器人可以存在很长时间,通常以小时为单位,但目前还没有办法向机器人询问它在这么长的时间内看到了什么。这项工作解决高效构建用于机器人导航和问答的长范围记忆带来的挑战,其方法是将其构建为长范围视频问答任务。系统使机器人能够回答自由形式的问题,并根据它们观察的内容采取行动。
现有的机器人时空视频记忆方法受到其处理短时间的限制,通常限制在 1-2 分钟 [1,2]。随着时间跨度的增加,基于 Transformer 的方法对推理时间内存的要求也会增加,这使得它们不适合处理任意长的视频。并发工作 [3] 专注于利用大语言模型的极大上下文窗口来回答具有较长机器人历史的问题;然而,这不是一个可扩展的解决方案。无论上下文窗口的长度如何,无限长度的历史记录都无法适合这种固定大小的上下文。这项工作提出一种用于具身机器人的检索增强记忆 (ReMEmbR),它使用基于检索的 LLM 智体,通过制定基于文本、空间和时间的查询来查询任意长度的记忆。如图所示,ReMEmbR 由记忆构建阶段和查询阶段组成。
机器人中的情景记忆主要被定义为问答任务,其中系统根据其回答给定视频问题的能力进行评估 [4,5]。虽然这些系统的基于文本输出对于评估 QA 能力很有用,但它们可能无法为导航机器人提供可操作的信息。
例如,像“你在哪里看到我的手机?”这样的问题可能会得到这样的回答:“我在咖啡桌上看到的。”虽然信息量很大,但这个答案并不能转化为机器人可操作的数据。因此,该工作还结合对显式空间(例如 xy 位置)和时间(例如“10 分钟前”)信息的推理。
为了评估该系统,构建导航视频问答数据集 NaVQA,其中的方法必须输出位置、时间信息或自由格式的文本。数据集由 7 个长范围导航视频子集中采样的 210 个问题组成。该数据集旨在促进对导航机器人长范围记忆构建和推理的进一步研究。
将问题表述为机器人长期视频问答任务的变型。与标准视频问答不同,机器人部署时间为 K 分钟,并主动从各种传感器积累历史记录 H1:K。由于它们的持续部署,历史记录的大小随时间的推移单调增加。因此,工作重点是两个问题:高效地构建这个长期历史 H1:K 的表征,然后查询该表征以回答问题并生成导航目标。
为了有效地构建记忆,考虑图像历史记录 HI 、位置 HP 和时间戳 HT 。假设机器人具有定位能力,例如使用基于激光雷达的定位、GPS 或里程表信息来提供公制坐标。构建记忆表征后,用户向机器人询问一个问题 Q,关于机器人可能见过的空间、时间或描述性信息。具体来说,目标是根据历史记录和一个问题 p(A|Q, H) 预测一个答案 A。
由于机器人具有实体,并持续存在于环境中,将任务分解为两个不同的阶段:记忆构建和查询。
p(A|Q, H1:K) 的计算通常很困难,因为长历史对于基于 Transformer 的模型来说计算成本很高,或者可能导致 LSTM 等状态空间模型出现遗忘。对于给定的问题,通常不需要大量历史记录即可提供正确答案。相反,只需要历史记录 R ⊆ H1:K 的一个子集。
构建了一个使用 F : V → R 进行采样的记忆表征 V,其中 F(V) = {h|h ∈ H1:K}。使用记忆表征 V 和采样策略 F,可以使计算在较长的历史记录下更易于处理。
基于机器人随时间的推移聚合信息,将可查询的记忆表示 V 定义为向量数据库。向量数据库通常用于存储数百万个向量嵌入,并使用量化近似最近邻(ANN)方法高效地搜索它们。由于这些数据库的搜索效率很高,使用向量数据库来存储时间、位置和视觉表示。
机器人在部署过程中感知静态目标、场景和动态事件。记忆表示 V 必须在事先不知道问题 Q 的情况下构建,因此必须足够通用以应对任何潜问题。当机器人实时移动时,聚合 t 秒的图像帧 HI/i:i+t 来计算该记忆片段的嵌入表征。在每个连续的 t 秒片段上使用 VILA [47] 进行视频字幕,为每个时间段 L/i:i+t 生成字幕。这些字幕捕捉机器人随时间所见内容的低级细节,然后使用文本嵌入函数 E 将其嵌入。用 mxbai-embed-large-v1 [48] 嵌入模型来嵌入字幕。随时间的推移,机器人将文本字幕的矢量表示、位置和时间戳 E (L/Ii:i+t)、H/P/i:i+t、H/P/i:i+t 添加到矢量数据库 V 中。
有了矢量数据库 V,就可以开始查询阶段。为了收集历史子集 R,用 LLM 智体作为采样函数 F 来对数据库 V 进行采样。
LLM 智体充当状态机,迭代调用 LLM,如图所示。方法从检索节点开始,该节点使用位置、时间戳或文本嵌入以三种不同的方式查询向量数据库。 LLM 考虑当前记忆集 R/0:i 和问题 Q,生成函数调用 f 和查询 q,检索 m 个记忆。每个记忆都包含位置、时间和标题信息,可用作进一步的上下文。m 个检索的记忆片段加入 R。
在每次迭代中,LLM 可以制定最多 k 个查询,这些查询可能有助于它回答问题。检索到 k × m 个记忆后,LLM 会评估是否可以用更新后的上下文回答问题。如果问题无法回答,LLM 将使用当前上下文并再次执行查询阶段以检索新记忆。如果问题可以回答,LLM 将总结所有相关信息,然后根据检索的所有记忆生成答案。输出格式为 JSON,其中包含文本、位置、时间或持续时间答案的K。这种结构化输出可确保对 NaVQA 进行简单的评估,并可以轻松生成机器人部署目标。
ReMEmbR 使用检索模块来汇总长期历史的相关部分。用闭源 LLM(GPT-4o)、各种开源 LLM(Codestral [51]、Command-R [52])和较小的 80 亿参数 Llama3.1 [53] 模型展示 ReMEmbR 的能力。ReMEmbR 使用最多 3 个检索步来构建 R。将这些模型与使用 GPT-4o 的模型进行比较,GPT-4o 一次提供所有字幕,而另一个版本使用从视频 2 FPS 采样的帧。对于字幕,在 3 秒的视频中使用 VILA1.5-13b,结果为 2 FPS。
在 Nova Carter 机器人 [54] 上部署 ReMEmbR。在 Jetson Orin 32GB 上运行记忆构建阶段,并使用 GPT-4o 作为 ReMEmbR 智体的 LLM 后端。运行量化版的 VILA-3b 随时间汇总字幕。用 ROS2 的 Nav2 堆栈和 AMCL 在预映射的度量地图上计算定位。运行针对 Jetson 优化的 Whisper 自动语音识别模型 [55],以便与 ReMEmbR 进行交互。VILA-3b、Whisper、带有 3D LiDAR 的 Nav2 堆栈和向量数据库查询在设备上运行。在代码发布中,将提供各种 LLM 后端,例如基于云的 LLM(如 NVIDIA NIM API [56] 或 OpenAI API)、可以在本地桌面上运行的本地大型 LLM(如 Command-R)以及可以在设备上运行的小型函数调用 LLM。