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:

Notebook di esempio

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 Outputsla cartella nei processi insieme al metodo mlflow.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

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

Training con progetti MLflow (anteprima)

Importante

Gli elementi contrassegnati come (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

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