跳转至

Breaking Down and Building Up: Mixture of Skill-Based Vision-and-Language Navigation Agents

会议: ACL 2026
arXiv: 2508.07642
代码: https://github.com/HLR/SkillNav
领域: 机器人 / 视觉语言导航 / 模块化 agent
关键词: VLN、技能分解、VLM router、合成数据、GSA-R2R 泛化

一句话总结

SkillNav 把视觉语言导航任务拆解成 5 个原子技能(方向调整、垂直移动、停顿、地标识别、区域识别)+ 1 个时序规划技能,每个技能用合成数据微调一个 DUET 子 agent,再用 training-free 的 VLM router 做时序重排 + 子目标定位 + 技能选择,在 GSA-R2R 上取得 SOTA 泛化能力(Test-N-Scene SPL 48% vs. 之前最高 43%)。

研究背景与动机

领域现状:VLN 主流路线两极分化——(1) 监督式黑盒 agent(DUET / BEVBERT / ScaleVLN / SRDF),在大规模合成数据上端到端训练,R2R in-domain 强但容易记忆训练轨迹;(2) zero-shot LLM/VLM agent(MapGPT / NavGPT / DiscussNav),泛化稳定但缺乏 fine-grained 视觉接地,与监督模型相比 SR 差距高达 ~36 个百分点。

现有痛点:监督模型在 GSA-R2R 这种「新建筑类型 + 新指令风格」场景下表现急剧下降;LLM 模型缺少 embodied grounding,无法精确选择 viewpoint。多 agent 协作工作(DiscussNav / FlexVLN / CLASH)虽然组合多模型,但常常每步激活多个模型造成冗余,且冲突时退回 zero-shot LLM 决策,又把 in-domain precision 牺牲掉了。

核心矛盾:「广泛泛化(需要 LLM 的世界知识)」与「精确执行(需要 fine-tune 的视觉接地)」之间的 trade-off。端到端 agent 偏后者,LLM agent 偏前者,二者无法兼得。

本文目标:(1) 找到「执行原子化的最小技能集」让每个技能可以单独训练到精;(2) 让 VLM 只在「技能选择 + 时序规划」这种高层决策上发挥推理优势,避免它直接接管低层动作;(3) 不依赖人工标注,用合成数据闭环训练每个技能 agent。

切入角度:作者复用 NavNuances 提出的 4 个原子技能(DC / VM / LR / RR)+ 自己加的 Stop 和 Temporal Order Planning 2 个技能,模仿人类「先把任务拆成可复用子动作,再按需调度」的思维方式。

核心 idea:用「skill decomposition + skill-specific synthetic data + VLM router」替代「monolithic end-to-end policy」,把高层规划与低层执行解耦,让 LLM 推理与 fine-tune 视觉接地各自发挥所长。

方法详解

整体框架

SkillNav 由两大组件构成:

  • 5 个 skill-specific agents \(\mathcal{S} = \{\pi_{da}, \pi_{vm}, \pi_{sp}, \pi_{ld}, \pi_{ar}\}\)(Direction Adjustment / Vertical Movement / Stop and Pause / Landmark Detection / Area and Region Identification),全部基于 DUET 架构,分两阶段训练:Stage 1 在 R2R + ScaleVLN/SRDF 增强 + Temporal 合成数据上 fine-tune 得到 skill-agnostic backbone;Stage 2 在每个 skill 专属合成数据集(450 条/skill)上继续 fine-tune 成 5 个专家。

  • VLM-based Action Router(training-free,三阶段):(1) Temporal Reordering Module 用 GPT-4o 把原始指令重排为有序子目标列表;(2) Subgoal Localizer 用 Qwen2.5-VL-7B 结合视觉历史和已执行子目标,定位当前子目标 \(p_t^*\) 并输出 reasoning trace \(r_t\);(3) Skill Router 选出最合适的 \(\pi_t^* = \arg\max_{\pi \in \mathcal{S}} \text{Router}(I, p_t^*, r_t)\),被选中的专家 agent 用原始指令 + 当前观测 + 拓扑图预测下一步动作。

