SE APLICA A:
Extensión ML de la CLI de Azure v2 (actual)
SDK de Python azure-ai-ml v2 (actual)
En este artículo, aprenderá a implementar un modelo de Machine Learning entrenado por AutoML en un punto de conexión en línea de inferencia en tiempo real. El aprendizaje automático automatizado, también denominado ML automatizado o AutoML, es el proceso de automatizar las tareas lentas e iterativas del desarrollo de modelos de Machine Learning. Para más información, vea ¿Qué es el aprendizaje automático automatizado (AutoML)?
En las secciones siguientes, aprenderá a implementar el modelo de Machine Learning entrenado con AutoML en puntos de conexión en línea usando:
- Azure Machine Learning Studio
- CLI de Azure Machine Learning (v2)
- SDK de Python de Azure Machine Learning v2
Prerrequisitos
Implementación desde el Estudio de Azure Machine Learning y sin código
La implementación de un modelo entrenado por AutoML desde la página de ML automatizado es una experiencia sin código. Es decir, no es necesario preparar un script y un entorno de puntuación, ya que ambos se generan automáticamente.
En Estudio de Azure Machine Learning, vaya a la página ML automatizado.
Seleccione el tipo de experimento y ejecútelo.
Elija la pestaña Modelos y trabajos secundarios.
Seleccione el modelo que quiere implementar.
Después de seleccionar un modelo, el botón Implementar está disponible con un menú desplegable.
Seleccione la opción Punto de conexión en tiempo real.
El sistema genera el modelo y el entorno necesarios para la implementación.
Implementación manual desde Studio o la línea de comandos
Si quiere tener más control sobre la implementación, puede descargar los artefactos de entrenamiento e implementarlos.
Para descargar los componentes que necesitará para la implementación:
Vaya al experimento de ML automatizado y ejecútelo en el área de trabajo de aprendizaje automático.
Elija la pestaña Modelos y trabajos secundarios.
Seleccione el modelo que quiere usar. Después de seleccionar un modelo, el botón Descargar está habilitado.
Elija Descargar.
Recibirá un archivo .zip que contiene:
- Un archivo de especificación de entorno de Conda llamado conda_env_<VERSION>.yml
- Un archivo de puntuación de Python llamado scoring_file_<VERSION>.py
- El modelo en sí, en un archivo de Python .pkl llamado model.pkl
Para realizar la implementación con estos archivos, puede usar Studio o la CLI de Azure.
- En Estudio de Azure Machine Learning, vaya a la página Modelos.
- Seleccione + Registrar>Desde archivos locales.
- Registre el modelo que descargó de la ejecución de ML automatizado.
- Vaya a la página Entornos, seleccione Entorno personalizado, y seleccione + Crear para crear un entorno para su implementación. Use el YAML de Conda descargado para crear un entorno personalizado.
- Seleccione el modelo y, en el menú desplegable de Implementación, seleccione Punto de conexión en tiempo real.
- Complete todos los pasos del asistente para crear un punto de conexión en línea y una implementación.
SE APLICA A:
Extensión de ML de la CLI de Azure v2 (actual)
Para crear una implementación desde la CLI, necesitará la CLI de Azure con la extensión de ML v2. Ejecute el siguiente comando para confirmar:
az version
Si recibe un mensaje de error o Extensions: ml no aparece en la respuesta, siga los pasos descritos en Instalación y configuración de la CLI (v2).
Inicia sesión.
az login
Si tiene acceso a varias suscripciones de Azure, puede establecer la suscripción de Azure.
az account set -s "<YOUR_SUBSCRIPTION_NAME_OR_ID>"
Establezca el grupo de recursos y el área de trabajo predeterminados en los que quiere crear la implementación.
az configure --defaults group=$GROUP workspace=$WORKSPACE location=$LOCATION
Disposición del archivo de puntuación en su propio directorio
Cree un directorio denominado src. Guarde el archivo de puntuación que descargó en él. Este directorio se carga en Azure y contiene todo el código fuente necesario para realizar la inferencia. Para un modelo de AutoML, solo hay un archivo de puntuación.
Creación del punto de conexión y el archivo YAML de implementación
Para crear un punto de conexión en línea desde la línea de comandos, cree un archivo endpoint.yml y uno deployment.yml. El código siguiente, tomado del repositorio de ejemplos de Azure Machine Learning muestra endpoints/online/managed/sample/, que captura todas las entradas necesarias.
automl_endpoint.yml
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineEndpoint.schema.json
name: my-endpoint
auth_mode: key
automl_deployment.yml
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
endpoint_name: my-endpoint
model:
path: ../../model-1/model/
code_configuration:
code: ../../model-1/onlinescoring/
scoring_script: score.py
environment:
conda_file: ../../model-1/environment/conda.yaml
image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu22.04:latest
instance_type: Standard_DS3_v2
instance_count: 1
Deberá modificar este archivo para usar los archivos que descargó de la página Modelos de AutoML.
Cree un archivo automl_endpoint.yml y automl_deployment.yml y pegue el contenido de los ejemplos anteriores.
Cambie el valor del name del punto de conexión. El nombre del punto de conexión debe ser único dentro de la región de Azure. El nombre de un punto de conexión debe empezar con una letra mayúscula o minúscula y estar formado solo por caracteres "-" y alfanuméricos.
En el archivo automl_deployment.yml, cambie el valor de las claves en las siguientes rutas de acceso.
| Ruta |
Cambiar a |
model:path |
Ruta de acceso al archivo model.pkl que descargó. |
code_configuration:code:path |
El directorio en el que ha colocado el archivo de puntuación. |
code_configuration:scoring_script |
Nombre del archivo de puntuación de Python (scoring_file_<VERSION>.py). |
environment:conda_file |
Dirección URL del archivo de entorno de Conda descargado (conda_env_<VERSION>.yml). |
En la línea de comandos, ejecute:
SE APLICA A:
Extensión de ML de la CLI de Azure v2 (actual)
az ml online-endpoint create -f automl_endpoint.yml
az ml online-deployment create -f automl_deployment.yml
Después de crear una implementación, puede puntuar como se describe en Invocación del punto de conexión para puntuar datos mediante el modelo.
SE APLICA A:
SDK de Python azure-ai-ml v2 (actual)
Si necesita instalar el SDK de Python v2, instale con este comando:
pip install azure-ai-ml azure-identity
Para más información, consulte Instalación del SDK de Azure Machine Learning para Python v2.
Disposición del archivo de puntuación en su propio directorio
Cree un directorio denominado src. Guarde el archivo de puntuación que descargó en él. Este directorio se carga en Azure y contiene todo el código fuente necesario para realizar la inferencia. Para un modelo de AutoML, solo hay un archivo de puntuación.
Conexión al área de trabajo de Azure Machine Learning
Importe las bibliotecas necesarias.
# import required libraries
from azure.ai.ml import MLClient
from azure.ai.ml.entities import (
ManagedOnlineEndpoint,
ManagedOnlineDeployment,
Model,
Environment,
CodeConfiguration,
)
from azure.identity import DefaultAzureCredential
Configure los detalles del área de trabajo y obtenga un controlador para el área de trabajo.
# enter details of your Azure Machine Learning workspace
subscription_id = "<SUBSCRIPTION_ID>"
resource_group = "<RESOURCE_GROUP>"
workspace = "<AZUREML_WORKSPACE_NAME>"
# get a handle to the workspace
ml_client = MLClient(
DefaultAzureCredential(), subscription_id, resource_group, workspace
)
Creación del punto de conexión y la implementación
Cree los puntos de conexión en línea administrados y las implementaciones.
Configure el punto de conexión en línea.
Sugerencia
-
name: Nombre del punto de conexión. El valor debe ser único dentro de la región de Azure. El nombre de un punto de conexión debe empezar con una letra mayúscula o minúscula y estar formado solo por caracteres "-" y alfanuméricos. Para más información sobre las reglas de nomenclatura, vea los límites del punto de conexión.
-
auth_mode: use key para la autenticación basada en claves. Use aml_token para la autenticación basada en tokens de Azure Machine Learning.
key no expira, pero aml_token sí lo hace. Para más información sobre la autenticación, consulte Autenticación en un punto de conexión en línea.
# Creating a unique endpoint name with current datetime to avoid conflicts
import datetime
online_endpoint_name = "endpoint-" + datetime.datetime.now().strftime("%m%d%H%M%f")
# create an online endpoint
endpoint = ManagedOnlineEndpoint(
name=online_endpoint_name,
description="this is a sample online endpoint",
auth_mode="key",
)
Cree el punto de conexión.
Con el MLClient creado anteriormente, cree el punto de conexión en el área de trabajo. Este comando inicia la creación del punto de conexión. Devuelve una respuesta de confirmación mientras continúa la creación del punto de conexión.
ml_client.begin_create_or_update(endpoint)
Configure la implementación en línea.
Una implementación es un conjunto de recursos necesarios para hospedar el modelo que realiza la inferencia real. Creamos una implementación para nuestro punto final utilizando la clase ManagedOnlineDeployment.
model = Model(path="./src/model.pkl")
env = Environment(
conda_file="./src/conda_env_v_1_0_0.yml",
image="mcr.microsoft.com/azureml/openmpi3.1.2-ubuntu18.04:latest",
)
blue_deployment = ManagedOnlineDeployment(
name="blue",
endpoint_name=online_endpoint_name,
model=model,
environment=env,
code_configuration=CodeConfiguration(
code="./src", scoring_script="scoring_file_v_2_0_0.py"
),
instance_type="Standard_DS2_v2",
instance_count=1,
)
En este ejemplo, los archivos que descargó de la página Modelos de AutoML se encuentran en el directorio src. Puede modificar los parámetros en el código para adaptarlos a su situación.
| Parámetro |
Cambiar a |
model:path |
Ruta de acceso al archivo model.pkl que descargó. |
code_configuration:code:path |
El directorio en el que ha colocado el archivo de puntuación. |
code_configuration:scoring_script |
Nombre del archivo de puntuación de Python (scoring_file_<VERSION>.py). |
environment:conda_file |
Dirección URL del archivo de entorno de Conda descargado (conda_env_<VERSION>.yml). |
Cree la implementación.
Mediante MLClient creado anteriormente, cree la implementación en el área de trabajo. Este comando comienza a crear la implementación. Devuelve una respuesta de confirmación mientras continúa la creación de la implementación.
ml_client.begin_create_or_update(blue_deployment)
Después de crear una implementación, puede puntuarla como se describe en Probar el punto de conexión con datos de ejemplo.
Para más información sobre la implementación en puntos de conexión en línea administrados con el SDK, consulte Implementación y puntuación de un modelo de aprendizaje automático mediante un punto de conexión en línea.
Contenido relacionado