Esperimenti di Machine Learning in Microsoft Fabric

Un esperimento di Machine Learning è l'unità principale dell'organizzazione e il controllo per tutte le esecuzioni di Machine Learning correlate. Un'esecuzione corrisponde a una singola esecuzione del codice del modello. In MLflow il rilevamento si basa su esperimenti ed esecuzioni.

Gli esperimenti di Machine Learning consentono ai data scientist di registrare parametri, versioni del codice, metriche e file di output durante l'esecuzione del codice di Machine Learning. Gli esperimenti consentono anche di visualizzare, cercare e confrontare le esecuzioni, nonché scaricare i file di esecuzione e i metadati per l'analisi in altri strumenti.

Questo articolo illustra come i data scientist possono interagire e usare esperimenti di Machine Learning per organizzare il processo di sviluppo e tenere traccia di più esecuzioni.

Prerequisiti

  • Una sottoscrizione di Power BI Premium. Se non è disponibile, vedere Come acquistare Power BI Premium.
  • Un'area di lavoro di Power BI con capacità Premium assegnata.

Creare un esperimento

È possibile creare un esperimento di Machine Learning direttamente dalla home page data science nell'interfaccia utente di Power BI o scrivendo codice che usa l'API MLflow.

Creare un esperimento usando l'interfaccia utente

Per creare un esperimento di Machine Learning dall'interfaccia utente:

  1. Creare una nuova area di lavoro per l'analisi scientifica dei dati o selezionare una esistente.

  2. Selezionare Experiment (Esperimento ) nella sezione "New".

  3. Specificare un nome dell'esperimento e selezionare Crea. Questa azione crea un esperimento vuoto all'interno dell'area di lavoro.

    Screenshot showing where to select Experiment in the New menu.

Dopo aver creato l'esperimento, è possibile iniziare ad aggiungere esecuzioni per tenere traccia delle metriche e dei parametri di esecuzione.

Creare un esperimento usando l'API MLflow

È anche possibile creare un esperimento di Machine Learning direttamente dall'esperienza di creazione usando le mlflow.create_experiment() API o mlflow.set_experiment() . Nel codice seguente sostituire <EXPERIMENT_NAME> con il nome dell'esperimento.

import mlflow
 
# This will create a new experiment with the provided name.
mlflow.create_experiment("<EXPERIMENT_NAME>")

# This will set the given experiment as the active experiment. 
# If an experiment with this name does not exist, a new experiment with this name is created.
mlflow.set_experiment("<EXPERIMENT_NAME>")

Gestire le esecuzioni all'interno di un esperimento

Un esperimento di Machine Learning contiene una raccolta di esecuzioni per il rilevamento e il confronto semplificati. All'interno di un esperimento, un data scientist può spostarsi tra diverse esecuzioni ed esplorare i parametri e le metriche sottostanti. I data scientist possono anche confrontare le esecuzioni all'interno di un esperimento di Machine Learning per identificare quale subset di parametri produce prestazioni del modello desiderate.

Tenere traccia delle esecuzioni

Un'esecuzione di Machine Learning corrisponde a una singola esecuzione del codice del modello.

Screenshot of machine learning run detail page.

Ogni esecuzione include le informazioni seguenti:

  • Origine: nome del notebook che ha creato l'esecuzione.
  • Versione registrata: indica se l'esecuzione è stata salvata come modello di Machine Learning.
  • Data di inizio: ora di inizio dell'esecuzione.
  • Stato: stato dell'esecuzione.
  • Iperparametri: gli iperparametri salvati come coppie chiave-valore. Entrambe le chiavi e i valori sono stringhe.
  • Metriche: eseguire le metriche salvate come coppie chiave-valore. Il valore è numerico.
  • File di output: file di output in qualsiasi formato. Ad esempio, è possibile registrare immagini, ambiente, modelli e file di dati.

Visualizzare le esecuzioni recenti

È anche possibile visualizzare le esecuzioni recenti per un esperimento direttamente dalla visualizzazione elenco dell'area di lavoro. Questa visualizzazione consente di tenere traccia delle attività recenti, passare rapidamente all'applicazione Spark correlata e applicare filtri in base allo stato di esecuzione.

