MLflow e 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)
MLflow è un framework open source progettato per gestire il ciclo di vita completo di Machine Learning. La possibilità di eseguire il training e la gestione di modelli su piattaforme diverse consente di usare un set coerente di strumenti indipendentemente dalla posizione in cui vengono eseguiti gli esperimenti: in locale nel computer, in una destinazione di calcolo remota, in una macchina virtuale o in un'istanza di calcolo di Azure Machine Learning.
Le aree di lavoro di Azure Machine Learning sono compatibili con MLflow, il che significa che è possibile usare le aree di lavoro di Azure Machine Learning nello stesso modo in cui si usa un server MLflow. Questa compatibilità presenta i vantaggi seguenti:
- Azure Machine Learning non ospita istanze del server MLflow dietro le quinte; l'area di lavoro può invece pronunciare il linguaggio dell'API MLflow.
- È possibile usare le aree di lavoro di Azure Machine Learning come server di rilevamento per qualsiasi codice MLflow, indipendentemente dal fatto che venga eseguito in Azure Machine Learning o no. È sufficiente configurare MLflow in modo che punti all'area di lavoro in cui deve verificarsi il rilevamento.
- È possibile eseguire qualsiasi routine di training che usa MLflow in Azure Machine Learning senza alcuna modifica.
Suggerimento
A differenza di Azure Machine Learning SDK v1, non è disponibile alcuna funzionalità di registrazione nell'SDK v2. È consigliabile usare MLflow per la registrazione, in modo che le routine di training siano indipendenti dal cloud e portabili rimuovendo qualsiasi dipendenza del codice in Azure Machine Learning.
Rilevamento con MLflow
Azure Machine Learning usa il rilevamento MLflow per registrare le metriche e archiviare gli artefatti per gli esperimenti. Quando si è connessi ad Azure Machine Learning, tutto il rilevamento eseguito con MLflow viene materializzato nell'area di lavoro su cui si sta lavorando. Per altre informazioni su come configurare gli esperimenti per l'uso di MLflow per il rilevamento di esperimenti e routine di training, vedere Metriche, parametri e file di log con MLflow. È anche possibile usare MLflow per query e confrontare esperimenti ed esecuzioni.
MLflow in Azure Machine Learning consente di centralizzare il rilevamento. È possibile connettere MLflow alle aree di lavoro di Azure Machine Learning anche quando si lavora in locale o in un cloud diverso. L'area di lavoro offre una posizione centralizzata, sicura e scalabile per archiviare le metriche e i modelli di training.
L'uso di MLflow in Azure Machine Learning include le funzionalità per:
- Tenere traccia di esperimenti e modelli di Machine Learning in esecuzione in locale o nel cloud.
- Tenere traccia degli esperimenti di Machine Learning di Azure Databricks.
- Tenere traccia degli esperimenti di Machine Learning di Azure Synapse Analytics.
Notebook di esempio
- Training e rilevamento di un classificatore XGBoost con MLflow: illustra come tenere traccia degli esperimenti usando MLflow, i modelli di log e combinare più versioni in pipeline.
- Training e rilevamento di un classificatore XGBoost con MLflow usando l'autenticazione dell'entità servizio: illustra come tenere traccia degli esperimenti usando MLflow da un ambiente di calcolo in esecuzione all'esterno di Azure Machine Learning. L'esempio illustra come eseguire l'autenticazione nei servizi di Azure Machine Learning usando un'entità servizio.
- Ottimizzazione dei parametri Hyperopt usando HyperOpt e le esecuzioni annidate in MLflow: illustra come usare le esecuzioni figlio in MLflow per eseguire l'ottimizzazione degli iperparametri per i modelli usando la libreria comune
Hyperopt
. L'esempio mostra come trasferire metriche, parametri e artefatti da esecuzioni figlio a esecuzioni padre. - Modelli di registrazione con MLflow: illustra come usare il concetto di modelli, anziché artefatti, con MLflow. L'esempio mostra anche come costruire modelli personalizzati.
- Gestire esecuzioni e esperimenti con MLflow: illustra come eseguire query su esperimenti, esecuzioni, metriche, parametri e artefatti di Azure Machine Learning usando MLflow.
Rilevamento con MLflow in R
Il supporto di MLflow in R presenta le limitazioni seguenti:
- Il rilevamento MLflow è limitato al rilevamento di metriche, parametri e modelli dell'esperimento nei processi di Azure Machine Learning.
- Il training interattivo in RStudio, Posit (in precedenza RStudio Workbench) o nei notebook di Jupyter con kernel R non è supportato.
- La gestione e la registrazione dei modelli non sono supportate tramite MLflow R SDK. Usare invece l'interfaccia della riga di comando di Azure Machine Learning o di Studio di Azure Machine Learning per la registrazione e la gestione dei modelli.
Per informazioni sull'uso del client di rilevamento MLflow con Azure Machine Learning, vedere gli esempi in Eseguire il training dei modelli R usando l'interfaccia della riga di comando di Azure Machine Learning (v2).
Rilevamento con MLflow in Java
Il supporto di MLflow in Java presenta le limitazioni seguenti:
- Il rilevamento MLflow è limitato al rilevamento di metriche e parametri dell'esperimento nei processi di Azure Machine Learning.
- Non è possibile tenere traccia degli artefatti e dei modelli usando MLflow Java SDK. Usare invece
Outputs
la cartella nei processi insieme al metodomlflow.save_model
per salvare modelli (o artefatti) da acquisire.
Per informazioni sull'uso del client di rilevamento MLflow con Azure Machine Learning, vedere l'esempio Java che usa il client di rilevamento MLflow con Azure Machine Learning.
Registri di modelli con MLflow
Azure Machine Learning supporta MLflow per la gestione dei modelli. Questo supporto rappresenta un modo pratico per supportare l'intero ciclo di vita del modello per gli utenti che hanno familiarità con il client MLflow.
Per altre informazioni su come gestire i modelli usando l'API MLflow in Azure Machine Learning, vedere Gestire i registri modelli in Azure Machine Learning con MLflow.
Notebook di esempio
- Gestire i registri dei modelli con MLflow: illustra come gestire i modelli nei registri usando MLflow.
Distribuzione del modello con MLflow
È possibile distribuire modelli MLflow in Azure Machine Learning e sfruttare l'esperienza migliorata quando si usano modelli MLflow. Azure Machine Learning supporta la distribuzione di modelli MLflow sia in tempo reale che in endpoint batch senza dover specificare un ambiente o uno script di assegnazione dei punteggi. La distribuzione è supportata usando MLflow SDK, l'interfaccia della riga di comando di Azure Machine Learning, Azure Machine Learning SDK per Python o Studio di Azure Machine Learning.
Per altre informazioni sulla distribuzione di modelli MLflow in Azure Machine Learning sia per l'inferenza in tempo reale sia per l'inferenza batch, vedere le linee guida per la distribuzione di modelli MLflow.
Notebook di esempio
- Distribuire MLflow negli endpoint online: illustra come distribuire modelli in formato MLflow agli endpoint online usando MLflow SDK.
- Distribuire MLflow negli endpoint online con implementazione sicura: illustra come distribuire modelli in formato MLflow agli endpoint online usando MLflow SDK con implementazione progressiva dei modelli. L'esempio mostra anche la distribuzione di più versioni di un modello nello stesso endpoint.
- Distribuire MLflow nei servizi Web (V1): illustra come distribuire modelli in formato MLflow nei servizi Web (ACI/AKS v1) usando MLflow SDK.
- Distribuire modelli sottoposti a training in Azure Databricks in Azure Machine Learning con MLflow: illustra come eseguire il training dei modelli in Azure Databricks e distribuirli in Azure Machine Learning. L'esempio illustra anche come gestire i casi in cui si vogliono tenere traccia degli esperimenti con l'istanza MLflow in Azure Databricks.
Training con progetti MLflow (anteprima)
Importante
Gli elementi contrassegnati (anteprima) in questo articolo sono attualmente disponibili in anteprima pubblica. La versione di anteprima viene messa a disposizione senza contratto di servizio e non è consigliata per i carichi di lavoro di produzione. Alcune funzionalità potrebbero non essere supportate o potrebbero presentare funzionalità limitate. Per altre informazioni, vedere le Condizioni supplementari per l'uso delle anteprime di Microsoft Azure.
È possibile inviare processi di training ad Azure Machine Learning usando progetti MLflow (anteprima). È possibile inviare processi in locale con il rilevamento di Azure Machine Learning o eseguire la migrazione dei processi nel cloud tramite ambiente di calcolo di Azure Machine Learning.
Per informazioni su come inviare processi di training con progetti MLflow che usano le aree di lavoro di Azure Machine Learning per il rilevamento, vedere Eseguire il training di modelli di Machine Learning con progetti MLflow e Azure Machine Learning.
Notebook di esempio
- Tenere traccia di un progetto MLflow nelle aree di lavoro di Azure Machine Learning.
- Eseguire il training ed eseguire un progetto MLflow nei processi di Azure Machine Learning.
Funzionalità di MLflow SDK, Azure Machine Learning v2 e Azure Machine Learning Studio
La tabella seguente illustra le operazioni possibili, usando ognuno degli strumenti client disponibili nel ciclo di vita di Machine Learning.
Funzionalità | MLflow SDK | Interfaccia della riga di comando di Azure Machine Learning/SDK | Studio di Azure Machine Learning |
---|---|---|---|
Tenere traccia e registrare metriche, parametri e modelli | ✓ | ||
Recuperare metriche, parametri e modelli | ✓ | 1 | ✓ |
Inviare processi di training | ✓2 | ✓ | ✓ |
Inviare processi di training con asset di dati di Azure Machine Learning | ✓ | ✓ | |
Inviare processi di training con pipeline di Machine Learning | ✓ | ✓ | |
Gestire esperimenti ed esecuzioni | ✓ | ✓ | ✓ |
Gestire i modelli MLflow | ✓3 | ✓ | ✓ |
Gestire modelli non MLflow | ✓ | ✓ | |
Distribuire modelli MLflow in Azure Machine Learning (Online & Batch) | ✓4 | ✓ | ✓ |
Distribuire modelli non MLflow in Azure Machine Learning | ✓ | ✓ |
Nota
- 1 È possibile scaricare solo artefatti e modelli.
- 2 Possibile usando progetti MLflow (anteprima).
- 3 Alcune operazioni potrebbero non essere supportate. Visualizzare Gestire i registri dei modelli in Azure Machine Learning con MLflow per informazioni dettagliate.
- 4 La distribuzione di modelli MLflow per l'inferenza batch tramite MLflow SDK non è possibile al momento. In alternativa, vedere Distribuire ed eseguire modelli MLflow nei processi Spark.
Contenuto correlato
- Da artefatti a modelli in MLflow.
- Configurare MLflow per Azure Machine Learning.
- Eseguire la migrazione della registrazione da SDK v1 a MLflow
- Tenere traccia degli esperimenti e dei modelli di Machine Learning con MLflow.
- Registrare modelli MLflow.
- Linee guida per la distribuzione di modelli di MLflow.
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per