Executar um trabalho do R para treinar um modelo

APLICA-SE A:Extensão do ML da CLI do Azure v2 (atual)

Este artigo explica como usar o script do R que você adaptou para ser executado em produção e configurá-lo para ser executado como um trabalho do R usando a CLI V2 do Azure Machine Learning.

Observação

Embora o título deste artigo se refira ao treinamento de um modelo, você pode executar qualquer tipo de script do R, desde que ele atenda aos requisitos listados no artigo de adaptação.

Pré-requisitos

Criar uma pasta com essa estrutura

Criar essa estrutura de pastas para seu projeto:

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

Importante

Todo o código-fonte vai para o diretório src.

  • O arquivo r-source.R é o script R que você adaptou para ser executado em produção. Siga as etapas para criar e registrar seu modelo neste script.
  • O arquivo azureml_utils.R é necessário. Use este código-fonte para o conteúdo do arquivo.

Preparar o YAML do trabalho

A CLI v2 do Azure Machine Learning tem esquemas YAML diferentes para operações diferentes. Você usa o esquema YAML do trabalho para enviar um trabalho no arquivo job.yml que faz parte deste projeto.

Você precisará coletar informações específicas para colocar no YAML:

  • O nome do ativo de dados registrado que você usará como entrada de dados (com a versão): azureml:<REGISTERED-DATA-ASSET>:<VERSION>
  • O nome do ambiente que você criou (com a versão): azureml:<R-ENVIRONMENT-NAME>:<VERSION>
  • O nome do cluster de cálculo: azureml:<COMPUTE-CLUSTER-NAME>

Dica

Para os artefatos do Azure Machine Learning que exigem versões (ativos de dados, ambientes), use o URI de atalho azureml:<AZUREML-ASSET>@latest para obter a última versão desse artefato caso não precise definir uma versão específica.

Esquema YAML de exemplo para enviar um trabalho

Edite o arquivo job.yml para conter o seguinte. Substitua os valores mostrados <IN-BRACKETS-AND-CAPS> e remova os colchetes.

$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>

Enviar o trabalho

Nos seguintes comandos nesta seção, talvez seja necessário saber:

  • O nome de workspace do Azure Machine Learning
  • O nome do grupo de recursos em que o workspace está
  • A assinatura em que o workspace está

Encontre esses valores no Estúdio do Azure Machine Learning:

  1. Entre e abra seu workspace.
  2. Na barra de ferramentas do Estúdio do Azure Machine Learning superior direito, selecione o nome do espaço de trabalho.
  3. Você pode copiar os valores da seção exibida.

Captura de tela: localize os valores a serem usados no comando da CLI.

Para enviar o trabalho, execute os seguintes comandos em uma janela de terminal:

  1. Altere os diretórios para o r-job-azureml.

    cd r-job-azureml
    
  2. Entre no Azure. Se você estiver fazendo isso de uma instância de computação do Azure Machine Learning, use:

    az login --identity
    

    Se você não estiver na instância de computação, omita --identity e siga o prompt para abrir uma janela do navegador para autenticar.

  3. Verifique se você tem as versões mais recentes da CLI e da extensão ml:

    az upgrade
    
  4. Se você tiver várias assinaturas do Azure, defina a assinatura ativa como aquela que você está usando em seu workspace. (Você pode ignorar esta etapa se tiver acesso apenas a uma única assinatura.) Substitua <SUBSCRIPTION-NAME> pelo nome da assinatura. Remova também os colchetes <>.

    az account set --subscription "<SUBSCRIPTION-NAME>"
    
  5. Agora, use a CLI para enviar o trabalho. Se você estiver fazendo isso em uma instância de computação em seu workspace, poderá usar variáveis de ambiente para o nome do workspace e o grupo de recursos, conforme mostrado no código a seguir. Se você não estiver em uma instância de computação, substitua esses valores pelo nome do workspace e pelo grupo de recursos.

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

Depois de enviar o trabalho, você pode verificar o status e os resultados no estúdio:

  1. Entre no Estúdio do Azure Machine Learning.
  2. Selecione o workspace, se ele ainda não tiver sido carregado.
  3. Na navegação à esquerda, selecione Trabalhos.
  4. Selecione o Nome do experimento que você usou para treinar seu modelo.
  5. Selecione o Nome de exibição do trabalho para exibir detalhes e artefatos do trabalho, incluindo métricas, imagens, trabalhos filho, saídas, logs e código usados no trabalho.

Registrar modelo

Por fim, depois que o trabalho de treinamento for concluído, registre seu modelo se quiser implantá-lo. Comece no estúdio na página mostrando os detalhes do trabalho.

  1. Depois que o trabalho for concluído, selecione Saídas + logs para exibir saídas do trabalho.

  2. Abra a pasta models para verificar se crate.bin e MLmodel estão presentes. Caso contrário, verifique os logs para ver se houve um erro.

  3. Na barra de ferramentas na parte superior, selecione + Registrar modelo.

    A captura de tela mostra a seção Trabalho do estúdio com a seção Saídas aberta.

  4. Não use o tipo de modelo MLflow, mesmo que ele seja detectado. Altere Tipo de modelo do padrão MLflow para Tipo não especificado. Deixá-lo como MLflow causará um erro.

  5. Para Saída do trabalho, selecione modelos, a pasta que contém o modelo.

  6. Selecione Avançar.

  7. Forneça o nome que você deseja usar para seu modelo. Adicione Descrição, Versão e Marcas, se desejar.

  8. Selecione Avançar.

  9. Revise as informações.

  10. Selecione Registrar.

Na parte superior da página, você verá uma confirmação de que o modelo está registrado. A confirmação é semelhante a esta:

A captura de tela mostra um exemplo de registro bem-sucedido.

Selecione Clique aqui para acessar este modelo. se você quiser exibir os detalhes do modelo registrado.

Próximas etapas

Agora que você tem um modelo registrado, saiba Como implantar um modelo do R em um ponto de extremidade online (em tempo real).