Compartir vía


Tutorial: Inicio con un script de Python en Azure Machine Learning (SDK v1, parte 1 de 3)

SE APLICA A: Azure ML del SDK de Python v1

En este tutorial, ejecutará su primer script de Python en la nube con Azure Machine Learning. Este tutorial es parte 1 de una serie de tutoriales de dos partes.

En este tutorial se evita la complejidad del entrenamiento de un modelo de Machine Learning. Ejecutará un script de Python "Hola mundo" en la nube. Aprenderá cómo se usa un script de control para configurar y crear una ejecución en Azure Machine Learning.

En este tutorial, aprenderá lo siguiente:

  • Creación y ejecución de un "Hola mundo" Script de Python.
  • Crear un script de control de Python para enviar "Hola mundo" a Azure Machine Learning.
  • Comprender los conceptos de Azure Machine Learning en el script de control.
  • Envíe y ejecute el script "Hola mundo".
  • Ver la salida del código en la nube.

Requisitos previos

Creación y ejecución de un script de Python

En este tutorial se usa la instancia de proceso como equipo de desarrollo. En primer lugar, cree algunas carpetas y el script:

  1. Inicie sesión en Estudio de Azure Machine Learning y seleccione el área de trabajo si se le solicita.
  2. Seleccione Notebooks en la parte izquierda.
  3. En la barra de herramientas de Archivos, seleccione + y, a continuación, seleccione Crear nueva carpeta. Instantánea que muestra cómo crear la herramienta de carpeta nueva en la barra de herramientas.
  4. Asigne a la carpeta el nombre Empezar.
  5. A la derecha del nombre de la carpeta, use ... para crear otra carpeta dentro de la carpeta Empezar. Instantánea que muestra cómo crear un menú de subcarpetas.
  6. Asigne a la nueva carpeta el nombre src. Use el vínculo Editar ubicación si la ubicación del archivo no es correcta.
  7. A la derecha de la carpeta src, use ... para crear un nuevo archivo en la carpeta src.
  8. Asigne al archivo el nombre hello.py. Cambie el tipo de archivo a Python ( .py)*.

Copie este código en el archivo:

# src/hello.py
print("Hello world!")

Ahora la estructura de carpetas del proyecto tendrá el siguiente aspecto:

La estructura de carpetas muestra hello.py en la subcarpeta src.

Prueba del script

Puede ejecutar el código de forma local, lo que en este caso significa en la instancia de proceso. Ejecutar el código localmente tiene la ventaja de la depuración interactiva del código.

Si ha detenido previamente la instancia de proceso, iníciela ahora con la herramienta Iniciar proceso a la derecha de la lista desplegable de procesos. Espere aproximadamente un minuto para que el estado cambie a En ejecución.

Captura de pantalla que muestra el inicio de la instancia de proceso si se detiene

Seleccione Guardar y ejecutar script en el terminal para ejecutar el script.

Captura de pantalla que muestra cómo guardar y ejecutar el script en la herramienta de terminal en la barra de herramientas

Verá la salida del script en la ventana de terminal que se abre. Cierre la pestaña y seleccione Finalizar para cerrar la sesión.

Creación de un script de control

Un script de control le permite ejecutar el script hello.py en distintos recursos de proceso. El script de control se usa para controlar cómo y dónde se ejecuta el código de aprendizaje automático.

Seleccione ... al final de la carpeta Empezar para crear un archivo nuevo. Cree un archivo de Python denominado run-hello.py, y copie y pegue el código siguiente en este archivo:

# get-started/run-hello.py
from azureml.core import Workspace, Experiment, Environment, ScriptRunConfig

ws = Workspace.from_config()
experiment = Experiment(workspace=ws, name='day1-experiment-hello')

config = ScriptRunConfig(source_directory='./src', script='hello.py', compute_target='cpu-cluster')

run = experiment.submit(config)
aml_url = run.get_portal_url()
print(aml_url)

