跳转至

SAFE: Multitask Failure Detection for Vision-Language-Action Models

会议: NeurIPS 2025
arXiv: 2506.09937
代码: https://vla-safe.github.io/
领域: 机器人学习 / VLA 安全
关键词: 失败检测, VLA模型, 多任务泛化, 功能保形预测, MLP/LSTM检测器

一句话总结

SAFE 发现 VLA 模型的内部特征空间存在跨任务一致的"失败区域",据此训练轻量 MLP/LSTM 失败检测器,配合功能保形预测(FCP)做阈值校准,在未见任务上达 78% ROC-AUC,计算开销 <1%,大幅优于 token 不确定性和一致性检测方法。

研究背景与动机

  1. 领域现状:VLA 模型(如 OpenVLA、π₀)在未见任务上的零样本成功率仅 30-60%。实际部署需要在执行过程中自动检测失败以触发人工干预或重试。
  2. 现有痛点:现有失败检测器都是任务特定的——需要为每个新任务收集失败 rollout 数据来训练。Token 不确定性方法(logit-based)在 VLA 上效果极差(ROC-AUC 45-60%)。动作一致性方法(STAC)需要 10× 推理时间。
  3. 核心矛盾:VLA 模型面向开放世界任务——不可能为每个可能的任务都预收集失败数据。需要在见过的任务上训练但能泛化到新任务的失败检测。
  4. 本文要解决什么? 训练能跨任务泛化的高效失败检测器,无需为新任务收集任何数据。
  5. 切入角度:VLA 最后一层隐状态中,成功和失败轨迹的特征分布在不同任务间表现出一致的分离模式。一个简单的 MLP/LSTM 就能学到这个"失败区域"并泛化。
  6. 核心 idea 一句话:用 VLA 最后一层隐状态训练轻量失败检测器(MLP/LSTM) + 功能保形预测做阈值校准 = 多任务泛化的实时失败检测。

方法详解

整体框架

VLA 执行中 → 提取每步最后一层隐状态 \(\mathbf{e}_t\)MLP 检测器(逐步打分累积 \(s = \sum_t \sigma(g(\mathbf{e}_t))\))或 LSTM 检测器(序列处理 \(s_t = \sigma(\text{LSTM}(\mathbf{e}_{0:t}))\))→ FCP 阈值校准(在验证集上用保形预测确定与置信度 \(\alpha\) 对应的时变阈值)→ 超阈则报失败

关键设计

  1. VLA 特征空间的"失败区域":
  2. 做什么:发现并利用 VLA 内部特征的失败模式
  3. 核心思路:VLA 最后一层的隐状态 \(\mathbf{e}_t\)(action decoding 前)编码了任务执行状态。成功轨迹的特征聚集在某个区域,失败轨迹偏离到"失败区域"。这个模式跨任务一致
  4. 设计动机:相比 token 概率/logit(只反映预测置信度),隐状态编码了更丰富的执行状态信息。token 不确定性在 VLA 上几乎无效(45-60% ROC-AUC)

  5. 双架构失败检测器(MLP + LSTM):

  6. 做什么:从特征序列预测失败概率
  7. 核心思路:MLP——逐步独立打分后累积 \(f_{MLP} = \sum_\tau \sigma(g(\mathbf{e}_\tau))\),损失 \(L = \sum_i [y_i \sum_t(t-s_t) + (1-y_i)\sum_t s_t]\),成功轨迹希望分数低、失败轨迹分数高。LSTM——序列处理捕捉时间依赖 \(f_{LSTM} = \sigma(\text{LSTM}(\mathbf{e}_{0:t}))\),BCE 损失
  8. 设计动机:MLP 更简单高效,LSTM 捕捉时序模式(如振荡行为预示失败)

  9. 功能保形预测(FCP)阈值校准:

  10. 做什么:在验证集上校准时变阈值,保证假阳性率 ≤ \(\alpha\)
  11. 核心思路:在成功轨迹上计算分数的上界 band \(C_\alpha = \{[lower_t, upper_t]\}\)。测试时若 \(s_t > upper_t\) 则判定失败。保形预测提供理论保证:FPR ≤ \(\alpha\)
  12. 设计动机:固定阈值不适用不同VLA/任务;FCP 提供自适应阈值且有误报率保证

损失函数 / 训练策略

  • MLP: 累积分数损失(成功低/失败高)
  • LSTM: 逐步 BCE
  • 训练数据:成功+失败的 rollout(多任务混合)
  • 推理开销 <1%(仅提取最后一层特征 + MLP forward)

实验关键数据

主实验(ROC-AUC %)

VLA 模型 基准 见过任务 未见任务
OpenVLA LIBERO 72.68 73.47
π₀ LIBERO 92.98 84.48
π₀-FAST LIBERO 90.06 80.44
π₀* SimplerEnv 89.50 84.82
平均 全部 81.43 78.00

方法对比

方法 ROC-AUC 推理开销
Token 不确定性 48-54% ~0%
Sample 一致性 (STAC) ~71% 10×
嵌入距离 57-82% ~1%
SAFE (MLP/LSTM) 78-85% <1%

关键发现

  • Token 不确定性对 VLA 几乎无效——VLA 的 token 概率不反映执行质量
  • SAFE 在未见任务上仅下降 3.4%(81.43→78.00),泛化性可接受
  • 真实机器人上:π₀-FAST + Franka 未见任务 64.16%,OpenVLA + WidowX 未见 88.42%
  • 成功检测:不精确插入、振荡运动、抓取失败、物体滑落
  • FCP 约 100 个样本后收敛到近最优阈值

亮点与洞察

  • "失败区域"的发现是洞察性发现:VLA 的隐状态空间中失败轨迹形成一致的聚类,这说明 VLA 内部已经"知道"自己在失败,只是没有显式的监控机制
  • 极低计算开销:<1% 额外开销(vs STAC 10×),使实时部署可行
  • 保形预测提供理论保证:FPR ≤ \(\alpha\) 的保证对安全关键应用很重要

局限性 / 可改进方向

  • 仅在操作任务上验证,未测试导航/移动操作
  • 只用最后一层特征,多层聚合可能更强
  • 需要收集成功+失败 rollout 来训练(无法纯零样本)
  • 未见任务上性能下降 8-13%,安全关键场景可能不够

相关工作与启发

  • vs token 不确定性: token 概率对 VLA 无效,隐状态特征更有效——这对 VLA 安全社区是重要发现
  • vs STAC (action consistency): STAC 需要多次推理检查一致性,SAFE 单次推理即可
  • vs OOD 检测 (LogpZO): OOD 方法检测"异常输入",SAFE 检测"执行失败",后者更直接

评分

  • 新颖性: ⭐⭐⭐⭐ "失败区域"的发现和 FCP 校准设计有新意
  • 实验充分度: ⭐⭐⭐⭐⭐ 4个VLA×2个基准+真实机器人+多baseline+FCP分析
  • 写作质量: ⭐⭐⭐⭐ 问题动机清晰
  • 价值: ⭐⭐⭐⭐⭐ 解决了 VLA 部署的核心安全问题,实用性极强