Condividi tramite


MLflow e Azure Machine Learning

SI APPLICA A:Estensione ML dell'interfaccia della riga di comando di Azure v2 (corrente)SDK Python azure-ai-ml v2 (corrente)

Questo articolo descrive le funzionalità di MLflow, un framework open source che gestisce il ciclo di vita completo di Machine Learning. MLflow usa un set coerente di strumenti per eseguire il training e gestire modelli su piattaforme diverse. Usare MLflow se gli esperimenti vengono eseguiti in locale, 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, quindi si usa un'area di lavoro di Azure Machine Learning allo stesso modo in cui si usa un server MLflow. Questa compatibilità offre questi vantaggi:

  • Azure Machine Learning non ospita istanze del server MLflow, ma usa direttamente le API MLflow.
  • 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. È sufficiente configurare MLflow in modo che punti all'area di lavoro in cui si verifica il rilevamento.
  • Eseguire qualsiasi routine di training che usa MLflow in Azure Machine Learning senza apportare modifiche.

Suggerimento

A differenza di Azure Machine Learning SDK v1, Azure Machine Learning v2 SDK non include funzionalità di registrazione. Usare la registrazione MLflow per mantenere le routine di training indipendenti dal cloud, portabili e indipendenti da Azure Machine Learning.

Che cos'è il rilevamento

Quando si lavora con i processi, Azure Machine Learning tiene automaticamente traccia delle informazioni sugli esperimenti, ad esempio codice, ambiente e dati di input e output. Tuttavia, i modelli, i parametri e le metriche sono specifici di ogni scenario, quindi 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 come matrici di confusione e grafici di importanza
  • Risultati della valutazione, incluse alcune stime di valutazione

Vantaggi del rilevamento di esperimenti

Che il training dei modelli venga eseguito 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 cercare e filtrare gli esperimenti ed eseguire il drill-down per visualizzare i dettagli sugli esperimenti precedenti.
  • Confrontare esperimenti, analizzare i risultati ed eseguire il debug del training del modello.
  • Riprodurre o rieseguire esperimenti per convalidare i risultati.
  • Collaborare più facilmente, perché vengono visualizzate 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 modificare le routine di training o aggiungere una sintassi specifica del cloud. Per informazioni su come usare MLflow per tenere traccia di esperimenti ed 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 MLflow viene visualizzato nell'area di lavoro usata.

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

MLflow in Azure Machine Learning consente di centralizzare il rilevamento. 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 consente di:

Rilevamento con MLflow in R

Il supporto di MLflow in R presenta queste limitazioni:

  • 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 queste limitazioni:

  • 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. Se si ha familiarità con il client MLflow, è possibile usarlo per gestire l'intero ciclo di vita del modello. Per altre informazioni sulla gestione dei modelli con l'API MLflow in Azure Machine Learning, vedere Gestire i registri modelli in Azure Machine Learning con MLflow.

Notebook di esempio per la registrazione dei modelli di MLflow

La gestione dei modelli con MLflow illustra come gestire i modelli nei registri.

Distribuzione del modello con MLflow

Distribuire modelli MLflow in Azure Machine Learning per ottenere un'esperienza migliorata. Azure Machine Learning supporta la distribuzione di modelli MLflow in endpoint batch e in tempo reale senza 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 MLflow in Azure Machine Learning per inferenza in tempo reale e batch, vedere Linee guida per la distribuzione di modelli 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 disponibile 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 offrire funzionalità limitate.

Per altre informazioni, vedere Condizioni supplementari per l'utilizzo delle anteprime di Microsoft Azure.

Inviare job di training ad Azure Machine Learning usando MLflow Projects. Inviare processi in locale con il rilevamento di Azure Machine Learning o eseguire la migrazione dei processi nel cloud usando l’ambiente di calcolo di Azure Machine Learning.

Scopri come inviare processi di addestramento che usano progetti MLflow alle aree di lavoro di Azure Machine Learning per il tracciamento in Esegui il training con progetti MLflow in Azure Machine Learning (anteprima).

Notebook di esempio per i progetti MLflow

Funzionalità degli strumenti client di MLflow e Azure Machine Learning

La tabella seguente illustra le operazioni del ciclo di vita di Machine Learning che è possibile eseguire 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 Azure Machine Learning Studio
Tenere traccia e registrare metriche, parametri e modelli
Recuperare metriche, parametri e modelli È possibile scaricare solo artefatti e modelli.
Inviare processi di training È possibile usare progetti 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 non sono supportate. 1
Gestire modelli non MLflow
Distribuire modelli di MLflow in Azure Machine Learning (online e batch) Non è possibile distribuire modelli MLflow per l'inferenza batch in questo momento. 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.