Eseguire un processo R per eseguire il training di un modello

SI APPLICA A:Estensione ML dell'interfaccia della riga di comando di Azure v2 (corrente)

Questo articolo illustra come eseguire lo script R adattato per l'esecuzione nell'ambiente di produzione e come eseguirlo come processo R usando l'interfaccia della riga di comando di Azure Machine Learning V2.

Nota

Anche se il titolo di questo articolo si riferisce al training di un modello, è possibile eseguire qualsiasi tipo di script R purché soddisfi i requisiti elencati nell'articolo sull'adattamento.

Prerequisiti

Creare una cartella con questa struttura

Creare questa struttura di cartelle per il progetto:

📁 r-job-azureml
├─ src
│  ├─ azureml_utils.R
│  ├─ r-source.R
├─ job.yml

Importante

Tutto il codice sorgente viene inserito nella src directory .

  • R-source . Il file R è lo script R adattato per l'esecuzione nell'ambiente di produzione. Assicurarsi di seguire la procedura per registrare il modello in questo script.
  • Azureml_utils . Il file R è necessario. Usare questo codice sorgente per il contenuto del file.

Preparare il processo YAML

L'interfaccia della riga di comando di Azure Machine Learning v2 ha schemi YAML diversi per operazioni diverse. Usare lo schema YAML del processo per inviare un processo nel file job.yml che fa parte di questo progetto.

È necessario raccogliere informazioni specifiche da inserire in YAML:

  • Nome dell'asset di dati registrato usato come input di dati (con versione): azureml:<REGISTERED-DATA-ASSET>:<VERSION>
  • Nome dell'ambiente creato (con versione): azureml:<R-ENVIRONMENT-NAME>:<VERSION>
  • Nome del cluster di calcolo: azureml:<COMPUTE-CLUSTER-NAME>

Suggerimento

Per gli artefatti di Azure Machine Learning che richiedono versioni (asset di dati, ambienti), è possibile usare l'URI azureml:<AZUREML-ASSET>@latest di scelta rapida per ottenere la versione più recente di tale artefatto se non è necessario impostare una versione specifica.

Schema YAML di esempio per inviare un processo

Modificare il file job.yml in modo che contenga quanto segue. Assicurarsi di sostituire i valori visualizzati <IN-BRACKETS-AND-CAPS> e rimuovere le parentesi quadre.

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
# the Rscript command goes in the command key below. Here you also specify 
# which parameters are passed into the R script and can reference the input
# keys and values further below
# Modify any value shown below <IN-BRACKETS-AND-CAPS> (remove the brackets)
command: >
Rscript <NAME-OF-R-SCRIPT>.R
--data_file ${{inputs.datafile}}  
--other_input_parameter ${{inputs.other}}
code: src   # this is the code directory
inputs:
  datafile: # this is a registered data asset
    type: uri_file
    path: azureml:<REGISTERED-DATA-ASSET>@latest
  other: 1  # this is a sample parameter, which is the number 1 (as text)
environment: azureml:<R-ENVIRONMENT-NAME>@latest
compute: azureml:<COMPUTE-CLUSTER-OR-INSTANCE-NAME>
experiment_name: <NAME-OF-EXPERIMENT>
description: <DESCRIPTION>

Inviare il processo

Nei comandi seguenti in questa sezione potrebbe essere necessario conoscere:

  • Nome dell'area di lavoro di Azure Machine Learning
  • Nome del gruppo di risorse in cui si trova l'area di lavoro
  • Sottoscrizione in cui si trova l'area di lavoro

Trovare questi valori da studio di Azure Machine Learning:

  1. Accedere e aprire l'area di lavoro.
  2. Nella barra degli strumenti dello studio di Azure Machine Learning in alto a destra selezionare il nome dell'area di lavoro.
  3. È possibile copiare i valori dalla sezione visualizzata.

Screenshot: trovare i valori da usare nel comando dell'interfaccia della riga di comando.

Per inviare il processo, eseguire i comandi seguenti in una finestra del terminale:

  1. Modificare le directory in r-job-azureml.

    cd r-job-azureml
    
  2. Accedere ad Azure. Se si esegue questa operazione da un'istanza di calcolo di Azure Machine Learning, usare:

    az login --identity
    

    Se non si usa l'istanza di calcolo, omettere --identity e seguire la richiesta di aprire una finestra del browser per l'autenticazione.

  3. Assicurarsi di avere le versioni più recenti dell'interfaccia della riga di comando e l'estensione ml :

    az upgrade
    
  4. Se si hanno più sottoscrizioni di Azure, impostare la sottoscrizione attiva su quella usata per l'area di lavoro. È possibile ignorare questo passaggio se si ha accesso solo a una singola sottoscrizione. Sostituire <SUBSCRIPTION-NAME> con il nome della sottoscrizione. Rimuovere anche le parentesi quadre <>.

    az account set --subscription "<SUBSCRIPTION-NAME>"
    
  5. Usare ora l'interfaccia della riga di comando per inviare il processo. Se si esegue questa operazione in un'istanza di calcolo nell'area di lavoro, è possibile usare le variabili di ambiente per il nome e il gruppo di risorse dell'area di lavoro, come illustrato nel codice seguente. Se non si usa un'istanza di calcolo, sostituire questi valori con il nome dell'area di lavoro e il gruppo di risorse.

    az ml job create -f job.yml  --workspace-name $CI_WORKSPACE --resource-group $CI_RESOURCE_GROUP
    

Dopo aver inviato il processo, è possibile controllare lo stato e i risultati in Studio:

  1. Accedere ad Azure Machine Learning Studio.
  2. Selezionare l'area di lavoro se non è già stata caricata.
  3. Nel riquadro di spostamento a sinistra selezionare Processi.
  4. Selezionare il nome dell'esperimento usato per eseguire il training del modello.
  5. Selezionare il nome visualizzato del processo per visualizzare i dettagli e gli artefatti del processo, tra cui metriche, immagini, processi figlio, output, log e codice usati nel processo.

Registrazione del modello

Infine, al termine del processo di training, registrare il modello se si vuole distribuirlo. Iniziare in studio dalla pagina che mostra i dettagli del processo.

  1. Al termine del processo, selezionare Output e log per visualizzare gli output del processo.

  2. Aprire la cartella models per verificare che siano presenti crate.bin e MLmodel . In caso contrario, controllare i log per verificare se si è verificato un errore.

  3. Sulla barra degli strumenti in alto selezionare + Registra modello.

    Screenshot che mostra la sezione Processo di Studio con la sezione Output aperta.

  4. Non usare il tipo di modello MLflow , anche se viene rilevato. Modificare il tipo di modello da MLflow predefinito a Tipo non specificato. Lasciandola come MLflow genererà un errore.

  5. Per Output processo selezionare modelli, la cartella che contiene il modello.

  6. Selezionare Avanti.

  7. Specificare il nome da usare per il modello. Aggiungere Descrizione, Versione e Tag , se lo si desidera.

  8. Selezionare Avanti.

  9. Esaminare le informazioni.

  10. Selezionare Registra.

Nella parte superiore della pagina verrà visualizzata una conferma della registrazione del modello. La conferma è simile alla seguente:

Screenshot che mostra un esempio di registrazione riuscita.

Selezionare Fare clic qui per passare a questo modello. Se si desidera visualizzare i dettagli del modello registrato.

Passaggi successivi

Dopo aver registrato un modello, vedere Come distribuire un modello R in un endpoint online (in tempo reale).