Condividi tramite


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)

Questo articolo descrive le funzionalità di MLflow, un framework open source progettato per gestire il ciclo di vita di apprendimento automatico completo. MLflow usa un set coerente di strumenti per eseguire il training e gestire modelli su piattaforme diverse. È possibile usare MLflow indipendentemente dal fatto che gli esperimenti siano in esecuzione in locale o in una destinazione di calcolo remota, in una macchina virtuale o in un'istanza di ambiente di calcolo di Azure Machine Learning.

Le aree di lavoro di Azure Machine Learning sono compatibili con MLflow, il che significa che è possibile usare un'area 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, ma può usare direttamente le API MLflow.
  • È possibile usare un'area 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 esiste alcuna funzionalità di registrazione in Azure Machine Learning v2 SDK. È possibile usare la registrazione di MLflow per assicurarsi che le routine di training siano indipendenti dal cloud, portabili e non abbiano dipendenze da Azure Machine Learning.

Che cos'è il rilevamento

Quando si lavora con i processi, Azure Machine Learning tiene automaticamente traccia di alcune informazioni sugli esperimenti, ad esempio codice, ambiente e dati di input e output. Tuttavia, i modelli, i parametri e le metriche sono specifici dello scenario, pertanto i generatori di modelli devono configurare il rilevamento.

I metadati di rilevamento salvati variano in base all'esperimento e possono includere:

  • Codice
  • Dettagli dell'ambiente, ad esempio la versione del sistema operativo e i pacchetti Python
  • Dati di input
  • Configurazioni dei parametri
  • Modelli
  • Metriche di valutazione
  • Visualizzazioni di valutazione, ad esempio matrici di confusione e tracciati di importanza
  • Risultati della valutazione, incluse alcune stime di valutazione

Vantaggi del rilevamento di esperimenti

Indipendentemente dal fatto che si esegui il training dei modelli con processi in Azure Machine Learning o in modo interattivo nei notebook, il rilevamento degli esperimenti consente di:

  • Organizzare tutti gli esperimenti di Machine Learning in un'unica posizione. È quindi possibile cercare e filtrare gli esperimenti ed eseguire il drill-down per visualizzare i dettagli sugli esperimenti precedenti.
  • Confrontare facilmente esperimenti, analizzare i risultati e eseguire il debug del training del modello.
  • Riprodurre o rieseguire esperimenti per convalidare i risultati.
  • Migliorare la collaborazione, perché è possibile visualizzare le operazioni eseguite da altri colleghi, condividere i risultati dell'esperimento e accedere ai dati dell'esperimento a livello di codice.

Rilevamento con MLflow

Le aree di lavoro di Azure Machine Learning sono compatibili con MLflow. Questa compatibilità consente di usare MLflow per tenere traccia di esecuzioni, metriche, parametri e artefatti nelle aree di lavoro senza dover modificare le routine di training o inserire una sintassi specifica del cloud. Per informazioni su come usare MLflow per tenere traccia degli esperimenti e delle esecuzioni nelle aree di lavoro di Azure Machine Learning, vedere Tenere traccia di esperimenti e modelli 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 di MLflow si materializza nell'area di lavoro in cui si lavora.

Per informazioni su come abilitare la registrazione per monitorare le metriche di esecuzione in tempo reale con MLflow, vedere Metriche, parametri e file di log con MLflow. È anche possibile eseguire query e confrontare esperimenti ed esecuzioni con MLflow.

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 di Azure Machine Learning offre una posizione centralizzata, sicura e scalabile per archiviare le metriche e i modelli di training.

MLflow in Azure Machine Learning può:

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. Usare l'interfaccia della riga di comando di Azure Machine Learning o dello studio di Azure Machine Learning per la registrazione e la gestione dei modelli.

Per esempi dell'uso del client di rilevamento di MLflow con modelli R in Azure Machine Learning, vedere 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. Usare invece il metodo mlflow.save_model con la cartella outputs nei processi per salvare modelli o artefatti da acquisire.

Per un esempio Java che usa il client di rilevamento di MLflow con il server di rilevamento di Azure Machine Learning, vedere azuremlflow-java.

Notebook di esempio per il rilevamento di MLflow

Registrazione dei modelli con MLflow

Azure Machine Learning supporta MLflow per la gestione dei modelli. Questo supporto è un approccio pratico per gli utenti che hanno familiarità con il client MLflow per gestire l'intero ciclo di vita del modello. Per altre informazioni su come gestire i modelli usando l'API MLflow in Azure Machine Learning, vedere Gestire i registri di modelli in Azure Machine Learning con MLflow.

Notebook di esempio per la registrazione dei modelli di MLflow

Gestione dei modelli con MLflow: illustra come gestire i modelli nei registri.

Distribuzione del modello con MLflow

È possibile distribuire modelli di MLflow in Azure Machine Learning per sfruttare un'esperienza migliorata. 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.

MLflow SDK, l'interfaccia della riga di comando di Azure Machine Learning, Azure Machine Learning SDK per Python e lo studio di Azure Machine Learning supportano la distribuzione modello di MLflow. Per altre informazioni sulla distribuzione di modelli di MLflow in Azure Machine Learning sia per l'inferenza in tempo reale sia per l'inferenza batch, vedere Linee guida per la distribuzione di modelli di MLflow.

Notebook di esempio per la distribuzione modello di MLflow

Training con progetti di MLflow (anteprima)

Avviso

Il supporto per i file di MLproject (MLflow Projects) in Azure Machine Learning verrà ritirato completamente a settembre 2026. MLflow è ancora completamente supportato ed è comunque il modo consigliato per tenere traccia dei carichi di lavoro di Machine Learning in Azure Machine Learning.

Man mano che si continua a usare MLflow, è consigliabile passare da file di MLproject a Processi Azure Machine Learning, usando l'interfaccia della riga di comando di Azure o Azure Machine Learning SDK per Python (v2). Per altre informazioni sui processi di Azure Machine Learning, vedere Tenere traccia degli esperimenti e dei modelli di Machine Learning con MLflow.

Importante

Questa funzionalità è attualmente in anteprima pubblica. Questa versione di anteprima viene fornita senza contratto di servizio, pertanto se ne sconsiglia l’uso per i carichi di lavoro in ambienti 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 di MLflow. È 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 che usano progetti di MLflow alle aree di lavoro di Azure Machine Learning per il rilevamento, vedere Eseguire il training con progetti di MLflow in Azure Machine Learning (anteprima).

Notebook di esempio per progetti di MLflow

Funzionalità degli strumenti client di MLflow e Azure Machine Learning

La tabella seguente illustra le operazioni del ciclo di vita di apprendimento automatico possibili con MLflow SDK e gli strumenti client di Azure Machine Learning.

Funzionalità MLflow SDK Interfaccia della riga di comando di Azure Machine Learning e SDK v2 Studio di Azure Machine Learning
Tenere traccia e registrare metriche, parametri e modelli
Recuperare metriche, parametri e modelli È possibile scaricare solo artefatti e modelli.
Inviare processi di training Possibile usando progetti di MLflow (anteprima).
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 Alcune operazioni potrebbero non essere supportate.1
Gestire modelli non MLflow
Distribuire modelli di MLflow in Azure Machine Learning (online e batch) La distribuzione di modelli di MLflow per l'inferenza batch non è attualmente supportata.2
Distribuire modelli non MLflow in Azure Machine Learning

1 Per altre informazioni, vedere Gestire i registri di modelli in Azure Machine Learning con MLflow.

2 Per un'alternativa, vedere Distribuire ed eseguire modelli di MLflow nei processi Spark.