Sugerencia

Si usó un nombre diferente al crear el clúster de proceso, asegúrese de ajustar también el nombre en el código compute_target='cpu-cluster'.

Comprendiendo el código

Esta es una descripción de cómo funciona el script de control:

ws = Workspace.from_config()

El área de trabajo se conecta al área de trabajo de Azure Machine Learning para que pueda comunicarse con los recursos de Azure Machine Learning.

experiment = Experiment( ... )

Experiment proporciona una manera sencilla de organizar varios trabajos con un solo nombre. Más adelante, podrá ver cómo los experimentos facilitan la comparación de métricas entre decenas de trabajos.

config = ScriptRunConfig( ... )

ScriptRunConfig ajusta el código hello.py y lo pasa al área de trabajo. Como sugiere su nombre, puede usar esta clase para configurar cómo quiera el script para su ejecución en Azure Machine Learning. También especifica en qué destino de proceso se ejecuta el script. En este código, el destino es el clúster de proceso que creó en el tutorial de configuración.

run = experiment.submit(config)

Envía el script. Este envío se denomina ejecución. En la versión 2, se ha cambiado el nombre a trabajo. Un trabajo (o ejecución) encapsula una sola ejecución del código. Use un trabajo para supervisar el progreso del script, capturar la salida, analizar los resultados, visualizar las métricas, etc.

aml_url = run.get_portal_url()

El objeto run proporciona un identificador en la ejecución del código. Supervise su progreso desde el Estudio de Azure Machine Learning con la dirección URL que imprime desde el script de Python.

Envío y ejecución del código en la nube

  1. Seleccione Guardar y ejecutar el script en el terminal para ejecutar el script de control, que a su vez ejecuta hello.py en el clúster de proceso que creó en el tutorial de configuración.

  2. En el terminal, es posible que se le pida que inicie sesión para autenticarse. Copie el código y siga el vínculo para completar este paso.

  3. Una vez autenticado, verá un vínculo en el terminal. Seleccione el vínculo para ver el trabajo.

Supervisión del código en la nube en Studio

La salida del script contiene un vínculo al estudio que tiene un aspecto similar al siguiente: https://ml.azure.com/experiments/hello-world/runs/<run-id>?wsid=/subscriptions/<subscription-id>/resourcegroups/<resource-group>/workspaces/<workspace-name>.

Siga el vínculo. Al principio, verá un estado de En cola o Preparar. La primera ejecución tarda entre 5 y 10 minutos en completarse. Esto se debe a lo siguiente:

  • Se crea una imagen de Docker en la nube.
  • Se cambia el tamaño del clúster de proceso de 0 a 1 nodo.
  • La imagen de Docker se descarga en el proceso.

Los trabajos posteriores son más rápidos (~15 segundos) ya que la imagen de Docker se almacena en caché en el proceso. Para probarlo, reenvíe el código siguiente después de haberse completado el primer trabajo.

Espere unos 10 minutos. Verá un mensaje que indica que el trabajo se ha completado. A continuación, use Actualizar para ver el cambio de estado a Completado. Una vez completado el trabajo, vaya a la pestaña Salidas y registros. Allí puede ver un archivo std_log.txt en la carpeta user_logs. La salida del script está en este archivo.

Las carpetas azureml-logs y system-logs contienen archivos que pueden ser útiles al depurar trabajos remotos en la nube.

Paso siguiente

En este tutorial, tomó un script "Hola mundo" sencillo y lo ejecutó en Azure. Vio cómo conectarse al área de trabajo de Azure Machine Learning, crear un experimento y enviar el código hello.py a la nube.

En el siguiente tutorial, se basará en estos aprendizajes para ejecutar algo más interesante que print("Hello world!").

Nota

Si quiere finalizar la serie de tutoriales aquí y no avanzar al paso siguiente, recuerde limpiar los recursos.