Funcionamiento de Azure Machine Learning: recursos

SE APLICA A:Extensión ML de la CLI de Azure v2 (actual)SDK de Python azure-ai-ml v2 (actual)

Este artículo se aplica a la segunda versión de la CLI de Azure Machine Learning y el SDK de Python (v2). Para la versión uno (v1), consulte Funcionamiento de Azure Machine Learning: arquitectura y conceptos (v1).

Azure Machine Learning incluye varios recursos y activos para permitirle realizar las tareas de aprendizaje automático. Estos recursos y activos son necesarios para ejecutar cualquier trabajo.

  • Recursos: recursos de configuración o infraestructura necesarios para ejecutar un flujo de trabajo de aprendizaje automático. Estos recursos son:
  • Activos: creados mediante comandos de Azure Machine Learning o como parte de una ejecución de entrenamiento o puntuación. Los activos tienen versiones y se pueden registrar en el área de trabajo de Azure Machine Learning. Incluyen:

En este documento se proporciona una introducción rápida a estos recursos y activos.

Requisitos previos

Para usar los ejemplos de código del SDK de Python de este artículo:

  1. Instale el SDK v2 de Python.

  2. Cree una conexión a la suscripción de Azure Machine Learning. Todos los ejemplos se basan en ml_client. Para crear un área de trabajo, la conexión no necesita un nombre de área de trabajo, ya que es posible que aún no tenga uno. Todos los demás ejemplos de este artículo requieren que el nombre del área de trabajo se incluya en la conexión.

    # import required libraries
    from azure.ai.ml import MLClient
    from azure.ai.ml.entities import Workspace
    from azure.identity import DefaultAzureCredential
    
    # Enter details of your subscription
    subscription_id = "<SUBSCRIPTION_ID>"
    resource_group = "<RESOURCE_GROUP>"
    
    # get a handle to the subscription (use this if you haven't created a workspace yet)
    ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group)
    
    # all other examples in this article require the connection to include workspace name
    workspace_name = "<WORKSPACE_NAME>"
    ml_client = ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group, workspace_name)
    

Área de trabajo

El área de trabajo es el recurso de nivel superior para Azure Machine Learning, que proporciona un lugar centralizado para trabajar con todos los artefactos que crea al usar Azure Machine Learning. El área de trabajo conserva un historial de todos los trabajos, como registros, métricas, resultados y una instantánea de sus scripts. El área de trabajo almacena referencias a recursos como almacenes de datos y proceso. También contiene todos los activos, como modelos, entornos, componentes y activos de datos.

Creación de un área de trabajo

Para crear un área de trabajo mediante el SDK v2 de Python, puede usar el código siguiente:

SE APLICA A: SDK de Python azure-ai-ml v2 (actual)

# specify the workspace details
ws = Workspace(
    name="my_workspace",
    location="eastus",
    display_name="My workspace",
    description="This example shows how to create a workspace",
    tags=dict(purpose="demo"),
)

ml_client.workspaces.begin_create(ws) # use MLClient to connect to the subscription and resource group and create workspace

En este cuaderno de Jupyter Notebook se muestran más formas de crear un área de trabajo de Azure Machine Learning mediante el SDK v2.

Proceso

Un proceso es un recurso de proceso designado en el que se ejecuta el trabajo o se hospeda el punto de conexión. Azure Machine Learning admite los siguientes tipos de proceso:

  • Instancia de proceso: un entorno de desarrollo completamente configurado y administrado en la nube. Puede usar la instancia como proceso de entrenamiento o inferencia para desarrollo y pruebas. Es similar a una máquina virtual en la nube.
  • Clúster de proceso: una infraestructura de proceso administrada que permite crear fácilmente un clúster de nodos de proceso de CPU o GPU en la nube.
  • Proceso sin servidor: un clúster de proceso al que accede sobre la marcha. Al usar un proceso sin servidor, no es necesario crear su propio clúster. Toda la administración del ciclo de vida del proceso se descarga en Azure Machine Learning.
  • Clúster de inferencia: se usa para implementar modelos de aprendizaje automático entrenados en Azure Kubernetes Service. Puede crear un clúster de Azure Kubernetes Service (AKS) desde el área de trabajo de Azure Machine Learning o asociar un clúster de AKS existente.
  • Proceso asociado : puede asociar sus propios recursos de proceso al área de trabajo y usarlos para el entrenamiento y la inferencia.

Crear un perfil

Para crear un clúster de proceso mediante el SDK v2 de Python, puede usar el código siguiente:

SE APLICA A: SDK de Python azure-ai-ml v2 (actual)

cluster_basic = AmlCompute(
    name="basic-example",
    type="amlcompute",
    size="STANDARD_DS3_v2",
    location="westus",
    min_instances=0,
    max_instances=2,
    idle_time_before_scale_down=120,
)
ml_client.begin_create_or_update(cluster_basic)

En este cuaderno de Jupyter Notebook se muestran más formas de crear proceso mediante el SDK v2.

Almacén de datos

