Executar um trabalho R para treinar um modelo

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

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

Nota

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

Pré-requisitos

Criar uma pasta com esta estrutura

Crie esta estrutura de pastas para o seu projeto:

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

Importante

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

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

Preparar o trabalho YAML

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

Você precisa reunir informações específicas para colocar no YAML:

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

Gorjeta

Para artefatos do Azure Machine Learning que exigem versões (ativos de dados, ambientes), você pode usar o URI azureml:<AZUREML-ASSET>@latest de atalho para obter a versão mais recente desse artefato se não precisar definir uma versão específica.

Exemplo de esquema YAML para enviar um trabalho

Edite seu arquivo job.yml para conter o seguinte. Certifique-se de substituir os valores mostrados <IN-BRACKETS-AND-CAPS> e remover 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>

Submeter o trabalho

Nos seguintes comandos nesta seção, talvez você precise saber:

  • O nome do espaço de trabalho do Azure Machine Learning
  • O nome do grupo de recursos onde o espaço de trabalho está
  • A subscrição onde se encontra a área de trabalho

Encontre estes valores do estúdio de Aprendizado de Máquina do Azure:

  1. Inicie sessão e abra a sua área de trabalho.
  2. Na barra de ferramentas do estúdio do Azure Machine Learning no canto superior direito, selecione o nome do seu espaço de trabalho.
  3. Você pode copiar os valores da seção exibida.

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

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

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

    cd r-job-azureml
    
  2. Inicie sessão no Azure. Se você estiver fazendo isso a partir 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 ml extensão:

    az upgrade
    
  4. Se tiver várias subscrições do Azure, defina a subscrição ativa como a que está a utilizar para a sua área de trabalho. (Pode ignorar este passo se só tiver acesso a uma única subscrição.) Substitua <SUBSCRIPTION-NAME> pelo nome da sua subscrição. Remova também os suportes <>.

    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 espaço de trabalho, poderá usar variáveis de ambiente para o nome do espaço de trabalho 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 espaço de trabalho 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 em estúdio:

  1. Entre no estúdio do Azure Machine Learning.
  2. Selecione seu espaço de trabalho se ele ainda não estiver 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 para 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.

Registar o modelo

Por fim, quando o trabalho de treinamento estiver concluído, registre seu modelo se quiser implantá-lo. Comece no estúdio a partir da página que mostra os detalhes do seu trabalho.

  1. Quando o trabalho for concluído, selecione Saídas + logs para visualizar as saídas do trabalho.

  2. Abra a pasta models para verificar se crate.bin e MLmodel estão presentes. Se não, 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 detetado. Altere o tipo de modelo do MLflow padrão para o 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 Seguinte.

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

  8. Selecione Seguinte.

  9. Analise as informações.

  10. Selecione Registar.

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 ir para este modelo. se desejar visualizar os detalhes do modelo registado.

Próximos passos

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