L’accuratezza di un modello ML inizia a degradare quasi subito dopo la fine del training: cambiamenti nel comportamento dei clienti, nuovi prodotti, aggiornamenti dei sensori e contesti economici in evoluzione spostano i pattern che il modello aveva appreso. Monitorare in produzione i modelli è quindi parte necessaria di qualsiasi workflow MLOps. Questo articolo di AWS mostra un’architettura di monitoring per modelli discriminativi (classificazione e regressione) basata sulla libreria open source Evidently insieme ad Amazon SageMaker AI e MLflow.
Data drift e model drift
Il calo di qualità si divide in due categorie. Il data drift riguarda i cambiamenti nelle proprietà statistiche dei dati di input e si misura confrontando le statistiche di baseline del training set con quelle calcolate sui dati raccolti in produzione. Il model drift riguarda invece il calo di accuratezza delle previsioni e richiede la raccolta delle ground truth label per confrontare le metriche di qualità con quelle ottenute durante il training. Un punto pratico segnalato: Evidently calcola le metriche del modello ma non il model drift diretto, che va aggiunto con codice custom.
L’architettura
Per la batch inference il flusso parte da un training job che salva il baseline dataset su S3 e le metriche in MLflow. Un batch transform genera le predizioni, e un processing job usa i preset Evidently (DataDriftPreset, DataSummaryPreset, ClassificationPreset) per calcolare data drift e model quality. Report HTML e JSON, oltre alle singole metriche, vengono salvati in MLflow, dove si possono confrontare le run nel tempo. Batch transform e processing job si incapsulano in una pipeline schedulata con Amazon EventBridge Scheduler, e in caso di drift una notifica SNS può avvisare via email o Slack.
Per i real-time endpoint la logica è analoga, con la differenza che l’endpoint deve avere il data capture abilitato per registrare input e output su S3; al posto del processing job si usano funzioni AWS Lambda. Lo stesso pattern si applica anche a SageMaker HyperPod. Il repository di esempio usa il Bank Marketing dataset del UCI Repository e un modello XGBoost per un caso di classificazione binaria.
- Evidently è open source e i suoi preset si personalizzano: su dataset sbilanciati, ad esempio, precision, recall e AUC sono più rilevanti dell’accuracy.
- Salvare ogni calcolo come run in MLflow permette di aggiungere parametri come nome del modello, training job e dimensione del dataset.
- Il repository AWS fornisce implementazioni sia per batch prediction sia per real-time endpoint, con scaling via pipeline SageMaker o Lambda.
Fonte: Monitoring discriminative ML models using Amazon SageMaker AI with MLflow — https://aws.amazon.com/blogs/machine-learning/monitoring-discriminative-ml-models-using-amazon-sagemaker-ai-with-mlflow/
Hai qualcosa da aggiungere? Unisciti alla discussione.