VLA模型推理幻觉:BeTTER基准揭示机器人泛化性不足的根源
1. 项目概述:当机器人“学会”了,但没完全学会
在机器人学和具身智能领域,我们正处在一个激动人心的时代。视觉-语言-动作模型(Vision-Language-Action Models, VLAs)的出现,让机器人能够理解“把柠檬放进果篮”这样的自然语言指令,并直接规划、执行出一系列复杂的抓取、移动、放置动作。这听起来像是科幻电影里的场景,如今正一步步成为现实。各大研究机构和公司发布的模型,在标准化的基准测试(如LIBERO、CALVIN)上取得了令人瞩目的成功率,似乎预示着通用机器人管家即将走进我们的生活。
然而,作为一名在机器人系统集成和算法部署一线摸爬滚打了十多年的工程师,我深知“实验室里的成功”与“现实世界里的可靠”之间,往往隔着一道名为“泛化性”的鸿沟。我们经常遇到一种令人困惑的现象:一个在测试集上表现近乎完美的VLA模型,一旦部署到稍有变化的真实场景中——比如桌布颜色变了、目标物体被移动了几厘米、或者任务序列中某个物品被提前拿走了——它的表现就会急转直下,做出一些匪夷所思的举动,比如对着空气抓取,或者直接“死机”不动。
这背后究竟发生了什么?是模型“笨”吗?还是我们的测试方法有问题?最近,一项名为BeTTER的基准测试和一系列深入的诊断实验,为我们揭开了这层神秘的面纱。研究发现,许多当前先进的VLA模型,其看似强大的“推理能力”可能只是一种“幻觉”。这种幻觉的根源,在于模型内部高层语义表征的退化,以及由此引发的、对低层感知运动轨迹的过度依赖和机械记忆。简单来说,模型可能并没有真正理解“柠檬”是什么以及“放进篮子”这个动作的因果逻辑,它只是记住了在某种特定视觉输入(比如特定颜色、特定位置)下,应该输出哪一串关节电机指令。当视觉输入稍有偏离,这套死记硬背的“肌肉记忆”就失效了。
本文将深入剖析这一现象。我们将从VLA模型的基本架构矛盾谈起,解读BeTTER基准如何设计精巧的“因果干预”实验来戳破“推理幻觉”,并通过真实的实验数据,展示模型在长时程任务中表现出的“行为惯性”和“相位冲突”等典型故障模式。最后,我会结合自己的工程经验,探讨这一发现对下一代VLA模型设计、训练数据构建以及实际机器人应用部署带来的启示和挑战。
2. VLA的核心矛盾:高频控制与高层语义的拉锯战
要理解VLA模型的“推理幻觉”,我们首先需要拆解其内在的设计目标与实现手段之间存在的根本性张力。
2.1 模型的双重表征困境
一个理想的VLA模型,应该像一个经验丰富的操作员:既能听懂复杂的指令(高层语义理解),又能精准地控制机械臂完成每一个细微动作(低层运动控制)。在模型架构上,这通常对应着两种不同的内部表征:
- 高层语义表征:通常用
z表示。它负责理解指令的意图(“所有水果”指的是柠檬和山竹)、场景的语义(哪个是“果篮”、哪个是“干扰物”),以及任务的状态逻辑(“已经放了一个,还差一个”)。这个表征应该是抽象、鲁棒且与具体运动细节解耦的。 - 低层感知运动表征:通常用
za表示。它负责将当前的视觉观测(像素)和本体感知(关节角度)映射到具体的动作输出(电机扭矩或末端位姿)。这个表征是高维、具体且与执行频率紧密相关的。
问题在于,为了满足机器人实时控制的高频需求(通常是10-100Hz),模型必须在极短的时间内完成从图像到动作的映射。这种效率压力,常常迫使模型设计者采用“捷径”。例如,通过强大的视觉编码器(如ViT)和动作预测头,模型可以学习到一种“条件反射”:看到“黄色 blob 在坐标(x1,y1)附近”就直接触发“向(x1,y1)移动并闭合夹爪”的指令序列。这个过程可能完全绕过了对“柠檬”这个语义概念的深入理解。
2.2 训练数据的“偏食”与表征退化
模型的“偏食”始于训练数据。当前主流的VLA训练依赖于大规模机器人演示数据集(如Open X-Embodiment)。这些数据虽然海量,但存在一个隐蔽的问题:演示的轨迹往往是“干净”且“模式化”的。
想象一下收集数据的过程:为了让机器人学会“把柠檬放进篮子”,操作员会反复演示一个最优或接近最优的轨迹。柠檬总是放在桌布的固定位置,篮子总是在同一个方向,动作总是流畅而准确。模型从成千上万条这样的“完美”轨迹中学习,它很容易发现一个更简单的规律:只要视觉输入与某个记忆中的模式匹配,就复现对应的动作序列。它不需要理解“为什么”,只需要建立“A输入导致B输出”的强关联。
久而久之,模型的高层语义表征 z 就会因为“用进废退”而退化。既然不靠深入理解也能在训练数据上获得高成功率,模型就会将更多的“算力”和“注意力”分配给学习低层的感知运动模式 za。这就好比一个学生,通过死记硬背所有例题的解题步骤,能在平时的作业和考试中得高分,但一旦题目条件稍有变化,他就完全不会分析了,因为他根本没有理解背后的公式原理。
注意:这种表征退化不是指
z完全消失了,而是它变得“脆弱”和“浅层”。它可能只编码了物体最显著的颜色、纹理特征,而丢失了其功能性、类别属性和与其他物体的空间关系等深层语义信息。
2.3 静态基准测试的“温室效应”
标准的机器人学习基准,如LIBERO或CALVIN,为评估模型性能提供了重要平台。但它们也存在一个局限:测试环境往往是静态和有限的。物体种类、初始位置、场景布局的变化范围虽然存在,但仍然是可控和有限的。
在这种“温室”环境中,一个已经过度拟合了 za 的模型,完全可以凭借其强大的模式匹配能力取得高分。它记住了成百上千种“标准情况”下的应对策略。评测报告上的高成功率,给我们制造了一种“模型很智能”的幻觉。然而,这种成功是脆弱的,因为它建立在测试分布与训练分布高度重叠的假设之上。一旦我们迈出这个“温室”,对真实世界进行一些简单的“因果干预”,幻觉就会瞬间破灭。
3. BeTTER基准:为“推理幻觉”设计的诊断工具
为了系统性地诊断上述问题,研究者提出了BeTTER基准。它的核心思想不是创造更复杂的任务,而是在简单任务中引入精心设计的“破坏性测试”,以此剥离表面的运动能力,直接检验模型的高层认知是否健全。
3.1 核心设计哲学:因果干预与状态隔离
BeTTER的聪明之处在于其“控制变量”的思维。它试图回答:当模型失败时,到底是因为它“手笨”(运动执行能力不足),还是因为它“脑抽”(推理能力有缺陷)?
为此,基准设计遵循两个原则:
- 运动能力隔离:在所有的诊断测试中,确保目标物体都被放置在机器人可轻松触及的范围内。这排除了因运动规划失败或可达性问题导致的错误,迫使任何失败都必须归因于更高层次的认知问题。
- 因果链条干预:故意破坏任务中隐含的因果逻辑。例如,在“把所有水果放进篮子”的任务中,提前把其中一个水果(如柠檬)放进篮子,或者干脆移走一个水果(如山竹)。这些干预并不增加运动难度,但彻底改变了任务的状态逻辑和完成条件。
3.2 实验设置:从仿真到实物的闭环验证
BeTTER的研究采用了从仿真到实物的严谨流程,以确保发现的问题不是仿真环境的“人造品”。
仿真阶段:在高度物理真实的仿真环境中,使用程序化方法生成海量任务变体。例如,通过大语言模型(LLM)根据抽象任务模板(如“整理餐桌”)生成无数个具体的、物理合理的场景(如“为远程会议准备桌面”、“摆放早餐桌”),并自动从庞大的3D资产库(如Objaverse)中检索和放置物体。这创造了极其丰富的训练和测试分布。
微调与测试:将先进的VLA模型(如π0.5, GR00T-N1.6, Being-H0.5)在BeTTER的“标准”任务变体上进行微调,确保它们获得了执行这些任务所需的基本运动技能。然后,在保留高层语义推理能力的VLM数据混合训练策略下,用包含因果干预的测试集对模型进行“压力测试”。
实物验证:最后,在真实的机器人平台(如带有灵巧手的机械臂)上复现关键的诊断实验。这是最关键的一步,它证明了在仿真中观察到的“推理幻觉”在真实的物理世界中同样存在,而非仿真与现实的差异所致。
实验的基本设置如图5所示:一个包含果篮、目标物(柠檬、山竹)和干扰物的工作空间。通过组合任务视野(短视程 vs. 长视程)和空间布局(布局1 vs. 布局2),构建了四种基础的训练配置。模型在这些“标准”配置下学习后,再面对各种“非标准”的因果干预。
4. 短视程任务:表面成功的陷阱
我们首先来看看似简单的短视程任务,例如“把柠檬放进果篮”。在标准设置下,模型的表现堪称完美。
4.1 反应式启发式策略的胜利
当柠檬在桌上,模型能准确抓取并放入篮子。当柠檬已经被放在篮子里,模型能识别任务已完成,保持静止。从成功率指标看,这无可挑剔。但BeTTER通过一个简单的干预,揭开了真相:将柠檬从场景中完全移走。
此时,模型的行为开始变得诡异。它可能去抓取一个颜色、形状类似的干扰物(如果干扰物是黄色的),或者更糟糕,直接对着柠檬“应该”在的位置(即训练时最常见的位置)执行一次“空气抓取”。表5清晰地展示了这种对比:
| 目标物状态 | 干扰物状态 | 模型行为 | 暴露的问题 |
|---|---|---|---|
| 在桌上 | 在桌上 | 成功抓取 | 无(标准情况) |
| 在篮中 | 在桌上/篮中 | 正确静止 | 无(标准情况) |
| 缺失 | 在桌上 | 抓取干扰物 | 缺乏语义基础,依赖颜色等表面特征 |
| 缺失 | 在篮中 | 冻结/空气抓取 | 缺乏语义基础,依赖位置记忆 |
| 缺失 | 缺失 | 空气抓取 | 纯粹的运动记忆,无视觉验证 |
这个简单的诊断矩阵揭示了一个残酷的事实:在短视程任务中,模型完全可以通过一种反应式的启发式策略取得成功,而无需任何真正的“推理”。
- 策略解析:模型可能学习到:“如果视野中出现一个黄色的、圆形的东西(柠檬的视觉特征),就移动到它的坐标并抓取;如果那个坐标附近没有可抓取物但历史状态显示‘已抓取’,就执行放入动作;如果任务开始时目标坐标区域没有黄色物体,则什么都不做(或抓取附近最像的物体)。” 这本质上是一个基于简单视觉特征触发固定动作序列的有限状态机。
- 为何能成功:因为短视程任务没有状态追踪的需求。任务指令是原子性的,模型不需要记住“我做了什么”、“接下来要做什么”。它只需要对当前帧做出反应。只要训练数据覆盖了“目标在”和“目标不在”的常见情况,模型就能通过记忆对应的反应模式来获得高成功率。
实操心得:在评估一个VLA模型时,绝不能只看它在简单取放任务上的成功率。必须设计“目标缺失”、“目标替换”、“位置扰动”等干预来测试其语义基础的真伪。一个健壮的模型在目标缺失时应能明确输出“任务无法执行”或进行搜索,而不是执行无意义的动作。
4.2 短视程诊断的局限性
因此,短视程任务作为一个评估工具,其结构性缺陷在于:它无法区分“真正的语义理解”和“熟练的模式匹配”。它为模型的“推理幻觉”提供了完美的温床。要触及模型认知的核心,我们必须转向更复杂的场景——长视程任务。
5. 长视程任务:认知崩溃的显微镜
长视程任务,如“把所有水果放进果篮”,要求模型进行序列规划和状态追踪。它必须理解“所有”这个量词,记住已经处理了哪些物体,并判断任务何时完成。这正是检验高层语义表征 z 是否健壮的试金石。
BeTTER在长视程任务中引入了更精细的因果干预,如表6所示,通过改变两个目标物(柠檬T1, 山竹T2)的初始状态(在桌上、在篮中、缺失),来观察模型的序列行为如何崩溃。
5.1 故障模式一:行为惯性
这是最典型且直观的故障。考虑场景:柠檬在桌上,山竹缺失。
一个具备真正推理能力的智能体应该:1)发现柠檬,抓取并放入篮子;2)寻找山竹;3)未发现山竹,可能进行二次确认或等待;4)最终判断任务无法完成或部分完成。
然而,实际观察到的VLA模型行为是:1)完美地抓取柠檬并放入篮子;2)毫不犹豫地将机械臂移动到山竹在训练数据中最常出现的位置,执行一次“空气抓取”动作;3)可能还会执行一个“放入”动作,然后停止。
机理分析:
- 序列先验的绑架:模型从训练数据中学到了一个强序列模式:“先抓柠檬,再抓山竹”。这个模式被编码在退化的语义表征
z中,甚至可能直接固化在了感知运动表征za的时序依赖里。 - 状态追踪失效:在完成第一步后,模型的本体感知(
za的一部分)告诉它“已经执行了一次抓放”,这触发了序列中“下一步该抓山竹”的强烈先验。 - 视觉验证缺失:由于高层语义表征
z的退化,模型没有能力(或没有“意愿”)在第二步之前,主动利用视觉反馈去验证“山竹是否存在”。它过度依赖于内部的运动记忆和本体感觉,盲目地推进记忆中的剧本。
这就像一个人闭着眼睛按照记忆中的路线走路,即使路上的井盖已经被移开,他也会一脚踩空。模型的行为被其训练轨迹的“惯性”所支配,失去了根据实时感知调整计划的能力。
5.2 故障模式二:相位冲突与时空错乱
这是一种更微妙但也更致命的故障。考虑场景:柠檬已在篮中,山竹在桌上。
对于智能体,这意味着一开始就处于任务的“中间状态”。它应该:1)感知到柠檬已在篮中(第一步已完成);2)更新内部状态;3)直接开始执行第二步(抓取山竹)。
VLA模型的表现却大相径庭,主要出现两种模式:
- 冻结:机械臂完全停止输出,或者以极低的速度微微颤动,仿佛“卡住”了。从控制信号看,策略网络输出的动作值接近零。
- 混乱探索:机械臂可能会伸向山竹的方向,但在接触前就缩回,或者进行一些无目的的往复运动,最终回到休息位。
机理分析:
- 多模态输入冲突:此时,模型的输入陷入了严重的冲突。视觉模态输入表明:“第一步(放柠檬)已完成”。而本体感知模态(机器人的关节位置通常始于“归零”状态)则强烈暗示:“我还没开始动,处于初始状态
t=0”。这两种信号分别对应着任务时间线上的不同“相位”。 - 退化的
z无法仲裁:一个健壮的高层语义表征z应该能整合多模态信息,解析出“当前是任务中途,起点是t=1”的真实状态。但由于z的退化,模型缺乏这种跨模态的因果状态追踪能力。 za的困惑与崩溃:低层的感知运动网络za同时接收到了矛盾的状态信号。它被训练成在“视觉看到目标在桌上”和“本体在初始位”时触发抓取,也在“视觉看到目标在篮中”和“本体在初始位”时……它可能没有见过这种组合。训练数据中极少出现“任务一开始就已完成部分步骤”的情况。za无法处理这种冲突,导致其输出陷入不确定状态,表现为冻结(输出零动作)或随机探索(输出无意义动作)。
这揭示了VLA模型一个深层的脆弱性:它们对任务的初始条件有着僵化的假设。它们隐含地假设任务总是从一个“纯净”的初始状态开始。任何偏离这一假设的情况,都会导致其内部的状态机混乱。
5.3 诊断矩阵的深度解读
表6的长视程诊断矩阵,系统地枚举了这些故障。成功的情况仅发生在状态序列完全符合训练数据常见模式时(如两个水果都在桌上)。一旦引入“部分缺失”或“预放置”这类因果干预,失败率急剧上升。
- “行为惯性” 主要出现在第一行第三列(T1在桌,T2缺失),即执行完第一步后无法应对后续目标的缺失。
- “相位冲突” 则集中在中行(T1在篮),即无法正确处理任务中途的起始状态。其中,中行第一列(T1在篮,T2在桌)的“冻结/跳过”和中行第三列(T1在篮,T2缺失)的“振荡/空气抓取”,都是相位冲突的具体表现。
这些故障模式不是孤立的,它们共同指向同一个根源:高层语义表征 z 的退化,导致模型过度依赖并拟合低层感知运动表征 za,从而丧失了真正的推理、规划和状态追踪能力,退化为一个复杂的轨迹回放器。
6. 架构瓶颈:幻觉的根源与未来方向
那么,是什么导致了语义表征 z 的退化?BeTTER研究将其归因于当前VLA模型架构中几个固有的瓶颈。
6.1 容量压缩与信息瓶颈
为了处理高维的视觉输入(图像/视频)并输出高频的控制指令,VLA模型通常需要在某个环节对信息进行大幅压缩。例如,将一张224x224的图像通过视觉编码器压缩成几百个令牌(token),再通过一个相对较小的多层感知机(MLP)或Transformer层来预测7自由度的机械臂动作。
在这个压缩过程中,与实时控制看似不直接相关的“高层语义信息”最先被丢弃。模型会优先保留那些与动作预测相关性最高的特征,比如物体的精确轮廓、颜色块的位置、纹理梯度等低层视觉特征。而物体的类别语义、功能属性、与其他物体的抽象关系等,在压缩通道中逐渐湮灭。这就造成了 z 的“营养不良”。
6.2 短视的感知下采样
许多VLA模型为了效率,会对历史观测进行激进的下采样或池化,只保留最近几帧的信息。这种“短视”的设计,使其无法构建和维护一个时间上连贯的世界模型。它只能基于当前帧和极短的上下文做出反应,无法进行需要历史记忆的复杂推理(如“我刚才已经拿过柠檬了”)。这直接导致了长视程任务中状态追踪的失败。
6.3 训练目标的误导
标准的模仿学习或离线强化学习目标,是让模型输出的动作尽可能接近专家演示的动作。这个目标函数本身强烈鼓励模型去拟合低层的运动模式 za。因为只要复现了动作序列,损失函数就会降低。模型没有直接的激励去“理解”任务,它只需要学会“模仿”。当训练数据足够多、模式足够固定时,这种模仿就能达到很高的成功率,从而掩盖了语义理解的缺失。
6.4 迈向更健壮的VLA:可能的路径
基于以上分析,设计下一代更健壮的VLA模型,可能需要从以下几个方向突破:
- 解耦与正则化:在架构上显式地分离语义理解模块(
z)和运动控制模块(za),并通过辅助训练目标(如视觉问答、场景描述、未来预测)强制z学习到丰富、鲁棒的语义表征,防止其退化。在训练中,可以定期用因果干预数据“考问”模型,强化其状态推理能力。 - 引入显式记忆与状态机:为模型配备一个外部或内部的工作记忆模块,显式地存储和更新任务相关的状态(如“已处理物体列表”、“当前子目标”)。这可以减少对隐式时序编码的依赖,缓解相位冲突问题。
- 仿真到实物的协同训练与测试:像BeTTER这样的基准需要被更广泛地采用。我们需要构建更多包含“反事实”因果干预的仿真和实物测试环境,将模型暴露在分布外的情况中,迫使它学习更通用的原理而非具体的轨迹。
- 数据集的革命:收集更多包含异常情况、恢复策略和因果干预的演示数据。操作员不仅演示“正确”的路径,也演示当出现意外(如物体被碰倒、目标缺失)时如何重新规划、搜索或报告失败。这能教会模型世界的不确定性和应对方法。
7. 给从业者的建议:从评估到部署的避坑指南
对于正在研究、开发或考虑部署VLA模型的工程师和研究者来说,BeTTER的发现提供了极具价值的警示和实操指南。
7.1 模型评估:超越基准分数
切勿盲目相信公开基准测试的排行榜分数。在评估一个VLA模型时,务必设计自己的“压力测试”:
- 执行简单的因果干预:在你们的测试场景中,尝试:
- 目标扰动:移走指令中指定的物体。
- 状态扰动:提前完成部分任务步骤。
- 干扰物增强:增加与目标物体相似颜色、形状的干扰物。
- 布局扰动:大幅改变物体和障碍物的相对位置。
- 观察失败模式:模型是直接报错/停止,还是执行无意义的动作(如空气抓取)?它是困惑地搜索,还是固执地执行错误动作?不同的失败模式指向不同层面的缺陷。
- 分析日志与内部状态:如果可能,尝试可视化或分析模型中间层的注意力图、特征激活值。在因果干预下,这些内部表示是否发生了剧烈变化或变得无意义?
7.2 系统设计:将VLA置于安全框架内
在现阶段,将VLA模型作为一个完全自主、不可解释的“黑箱”控制器部署到物理机器人上是高风险行为。更务实的架构是:
- 分层控制:将VLA作为高层“任务规划器”,输出的是抽象的子目标(如“抓取柠檬”、“移动到篮子上方”),而非直接的低层关节扭矩。由下层传统、可验证的运动规划和控制模块来安全地执行这些子目标。这样,即使VLA的指令有误,下层也有机会通过碰撞检测、力反馈等机制进行拦截。
- 持续的状态验证:建立一个独立于VLA模型的外部状态监测器。这个监测器基于简单的规则或轻量模型,持续检查VLA的动作是否合理(例如,抓取动作前方是否有物体?放入动作的目标容器是否在视野内?)。当监测到异常时,触发安全暂停或回退。
- 人机协同与确认:对于关键步骤或不确定的情况,系统应主动暂停并请求人类确认。例如,当模型试图抓取一个它“认为”是目标但置信度不高的物体时,可以先指向并语音询问:“这是您要的柠檬吗?”
7.3 数据与训练:喂养“健康”的模型
如果你正在训练自己的VLA模型:
- 数据混合策略:不要只使用纯机器人动作数据。一定要混合大量高质量的视觉-语言数据(如图像描述、视觉问答、视频推理数据)。这就像给模型补充“维生素”,是维持其高层语义表征
z健康的关键。BeTTER论文中提到的VLA与VLM数据以特定比例混合训练的策略值得参考。 - 数据增强与合成:主动在训练数据中引入各种扰动和反事实情况。可以使用仿真引擎批量生成目标缺失、位置错乱、物体替换等场景的演示数据(可以是程序化生成的,也可以是用强化学习或模仿学习在仿真中训练一个基础策略来生成)。让模型从小就见识“世界的复杂性”。
- 谨慎微调:在对大模型进行领域微调时,要警惕“灾难性遗忘”。对于像GR00T-N1.6这样的大模型,BeTTER实验发现,在小型数据集上全参数微调会导致语义知识严重丢失。采用部分参数微调(如只训练投影层和策略头,冻结视觉编码器和语言主干)可能是更稳妥的选择。
我个人在实际机器人项目中的体会是,当前最好的应用方式,是将VLA视为一个强大的“意图理解”和“粗粒度规划”模块,而非一个端到端的控制器。它的价值在于将模糊的自然语言指令转化为明确的操作序列,但这个序列的执行,必须交给更可靠、可预测、可验证的传统控制回路来把关。我们距离让VLA模型像人一样在完全开放、动态的环境中鲁棒地完成长链条任务,还有很长的路要走。BeTTER的工作像一盆冷水,让我们清醒地认识到现有技术的局限,同时也像一盏明灯,为下一代真正具有物理智能的模型指明了需要攻克的核心问题。