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
- Un área de trabajo de Azure Machine Learning.
- Un recurso de datos registrado que usa el trabajo de entrenamiento.
- La CLI de Azure y la extensión ml instaladas. O use una instancia de proceso en el área de trabajo, que tiene la CLI preinstalada.
- Un clúster de proceso o una instancia de proceso para ejecutar el trabajo de entrenamiento.
- Un entorno de R que el clúster de proceso use para ejecutar el trabajo.
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:
- Inicie sesión y abra el área de trabajo.
- En la barra de herramientas de Estudio de Azure Machine Learning superior derecha, seleccione el nombre del área de trabajo.
- Puede copiar los valores de la sección que aparece.
Para enviar el trabajo, ejecute los siguientes comandos en una ventana de terminal:
Cambie los directorios a
r-job-azureml
.cd r-job-azureml
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.Asegúrese de que tiene las versiones más recientes de la CLI y la extensión
ml
:az upgrade
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>"
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:
- Inicie sesión en Azure Machine Learning Studio.
- Seleccione el área de trabajo si aún no está cargada.
- En el panel de navegación izquierdo, seleccione Trabajos.
- Seleccione el nombre del experimento que usó para entrenar el modelo.
- 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.
Una vez completado el trabajo, seleccione Salidas y registros para ver las salidas del trabajo.
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.
En la barra de herramientas de la parte superior, seleccione + Registrar modelo.
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.
En Salida del trabajo, seleccione modelos, la carpeta que contiene el modelo.
Seleccione Next (Siguiente).
Proporcione el nombre que quiere usar para el modelo. Agregue Descripción, Versión y Etiquetas, si lo prefiere.
Seleccione Next (Siguiente).
Revisa la información.
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:
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).