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 不确定性和一致性检测方法。
研究背景与动机¶
- 领域现状:VLA 模型(如 OpenVLA、π₀)在未见任务上的零样本成功率仅 30-60%。实际部署需要在执行过程中自动检测失败以触发人工干预或重试。
- 现有痛点:现有失败检测器都是任务特定的——需要为每个新任务收集失败 rollout 数据来训练。Token 不确定性方法(logit-based)在 VLA 上效果极差(ROC-AUC 45-60%)。动作一致性方法(STAC)需要 10× 推理时间。
- 核心矛盾:VLA 模型面向开放世界任务——不可能为每个可能的任务都预收集失败数据。需要在见过的任务上训练但能泛化到新任务的失败检测。
- 本文要解决什么? 训练能跨任务泛化的高效失败检测器,无需为新任务收集任何数据。
- 切入角度:VLA 最后一层隐状态中,成功和失败轨迹的特征分布在不同任务间表现出一致的分离模式。一个简单的 MLP/LSTM 就能学到这个"失败区域"并泛化。
- 核心 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\) 对应的时变阈值)→ 超阈则报失败
关键设计¶
- VLA 特征空间的"失败区域":
- 做什么:发现并利用 VLA 内部特征的失败模式
- 核心思路:VLA 最后一层的隐状态 \(\mathbf{e}_t\)(action decoding 前)编码了任务执行状态。成功轨迹的特征聚集在某个区域,失败轨迹偏离到"失败区域"。这个模式跨任务一致
-
设计动机:相比 token 概率/logit(只反映预测置信度),隐状态编码了更丰富的执行状态信息。token 不确定性在 VLA 上几乎无效(45-60% ROC-AUC)
-
双架构失败检测器(MLP + LSTM):
- 做什么:从特征序列预测失败概率
- 核心思路: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 损失
-
设计动机:MLP 更简单高效,LSTM 捕捉时序模式(如振荡行为预示失败)
-
功能保形预测(FCP)阈值校准:
- 做什么:在验证集上校准时变阈值,保证假阳性率 ≤ \(\alpha\)
- 核心思路:在成功轨迹上计算分数的上界 band \(C_\alpha = \{[lower_t, upper_t]\}\)。测试时若 \(s_t > upper_t\) 则判定失败。保形预测提供理论保证:FPR ≤ \(\alpha\)
- 设计动机:固定阈值不适用不同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 部署的核心安全问题,实用性极强