Creación y administración de una instancia de proceso de Azure Machine Learning con la CLI v1

SE APLICA A:Extensión de ML de la CLI de Azure v1Azure ML del SDK de Python v1

Aprenda a crear y administrar una instancia de proceso en el área de trabajo de Azure Machine Learning con la CLI v1.

Use una instancia de proceso como entorno de desarrollo completamente configurado y administrado en la nube. Para el desarrollo y las pruebas, también puede usar la instancia como un destino de proceso de entrenamiento o para un destino de inferencia. Una instancia de proceso puede ejecutar varios trabajos en paralelo y tiene una cola de trabajos. Como entorno de desarrollo, una instancia de proceso no se puede compartir con otros usuarios del área de trabajo.

Las instancias de proceso pueden ejecutar trabajos de manera segura en un entorno de red virtual, sin necesidad de que las empresas abran puertos SSH. El trabajo se ejecuta en un entorno con contenedores y empaqueta las dependencias del modelo en un contenedor de Docker.

En este artículo aprenderá a:

  • Crear una instancia de proceso
  • Administrar (iniciar, detener, reiniciar y eliminar) una instancia de proceso

Nota

En este artículo solo se explica cómo realizar estas tareas mediante la CLI v1. Para conocer formas más recientes de administrar una instancia de proceso, consulte Creación de un clúster de proceso de Azure Machine Learning.

Prerrequisitos

Crear

Importante

Los elementos marcados (versión preliminar) a continuación se encuentran actualmente en versión preliminar pública. Se ofrece la versión preliminar sin Acuerdo de Nivel de Servicio y no se recomienda para cargas de trabajo de producción. Es posible que algunas características no sean compatibles o que tengan sus funcionalidades limitadas. Para más información, consulte Términos de uso complementarios de las Versiones Preliminares de Microsoft Azure.

Tiempo estimado: Aproximadamente 5 minutos.

La creación de una instancia de proceso es un proceso único en el área de trabajo. Puede volver a usar el proceso como una estación de trabajo de desarrollo o como un destino de proceso para el entrenamiento. Puede tener varias instancias de proceso asociadas al área de trabajo.

Los núcleos dedicados por región por cuota de familia de máquinas virtuales y cuota regional total, que se aplica a la creación de instancias de proceso, se unifica y comparte con la cuota de clúster de proceso de Azure Machine Learning. La detención de la instancia de proceso no libera la cuota para garantizar que pueda reiniciar la instancia de proceso. No es posible cambiar el tamaño de la máquina virtual de la instancia de proceso una vez creada.

En el siguiente ejemplo se muestra cómo crear una instancia de proceso:

SE APLICA A:Azure ML del SDK de Python v1

import datetime
import time

from azureml.core.compute import ComputeTarget, ComputeInstance
from azureml.core.compute_target import ComputeTargetException

# Choose a name for your instance
# Compute instance name should be unique across the azure region
compute_name = "ci{}".format(ws._workspace_id)[:10]

# Verify that instance does not exist already
try:
    instance = ComputeInstance(workspace=ws, name=compute_name)
    print('Found existing instance, use it.')
except ComputeTargetException:
    compute_config = ComputeInstance.provisioning_configuration(
        vm_size='STANDARD_D3_V2',
        ssh_public_access=False,
        # vnet_resourcegroup_name='<my-resource-group>',
        # vnet_name='<my-vnet-name>',
        # subnet_name='default',
        # admin_user_ssh_public_key='<my-sshkey>'
    )
    instance = ComputeInstance.create(ws, compute_name, compute_config)
    instance.wait_for_completion(show_output=True)

Para más información acerca de las clases, los métodos y los parámetros que se usan en este ejemplo, consulte los siguientes documentos de referencia:

Administrar

Inicie, detenga, reinicie y elimine una instancia de proceso. Una instancia de proceso no se reduce verticalmente de forma automática, por lo que debe asegurarse de detener el recurso para evitar cargos continuos. Al detener una instancia de proceso, se cancela su asignación. A continuación, inícielo de nuevo cuando lo necesite. Si bien detener la instancia de proceso detiene la facturación de las horas de proceso, se le seguirá facturando por el disco, la dirección IP pública y el equilibrador de carga estándar.

Sugerencia

La instancia de proceso tiene un disco de SO de 120 GB. Si se queda sin espacio en disco, use el terminal para borrar al menos entre 1 y 2 GB antes de detener o reiniciar la instancia de proceso. No detenga la instancia de proceso mediante la emisión del comando sudo shutdown desde el terminal. El tamaño del disco temporal en la instancia de proceso depende del tamaño de máquina virtual elegido y se monta en /mnt.

SE APLICA A:Azure ML del SDK de Python v1

En todos los siguientes ejemplos, el nombre de la instancia de proceso es instance.

  • Obtener estado

    # get_status() gets the latest status of the ComputeInstance target
    instance.get_status()
    
  • Stop

    # stop() is used to stop the ComputeInstance
    # Stopping ComputeInstance will stop the billing meter and persist the state on the disk.
    # Available Quota will not be changed with this operation.
    instance.stop(wait_for_completion=True, show_output=True)
    
  • Start

    # start() is used to start the ComputeInstance if it is in stopped state
    instance.start(wait_for_completion=True, show_output=True)
    
  • Reinicio

    # restart() is used to restart the ComputeInstance
    instance.restart(wait_for_completion=True, show_output=True)
    
  • Eliminar

    # delete() is used to delete the ComputeInstance target. Useful if you want to re-use the compute name
    instance.delete(wait_for_completion=True, show_output=True)
    

RBAC de Azure permite controlar qué usuarios del área de trabajo pueden crear, eliminar, iniciar, detener y reiniciar una instancia de proceso. Todos los usuarios del rol colaborador y propietario del área de trabajo pueden crear, eliminar, iniciar, detener y reiniciar las instancias de proceso en el área de trabajo. Sin embargo, solo el creador de una instancia de proceso específica o el usuario asignado, si se creó en su nombre, tienen permiso para acceder a Jupyter, JupyterLab, RStudio y Posit Workbench (anteriormente, RStudio Workbench) en esa instancia de proceso. Una instancia de proceso está dedicada a un solo usuario que tenga acceso raíz. Ese usuario tiene acceso al elemento Jupyter/JupyterLab/RStudio/Posit Workbench que se ejecuta en la instancia. La instancia de proceso incluirá el inicio de sesión de usuario único y todas las acciones usarán la identidad de ese usuario para el RBAC de Azure y la atribución de ejecuciones de experimentos. El acceso SSH se controla mediante un mecanismo de clave pública-privada.

RBAC de Azure puede controlar estas acciones:

  • Microsoft.MachineLearningServices/workspaces/computes/read
  • Microsoft.MachineLearningServices/workspaces/computes/write
  • Microsoft.MachineLearningServices/workspaces/computes/delete
  • Microsoft.MachineLearningServices/workspaces/computes/start/action
  • Microsoft.MachineLearningServices/workspaces/computes/stop/action
  • Microsoft.MachineLearningServices/workspaces/computes/restart/action
  • Microsoft.MachineLearningServices/workspaces/computes/updateSchedules/action

Para crear una instancia de proceso, debe tener permisos para realizar las siguientes acciones:

  • Microsoft.MachineLearningServices/workspaces/computes/write
  • Microsoft.MachineLearningServices/workspaces/checkComputeNameAvailability/action

Pasos siguientes