Modello di maturità delle operazioni di Machine Learning

Azure Machine Learning

Lo scopo di questo modello di maturità è quello di chiarire i principi e le procedure di Machine Learning Operations (MLOps). Il modello di maturità mostra il miglioramento continuo della creazione e del funzionamento di un ambiente applicativo di Machine Learning a livello di produzione. È possibile usarlo come metrica per stabilire i requisiti progressivi necessari per misurare la maturità di un ambiente di produzione di Machine Learning e i relativi processi associati.

Modello di scadenza

Il modello di maturità MLOps consente di chiarire i principi e le procedure di sviluppo (DevOps) necessari per eseguire un ambiente MLOps riuscito. È progettato per identificare le lacune nel tentativo di un'organizzazione esistente di implementare tale ambiente. È anche un modo per mostrare come aumentare le funzionalità MLOps in incrementi anziché sovraccaricare i requisiti di un ambiente completamente maturo. Usarlo come guida per:

  • Stimare l'ambito del lavoro per i nuovi impegni.

  • Stabilire criteri di successo realistici.

  • Identificare i risultati finali che verranno consegnati alla conclusione dell'impegno.

Come per la maggior parte dei modelli di maturità, il modello di maturità MLOps valuta qualitativamente persone/cultura, processi/strutture e oggetti/tecnologia. Con l'aumentare del livello di maturità, la probabilità aumenta che gli eventi imprevisti o gli errori porteranno a miglioramenti nella qualità dei processi di sviluppo e produzione.

Il modello di maturità MLOps comprende cinque livelli di funzionalità tecniche:

Livello Descrizione Caratteristiche principali Tecnologia
0 Nessun MLOps
  • Difficile gestire il ciclo di vita completo del modello di Machine Learning
  • I team sono diversi e le versioni sono dolorose
  • La maggior parte dei sistemi esiste come "caselle nere", poco feedback durante/post-distribuzione
  • Compilazioni e distribuzioni manuali
  • Test manuali del modello e dell'applicazione
  • Nessun rilevamento centralizzato delle prestazioni del modello
  • Il training del modello è manuale
1 DevOps ma nessun MLOps
  • Le versioni sono meno dolorose di Nessun MLOps, ma si basano sul team dati per ogni nuovo modello
  • Feedback ancora limitato sul funzionamento di un modello nell'ambiente di produzione
  • Difficile tracciare/riprodurre i risultati
  • Compilazioni automatizzate
  • Test automatizzati per il codice dell'applicazione
2 Training automatizzato
  • L'ambiente di training è completamente gestito e tracciabile
  • Facile riproduzione del modello
  • Le versioni sono manuali, ma con un basso attrito
  • Training di modelli automatizzato
  • Rilevamento centralizzato delle prestazioni di training del modello
  • Gestione di modelli
3 Distribuzione automatica dei modelli
  • Le versioni sono a basso attrito e automatiche
  • Tracciabilità completa dalla distribuzione ai dati originali
  • Intero ambiente gestito: eseguire il training > della produzione di test >
  • Test A/B integrati delle prestazioni del modello per la distribuzione
  • Test automatizzati per tutto il codice
  • Rilevamento centralizzato delle prestazioni di training del modello
4 Operazioni automatizzate mlops complete
  • Sistema completo automatizzato e facilmente monitorato
  • I sistemi di produzione forniscono informazioni su come migliorare e, in alcuni casi, migliorare automaticamente con i nuovi modelli
  • Approccio a un sistema senza tempi di inattività
  • Training e test automatizzati dei modelli
  • Metriche centralizzate dettagliate dal modello distribuito

Le tabelle che seguono identificano le caratteristiche dettagliate per il livello di maturità del processo. Il modello continuerà a evolversi. Questa versione è stata aggiornata per l'ultima volta a gennaio 2020.

Livello 0: Nessun MLOps

Persone Creazione di modelli Versione del modello Integrazione di applicazioni
  • Data scientist: silo, non in comunicazioni regolari con il team più grande
  • Data engineer (se esistente): siloed, non nelle normali comunicazioni con il team più grande
  • Ingegneri software: siloed, ricevere il modello in remoto dagli altri membri del team
  • Dati raccolti manualmente
  • È probabile che il calcolo non sia gestito
  • Gli esperimenti non vengono monitorati in modo prevedibile
  • Il risultato finale potrebbe essere un singolo file di modello passato manualmente con input/output
  • Processo manuale
  • Lo script di assegnazione dei punteggi potrebbe essere creato manualmente dopo gli esperimenti, non controllato dalla versione
  • Rilasciato da solo data scientist o data engineer
  • Fortemente dipendente dalle competenze del data scientist per implementare
  • Versioni manuali ogni volta

