无需见过故障也能检测:用 world model 做预测性维护
管工厂的人都知道预测性维护的难题:要训练一个识别故障的模型, 就需要故障样本——而故障,幸好,很少见。这篇笔记为 world model 系列画上闭环(理论, 以及对别人模型的实测): 我们在一个仿真工厂上训练了自己的 world model,只用正常运行 的录像,把它的"惊讶"当成故障检测器。训练里一个故障样本都没有。
玩具工厂
试验台是一座我们专门搭建的微型热电站:一个水箱(水位看得见, 温度从颜色读出来)、一个加热器、一个进水泵、一个出水阀。一个简单 的调节器把温度保持在 60 °C、水位保持在一半:没有学习,没有奖励 ——这就是真实工厂在正常工况下的仿真对照。
四个可注入的故障,特意选成覆盖不同的特征:泵缓慢退化 (十个块从健康降到三分之一的流量)、加热器突然损坏、水箱 泄漏、阀门卡死。每个故障的物理后果都不一样:热的、 液压的、缓慢的、突然的。
训练:只有正常运行
我们录制了 800 个 episode 的正常运行(画面加上调节器的 动作,没有标签,没有故障),然后从零训练 LeWorldModel,完全沿用 论文的配方:在租来的 GPU 上三个小时,成本约一美元。模型只 学习回答一个问题:"给定当前状况和调节器正在做的事,下一瞬间会 发生什么?"故障它连影子都没见过。
演示:模型比报警更早发现故障
视频里是一个真实的评估 episode:中途加热器坏了。红色曲线是模型 的预测误差——它的惊讶。它在第 31 块冲高,只比故障晚一步;过程报警 (温度超出容差)要到第 42 块才触发,那时水已经凉了。提前量是 11 个块。
全部数字
完整评估:200 个 episode,每类 40 个(正常加四种故障),故障在 episode 中途注入。故障与正常 episode 的区分度用 AUC 衡量(1 = 完美,0.5 = 瞎猜):泵退化 0.98,泄漏 0.99,加热器 0.88,阀门卡死 0.71——最弱的故障,意料之中:阀门卡在接近 正常位置的地方,对动力学改变很小。
然后是一个我们没预料到的发现。对泵和泄漏,惊讶在全部 40 个 episode 里都检测到了故障——而过程报警一次都没响:调节器 补偿了故障,温度和水位都保持在区间内。控制系统在还能撑住的时候把 问题掩盖掉;world model 照样看得见,因为它不看被控变量:它看的是 动力学,而动力学已经变了。对预测性维护来说,这正是最有价值的情形 ——在真实工厂里,这样的故障要等到几周后整台设备坏掉才会被发现。
第二次还站得住吗?
一次训练可能只是运气好。所以我们把一切都从零重做:另一个 seed、 重新生成的数据集、另一个模型(这次只训了几个 epoch,loss 平稳后就 停)。关键数字对上了:AUC 相同,最多差一位小数;加热器上的提前量 10.5 个块,第一次训练是 11.3;被掩盖的故障同样都被检测到。整条 pipeline——仿真、训练、检测——一个下午就能重建。
不只是检测:还有诊断
还剩一个问题:惊讶告诉你有东西变了——但它能说出什么 变了吗?误差曲线里的特征肉眼可分,于是我们在上面加了一个分类器: multinomial logistic regression(尽可能简单的工具,和整个工作的 风格一致),输入是故障后 15 个块的曲线,一千个 episode,train 和 test 用不同的 seed。作为对照,把同样的分类器用在温度和水位的轨迹 上——也就是传统过程监控能看到的东西。
结果:惊讶的诊断正确率是 81%,遥测是 68%。差距正好 在我们预期的地方。对被调节器掩盖的故障,遥测很吃力:泵退化 0.96 对 0.80,泄漏 0.99 对 0.72。而在正常 episode 上,遥测会"喊狼来了": 69% 的情况下把健康运行误判成故障(主要和阀门卡死混淆),惊讶则 保持在 0.89。共同的弱项是阀门卡死:对两者都几乎不可见,因为它对 动力学的改变太小——诚实起见,这一点也要说出来。
一句话总结:只用正常运行训练的模型,就能给出检测、预警和初步 诊断——这些正是真实工厂在"故障没有样本"的地方最缺的东西。
有真实工厂的人能带走什么
先说局限:我们的世界是一个只有两个变量的二维仿真,跨到真实传感器 和机器的这一步还有待证明;惊讶只能说明有东西变了,不能说明 是哪种故障(诊断是下一步);而像阀门卡死这样对动力学改变很小的 故障,依然几乎不可见。
话虽如此,可迁移的要点是具体的。模型只用正常运行的数据 训练——每个企业都已经在收集的那种数据。不需要奖励也不需要标签: 有观测和动作就够了。算力成本可以忽略(这里是一美元)。而它输出的 信号,正是过程报警缺的那种:即使控制系统正在掩盖,它也能发现动力学 的变化。通往真实工厂的路就从这里走:几路摄像头,或者几条渲染成 图像的时间序列,外加同样的配方。
注释与参考
这是系列的第三部分:理论和对别人模型的实测 在前两部分。模型是 LeWorldModel (Maes 等,2026),建立在 LeJEPA (Balestriero 与 LeCun,2025)之上;训练使用公开代码 le-wm, 基于 stable-worldmodel。
方法说明:自研仿真(Euler 积分,60 °C 带迟滞的恒温器,水位比例 控制在 0.5);800 个训练 episode,每个 300 步,frameskip 5 与原版 一致;块动作 15 维,在训练集上标准化;惊讶 = 预测的潜表示(3 个块 的历史 + 动作)与下一真实帧的潜表示之间的平方误差;检测阈值 = 正常 episode 上误差的均值 + 3σ;过程报警区间:温度超出 50-70 °C 或水位超出 0.35-0.65。两次训练都在 loss 平稳时停止(pred_loss 约 0.03),第一次在 10 个 epoch 后,复现在 3 个后。