ShieldVLA: Feasibility-Aware Safety Alignment for Vision-Language-Action Models
Manan Tayal, Akshay Nambi
cs.RO, cs.AI
2026-09-02
HJ可达性critic门控PPO:安全区只优化任务。五组基准累计安全代价比SafeVLA低57%,成功率高0.13。
VLA 微调默认只追任务回报。家里、产线上碰一次障碍、进一次危险区,任务就算完了。现成做法是 Constrained MDP 上的拉格朗日:把累计安全代价的期望压到预算以下,用对偶变量软惩罚。SafeVLA 就是这条路。软约束管的是期望,管不住单条轨迹;全局加惩罚又会把策略往保守里推,长程任务尤其明显。
第二个缺口是标签。视觉域几乎没有逐步的安全标注,VLM 随口打分又噪、又不稳定,喂不进 critic。
ShieldVLA 把安全从「全程扣分」改成「当前状态还能不能一直安全」。Hamilton–Jacobi 可达性给出一个安全值函数 \(V^s(s)\):从 \(s\) 出发,在最坏未来约束下,裕量能不能始终非负。\(V^s \ge 0\) 表示存在策略能一直待在安全集里;\(V^s < 0\) 表示怎么走最终都会违规。Fisac 等人 2019 年给出折扣安全 Bellman 算子,用 min 混合代替加性 backup,是 \(\gamma\)-压缩映射,可以用 TD 无模型地学。
实现分三块。
安全 critic。独立于策略的视觉编码器加 MLP,输入观测和动作,输出 \(Q^s\)。和 PPO 共用 replay,每个 PPO 轮做 \(K\) 步 off-policy TD。目标是折扣安全算子的固定点,终止状态不 bootstrap。\(Q^s > \delta\) 算可行,\(\delta\) 是噪声缓冲。
门控更新。可行区只走标准 PPO 裁剪代理,梯度里没有任何安全项,和无约束微调一样。不可行区关掉任务回报,用确定性策略梯度推高 \(Q^s\),让策略均值动作往安全流形走,不另训 recovery 策略。对偶变量 \(\betat\) 只乘在不可行转移上,按回合代价相对预算做对偶上升。门 \(\zeta\) 对参数不可微,当样本级 mask,stop-gradient。
VLM 评分标尺。冻结的 Qwen3-VL-8B 按多条 rubric 给每帧打 \([0,1]\) 分,加权求和得到原始严重度。用整条轨迹的二值安全标签做 Platt 标定(两个标量的 logistic),把严重度映射成有符号裕量 \(\hat\ell\)。默认五条:靠近、朝向、接触、遮挡、可操作空间。静态 rubric 吃不到稀有失败,Refinement-through-Differentiation 用 Qwen2.5-VL-72B 看排序反转的帧对,提出新准则。训练时才调 VLM,部署是一条 VLA,没有运行时盾。
五个环境,200 条评估回合。基线是无约束 VLA、SafeVLA(PPO-Lagrangian)、VisionCBF。Dubins-VL 额外有用真值符号距离的 HJ oracle。成功率定义为既到终点又零违规。
| 方法 | Dubins SR/CSC | TurtleBot | CHORES Nav | CHORES Fetch | Franka |
| 无约束 | 0.08 / 45.7 | 0.30 / 22.2 | 0.45 / 13.2 | 0.15 / 14.1 | 0.10 / 45.0 |
| SafeVLA | 0.22 / 2.66 | 0.34 / 14.6 | 0.59 / 1.82 | 0.34 / 8.98 | 0.34 / 13.4 |
| VisionCBF | 0.18 / 1.31 | 0.38 / 12.1 | 0.24 / 1.22 | 0.18 / 6.34 | 0.29 / 6.8 |
| ShieldVLA | 0.32 / 1.3 | 0.54 / 6.90 | 0.68 / 1.44 | 0.49 / 5.50 | 0.45 / 3.50 |
论文把相对 SafeVLA 的平均安全代价降幅写成 57%,成功率 +0.13。三粒种子的标准差相对这个差距很小。Dubins 上 HJ oracle 成功率 0.38、CSC 1.13,ShieldVLA 到不了这个任务上限;正文有一处写成「零代价」,和表里的 1.3 对不上,以表为准。
消融。同样的 HJ critic 和门,把连续 VLM 裕量换成碰撞二值(+1 / −5),TurtleBot 成功率从 0.54 掉到 0.31,Franka 从 0.45 掉到 0.25。没有离边界的梯度,门会过早关上。同一 critic 如果改成处处加拉格朗日惩罚,TurtleBot 成功率 0.33、CSC 7.80,门控是 0.54 / 6.90。增益来自门,不只来自 critic。
测试时改颜色和光照、权重冻结。TurtleBot 上 SafeVLA 的 CSC 从 14.6 升到约 22.7,ShieldVLA 从 6.9 升到 10.7(最差的 +All)。Safety-CHORES Nav 上 ShieldVLA 的 CSC 反而下降。2B 打分器在尾部帧上会模式坍缩,8B 才能让 RTD 新准则起作用;TurtleBot 分层姿态的尾部 AUROC 从 0.500 升到 0.608。
对已经在用 OpenVLA、SPOC 一类骨干做微调的人,这条路把安全从「全程乘 \(\lambda\)」改成「只在 critic 判不可行时干预」。部署不加盾、不加 VLM 调用。监督只需要回合级是否出事,外加一套写好的 rubric。
代价也清楚。Safety-CHORES Fetch 单环境大约 700 GPU 小时,打分和 RTD 相对便宜(8B 每环境约 26 分钟)。全部是仿真。这是把控制理论里的可达性接到 VLA PPO 上的工程,不是形式化安全证书。
作者写了两条:小于 8B 的打分器在尾部帧模式坍缩;不安全事件极稀时,边界附近探索不够,critic 学不稳。下一步点了真机和更大打分器。
没在真机上验证。安全是经验数字,学到的 \(Q^s\) 带着有限数据和 VLM 噪声。门控估计在边界附近有偏。\(\delta\) 和 \(c{\max}\) 按环境手调。VisionCBF 在 CHORES Nav 上 CSC 比 ShieldVLA 更低(1.22 vs 1.44),但成功率只有 0.24 对 0.68,Pareto 比较要两个轴一起看。Dubins-VL 不是完整 VLA,是 ResNet-18 加冻结 CLIP 的受控基准。OOD 只动了渲染器的颜色和光照,没动几何、动力学、相机。