关键设计

  1. 6-skill 任务分解 + skill-specific 合成数据 pipeline:

    • 功能:把"navigation"拆成 6 个语义可独立训练的最小单元,让每个 agent 只学一件事。
    • 核心思路:从 Matterport3D 随机采样 4-7 步短路径,按 skill 启发式过滤(如 Direction 要求频繁转向、Vertical 要求高度差 \(>2\) 单位且必经楼梯);让 GPT-4o 根据轨迹观测合成 R2R 风格的指令,每个 skill 生成 450 条数据(Temporal 单独 2,000 条)。然后 Stage 1+2 微调 DUET backbone。
    • 设计动机:人工标注每个 skill 的数据成本极高;合成数据通过严格几何/语义过滤保证 trajectory 内在贴合 target skill,避免模型靠关键词捷径学习(实验显示 "down" 这种词在不同 dataset 中含义不同,模型必须依赖视觉上下文)。
  2. VLM Router 三阶段管道(Temporal Reorder → Subgoal Localize → Skill Route):

    • 功能:让 VLM 只在 skill-switching 事件时被调用,而不是每步都跑,降低开销。
    • 核心思路:先用 LLM 把"先 X 然后 Y 再 Z"这类带时序词的指令显式重排成有序 subgoal 列表(消除 implicit temporal reasoning);再用 VLM 结合视觉历史 + 已执行 subgoals 定位"当前应执行哪个 subgoal";最后让 VLM 在 reasoning trace + 原指令上下文里选一个最匹配的 skill agent。
    • 设计动机:实验显示禁用 Temporal Reordering 会让 Test-N-Scene SPL 掉 2.5%,说明显式时序分解是必要的结构脚手架;三阶段分工让每个 VLM 调用任务专一、错误可定位。
  3. VLM 推理与 fine-tune 执行的彻底解耦:

    • 功能:取得"LLM 广泛泛化 + 监督模型精确接地"的双重优势。
    • 核心思路:VLM 只产出 "选哪个 skill" 这个离散决策,不直接预测动作;被选中的 skill agent 用自己的 DUET 权重和原始指令做最终动作预测。这意味着 VLM 错了也只是"派错专家",而非"动作错",错误被局部化。
    • 设计动机:端到端 VLM agent 容易把所有错误(推理 + 接地)耦合在一起。SkillNav 实验显示,控制类技能(\(\pi_{sp}\) 34.42% + \(\pi_{da}\) 23.61% = 58%)被频繁调用,而语义类技能(\(\pi_{ld}\) 14.23% + \(\pi_{ar}\) 18.75%)只在需要"识别特定物体"时激活,体现了 precision-first 策略。

损失函数 / 训练策略

两阶段 fine-tuning:Stage 1 在 ScaleVLN 增强数据 + R2R + Temporal 合成上 50,000 iter(batch 32, lr 5e-5);Stage 2 在每个 skill 数据集上 30,000 iter(batch 16)。Router 用 vLLM + greedy decoding (temperature 0, max length 40,960),top-1 选 skill。

实验关键数据

主实验:R2R + GSA-R2R 对比

方法 R2R Val-Unseen SPL R2R Test-Unseen SPL GSA-R2R Test-R-Basic SPL GSA-R2R Test-N-Basic SPL GSA-R2R Test-N-Scene SPL
DUET 60 59 47 37 30
BEVBERT 64 62 45 35 27
ScaleVLN † 70 68 67 57 43
SRDF † 78 77 63 49 43
MapGPT (LLM) 35 30 23 23
NavGPT-2 (FlanT5-5B) 61 60 45 35 43
SkillNav (ScaleVLN-Aug) † 77 (+6.54) 70 (+1.80) 69 (+2.18) 61 (+4.18) 48 (+5.26)
SkillNav (SRDF-Aug) † 78 77 64 50 45

†=用大规模合成数据增强。GSA-R2R 上 SkillNav 把 SPL 推上了新 SOTA,Test-N-Scene SPL 比 ScaleVLN 涨 5.26 个百分点。

消融:Action Router 的两个机制

Reorder Router Test-R-Basic SPL Test-N-Basic SPL Test-N-Scene SPL
Qwen 67.80 59.62 45.43
Qwen 68.88 61.34 47.96
GLM 66.27 58.63 42.64
GLM 67.93 59.73 46.51
Random skill (no router) 67.46 59.71 43.17
GPT-4o 69.18 62.48 48.96
Method DC SR VM SR LR SR RR SR
ScaleVLN 68.39 81.76 28.32 82.91
SRDF 59.93 82.94 26.28 77.09
Direction Adjustment agent 70.81 81.76 31.39 81.82
Vertical Movement agent 70.68 87.65 30.22 82.18
Landmark Detection agent 70.29 82.35 31.53 83.64
Area and Region Ident. agent 67.53 84.12 29.20 85.09