Livello 1: DevOps senza MLOps

Persone Creazione di modelli Versione del modello Integrazione di applicazioni
  • Data scientist: silo, non in comunicazioni regolari con il team più grande
  • Data engineer (se esistente): siloed, non in comunicazione regolare con il team più grande
  • Ingegneri software: siloed, ricevere il modello in remoto dagli altri membri del team
  • La pipeline di dati raccoglie automaticamente i dati
  • Il calcolo è o non è gestito
  • Gli esperimenti non vengono monitorati in modo prevedibile
  • Il risultato finale potrebbe essere un singolo file di modello passato manualmente con input/output
  • Processo manuale
  • Lo script di assegnazione dei punteggi potrebbe essere creato manualmente dopo gli esperimenti, probabilmente controllato dalla versione
  • Viene consegnato ai software engineer
  • Esistono test di integrazione di base per il modello
  • Fortemente dipendente dalle competenze del data scientist per implementare il modello
  • Versioni automatizzate
  • Il codice dell'applicazione include unit test

Livello 2: Training automatizzato

Persone Creazione di modelli Versione del modello Integrazione di applicazioni
  • Data scientist: lavorare direttamente con i data engineer per convertire il codice di sperimentazione in script/processi ripetibili
  • Data engineers: Working with data scientist (Lavorare con data scientist)
  • Ingegneri software: siloed, ricevere il modello in remoto dagli altri membri del team
  • La pipeline di dati raccoglie automaticamente i dati
  • Gestito dal calcolo
  • Risultati dell'esperimento rilevati
  • Sia il codice di training che i modelli risultanti sono controllati dalla versione
  • Rilascio manuale
  • Lo script di assegnazione dei punteggi è controllato dalla versione con i test
  • Rilascio gestito dal team di progettazione software
  • Esistono test di integrazione di base per il modello
  • Fortemente dipendente dalle competenze del data scientist per implementare il modello
  • Il codice dell'applicazione include unit test

Livello 3: Distribuzione automatica del modello

Persone Creazione di modelli Versione del modello Integrazione di applicazioni
  • Data scientist: lavorare direttamente con i data engineer per convertire il codice di sperimentazione in script/processi ripetibili
  • Data engineers: Working with data scientist and software engineers to manage inputs/outputs (Ingegneri dei dati e ingegneri del software per gestire input/output)
  • Ingegneri software: uso dei data engineer per automatizzare l'integrazione dei modelli nel codice dell'applicazione
  • La pipeline di dati raccoglie automaticamente i dati
  • Gestito dal calcolo
  • Risultati dell'esperimento rilevati
  • Sia il codice di training che i modelli risultanti sono controllati dalla versione
  • Versione automatica
  • Lo script di assegnazione dei punteggi è controllato dalla versione con i test
  • Rilascio gestito dalla pipeline di recapito continuo (CI/CD)
  • Unit test e integration per ogni versione del modello
  • Meno dipendente dalle competenze del data scientist per implementare il modello
  • Il codice dell'applicazione include unit test/integration

Livello 4: Ripetizione automatizzata completa di MLOps

Persone Creazione di modelli Versione del modello Integrazione di applicazioni
  • Data scientist: lavorare direttamente con i data engineer per convertire il codice di sperimentazione in script/processi ripetibili. Lavorare con i software engineer per identificare i marcatori per i data engineer
  • Data engineers: Working with data scientist and software engineers to manage inputs/outputs (Ingegneri dei dati e ingegneri del software per gestire input/output)
  • Ingegneri software: collaborare con i data engineer per automatizzare l'integrazione dei modelli nel codice dell'applicazione. Implementazione della raccolta delle metriche post-distribuzione
  • La pipeline di dati raccoglie automaticamente i dati
  • Ripetizione del training attivata automaticamente in base alle metriche di produzione
  • Gestito dal calcolo
  • Risultati dell'esperimento rilevati
  • Sia il codice di training che i modelli risultanti sono controllati dalla versione
  • Versione automatica
  • Lo script di assegnazione dei punteggi è controllato dalla versione con i test
  • Rilascio gestito dall'integrazione continua e dalla pipeline CI/CD
  • Unit test e integration per ogni versione del modello
  • Meno dipendente dalle competenze del data scientist per implementare il modello
  • Il codice dell'applicazione include unit test/integration

Passaggi successivi