Creare processi di Azure Machine Learning

Completato

Il primo passaggio per rendere operativo un modello di Machine Learning consiste nell'eseguirlo come processo di Azure Machine Learning. È possibile eseguire singoli script come processi di comando o gruppi di script come processo di pipeline.

Il team di data science consegna il lavoro svolto in un notebook di Jupyter in cui i dati vengono caricati, trasformati e sottoposti a training. Per preparare il codice e il modello per la produzione, sarà necessario:

  • Effettuare il refactoring del notebook in script.
  • Fare riferimento agli script nella definizione del processo.
  • Attivare il processo per eseguire il training del modello.

Effettuare il refactoring del codice in script

Per preparare un modello di Machine Learning per la produzione, è prima necessario preparare il codice per la produzione. Quando si dispone di un notebook di Jupyter che deve essere convertito in codice di produzione, sarà necessario:

  • Pulire il codice non essenziale.
  • Esportare il codice in script Python.
  • Usare le funzioni negli script.

Usando le funzioni negli script, sarà più semplice testare la qualità del codice. Quando si dispone di uno script da eseguire, è possibile usare un processo di Azure Machine Learning per eseguire il codice.

Definire un processo di Azure Machine Learning

Per definire un processo in Azure Machine Learning, è possibile creare un file YAML. Se si vuole eseguire uno script come processo di comando o più script in sequenza come pipeline. Per entrambi i processi di comando e pipeline sarà necessario creare un file YAML che definisca i dettagli seguenti:

  • Gli script da eseguire.
  • Quali sono gli input e gli output per ogni script.
  • L'ambiente di calcolo che verrà usato per eseguire gli script.
  • L'ambiente che deve essere installato nel computer per eseguire gli script.

Un esempio di processo di comando che usa un asset di dati registrato come input quando si esegue lo script main.py è disponibile nel codice YAML seguente:

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
code: src
command: >-
  python main.py 
  --diabetes-csv ${{inputs.diabetes}}
inputs:
  diabetes:
    path: azureml:diabetes-data:1
    mode: ro_mount
environment: azureml:basic-env-scikit@latest
compute: azureml:aml-instance
experiment_name: diabetes-data-example
description: Train a classification model on diabetes data using a registered dataset as input.

Nel file YAML sono disponibili i dettagli necessari da includere:

  • code si riferisce alla cartella locale, in cui sono archiviati gli script da eseguire. La chiave command specifica che lo script main.py nella cartella src deve essere eseguito usando il valore inputs.diabetes per il parametro diabetes-csv.
  • La versione 1 dell'asset di dati registrato diabetes-data nell'area di lavoro di Azure Machine Learning viene montata nell'ambiente di calcolo da usare come input per lo script.
  • Per eseguire gli script, verrà usata l'istanza di ambiente di calcolo aml-instance.
  • La versione più recente dell'ambiente basic-env-scikit personalizzato registrato verrà installata nell'istanza di ambiente di calcolo prima di eseguire lo script.

Per testare la definizione YAML del processo, è possibile attivarlo usando l'interfaccia della riga di comando v2.

Attivare un processo di Azure Machine Learning

Ogni volta che si vuole eseguire un processo di Azure Machine Learning, è possibile usare l'interfaccia della riga di comando v2. L'interfaccia della riga di comando v2 può essere installata nel dispositivo locale oppure è possibile usare Azure Cloud Shell.

Sia che si vogliano attivare le esecuzioni dal dispositivo locale o usando Azure Cloud Shell, è prima necessario installare l'estensione Azure Machine Learning.

Per eseguire l'installazione in Windows, usare il comando seguente:

az extension add -n ml -y

Dopo aver installato l'estensione Azure Machine Learning per l'interfaccia della riga di comando e quando si ha accesso alla sottoscrizione di Azure da usare, è possibile inviare un processo di Azure Machine Learning usando il comando seguente:

az ml job create --file job.yml

Nota

Per altre informazioni su come gestire i processi di Azure Machine Learning tramite l'interfaccia della riga di comando (v2), vedere la documentazione di riferimento per az ml job.