Screenshot of machine learning recent runs and Spark application view.

Confrontare e filtrare le esecuzioni

Per confrontare e valutare la qualità delle esecuzioni di Machine Learning, è possibile confrontare i parametri, le metriche e i metadati tra le esecuzioni selezionate all'interno di un esperimento.

Confrontare visivamente le esecuzioni

È possibile confrontare visivamente e filtrare le esecuzioni all'interno di un esperimento esistente. Il confronto visivo consente di spostarsi facilmente tra più esecuzioni e ordinarle tra loro.

Screenshot showing a list of runs and the chart view.

Per confrontare le esecuzioni:

  1. Selezionare un esperimento di Machine Learning esistente che contiene più esecuzioni.
  2. Selezionare la scheda Visualizza e quindi passare alla visualizzazione Elenco Di esecuzione . In alternativa, è possibile selezionare l'opzione Visualizza elenco di esecuzioni direttamente dalla visualizzazione Dettagli esecuzione .
  3. Personalizzare le colonne all'interno della tabella espandendo il riquadro Personalizza colonne . Qui è possibile selezionare le proprietà, le metriche e gli iperparametri da visualizzare.
  4. Espandere il riquadro Filtro per restringere i risultati in base a determinati criteri selezionati.
  5. Selezionare più esecuzioni per confrontare i risultati nel riquadro di confronto delle metriche. Da questo riquadro è possibile personalizzare i grafici modificando il titolo del grafico, il tipo di visualizzazione, l'asse X, l'asse Y e altro ancora.

Confrontare le esecuzioni con l'API MLflow

I data scientist possono anche usare MLflow per eseguire query e cercare tra esecuzioni all'interno di un esperimento. È possibile esplorare altre API MLflow per la ricerca, il filtro e il confronto delle esecuzioni visitando la documentazione di MLflow.

Ottenere tutte le esecuzioni

È possibile usare l'API mlflow.search_runs() di ricerca MLflow per ottenere tutte le esecuzioni in un esperimento sostituendo <EXPERIMENT_NAME> con il nome dell'esperimento o <EXPERIMENT_ID> con l'ID esperimento nel codice seguente:

import mlflow

# Get runs by experiment name: 
mlflow.search_runs(experiment_names=["<EXPERIMENT_NAME>"])

# Get runs by experiment ID:
mlflow.search_runs(experiment_ids=["<EXPERIMENT_ID>"])

Suggerimento

È possibile eseguire ricerche in più esperimenti fornendo un elenco di ID esperimento al experiment_ids parametro . Analogamente, fornendo un elenco di nomi di esperimento al experiment_names parametro, MLflow potrà eseguire la ricerca in più esperimenti. Ciò può essere utile se si vuole confrontare le esecuzioni all'interno di esperimenti diversi.

Ordine e limite di esecuzioni

Usare il max_results parametro da search_runs per limitare il numero di esecuzioni restituite. Il order_by parametro consente di elencare le colonne in base a e può contenere un valore o ASC facoltativoDESC. Ad esempio, l'esempio seguente restituisce l'ultima esecuzione di un esperimento.

mlflow.search_runs(experiment_ids=[ "1234-5678-90AB-CDEFG" ], max_results=1, order_by=["start_time DESC"])

Confrontare le esecuzioni all'interno di un notebook di Fabric

È possibile usare il widget di creazione mlFlow all'interno dei notebook di Fabric per tenere traccia delle esecuzioni di MLflow generate all'interno di ogni cella del notebook. Il widget consente di tenere traccia delle esecuzioni, delle metriche associate, dei parametri e delle proprietà fino al livello di cella individuale.

Per ottenere un confronto visivo, è anche possibile passare alla visualizzazione Esegui confronto . Questa visualizzazione presenta i dati graficamente, agevolando l'identificazione rapida di modelli o deviazioni in esecuzioni diverse.

Screenshot showing how to use the MLFlow authoring widget.

Salvare l'esecuzione come modello di Machine Learning

Una volta che un'esecuzione restituisce il risultato desiderato, è possibile salvare l'esecuzione come modello per il rilevamento avanzato dei modelli e per la distribuzione del modello selezionando Salva come modello di Machine Learning.

Screenshot showing where to select Create a new model.