En este artículo, aprenderá a implementar un modelo de Machine Learning entrenado por AutoML en un punto de conexión en línea (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, consulte ¿Qué es el aprendizaje automático automatizado (AutoML)?.
En este artículo, aprenderá a implementar un modelo de Machine Learning entrenado por AutoML en puntos de conexión en línea mediante:
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.
Vaya a la página de ML automatizado en Studio.
Seleccione el tipo de experimento y ejecútelo.
Elija la pestaña Modelos.
Seleccione el modelo que quiere implementar.
Una vez que seleccione un modelo, el botón Implementar se encenderá con un menú desplegable.
Seleccione la opción Implementación de un punto de conexión en tiempo real.
El sistema generará el modelo y el entorno necesarios para la implementación.
Complete el asistente para implementar el modelo en el punto de conexión en línea.
Implementación manual desde Studio o la línea de comandos
Si desea 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.
Seleccione el modelo que desea usar. Una vez que seleccione un modelo, se habilitará el botón Descargar.
Elija Descargar.
Recibirá un archivo ZIP que contiene:
Un archivo de especificación de entorno de Conda denominado conda_env_<VERSION>.yml
Un archivo de puntuación de Python denominado scoring_file_<VERSION>.py
El propio modelo, en un archivo .pkl de Python denominado model.pkl
Para realizar la implementación con estos archivos, puede usar Studio o la CLI de Azure.
Vaya a la página Modelos en el Estudio de Azure Machine Learning
Seleccione la opción + Registrar modelo
Registre el modelo que descargó de la ejecución de ML automatizado.
Vaya a la página Entornos, seleccione Entorno personalizado y seleccione la opción + Crear para crear un entorno para la implementación. Use el YAML de Conda descargado para crear un entorno personalizado.
Seleccione el modelo y, en la opción desplegable Implementar, seleccione Implementar en el 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.
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 que tiene ambos:
Si tiene acceso a varias suscripciones de Azure, puede establecer la suscripción activa:
az account set -s "<YOUR_SUBSCRIPTION_NAME_OR_ID>"
Establezca el grupo de recursos y el área de trabajo predeterminados en donde desea 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 llamado src/ y coloque en él el archivo de puntuación que descargó. 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, deberá crear 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:
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 del ejemplo anterior.
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, cambie el valor de las claves en las rutas de acceso siguientes:
Ruta de acceso
Cambiar a
model:path
La 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
El nombre del archivo de puntuación de Python (scoring_file_<VERSION>.py).
environment:conda_file
Una dirección URL de archivo para el archivo de entorno de Conda descargado (conda_env_<VERSION>.yml).
Disposición del archivo de puntuación en su propio directorio
Cree un directorio llamado src/ y coloque en él el archivo de puntuación que descargó. 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 manipulador 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
A continuación, crearemos los puntos de conexión y las implementaciones en línea administrados.
Configuración del 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",
)
Creación del punto de conexión:
Con el elemento MLClient creado anteriormente, ahora crearemos el punto de conexión en el área de trabajo. Este comando iniciará la creación del punto de conexión y devolverá una respuesta de confirmación mientras continúa la creación del punto de conexión.
ml_client.begin_create_or_update(endpoint)
Configuración de la implementación en línea:
Una implementación es un conjunto de recursos necesarios para hospedar el modelo que realiza la inferencia real. Crearemos una implementación para nuestro punto de conexión mediante la clase ManagedOnlineDeployment.
En el ejemplo anterior, se supone que 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
La 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
El nombre del archivo de puntuación de Python (scoring_file_<VERSION>.py).
environment:conda_file
Una dirección URL de archivo para el archivo de entorno de Conda descargado (conda_env_<VERSION>.yml).
Cree la implementación:
Con el elemento MLClient creado anteriormente, ahora crearemos la implementación en el área de trabajo. Este comando iniciará la creación de la implementación y devolverá una respuesta de confirmación mientras continúa la creación de la implementación.
Properament: al llarg del 2024 eliminarem gradualment GitHub Issues com a mecanisme de retroalimentació del contingut i el substituirem per un nou sistema de retroalimentació. Per obtenir més informació, consulteu: https://aka.ms/ContentUserFeedback.