Esplorare un'architettura MLOps
In qualità di data scientist, si vuole eseguire il training del modello di Machine Learning migliore. Per implementare il modello, si vuole distribuirlo in un endpoint e integrarlo con un'applicazione.
Nel corso del tempo, è possibile ripetere il training del modello. Ad esempio, è possibile ripetere il training del modello quando si dispone di più dati di training.
In generale, dopo aver eseguito il training di un modello di Machine Learning, si vuole preparare il modello per la scalabilità aziendale. Per preparare il modello e renderlo operativo, si vuole:
- Convertire il training del modello in una pipeline affidabile e riproducibile.
- Testare il codice e il modello in un ambiente di sviluppo .
- Distribuire il modello in un ambiente di produzione .
- Automatizzare il processo integrale.
Configurare gli ambienti per lo sviluppo e la produzione
All'interno di MLOps, in modo analogo a DevOps, un ambiente fa riferimento a una raccolta di risorse. Queste risorse vengono usate per distribuire un'applicazione o, con progetti di Machine Learning, per distribuire un modello.
Annotazioni
In questo modulo si fa riferimento agli ambienti come sono intesi in DevOps. Si noti che anche Azure Machine Learning usa il termine ambienti per indicare una raccolta di pacchetti Python necessari per eseguire uno script. Questi due concetti di ambienti sono indipendenti tra loro.
Il numero di ambienti con cui si lavora dipende dall'organizzazione. In genere, esistono almeno due ambienti: sviluppo o sviluppo e produzione o produzione. Inoltre, è possibile aggiungere ambienti tra un ambiente di staging o di pre-produzione (preproduzione).
Un approccio tipico consiste nel:
- Sperimentare il training del modello nell'ambiente di sviluppo.
- Spostare il modello migliore nell'ambiente di gestione temporanea o pre-produzione per distribuirlo e testarlo.
- Rilasciare infine il modello nell'ambiente di produzione per distribuire il modello in modo che gli utenti finali possano utilizzarlo.
Organizzare gli ambienti di Azure Machine Learning
Quando si implementa MLOps e si lavora con i modelli di Machine Learning su larga scala, è consigliabile usare ambienti separati per ogni fase.
Si supponga che il team usi un ambiente dev, pre-prod e prod. Non tutti gli utenti del team devono poter accedere a tutti gli ambienti. I data scientist, ad esempio, possono lavorare solo nell'ambiente di sviluppo con dati non di produzione, mentre i tecnici di Machine Learning possono lavorare sulla distribuzione del modello nell'ambiente di pre-produzione e di produzione con i dati di produzione.
La presenza di ambienti separati semplifica il controllo dell'accesso alle risorse. Ogni ambiente può quindi essere associato a un'area di lavoro separata di Azure Machine Learning.
In Azure si usa il controllo degli accessi in base al ruolo per concedere ai colleghi il livello di accesso corretto al subset di risorse con cui devono lavorare.
In alternativa, è possibile usare una sola area di lavoro di Azure Machine Learning. Quando si usa un'area di lavoro per lo sviluppo e la produzione, si ha un footprint di Azure inferiore e un sovraccarico di gestione inferiore. Tuttavia, il controllo degli accessi in base al ruolo si applica sia agli ambienti di sviluppo che a quello di produzione, il che può significare che si concede alle persone troppo poco o troppo accesso alle risorse.
Suggerimento
Altre informazioni sulle procedure consigliate per organizzare le risorse di Azure Machine Learning.
Progettare un'architettura MLOps
Portare un modello in produzione significa dimensionare la soluzione e collaborare con altri team. Insieme ad altri data scientist, data engineer e team dell'infrastruttura, è possibile decidere di usare l'approccio seguente:
- Archiviare tutti i dati in un archivio BLOB di Azure, gestito dal data engineer.
- Il team dell'infrastruttura creerà le risorse di Azure necessarie, ad esempio l'area di lavoro di Azure Machine Learning.
- I data scientist si concentrano sulle prestazioni migliori: lo sviluppo e il training del modello (ciclo interno).
- I tecnici di Machine Learning distribuiscono i modelli sottoposti a training (ciclo esterno).
Di conseguenza, l'architettura MLOps include le parti seguenti:
- Installazione: creare tutte le risorse di Azure necessarie per la soluzione.
- Sviluppo del modello (ciclo interno): esplorare ed elaborare i dati per eseguire il training e la valutazione del modello.
- Integrazione continua: creare un pacchetto e registrare il modello.
- Distribuzione del modello (ciclo esterno): distribuire il modello.
- Distribuzione continua: testare il modello e promuoverlo nell'ambiente di produzione.
- Monitoraggio: monitorare le prestazioni del modello e dell'endpoint.
Quando si lavora con team di grandi dimensioni, non si prevede di essere responsabili di tutte le parti dell'architettura MLOps come data scientist. Per preparare il modello per MLOps, tuttavia, è necessario considerare come progettare per il monitoraggio e la ripetizione del training.