ML Ops: Operazioni Machine Learning

Un modello di machine learning (ML) è un software “compilato” di dati [1]. Questo punto si propone di studiare le analogie tra il software di ML e quello tradizionale. Come il software tradizionale, un modello di ML distribuito in produzione è inevitabilmente sottoposto al processo DevOps, un processo il cui scopo è “abbreviare il ciclo di vita dello sviluppo del sistema e fornire una consegna continua con un’elevata qualità del software”. [2]. Il termine “MLOps” viene utilizzato quando questo processo DevOps viene applicato specificamente all’apprendimento automatico [3]. A differenza del software tradizionale, la qualità di un modello di ML (ad esempio, accuratezza, correttezza e robustezza) è spesso il riflesso della qualità dei dati, della scelta del modello e dell’ottimizzazione degli iperparametri. MLOps mira a misurare e migliorare la qualità dei modelli ML [4].

Pertanto, il ciclo di vita di un progetto di apprendimento automatico consiste in molte fasi complesse, come la preparazione dei dati, la selezione del modello e l’implementazione. L’attenzione del mondo accademico è attratta dalle prime fasi del ciclo di vita dei progetti di machine learning, spesso trascurate nonostante siano fondamentali per il successo di tali modelli nelle applicazioni industriali. Proprio negli ultimi anni, il problema di come distribuire e scalare i modelli di apprendimento automatico è stato semplificato da modelli di apprendimento automatico come Seldon Core (Cox et al., 2018), KFServing (KFServing, 2019), Kubeflow (Kubeflow, 2018) e MLFlow (Zaharia et al., 2018). Una delle grandi sfide di MLOps è quella di progettare sistemi in grado di monitorare in tempo reale le prestazioni del modello e di generare avvisi quando le prestazioni del modello cambiano (Diethe et al., 2019)[5].

Pertanto, cerchiamo di identificare le attività chiave per il successo di un’applicazione di ML.

1. Comprensione dei problemi aziendali: 

Stabilire una comprensione del business e dei criteri di successo per risolvere il problema.

2. Funzionalità e archiviazione dei dati:

Stabilire una comprensione del business e i criteri di successo per risolvere il problema.

– Estrazione dei dati: selezionare e integrare i dati rilevanti per l’attività di ML.

– Analisi dei dati: analisi esplorativa dei dati

Per comprendere il modello. Preparare i dati per la progettazione del modello.

3. Pulizia dei dati

L’output di questa fase è il set di dati preparato per essere passato al modello ML. Ad esempio, i valori nulli vengono trasformati in zero o i valori anomali vengono esclusi dal set di dati.

4. Metodologia analitica ML

Selezionare i migliori algoritmi di ML per risolvere il problema. L’apprendimento automatico è sperimentale, è necessario provare diverse caratteristiche, algoritmi e configurazioni di parametri e iperparametri per trovare il modello migliore per risolvere il problema. L’obiettivo principale è tenere traccia di tutti gli esperimenti e mantenere la riproducibilità, simulando la riutilizzabilità del codice.

5. Addestramento e test dei modelli:

Una volta scelti i migliori modelli di ML, è necessario effettuare un lungo addestramento sul nostro set di dati. Il modello viene valutato su una serie di test di controllo per verificare la qualità del risultato. Una volta completata questa iterazione, salviamo i pesi dei modelli migliori e li distribuiamo utilizzando l’infrastruttura API.

6. Integrazione continua (CI):

L’integrazione continua consiste nel testare e convalidare codice, set di dati, schemi di dati e modelli. Il modello convalidato viene distribuito in un ambiente per preparare le funzioni per le anteprime o la classificazione. Questa distribuzione può essere una delle seguenti:

– Microservizi con API REST

– Un modello incorporato in un dispositivo preferenziale o mobile.

– Parte di un sistema di previsione batch.

7. Consegna continua (CD)

L’obiettivo della fase di test pre-produzione è valutare l’affidabilità di un modello per l’implementazione in produzione [6]. L’obiettivo della fase di deployment è quello di consentire un’implementazione continua e senza interruzioni, con la possibilità di implementare nuovi modelli con il minor rischio possibile. Le migliori pratiche di erogazione continua di servizi software richiedono l’uso di tecniche di distribuzione sicure, come il test A/B.

8. Formazione continua (CT)

Durante la formazione continua, dobbiamo continuare a impostare il set di dati nello stesso modo in cui addestriamo il nostro modello. Ciò significa rilevare gli outlier per capire quando la distribuzione dei dati si discosta da quella dei dati di addestramento. Il CT si occupa di riqualificare automaticamente i dati e di servire i modelli.

9. Monitoraggio continuo (CM)

L’obiettivo principale della fase di monitoraggio è quello di gestire i rischi dei modelli in produzione monitorando le varie metriche e le prestazioni [7, 8] e avvisando un operatore dei progressi del modello.

 

10. Spiegazione del modello

La spiegazione del modello consente al cliente di creare fiducia nelle previsioni/classificazioni effettuate dal sistema di ML, migliorando la trasparenza e l’affidabilità di tali sistemi. L’utente può verificare quali fattori hanno contribuito a determinate previsioni/classificazioni, introducendo un livello di responsabilità.

In conclusione, l’implementazione di modelli di ML in produzione è difficile e soprattutto non significa solo distribuire il modello con le API. Significa anche implementare una pipeline di ML che automatizzi l’addestramento e l’implementazione di nuovi modelli. La creazione di un sistema CI/CD consente di testare e distribuire automaticamente le nuove implementazioni della pipeline. La CM consente di avere sempre una valutazione in termini di metriche da valutare e la spiegazione aiuta a capire meglio come il modello sta ragionando.

Share:

Contenuti
Torna in alto