Los almacenes de datos de Azure Machine Learning conservan de forma segura la información de conexión en el almacenamiento de datos de Azure, por lo que no tiene que codificarla en los scripts. Puede registrar y crear un almacén de datos para conectarse fácilmente a la cuenta de almacenamiento y acceder a los datos del servicio de almacenamiento subyacente. La CLI v2 y SDK v2 admiten los siguientes tipos de servicios de almacenamiento basados en la nube:

  • Azure Blob Container
  • Recurso compartido de archivos de Azure
  • Azure Data Lake
  • Azure Data Lake Gen2

Creación de un almacén de datos

Para crear un almacén de datos mediante el SDK v2 de Python, puede usar el código siguiente:

SE APLICA A: SDK de Python azure-ai-ml v2 (actual)

import AzureBlobDatastore

blob_datastore1 = AzureBlobDatastore(
    name="blob_example",
    description="Datastore pointing to a blob container.",
    account_name="mytestblobstore",
    container_name="data-container",
    credentials={
        "account_key": "XXXxxxXXXxXXXXxxXXXXXxXXXXXxXxxXxXXXxXXXxXXxxxXXxxXXXxXxXXXxxXxxXXXXxxxxxXXxxxxxxXXXxXXX"
    },
)
ml_client.create_or_update(blob_datastore1)

En este cuaderno de Jupyter Notebook se muestran más formas de crear almacenes de datos mediante el SDK v2.

Para obtener más información sobre el uso de un almacén de datos, consulte Creación y administración de recursos de datos.

Modelo

Los modelos de Azure Machine Learning constan de los archivos binarios que representan un modelo de aprendizaje automático y los metadatos correspondientes. Los modelos se pueden crear a partir de un archivo o directorio local o remoto. En el caso de las ubicaciones remotas, se admiten las ubicaciones https, wasbs y azureml. Se realizará un seguimiento del modelo creado en el área de trabajo con el nombre y la versión especificados. Azure Machine Learning admite tres tipos de formato de almacenamiento para los modelos:

  • custom_model
  • mlflow_model
  • triton_model

Creación de un modelo en el registro de modelos

El registro de modelos le permite almacenar y versionar los modelos en la nube de Azure, en su área de trabajo. El registro de modelos le permite organizar los modelos entrenados y llevar un seguimiento de los mismos.

Para más información sobre cómo crear modelos en el registro, consulte Uso de modelos en Azure Machine Learning.

Entorno

Los entornos de Azure Machine Learning son una encapsulación del entorno en el que se produce el entrenamiento del aprendizaje automático. Especifican los paquetes de software, las variables de entorno y la configuración de software en torno a los scripts de entrenamiento y puntuación. Los entornos son entidades administradas y con control de versiones en el área de trabajo de Machine Learning. Los entornos permiten flujos de trabajo de aprendizaje automático reproducibles, auditables y portátiles en una variedad de procesos.

Tipos de entorno

Azure Machine Learning admite dos tipos de entornos: mantenidos y personalizados.

Los entornos mantenidos los proporciona Azure Machine Learning y están disponibles en el área de trabajo de forma predeterminada. Están concebidos para usarse tal cual; contienen colecciones de paquetes y configuraciones de Python que le ayudarán a empezar a usar diferentes marcos de aprendizaje automático. Estos entornos creados previamente también permiten un tiempo de implementación más rápido. Para obtener una lista completa, consulte el artículo sobre los entornos mantenidos.

En los entornos personalizados, es responsable de configurar el entorno e instalar paquetes o cualquier otra dependencia que necesite el script de entrenamiento o puntuación en el proceso. Azure Machine Learning permite crear un entorno propio mediante:

  • Una imagen de Docker
  • Una imagen base de Docker con un YAML de Conda para mayor personalización
  • Un contexto de compilación de Docker

Creación de un entorno personalizado de Azure Machine Learning

Para crear un entorno mediante el SDK v2 de Python, consulte Creación de un entorno.

En este cuaderno de Jupyter Notebook se muestran más formas de crear entornos personalizados mediante el SDK v2.

Data

Azure Machine Learning permite trabajar con diferentes tipos de datos:

  • URI (una ubicación en el almacenamiento local o en la nube)
    • uri_folder
    • uri_file
  • Tablas (una abstracción de datos tabulares)
    • mltable
  • Primitivas
    • string
    • boolean
    • number

En la mayoría de los escenarios, usará URI (uri_folder y uri_file): una ubicación en el almacenamiento que se puede asignar fácilmente al sistema de archivos de un nodo de proceso en un trabajo montando o descargando el almacenamiento en el nodo.

mltable es una abstracción de los datos tabulares que se van a usar para trabajos de AutoML, trabajos paralelos y algunos escenarios avanzados. Si acaba de empezar a usar Azure Machine Learning y no usa AutoML, le recomendamos encarecidamente que empiece por los URI.

Componente

Un componente de Azure Machine Learning es un fragmento de código independiente que realiza un paso en una canalización de aprendizaje automático. Los componentes son los bloques de creación de las canalizaciones de aprendizaje automático avanzadas. Los componentes pueden realizar tareas como el procesamiento de datos, el entrenamiento de modelos, la puntuación de modelos, etc. Un componente es análogo a una función: tiene un nombre, parámetros, espera una entrada y devuelve una salida.

Pasos siguientes