Ejecución de un trabajo de R para entrenar un modelo

SE APLICA A:Extensión de ML de la CLI de Azure v2 (actual)

En este artículo se explica cómo tomar el script de R que ha adaptado para ejecutarlo en producción y configurarlo para ejecutarlo como un trabajo de R mediante la CLI V2 de Azure Machine Learning.

Nota

Aunque el título de este artículo hace referencia al entrenamiento de un modelo, puede ejecutar cualquier tipo de script de R siempre que cumpla los requisitos enumerados en el artículo de adaptación.

Requisitos previos

Creación de una carpeta con esta estructura

Cree esta estructura de carpetas para el proyecto:

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

Importante

Todo el código fuente debe estar en el directorio src.

  • El archivo r-source.R es el script de R que ha adaptado para ejecutarlo en producción.
  • El archivo azureml_utils.R es necesario. El código fuente se muestra aquí.

Preparación del YAML del trabajo

La CLI v2 de Azure Machine Learning tiene diferentes esquemas YAML para diferentes operaciones. Usará el esquema YAML de trabajo para enviar un trabajo. Este es el archivo job.yml que forma parte de este proyecto.

Tendrá que recopilar fragmentos de información específicos para colocarlos en el archivo YAML:

  • Nombre del recurso de datos registrado que usará como entrada de datos (con la versión): azureml:<REGISTERED-DATA-ASSET>:<VERSION>
  • Nombre del entorno que creó (con la versión): azureml:<R-ENVIRONMENT-NAME>:<VERSION>
  • Nombre del clúster de proceso: azureml:<COMPUTE-CLUSTER-NAME>

Sugerencia

En el caso de los artefactos de Azure Machine Learning que necesitan versiones (recursos de datos o entornos), puede usar el URI de acceso directo azureml:<AZUREML-ASSET>@latest para obtener la versión más reciente de ese artefacto si no necesita establecer una específica.

Esquema YAML de ejemplo para enviar un trabajo

Edite el archivo job.yml para que contenga lo siguiente. Asegúrese de reemplazar los valores que se muestran <IN-BRACKETS-AND-CAPS> y quite los corchetes.

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

En los siguientes comandos de esta sección, es posible que tenga que saber lo siguiente:

  • Nombre del área de trabajo de Azure Machine Learning
  • Nombre del grupo de recursos donde está el área de trabajo
  • Suscripción donde está el área de trabajo

Busque estos valores en el Estudio de Azure Machine Learning:

  1. Inicie sesión y abra el área de trabajo.
  2. En la barra de herramientas de Estudio de Azure Machine Learning superior derecha, seleccione el nombre del área de trabajo.
  3. Puede copiar los valores de la sección que aparece.

Captura de pantalla: busque los valores que se van a usar en el comando de la CLI.

Para enviar el trabajo, ejecute los siguientes comandos en una ventana de terminal:

  1. Cambie los directorios a r-job-azureml.

    cd r-job-azureml
    
  2. Inicie sesión en Azure. Si lo hace desde una instancia de proceso de Azure Machine Learning, use:

    az login --identity
    

    Si no está en la instancia de proceso, omita --identity y siga las indicaciones para abrir una ventana del explorador para autenticarse.

  3. Asegúrese de que tiene las versiones más recientes de la CLI y la extensión ml:

    az upgrade
    
  4. Si tiene varias suscripciones de Azure, establezca la suscripción activa en la que use para el área de trabajo. (Puede omitir este paso si solo tiene acceso a una sola suscripción). Reemplace <SUBSCRIPTION-NAME> por el nombre de la suscripción. Quite también los corchetes <>.

    az account set --subscription "<SUBSCRIPTION-NAME>"
    
  5. Ahora, use la CLI para enviar el trabajo. Si lo hace en una instancia de proceso en el área de trabajo, puede usar variables de entorno para el nombre del área de trabajo y el grupo de recursos como se muestra en el código siguiente. Si no está en una instancia de proceso, reemplace estos valores por el nombre del área de trabajo y el grupo de recursos.

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

Una vez que haya enviado el trabajo, puede comprobar el estado y los resultados en Studio:

  1. Inicie sesión en Azure Machine Learning Studio.
  2. Seleccione el área de trabajo si aún no está cargada.
  3. En el panel de navegación izquierdo, seleccione Trabajos.
  4. Seleccione el nombre del experimento que usó para entrenar el modelo.
  5. Seleccione el nombre para mostrar del trabajo para ver los detalles y los artefactos del trabajo, incluidas las métricas, las imágenes, los trabajos secundarios, las salidas, los registros y el código usados en el trabajo.

Registro del modelo

Por último, una vez completado el trabajo de entrenamiento, registre el modelo si quiere implementarlo. Comience en Studio desde la página en la que se muestran los detalles del trabajo.

  1. En la barra de herramientas de la parte superior, seleccione + Registrar modelo.
  2. Seleccione Tipo no especificado en Tipo de modelo.
  3. Seleccione la carpeta que contiene el modelo.
  4. Seleccione Next (Siguiente).
  5. Proporcione el nombre que quiere usar para el modelo. Agregue Descripción, Versión y Etiquetas, si lo prefiere.
  6. Seleccione Next (Siguiente).
  7. Revisa la información.
  8. Seleccione Registrar.

Verá una confirmación de que el modelo está registrado.

Pasos siguientes

Ahora que tiene un modelo registrado, aprenda a implementar un modelo de R en un punto de conexión en línea (en tiempo real).