Gestione dei modelli di MLOps con Azure Machine Learning
SI APPLICA A:Estensione ml dell'interfaccia della riga di comando di Azure v2 (corrente)Python SDK azure-ai-ml v2 (corrente)
Questo articolo illustra il modo in cui Azure Machine Learning usa le operazioni di Machine Learning (MLOps) per gestire il ciclo di vita dei modelli. L'applicazione di procedure MLOps può migliorare la qualità e la coerenza delle soluzioni di apprendimento automatico.
MLOps si basa su principi e procedure DevOps che aumentano l'efficienza dei flussi di lavoro, ad esempio l'integrazione continua, la distribuzione continua e il recapito continuo. L'applicazione di questi principi al ciclo di vita di apprendimento automatico comporta:
- Sperimentazione e sviluppo di modelli più veloci.
- Distribuzione più rapida dei modelli nell'ambiente di produzione.
- Miglioramento della verifica della qualità e del tracciamento della derivazione end-to-end.
Funzionalità MLOps
MLOps offre le funzionalità seguenti per il processo di apprendimento automatico:
- Creare pipeline di apprendimento automatico riproducibili per definire passaggi ripetibili e riutilizzabili per i processi di preparazione, training e assegnazione dei punteggi dei dati.
- Creare ambienti software riutilizzabili per il training e la distribuzione di modelli.
- Registrare, creare pacchetti e distribuire modelli da qualsiasi posizione e tenere traccia dei metadati associati necessari per usare un modello.
- Registrare i dati di derivazione per la governance del ciclo di vita di apprendimento automatico, ad esempio chi ha pubblicato modelli, perché sono state apportate modifiche e quando i modelli sono stati distribuiti o usati nell'ambiente di produzione.
- Generare notifiche e avvisi sugli eventi del ciclo di vita di apprendimento automatico come il completamento dell'esperimento, la registrazione del modello, la distribuzione del modello e il rilevamento della deriva dei dati.
- Monitorare i problemi operativi e correlati all'apprendimento automatico confrontando gli input del modello, esplorando le metriche specifiche del modello e visualizzando monitoraggio e avvisi nell'infrastruttura di apprendimento automatico.
- Automatizzare il ciclo di vita di apprendimento automatico end-to-end usando pipeline di Machine Learning e Azure Pipelines per testare, aggiornare e implementare continuamente nuovi modelli di Machine Learning.
Per altre informazioni su MLOps, vedere Operazioni per l'apprendimento automatico.
Pipeline di apprendimento automatico riproducibili
Usare le pipeline di Azure Machine Learning per unire tutti i passaggi del processo di training del modello. I passaggi relative alle pipeline di apprendimento automatico possono includere la preparazione dei dati, l'estrazione delle funzionalità, l'ottimizzazione degli iperparametri e la valutazione del modello.
Nella finestra di progettazione dello studio di Azure Machine Learning è possibile clonare una pipeline per eseguire l'iterazione della progettazione senza perdere le versioni precedenti. Per clonare una pipeline in qualsiasi momento in Progettazione, selezionare Clona nella barra dei menu superiore.
Per informazioni sulle pipeline di Azure Machine Learning, consultare Pipeline di apprendimento automatico.
Ambienti software riutilizzabili
Gli ambienti di Azure Machine Learning assicurano che le compilazioni siano riproducibili senza usare configurazioni software manuali. Gli ambienti possono tenere traccia e riprodurre le dipendenze software pip e conda per i progetti.
È possibile usare gli ambienti per il training e la distribuzione dei modelli. Per altre informazioni sugli ambienti, vedere Ambienti di Azure Machine Learning.
Registrazione del modello, creazione di pacchetti e distribuzione
Azure Machine Learning può usare MLOps da qualsiasi posizione per registrare, creare pacchetti e distribuire modelli.
Registrare e tenere traccia dei modelli
La registrazione del modello archivia e controlla le versioni dei modelli nell'area di lavoro di Azure Machine Learning nel cloud di Azure. Il registro dei modelli consente di organizzare i modelli sottoposti a training e tenerne traccia con facilità.
Un modello registrato è un contenitore logico per uno o più file che costituiscono il modello. Se, ad esempio, il modello è archiviato in più file, è possibile registrarli come singolo modello nell'area di lavoro di Azure Machine Learning. Dopo la registrazione, è possibile scaricare o distribuire il modello registrato e ricevere tutti i file dei componenti.
È anche possibile registrare modelli sottoposti a training all'esterno di Azure Machine Learning. Azure Machine Learning supporta qualsiasi modello che può essere caricato usando Python 3.5.2 o versione successiva.
I modelli registrati vengono identificati in base al nome e alla versione. Ogni volta che si registra un modello con lo stesso nome di uno esistente, il registro incrementa il numero di versione.
È possibile fornire tag di metadati durante la registrazione e usarli quando si cerca un modello.
Importante
Non è possibile eliminare un modello registrato in uso in una distribuzione attiva.
Per altre informazioni su come usare i modelli in Azure Machine Learning, vedere Lavorare con i modelli in Azure Machine Learning.
Creare pacchetti ed eseguire il debug di modelli
Per distribuire un modello nell'ambiente di produzione, è prima necessario crearne il pacchetto in un'immagine Docker. Nella maggior parte dei casi, la creazione di immagini avviene automaticamente in background durante la distribuzione. È tuttavia possibile specificare manualmente l'immagine.
È utile eseguire prima di tutto la distribuzione nell'ambiente di sviluppo locale in modo da poter risolvere i problemi ed eseguire il debug prima della distribuzione nel cloud. Questa procedura consente di evitare problemi con la distribuzione in Azure Machine Learning. Per altre informazioni su come risolvere i problemi di distribuzione comuni, vedere Come risolvere i problemi relativi agli endpoint online.
Convertire e ottimizzare i modelli
È possibile convertire il modello in Open Neural Network Exchange (ONNX) per provare a migliorare le prestazioni. In genere, la conversione in ONNX può raddoppiare le prestazioni.
Per altre informazioni su ONNX con Azure Machine Learning, vedere Creare e accelerare i modelli di Machine Learning.
Distribuire i modelli come endpoint
È possibile distribuire modelli di Machine Learning sottoposti a training come endpoint nel cloud o a livello locale. Le distribuzioni usano CPU e GPU per l'inferenza.
Per distribuire un modello come endpoint, è necessario fornire le informazioni seguenti:
- Il modello usato per assegnare un punteggio ai dati inviati al servizio o al dispositivo.
- Uno script di immissione, detto anche script di assegnazione dei punteggi, che accetta le richieste, usa i modelli per assegnare un punteggio ai dati e restituisce una risposta.
- Un ambiente che descrive le dipendenze pip e Conda richieste dai modelli e dallo script di immissione.
- Qualsiasi altro asset, ad esempio testo e dati richiesti dai modelli e dallo script di immissione.
Importante
Quando si distribuisce un modello di MLflow, non è necessario fornire uno script di immissione o un ambiente per la distribuzione. Per altre informazioni sulla distribuzione di modelli MLflow, vedere Linee guida per la distribuzione di modelli MLflow.
Si specifica anche la configurazione della piattaforma di distribuzione di destinazione, ad esempio il tipo di famiglia di macchine virtuali (VM), la memoria disponibile e il numero di core. Quando Azure Machine Learning crea l'immagine, aggiunge anche tutti i componenti necessari, ad esempio gli asset necessari per eseguire il servizio Web.
Assegnazione dei punteggi batch con endpoint batch
L'assegnazione dei punteggi batch è supportata tramite endpoint batch. Per altre informazioni sull'assegnazione dei punteggi batch, vedere Endpoint batch.
Assegnazione dei punteggi in tempo reale con endpoint online
È possibile usare i modelli con endpoint online per l'assegnazione dei punteggi in tempo reale. Le destinazioni di calcolo per gli endpoint online possono essere ambienti di sviluppo locali, endpoint online gestiti o il servizio Azure Kubernetes.
Per distribuire un modello in un endpoint online, è necessario fornire le informazioni seguenti:
- Modello o insieme di modelli.
- Dipendenze necessarie per usare il modello, ad esempio uno script che accetta le richieste e richiama il modello e le dipendenze conda.
- Configurazione della distribuzione che descrive come e dove distribuire il modello.
Per altre informazioni sulla distribuzione per l'assegnazione dei punteggi in tempo reale, vedere Distribuire endpoint online.
Implementazione controllata per gli endpoint online
Quando si esegue la distribuzione in un endpoint online, è possibile usare l'implementazione controllata per abilitare gli scenari seguenti:
- Creare più versioni di un endpoint per una distribuzione.
- Eseguire test A/B instradando il traffico a distribuzioni diverse all'interno dell'endpoint.
- Passare da una distribuzione di endpoint all'altra aggiornando la percentuale di traffico nella configurazione dell'endpoint.
Per altre informazioni sulla distribuzione tramite un'implementazione controllata, vedere Eseguire un'implementazione sicura delle nuove distribuzioni per l'inferenza in tempo reale.
Metadati per la governance del ciclo di vita di apprendimento automatico
Azure Machine Learning offre la possibilità di tenere traccia dell'audit trail end-to-end di tutti gli asset di apprendimento automatico usando i metadati. Ad esempio:
- Gli asset di dati di Azure Machine Learning consentono di tenere traccia dei dati, profilarli e creare versioni.
- L'interpretabilità dei modelli consente di spiegare i modelli, soddisfare la conformità alle normative e comprendere in che modo i modelli arrivano a un risultato per l'input specificato.
- La cronologia dei processi di Azure Machine Learning archivia uno snapshot del codice, dei dati e degli ambienti di calcolo usati per eseguire il training di un modello.
- La registrazione dei modelli di Azure Machine Learning acquisisce tutti i metadati associati al modello. Ad esempio, quale esperimento ha eseguito il training del modello, dove viene distribuito e se le distribuzioni sono integre.
- L'integrazione con Azure consente di agire sugli eventi del ciclo di vita di apprendimento automatico, ad esempio la registrazione del modello, la distribuzione, la deriva dei dati e gli eventi del processo di training.
Alcune informazioni sui modelli e gli asset di dati vengono acquisite automaticamente, ma è possibile aggiungere altre informazioni usando i tag. Quando si cercano modelli e asset di dati registrati nell'area di lavoro, è possibile usare i tag come filtri.
Nota
Quando si usa l'opzione Tag in Filtra per nella pagina Modelli dello studio di Azure Machine Learning, assicurarsi di usare TagName=TagValue
senza spazi anziché TagName : TagValue
.
Avvisi e notifiche degli eventi del ciclo di vita di apprendimento automatico
Azure Machine Learning pubblica eventi chiave in Griglia di eventi di Azure, che può essere usato per notificare e automatizzare gli eventi nel ciclo di vita di apprendimento automatico. Per altre informazioni su come configurare processi basati su eventi in base a eventi di Azure Machine Learning, vedere Flussi di lavoro personalizzati basati su CI/CD e basati su eventi.
Automazione del ciclo di vita di apprendimento automatico
È possibile usare Git e Azure Pipelines per creare un processo di integrazione continua che esegue il training di un modello di Machine Learning. In uno scenario tipico, quando uno scienziato dei dati controlla una modifica nel repository Git di un progetto, Azure Pipelines avvia il processo di training.
È possibile esaminare i risultati del processo per visualizzare le caratteristiche delle prestazioni del modello sottoposto a training. È anche possibile creare una pipeline che distribuisce il modello come servizio Web.
L'estensione Machine Learning semplifica l'uso di Azure Pipelines. L'estensione offre i miglioramenti seguenti ad Azure Pipelines:
- Abilita la selezione dell'area di lavoro di Azure Machine Learning quando si definisce una connessione al servizio.
- Consente la creazione di modelli sottoposti a training in una pipeline di training per attivare una distribuzione in Azure Pipelines.
Per altre informazioni sull'uso di Azure Pipelines con Azure Machine Learning, vedere Usare Azure Pipelines con Azure Machine Learning.
Analisi
Microsoft Power BI supporta l'uso di modelli di Machine Learning per l'analisi dei dati. Per altre informazioni, vedere Intelligenza artificiale con flussi di dati.