一、一个必须把飞机飞掉下来的科目

任何一款新飞机要拿到适航证,都必须完成一个听起来很反常的科目:把它飞到掉下来。

这个科目叫失速测试。飞机低于某个速度时,机翼迎角过大,气流从上表面分离,升力突然崩溃。这个速度就是失速速度,是整架飞机最重要的性能数字之一。

而它没有任何办法从"成功飞行"里推算出来。试飞员必须真的把飞机飞进失速——而且不是一次。襟翼收起飞一遍,襟翼放下飞一遍,起落架放下飞一遍;换重量飞一遍,换重心位置飞一遍,直线飞行飞一遍,转弯中再飞一遍。每一次都以每秒约一节的速度缓慢减速,逼近那条看不见的线,直到跨过去。

这件事是危险的。失速和尾旋测试是试飞史上最容易出事的科目之一,飞机要装反尾旋伞,试飞员要带降落伞,测试要在足够高的空域进行——留出改出的余量。

但没有人认为这个科目可以省略。因为整个航空安全体系的地基,就压在这几十次故意制造的失败上。

二、约束只有被违反时才显形

失速测试揭示了一条比航空更普遍的原理:一个系统的边界,只能靠越过它来标定。

桥不塌,你不知道承重极限在哪。材料不断,你不知道它的强度是多少。机器人不摔,它不知道摩擦系数意味着什么。

成功的样本永远待在边界的安全一侧。你可以收集一百万次成功飞行,它们全部落在包线内部,没有一条告诉你包线的形状。约束是通过被违反才显形的。

这就是为什么破坏性测试在工程界如此普遍:汽车碰撞测试要真的撞掉一辆整车,材料测试要拉到断裂,药物的毒理研究本质上就是在找伤害阈值。这些行业早就明白,你花钱买的不是那次失败本身,是失败标定出的那个坐标。

而机器学习——尤其是机器人学习——直到最近,才开始意识到自己一直在扔掉这个坐标。

三、机器人数据集里,失败被系统性地删掉了

传统的机器人学习依赖演示数据:人通过遥操作控制机械臂完成任务,录下轨迹,训练模型模仿。

问题出在一个几乎无人质疑的默认设定上:演示数据集只保留成功的轨迹。

这个删除不是一次发生的,它经过三道闸门,每一道都默认关闭:

第一道,采集时的自我审查。 操作员做砸了,会重录一遍。这不需要制度规定,是本能——没人愿意交上去一份看起来笨拙的记录。

第二道,后期的数据清洗。 标准流程里有筛选环节,而"无效片段"的传统定义就包括任务失败。据报道,多数机器人数据集会在这一步丢掉约 95% 的采集数据。

第三道,训练时的过滤。 就算数据里留着失败,模仿学习的目标是"学会该模仿的",那当然只喂成功轨迹。

三道闸门下来,模型见到的所有状态都在成功轨迹上。于是它有一个致命的脆弱:一旦真实执行中漂出去一点点,它就进入了训练分布之外,然后崩掉。

不是它不知道该怎么纠错。是它从来没见过"需要纠错"的那个状态长什么样。

四、正在发生的转向

过去一两年,这个默认设定开始被系统性地推翻,而且推翻的方式很像航空业当年做过的事。

ViFailback 用 ALOHA 双臂平台采集了 5202 条真实操作轨迹,覆盖 100 个任务。其中成功轨迹 657 条,失败轨迹 4545 条——失败是成功的近七倍。这个比例在传统数据集里是不可想象的。

AgiBotWorld 走得更远,把保留失败做成了方法论:不用剧本化演示,让遥操作者实时自由反应,自然产生各类错误;然后为每一次失手和恢复做标注,专门设计了 error_causerestorable 这样的字段。用 GO-1 策略模型评估,在复杂任务上比 Open X-Embodiment 好 30%,比 RDT 好 32%。

这个 30% 很关键。它把"保留失败"从一种态度,变成了一根可测量的性能杠杆

顺着这条线,一批以"失败"为核心命名的系统在短时间内涌现:FailSafe、REFLECT、AHA、SAFE、REPAIR、RoboFAC、I-FailSense。这个命名密度本身说明了一次共识转变——从"我们的数据不够干净",转向"干净的定义错了"。

一个覆盖了成功、失败、恢复全部状态的数据集,在对泛化真正重要的那个意义上,才是更干净的。

五、光知道边界在哪还不够

失速测试从来不只是测出失速点。它同时要验证失速改出:推杆减小迎角、恢复气流附着、改平。适航要求验证的不只是"失速在哪里发生",还包括"发生之后能否可控地改出"。

这两件事必须一起测,因为改出动作只在越界之后才有意义——你没法在安全区里练习改出。

机器人领域正在重新发现同一件事。失败数据的价值,不在于记录了耻辱,而在于它标定了从错误状态回到正确状态的那张地图。而这张地图,在只有成功数据的世界里根本不存在。

有意思的是,这套"失败—恢复—继续"的完整弧线,有时是被无意中保留下来的。

UMI 这类采集方式——人直接手持机器人夹爪操作,而不是通过 VR 遥操作——被认为保留了人类的物理直觉。而它还有一个副作用:因为动作是连续自然的,没有明确的"这条录废了"的切点,东西掉了就顺手捡起来,那个捡起来的动作被完整录了进去。

