Rilevare guasti senza averne mai visto uno: un world model per la manutenzione predittiva
Chi gestisce un impianto conosce il problema della manutenzione predittiva: per addestrare un modello a riconoscere i guasti servono esempi di guasti — e i guasti, per fortuna, sono rari. In questa nota chiudiamo il cerchio della serie sui world model (la teoria, la verifica del modello altrui): abbiamo allenato il nostro world model su un impianto simulato, usando solo filmati di funzionamento normale, e usato la sua «sorpresa» come rilevatore di guasti. Senza un solo esempio di guasto nel training.
L'impianto giocattolo
Il banco è una mini-centrale termica che abbiamo costruito apposta: un serbatoio d'acqua (il livello si vede, la temperatura si legge dal colore), una resistenza che scalda, una pompa in ingresso, una valvola in uscita. Un semplice regolatore tiene la temperatura a 60 °C e il livello a metà: niente apprendimento, niente ricompense — la controparte simulata di come funziona un impianto vero in conduzione normale.
Quattro guasti iniettabili, scelti per coprire firme diverse: la pompa che degrada lentamente (dieci blocchi per passare da sana a un terzo della portata), la resistenza che si guasta di colpo, una perdita nel serbatoio, la valvola che si blocca. Ognuno ha una conseguenza fisica diversa: termica, idraulica, lenta, improvvisa.
Il training: solo il funzionamento normale
Abbiamo registrato 800 episodi di conduzione normale (fotogrammi più le azioni del regolatore, nessuna etichetta, nessun guasto) e addestrato LeWorldModel da zero, con la ricetta immutata del paper: tre ore su una GPU a noleggio, costo circa un dollaro. Il modello impara a rispondere a una domanda sola: «cosa succede al prossimo istante, data la situazione e ciò che il regolatore sta facendo?». Di guasti non ha mai visto l'ombra.
La demo: il modello rileva il guasto prima dell'allarme
Il video mostra un episodio vero di valutazione: a metà, la resistenza si guasta. La curva rossa è l'errore di predizione del modello — la sua sorpresa. Si impenna al blocco 31, un passo dopo il guasto; l'allarme di processo (temperatura fuori tolleranza) scatta solo al blocco 42, quando l'acqua è ormai fredda. L'anticipo è di 11 blocchi.
I numeri, tutti
La valutazione completa: 200 episodi, 40 per classe (normale più i quattro guasti), guasto iniettato a metà episodio. La separazione tra episodi guastati e normali, misurata con l'AUC (1 = perfetta, 0,5 = tirare a caso): 0,98 per la pompa in degradazione, 0,99 per la perdita, 0,88 per la resistenza, 0,71 per la valvola bloccata — il guasto più debole, atteso: una valvola che si congela vicino alla sua posizione normale cambia poco la dinamica.
Poi la scoperta che non avevamo previsto. Per pompa e perdita la sorpresa rileva il guasto in tutti i 40 episodi — e l'allarme di processo non scatta mai: il regolatore compensa il guasto e temperatura e livello restano in banda. Il sistema di controllo maschera il problema finché riesce; il world model lo vede lo stesso, perché non guarda le variabili controllate: guarda la dinamica, e quella è cambiata. Per la manutenzione predittiva questo è il caso più prezioso — in un impianto vero un guasto così si scopre quando si rompe tutto, settimane dopo.
Regge a una seconda prova?
Un solo training può essere fortunato. Quindi abbiamo rifatto tutto da zero: altro seed, altro dataset rigenerato, altro modello (questa volta fermato dopo poche epoche, quando la loss si è assestata). I numeri chiave tornano: stesse AUC a una cifra decimale di distanza, anticipo sulla resistenza 10,5 blocchi contro 11,3 del primo training, stessi guasti mascherati rilevati. La pipeline — simulazione, training, rilevazione — si ricostruisce in un pomeriggio.
E non solo rilevare: diagnosticare
Resta una domanda: la sorpresa dice che qualcosa è cambiato — ma dice anche cosa è cambiato? Le firme nella curva d'errore sono visivamente distinte, quindi abbiamo messo un classificatore sopra: regressione logistica multinomiale (lo strumento più semplice possibile, in linea con la filosofia del resto del lavoro) sui 15 blocchi di curva successivi al guasto, mille episodi, train e test su semi diversi. Come confronto, lo stesso classificatore sulle traiettorie di temperatura e livello — quello che un monitoraggio di processo classico vedrebbe.
Risultato: la sorpresa diagnostica correttamente nell'81% dei casi, la telemetria nel 68%. Il divario sta dove ce lo aspettavamo. Sui guasti mascherati dal regolatore la telemetria fatica: pompa in degradazione 0,96 contro 0,80, perdita 0,99 contro 0,72. E sugli episodi normali la telemetria grida al lupo: scambia il funzionamento sano per guasto nel 69% dei casi (confondendolo soprattutto con la valvola bloccata), mentre la sorpresa resta a 0,89. Punto debole condiviso, la valvola bloccata: quasi invisibile per entrambi, perché cambia troppo poco la dinamica — onestà vuole che si dica anche questo.
Detto in una frase: con un modello allenato solo sul funzionamento normale si ottiene rilevazione, preavviso, e una diagnosi di prima approssimazione — tutte cose che a un impianto vero mancano proprio dove i guasti non hanno esempi.
Cosa si porta a casa chi ha un impianto vero
I limiti prima di tutto: il nostro mondo è una simulazione bidimensionale con due variabili, e il salto a sensori e macchine vere è tutto da dimostrare; la sorpresa dice che qualcosa è cambiato, non quale guasto sia (la diagnosi è il passo successivo); e un guasto che cambia poco la dinamica, come la valvola bloccata, resta quasi invisibile.
Ciò detto, i punti trasferibili sono concreti. Il modello si allena sui soli dati di funzionamento normale — quelli che ogni azienda già raccoglie. Non servono ricompense né etichette: servono osservazioni e azioni. Il costo di calcolo è irrilevante (un dollaro, qui). E il segnale che ne esce è del tipo che manca agli allarmi di processo: rileva il cambiamento di dinamica anche quando il controllo lo sta mascherando. La strada verso un impianto vero passa da lì: qualche telecamera o qualche serie temporale renderizzata, e la stessa ricetta.
Note e riferimenti
Questa è la terza parte di una serie: la teoria e la verifica del modello altrui nelle parti precedenti. Il modello è LeWorldModel (Maes et al., 2026), fondato su LeJEPA (Balestriero & LeCun, 2025); training con il codice pubblico le-wm su stable-worldmodel.
Note di metodo: simulazione propria (Eulero, termostato con isteresi a 60 °C, controllo proporzionale di livello a 0,5); 800 episodi di training di 300 step, frameskip 5 come nell'originale; azioni di blocco da 15 dimensioni standardizzate sul training set; sorpresa = errore quadratico tra il latente predetto (storia di 3 blocchi + azioni) e il latente del fotogramma reale successivo; soglia di rilevazione = media + 3σ degli errori su episodi normali; banda di allarme di processo: temperatura fuori da 50-70 °C o livello fuori da 0,35-0,65. Entrambi i training sono stati fermati a loss piatta (pred_loss ~0,03), la prima dopo 10 epoche, la replica dopo 3.