关键发现

  • 去掉 Temporal Reordering → Test-N-Scene SPL 掉 2.5%,证明显式时序结构脚手架不可或缺。
  • 5-skill 子集消融:用 2-4 个 skill 的所有组合都比 5 个 skill 差(如 4 skill 最佳 80.80 SR,5 skill 82.59 SR),证明分解的"完备性"重要。
  • 专家激活频次:控制类(\(\pi_{sp}\) 34.42% + \(\pi_{da}\) 23.61% = 58%)远高于语义类,说明"continuous state verification"比"sparse semantic anchoring"在 navigation 里更频繁。
  • Inference 开销:SkillNav 9.69s/case,比 NavGPT/FlexVLN 快 2-4×,但仍比 ScaleVLN (28 inferences/s) 慢约 50×。

亮点与洞察

  • 「skill 是高层语义概念,不是低层动作」的精确定位:作者在附录 A.1 明确说原子 skill 定义在 semantic intent 层面,而非 motor execution 层面(如 "walk to the far end of the room" 是一个 Region Identification skill,即使底层执行多个 forward + 转向)。这种分层避免了"过度拆解"和"拆解过粗"两个极端。
  • VLM 只决策不执行:把 VLM 限制在"选 skill"这一离散决策上,错误被局部化,而执行接地交给 fine-tune 好的 DUET。这种"high-level reasoning + low-level grounding"解耦是泛化的关键。
  • two-stage 微调防止 catastrophic forgetting:Stage 1 先用大规模通用数据训得 backbone,Stage 2 再分支到 skill 专精,相比单阶段直接训 5 个 skill 更稳定。
  • 合成数据的"反捷径"设计:Vertical Movement 数据里故意包含大量非垂直关键词(Landmark 18.72% + Direction 8.05%),强迫模型从视觉而非词典学习;这种 anti-shortcut 数据构造值得借鉴。

局限与展望

  • 只在离散 viewpoint 模拟器上评估:未在 VLN-CE / Habitat 连续控制 / 真实机器人上验证,连续动作空间需要新的 skill executor。
  • Inference 开销仍较高:比纯监督模型慢 50×,部署到 latency-constrained 场景需要 router 蒸馏或缓存。
  • 技能库不完备:未涵盖 object manipulation / 透明材质 / 人类感知导航等更专业场景,需要按需扩展。
  • GPT-4o + Qwen2.5-VL 闭源/开源混搭:复现成本较高;如果 GPT-4o API 停用会影响 Temporal Reordering 质量。
  • 错误分析揭示瓶颈在视觉接地:作者人工分析 17 个失败案例发现,主要不是 router 推理错,而是 VLM 在杂乱场景里把"sink"绑定到错误物体——这暗示下一步要强化视觉 grounding 模块。

相关工作与启发

  • vs DUET (backbone):本文以 DUET 为基础,但把单个 DUET 拆成 5 个 skill-specific DUET + 一个 VLM router,泛化能力大幅提升。
  • vs ScaleVLN / SRDF:同样用大规模合成数据增强,但本文进一步按 skill 分桶 + Stage 2 专精,比单一巨型 model 强。
  • vs MapGPT / NavGPT / DiscussNav:纯 LLM 路线,零样本但缺乏视觉接地;本文用 VLM 只决策不执行,融合两边长处。
  • vs FlexVLN / CLASH (planner-executor):同样有 hierarchical 思想,但他们每步可能激活多个模型造成冗余,且冲突时退回 zero-shot;SkillNav 总是 top-1 选一个 best-fit specialist。
  • vs SAME (state-adaptive MoE):类似 MoE 思想,但 SAME 是隐式专家路由,SkillNav 是显式 skill semantic 路由,可解释性更强。

评分

  • 新颖性: ⭐⭐⭐⭐ 「skill 分解 + VLM router + 合成数据闭环」组合,每个组件不算全新,但组合 + 跨 R2R/GSA-R2R 的稳定泛化收益是真实的
  • 实验充分度: ⭐⭐⭐⭐⭐ R2R / GSA-R2R / RxR / NavNuances 4 个 benchmark + skill subset 消融 + temporal 消融 + router VLM 对比 + 失败案例分析 + leakage 分析 + inference 开销分析
  • 写作质量: ⭐⭐⭐⭐ 附录极其详尽(Skill 定义 / Data 构造 / 偏见检查 / Hyperparams 全公开)
  • 价值: ⭐⭐⭐⭐ 代码开源 + 项目页 + 合成数据 pipeline 都可复用;为 VLN 社区提供了一条「模块化 + LLM 推理」的可行路径