1. 引言:当AI学会"看路"与"听话"

在人工智能的诸多前沿领域中,让机器人像人类一样理解环境、执行语言指令并自主导航,始终是具身智能(Embodied AI)研究的核心挑战。视觉语言导航(Vision-and-Language Navigation, VLN)任务要求智能体在复杂的三维真实环境中,依据自然语言指令完成从起点到目标位置的导航过程。这一任务不仅考验模型对视觉信息的理解能力,更依赖于对语言指令的精确推理能力,可谓是多模态智能的试金石。

2025年发表于IEEE TPAMI的研究论文"NavCoT: Boosting LLM-Based Vision-and-Language Navigation via Learning Disentangled Reasoning"提出了一种创新性的"导航思维链"(Navigational Chain-of-Thought)策略。该方法巧妙地将大语言模型(LLM)转化为兼具世界模型能力与推理能力的导航智能体,通过参数高效的领域内训练实现自引导式导航决策,为解决VLN任务中的领域差距问题提供了全新的技术范式。相关代码,相关论文


2. 问题背景:大模型为何也会"迷路"

2.1 视觉语言导航任务的本质挑战

视觉语言导航任务的设定可以形式化描述为:给定一条自然语言指令 I I I,智能体需要从起始视点出发,在三维环境中依次做出导航决策,最终到达距离目标位置3米以内的区域。在每个时间步 t t t,智能体接收全景观测图像 O t O_t Ot,其中包含 K K K 个单视图观测,其中 N N N 个为可导航视图。智能体需要从这 N N N 个可导航视图加上一个停止标记构成的动作空间中选择一个作为当前动作。

这一任务的核心难点在于:智能体必须在理解语言指令语义的同时,将其与视觉观测进行跨模态对齐,并基于历史轨迹进行长程规划。传统方法通常依赖端到端的跨模态编码器,通过大规模预训练学习视觉-语言对应关系,但这类方法存在明显的可解释性不足问题。

2.2 现有大语言模型方法的两大困境

随着GPT-4等大语言模型展现出强大的常识推理能力,研究者开始尝试将LLM引入VLN任务。然而,现有的LLM-based方法面临两个核心问题:

领域差距显著:通用LLM的训练语料以互联网文本为主,与导航任务所需的空间推理、方向理解等能力存在本质差异。直接应用LLM进行导航决策,往往会产生与物理世界交互逻辑不符的输出。以NavGPT为代表的方法虽然利用了GPT-4的零样本推理能力,但9.8秒的单步推理时间和有限的准确率使其难以满足实际应用需求。

决策过程黑箱化:传统方法直接让LLM预测导航动作,缺乏中间推理步骤的显式建模。这种"端到端"的预测模式不仅降低了决策的可解释性,也难以对错误进行有效追溯和修正。如图所示,在零样本设置下,LLM可能产生错误的想象(如误将目标识别为"bed"),或生成混乱的推理输出,导致最终动作决策失误。

零样本推理失败案例:
指令: "Walk towards the mirror and walk through the open door"
历史: Step 1. go forward <a wall with a mirror>
LLM错误输出: Imagination: bed (应为open door)
结果: 选择了错误的动作方向

2.3 图解:零样本推理 vs NavCoT

为了直观展示现有困境与解决方案的区别,下图对比了两种模式:

在这里插入图片描述

图1:左侧展示了传统大模型直接推理容易产生幻觉(如将门误认为是床);右侧NavCoT通过三步解耦推理,先想象再过滤,确保了决策的准确性。


3. NavCoT核心方法:三步解耦推理机制

3.1 方法论总览

NavCoT的核心创新在于将导航决策分解为三个相互关联的推理步骤:未来想象(Future Imagination, FI)、视觉信息过滤(Visual Information Filter, VIF)和动作预测(Action Prediction, AP)。这一设计灵感源自认知科学中的世界模型理论——人类在与环境交互时,会在脑海中构建一个心理模型来总结所见环境并预测未来状态,进而基于该模型做出行动决策。

整体架构如下图所示:

在这里插入图片描述
图2:NavCoT的三步推理框架。输入层将视觉信号转为文本,推理层通过"想象-过滤-行动"的链条进行决策。

此外,原文提供的概览图(见下图)也清晰展示了这一流程:

