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