Model Monitoring
Esplora l'importanza del monitoraggio dei modelli nell'AI. Impara a monitorare il data drift e le metriche delle prestazioni e a usare la Ultralytics Platform per mantenere robusto Ultralytics YOLO26.
Il monitoraggio dei modelli è la pratica continuativa di tracciamento, analisi e valutazione delle prestazioni dei modelli di Machine Learning (ML) dopo la loro distribuzione in produzione. Mentre il software tradizionale opera generalmente in modo deterministico, aspettandosi indefinitamente lo stesso output per un determinato input, i modelli predittivi si basano su pattern statistici che possono evolversi nel tempo. Quando l'ambiente reale cambia, i dati forniti a questi modelli possono variare, causando un peggioramento dell'accuratezza o dell'affidabilità. Il monitoraggio garantisce che i sistemi di Artificial Intelligence (AI) continuino a generare valore, identificando problemi come il data drift o il concept drift prima che abbiano un impatto negativo sui risultati aziendali o sull'esperienza degli utenti.
L'importanza della supervisione post-distribuzione#
Nel ciclo di vita delle Machine Learning Operations (MLOps), la distribuzione non è il traguardo finale. Un modello addestrato su dati storici rappresenta un'istantanea del mondo in un momento specifico. Nel tempo, fattori esterni, come cambiamenti stagionali, variazioni economiche o nuovi comportamenti degli utenti, possono modificare la distribuzione dei dati sottostante. Questo fenomeno, noto come data drift, può causare "fallimenti silenziosi", in cui il modello produce previsioni senza messaggi di errore, ma la qualità di tali previsioni scende al di sotto degli standard accettabili.
Un monitoraggio efficace offre visibilità su questi cambiamenti sottili. Stabilendo baseline con i dati di convalida e confrontandole con i flussi live di produzione, i team di ingegneria possono rilevare tempestivamente le anomalie. Questo approccio proattivo consente di eseguire puntualmente il riaddestramento del modello o applicare aggiornamenti, garantendo che sistemi come i veicoli autonomi o gli algoritmi di rilevamento delle frodi rimangano sicuri ed efficaci.
Metriche chiave nel monitoraggio dei modelli#
Per mantenere integro un sistema di ML, i professionisti monitorano diverse metriche che generalmente rientrano in tre categorie:
- Metriche di affidabilità del servizio: monitorano lo stato operativo del motore di inferenza. Tra gli indicatori chiave figurano la latenza dell'inferenza, ovvero il tempo necessario per effettuare una previsione, e l'utilizzo delle risorse di sistema, come l'uso della memoria della GPU. Strumenti come Prometheus vengono comunemente utilizzati per raccogliere e archiviare queste metriche a livello di sistema.
- Metriche della qualità dei dati: garantiscono che i dati di input corrispondano allo schema e alla distribuzione statistica previsti. Ad esempio, un improvviso aumento dei valori mancanti o uno spostamento del valore medio di una caratteristica può indicare un malfunzionamento della pipeline di dati a monte. Test statistici come il test di Kolmogorov-Smirnov aiutano a quantificare la distanza tra le distribuzioni di addestramento e di produzione.
- Metriche delle prestazioni: idealmente, i team monitorano metriche basate sulle etichette reali, come accuratezza, precisione e recall. Tuttavia, in produzione, le etichette reali sono spesso disponibili in ritardo o non sono disponibili. In questi casi, per valutare lo stato del sistema si utilizzano metriche proxy, come i punteggi di confidenza delle previsioni o la stabilità della distribuzione degli output.
Applicazioni nel mondo reale#
Il monitoraggio dei modelli è fondamentale in diversi settori in cui le decisioni automatizzate influiscono sulle operazioni e sulla sicurezza:
- Visione artificiale nella produzione: nella produzione intelligente, i modelli di ispezione visiva rilevano i difetti sulle linee di assemblaggio. Nel tempo, gli obiettivi delle fotocamere possono accumulare polvere oppure l'illuminazione dello stabilimento può cambiare, inducendo il modello a classificare erroneamente i componenti non difettosi come difettosi. Il monitoraggio del tasso di rilevamenti positivi aiuta a identificare questo drift e a sollecitare interventi di manutenzione o ricalibrazione tramite la Ultralytics Platform.
- Rilevamento delle frodi finanziarie: le banche utilizzano il ML per segnalare le transazioni sospette. I criminali adattano costantemente le proprie strategie per eludere il rilevamento, causando un concept drift. Monitorando il rapporto tra le transazioni segnalate e analizzando il feedback dei revisori umani, i data scientist possono aggiornare rapidamente i modelli affinché riconoscano nuovi pattern di frode.
Monitoraggio e osservabilità#
È utile distinguere tra monitoraggio e osservabilità, poiché svolgono ruoli complementari. Il monitoraggio dei modelli è generalmente reattivo e si concentra sugli "unknown known", utilizzando dashboard per avvisare i team quando metriche specifiche superano una soglia, ad esempio quando l'accuratezza scende al di sotto del 90%. L'osservabilità analizza più a fondo gli "unknown unknown", fornendo log e tracce granulari che consentono agli ingegneri di eseguire il debug del perché una specifica previsione non è riuscita o del motivo per cui un modello mostra un bias nell'AI nei confronti di un determinato gruppo demografico.
Esempio: monitoraggio della confidenza delle previsioni#
Un modo semplice per monitorare lo stato di un modello di visione artificiale consiste nel monitorare la confidenza media delle sue previsioni. Un calo significativo della confidenza può indicare che il modello sta elaborando dati che non è stato addestrato a gestire.
Ecco un esempio in Python che utilizza YOLO26 per estrarre i punteggi di confidenza da un batch di immagini a scopo di monitoraggio:
import numpy as np
from ultralytics import YOLO
# Load the YOLO26 model
model = YOLO("yolo26n.pt")
# Run inference on a source (e.g., a video frame or image list)
results = model(["bus.jpg", "zidane.jpg"])
# Extract confidence scores for monitoring
for i, result in enumerate(results):
# Get the confidence scores for all detected objects
confidences = result.boxes.conf.cpu().numpy()
if len(confidences) > 0:
avg_conf = np.mean(confidences)
print(f"Image {i}: Average Detection Confidence: {avg_conf:.3f}")
else:
print(f"Image {i}: No objects detected.")La registrazione regolare di queste statistiche consente ai team di visualizzare i trend nel tempo utilizzando strumenti come Grafana o le funzionalità di monitoraggio della Ultralytics Platform, garantendo che i modelli rimangano robusti in ambienti dinamici.