在这里插入图片描述

图3:NavCoT 原文方法概览。展示了从指令分解到动作执行的完整流水线。

3.2 视觉到文本系统

在NavCoT中,视觉信息首先通过Vision-to-Text系统转换为文本描述,这是LLM能够处理视觉输入的关键桥梁。每个时间步 t t t 的观测 O t , n O_{t,n} Ot,n 包含RGB图像 B t , n B_{t,n} Bt,n 和方向信息 A t , n = { ψ t , n , θ t , n } A_{t,n}=\{\psi_{t,n}, \theta_{t,n}\} At,n={ψt,n,θt,n},其中 ψ \psi ψ θ \theta θ 分别表示航向角和仰角。

视觉信息的文本化过程分为两步:

  1. 图像描述生成:使用BLIP图像描述模型将RGB图像转换为文本描述
  2. 方向信息映射:将角度信息映射到六个基本方向词汇(turn left, turn right, go forward, go back, go up, go down)

最终的观测文本描述通过字符串拼接形式构成:

def get_direction(self, rel_heading, rel_elevation):
    """将相对角度转换为方向文本描述"""
    if rel_elevation > 0:
        direction_text = 'go up to'
    elif rel_elevation < 0:
        direction_text = 'go down to'
    else:
        if rel_heading < 0:
            if rel_heading >= -math.pi / 2:
                direction_text = 'turn left to'
            elif rel_heading < -math.pi / 2 and rel_heading > -math.pi * 3 / 2:
                direction_text = 'go back to'
            else:
                direction_text = 'turn right to'
        elif rel_heading > 0:
            if rel_heading <= math.pi / 2:
                direction_text = 'turn right to'
            elif rel_heading > math.pi / 2 and rel_heading < math.pi * 3 / 2:
                direction_text = 'go back to'
            else:
                direction_text = 'turn left to'
        elif rel_heading == 0:
            direction_text = 'go forward to'
    return direction_text

3.3 未来想象(Future Imagination)

未来想象模块的设计源自世界模型理论。在人类导航过程中,我们往往会基于指令预先设想前方可能出现的场景或物体。NavCoT模拟这一认知过程,让LLM在每个决策步生成对下一观察的想象。

关键设计原则是:想象内容必须严格来自指令中提到的物体或场景(landmarks),这确保了推理始终围绕任务目标展开,避免LLM"胡思乱想"。例如,当指令为"Walk towards the mirror and walk through the open door",且历史记录显示已经经过mirror时,合理的想象应该是"open door"。

输出格式:

Imagination: [从指令中提取的地标对象]

3.4 视觉信息过滤(Visual Information Filter)

生成想象后,VIF模块负责从当前观测的多个候选视图中,筛选出与想象最匹配的选项。这一步骤有效解决了视觉信息冗余的问题——在全景观测中可能存在多个可导航方向,VIF帮助模型聚焦于与任务目标相关的关键线索。

输出格式:

Filtered observation: [选项字母] matches the imagination

在这里插入图片描述

3.5 动作预测(Action Prediction)

综合前两步的推理结果,模型最终做出行动选择。通过这种分步推理,原本复杂的导航决策被显著简化——模型不再需要直接在复杂的观测空间中搜索最优动作,而是通过"想象-匹配-决策"的渐进式推理得出结论。

完整的提示词模板设计如下:

# 上下文示例 (t=0时)
example = '''Input: Instruction: walk towards the mirror, walk through 
the open door and stop. Observation: [A. stop, B. go forward <a wall 
with a mirror>, C. turn left <a bedroom with a bed>]. History: None.
Output: Imagination: mirror. Filtered observation: B matches the 
imagination. Action: B.'''

# 上下文示例 (t>0时)  
example = '''Input: Instruction: walk towards the mirror and walk 
through the open door. Observation: [A. stop, B. go forward <a bedroom 
with a bed>, C. turn right <a open door leading to a hallway>]. 
History: Step 1. go forward <a wall with a mirror>.
Output: Imagination: open door. Filtered observation: C matches the 
imagination. Action: C.'''

# 查询构造
query = f"""Input: Instruction: {instruction} Observation: {observation}. 
History: {history}.
Output: """

prompt = example + query

4. 推理真值标签的构建

4.1 问题动机

…详情请参照古月居

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