Compartir a través de


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. Asegúrese de seguir los pasos para crear y registrar el modelo en este script.
  • El archivo azureml_utils.R es necesario. Use este código fuente para el contenido del archivo.

Preparación del YAML del trabajo

La CLI v2 de Azure Machine Learning tiene diferentes esquemas YAML para diferentes operaciones. Se usa el esquema de trabajo YAML para enviar un trabajo en el archivo job.yml que forma parte de este proyecto.

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

  • Nombre del recurso de datos registrado que usa 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. Una vez completado el trabajo, seleccione Salidas y registros para ver las salidas del trabajo.

  2. Abra la carpeta modelos para comprobar que crate.bin y MLmodel estén presentes. Si no es así, compruebe los registros para ver si se produjo un error.

  3. En la barra de herramientas de la parte superior, seleccione + Registrar modelo.

    Captura de pantalla que muestra la sección trabajo del estudio con la sección Salidas abierta.

  4. No use el tipo de modelo MLflow, aunque se detecte. Cambie Tipo de modelo de MLflow predeterminado a tipo no especificado. Si se deja como MLflow, se producirá un error.

  5. En Salida del trabajo, seleccione modelos, la carpeta que contiene el modelo.

  6. Seleccione Next (Siguiente).

  7. Proporcione el nombre que quiere usar para el modelo. Agregue Descripción, Versión y Etiquetas, si lo prefiere.

  8. Seleccione Next (Siguiente).

  9. Revisa la información.

  10. Seleccione Registrar.

En la parte superior de la página, verá una confirmación de que el modelo está registrado. La confirmación tiene un aspecto similar al siguiente:

Captura de pantalla que muestra un registro correcto.

Seleccione Haga clic aquí para ir a este modelo. si desea ver los detalles del modelo 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).