英伟达的 Jim Fan 据此推测,Generalist AI 的 GEN-1.5 之所以展现出即兴纠错能力(碗被纸盖住会掀开纸,乐高粘在指尖会用另一只手拨掉),部分来源正是数据中这些人类失误后的恢复动作。

必须标注清楚:这是外部专家的推测,不是消融实验的结论。 GEN-1.5 那些更惊人的即兴案例——比如拿到簸箕后放弃"扫"、改用另一只手把积木推上簸箕再倒进碗——并没有失败发生,用失败学习解释不了,那更像是工具功能理解与策略选择。

失败数据的价值有独立证据(AgiBotWorld 那个 30%);但 GEN-1.5 的即兴能力有多少来自失败,目前无人验证。

六、真正的方法论差距

即便如此,机器人领域和航空业之间仍隔着一道方法论的鸿沟。

目前主流做法是:让失败自然发生,然后记下来。 而失速测试是:设计一条通向失败的受控路径,沿着它逼近,参数化地标定整个边界。

后者精妙的地方在于它回答了一个致命质疑——失败的方式是无穷的,你怎么可能采全?

航空业的答案是:你不采全,你采参数化的边界。 失速速度是重量、构型、重心、载荷因数的函数。测清楚这几个参数如何影响它,中间的点可以插值。

这背后是一个更深的事实:物理世界之所以可学,正因为失败被少数几个参数支配,而不是无穷多种。 一个杯子有无穷种打翻方式,但"多大倾角开始倒""多大摩擦开始滑"是少数几个参数。每一次失败的价值不在于它本身,在于它定位了一条约束的位置——而约束的数量,远小于失败的数量。

对机器人来说,等价的做法可能是:不是随机地抓各种东西看哪次掉,而是系统地改变抓握力、接触角度、物体重量与表面摩擦,找到"开始滑脱"的那条边界曲面。这跟以每秒一节减速逼近失速,是同一个思路。

七、成本,以及一个不便的事实

失速测试危险且昂贵。航空业为此建了一整套基础设施:渐进逼近的测试序列、高空的恢复余量、反尾旋伞、大量的风洞和地面仿真先行。

这些不是安全措施的附加,它们是"让制造失败成为可负担的事"的基础设施。

机器人领域现在面临同样的成本问题,而且更棘手。真实世界的失败受制于真实时间:机器人抓一次杯子要一秒,就是一秒,你没法把它压缩成一毫秒。这是物理定律级别的墙,不是工程效率问题。

于是出现了三条绕行路线:

  • 真采。 用真机器人把失败跑出来。数据最真,带完整的力反馈,但受制于真实时间和硬件磨损。
  • 合成。 自动生成失败案例并配上恢复动作,或者把成功演示通过生成式世界模型扰动成"失败—修正"配对,再用验证滤器筛掉物理上不合理的。这条路的关键洞察是:仿真不需要全局逼真,只需要在约束边界附近逼真。
  • 自己去撞。 让策略在自己实际走到的状态上训练恢复行为,而不是在专家演示的分布上训。因为名义演示几乎不会暴露那些真正需要恢复的状态。

但还有一个成本,是技术解决不了的。

回顾各行业的失败数据储备,会发现一条铁律:失败数据的丰富程度,和记录它的社会成本成反比。

航空业的失败数据最好,因为它建了强制上报加匿名免责的制度,把"承认我差点犯错"变成了一件安全的事。代码领域的失败数据也极好——每一个 bug fix 都是完整的"失败—修正"样本,因为改个 bug 不丢脸。而医疗领域的失败数据极差,因为每一次上报都可能通向诉讼;科研的阴性结果几乎为零,因为发表它对研究者没有好处。

这条铁律对正在铺开的物理数据采集是一个直接警告:一旦采集变成按条数计费的产业,激励立刻跑偏。 采集者会去采最容易采、最干净、最快完成的动作,搞砸了就重来——于是最有价值的那部分又被剪掉了。

要避免这一点,需要的不是更好的算法,是一个反直觉的制度设计:付钱让人把搞砸的过程也留下来,并且明确告诉他这不丢人。

八、边界不是用来靠近的

最后回到失速速度。

这个数字被测出来之后,并没有留在测试报告里。它被写进飞行手册,变成了最低机动速度、进近速度、最小操纵速度——变成了每一个飞行员日常运行时必须遵守的裕度。

一架客机的整个飞行生涯都不应该失速。但它的每一个速度限制,都来自当年有人把它飞失速了几十次。

边界不是用来靠近的,是用来知道自己离它多远的。

这句话可以直接搬给机器人,也可以搬给任何要在物理世界里行动的系统。我们要的不是一个总在犯错的机器,而是一个知道自己边界在哪、因而能主动留出裕度的机器。

而这个"知道"只有一个来源:在可控的条件下,真的越过去过。


注:文中 ViFailback、AgiBotWorld 的数据与评测结果、以及 Jim Fan 关于 GEN-1.5 的推测,均来自公开报道与论文;GEN-1.5 的性能数字为 Generalist AI 自行报告,尚未经独立验证。

Logo

电影级数字人,免显卡端渲染SDK,十行代码即可调用,工业级demo免费开源下载!

更多推荐