Compartir a través de


Tutorial: Implementación de un modelo de Machine Learning mediante el diseñador

Importante

En este artículo se proporciona información sobre el uso del SDK de Azure Machine Learning v1. El SDK v1 está en desuso a partir del 31 de marzo de 2025 y la compatibilidad con él finalizará el 30 de junio de 2026. Puede instalar y usar el SDK v1 hasta esa fecha.

Se recomienda realizar la transición al SDK v2 antes del 30 de junio de 2026. Para más información sobre el SDK v2, consulte ¿Qué es el SDK de Python de Azure Machine Learning v2 y la referencia del SDK v2?

En la primera parte de este tutorial ha entrenado un modelo de regresión lineal que predice los precios de automóviles. En esta segunda parte, usará el diseñador de Azure Machine Learning para implementar el modelo para que otros usuarios puedan usarlo.

Nota:

El diseñador admite dos tipos de componentes: componentes precompilados clásicos (v1) y componentes personalizados (v2). Estos dos tipos de componentes NO son compatibles.

Los componentes precompilados clásicos están diseñados principalmente para el procesamiento de datos y las tareas tradicionales de aprendizaje automático, como la regresión y la clasificación. Este tipo de componentes se sigue admitiendo, pero no se agregará ningún componente nuevo.

Los componentes personalizados le permiten ajustar su propio código como componente. Admite el uso compartido de componentes entre áreas de trabajo y la creación fluida entre las interfaces de Studio, CLI v2 y SDK v2.

En el caso de los nuevos proyectos, se recomienda encarecidamente usar componentes personalizados, que son compatibles con Azure Machine Learning V2 y seguirán recibiendo nuevas actualizaciones.

Este artículo se aplica a los componentes precompilados clásicos y no es compatible con la CLI v2 y el SDK v2.

En este tutorial, aprenderá a:

  • Crear una canalización de inferencia en tiempo real.
  • Crear un clúster de inferencia.
  • Implementación del punto de conexión en tiempo real.
  • Prueba del punto de conexión en tiempo real.

Requisitos previos

Complete la parte uno del tutorial para aprender a entrenar y puntuar un modelo de Machine Learning en el diseñador.

Importante

Si no ve los elementos gráficos que se mencionan en este documento, como los botones en Estudio o en el diseñador, es posible que no tenga el nivel de permisos adecuado para el área de trabajo. Póngase en contacto con el administrador de suscripciones de Azure para verificar que se le ha concedido el nivel de acceso correcto. Para obtener más información, consulte Administración de usuarios y roles.

Crear una canalización de inferencia en tiempo real

Para implementar la canalización, antes debe convertir la canalización de entrenamiento en una canalización de inferencia en tiempo real. Este proceso quita los componentes de entrenamiento y agrega entradas y salidas de servicios web para administrar las solicitudes.

Nota:

La característica de creación de una canalización de inferencia admite canalizaciones de entrenamiento que solo contengan los componentes integrados del diseñador y que tengan un componente como Entrenar modelo que genere el modelo entrenado.

Crear una canalización de inferencia en tiempo real

  1. Seleccione Trabajos en el menú de la barra lateral y, a continuación, abra el trabajo de canalización que ha creado. En la página de detalles, encima del lienzo de la canalización, seleccione los puntos suspensivos ... y, luego, elija Crear canalización de inferencia>Canalización de inferencia en tiempo real.

    Captura de pantalla de la creación de canalización de inferencia en la página de detalles del trabajo de canalización

    La nueva canalización tendrá este aspecto:

    Captura de pantalla que muestra la configuración esperada de la canalización después de prepararla para la implementación.

    Al seleccionar Create inference pipeline (Crear canalización de inferencia), suceden varias cosas:

    • El modelo entrenado se almacena como un componente de Conjunto de datos en la paleta de componentes. Puede encontrarlo en My Datasets (Mis conjuntos de datos).
    • Se quitan los componentes de entrenamiento como Train Model (Entrenar modelo) y Split Data (Dividir datos).
    • El modelo entrenado guardado se vuelve a agregar a la canalización.
    • Se agregan los componentes Entrada de servicio web y Salida de servicio web. Estos componentes muestran dónde entran los datos del usuario en la canalización y dónde se devuelven.

    Nota:

    De forma predeterminada, la entrada del servicio web espera el mismo esquema de datos que los datos de salida del componente que se conecta al mismo puerto de bajada. En este ejemplo, la entrada del servicio web y los datos de precios de automóviles (sin procesar) se conectan al mismo componente de bajada, por lo que la entrada de servicio web espera el mismo esquema de datos que los datos de precios de automóviles (sin procesar) y la columna de variable de destino price que se incluyen en el esquema. Sin embardo, cuando asigne una puntuación a los datos, no conocerá los valores de las variables de destino. En ese caso, puede quitar la columna de variable de destino de la canalización de inferencia mediante el componente Seleccionar columnas de conjunto de datos. Asegúrese de que la salida de Seleccionar columnas de conjunto de datos que quita la columna de variable de destino está conectada al mismo puerto que la salida del componente Entrada del servicio web.

  2. Seleccione Configurar y enviary use el mismo destino de proceso y experimento que usó en la parte uno.

    Si este es el primer trabajo, la ejecución de la canalización puede tardar hasta 20 minutos en finalizar. La configuración del proceso predeterminada tiene un tamaño de nodo mínimo de 0, lo que significa que el diseñador debe asignar recursos después de estar inactivo. Los trabajos de canalización repetidos tardarán menos en terminar, dado que los recursos del proceso ya están asignados. Además, el diseñador usa resultados almacenados en la caché de cada componente para mejorar aún más la eficiencia.

  3. Vaya al detalle del trabajo de canalización de inferencia en tiempo real seleccionando Detalles del trabajo en el panel izquierdo.

  4. Seleccione Implementar en la página de detalles del trabajo.

    Captura de pantalla que muestra la implementación en la página de detalles del trabajo.

Creación de un clúster de inferencia

En el cuadro de diálogo que aparece, puede seleccionar entre los clústeres de Azure Kubernetes Service (AKS) existentes aquel en el que quiere implementar el modelo. Si no tiene un clúster de AKS, use los pasos siguientes para crear uno.

  1. Vaya a la página Proceso seleccionando Proceso en el menú de la barra lateral.

  2. En la cinta de navegación, seleccione Clústeres de Kubernetes. A continuación, seleccione + Nuevo>AksCompute.

    Captura de pantalla que muestra cómo ir al panel del nuevo clúster de inferencial

  3. En el panel del clúster de inferencia, configure un nuevo servicio de Kubernetes.

  4. Seleccione una región cercana que esté disponible para la región.

  5. En la pantalla siguiente, escriba aks-compute como nombre de proceso.

  6. Seleccione Crear.

    Nota:

    La creación de un servicio AKS tarda unos 15 minutos. Puede comprobar el estado de aprovisionamiento en la página Inference Clusters (Clústeres de inferencia).

Implementación del punto de conexión en tiempo real

Después de que el servicio de AKS haya terminado de aprovisionarse, vuelva a la canalización de inferencia en tiempo real para finalizar la implementación.

  1. Seleccione Implementar encima del lienzo.

  2. Seleccione Deploy new real-time endpoint (Implementar nuevo punto de conexión en tiempo real).

  3. Seleccione el clúster de AKS que ha creado.

    Captura de pantalla que muestra cómo configurar un nuevo punto de conexión en tiempo real.

    También puede cambiar la configuración avanzada del punto de conexión en tiempo real.

    Configuración avanzada Descripción
    Enable Application Insights diagnostics and data collection (Habilitar la recopilación de datos y el diagnóstico de Application Insights) Permite que Azure Application Insights recopile datos de los puntos de conexión implementados.
    De forma predeterminada: false
    Scoring timeout (Tiempo de espera de la puntuación) Tiempo de espera en milisegundos para forzar la puntuación de las llamadas al servicio web.
    De forma predeterminada: 60000
    Auto scale enabled (Escalado automático habilitado) Permite la escalabilidad automática para el servicio web.
    De forma predeterminada: true
    Min replicas (Número mínimo de réplicas) Número mínimo de contenedores que se van a usar al escalar automáticamente este servicio web.
    De forma predeterminada: 1
    Max replicas (Número máximo de réplicas) Número máximo de contenedores que se van a usar al escalar automáticamente este servicio web.
    De forma predeterminada: 10
    Target utilization (Uso de destino) El uso de destino (como porcentaje) que el escalador automático debe intentar mantener para este servicio web.
    De forma predeterminada: 70
    Refresh period (Período de actualización) Frecuencia (en segundos) con la que la escalabilidad automática intenta escalar este servicio web.
    De forma predeterminada: 1
    CPU reserve capacity (Capacidad de reserva de CPU) Número de núcleos de CPU que se asigna a este servicio web.
    De forma predeterminada: 0.1
    Memory reserve capacity (Capacidad de reserva de memoria) Cantidad de memoria (en GB) que se va a asignar a este servicio web.
    De forma predeterminada: 0,5
  4. Seleccione Implementar.

    Aparece una notificación de éxito del centro de notificaciones después de finalizar la implementación. Esto puede llevar unos minutos.

    Captura de pantalla que muestra la notificación de implementación.

Sugerencia

También puede implementar en una instancia de contenedor de Azure si selecciona Instancia de contenedor de Azure para Tipo de proceso en el cuadro de configuración de punto de conexión en tiempo real. Instancia de Azure Container se usa con fines de pruebas o desarrollo. Use una instancia de contenedor de Azure para cargas de trabajo basadas en CPU a baja escala que requieran menos de 48 GB de RAM.

Prueba del punto de conexión en tiempo real

Una vez finalizada la implementación, puede ver el punto de conexión en tiempo real; para ello, vaya a la página Endpoints (Puntos de conexión).

  1. Seleccione Puntos de conexión en el menú de la barra lateral y, a continuación, seleccione el punto de conexión que implementó.

    • En la pestaña Detalles, puede ver más información, como el identificador URI de REST, la definición de Swagger, el estado y las etiquetas.

    • En la pestaña Consumir, encontrará código de consumo de ejemplo y claves de seguridad. Además, podrá establecer los métodos de autenticación.

    • En la pestaña Registros de implementación, puede encontrar los registros de implementación detallados del punto de conexión en tiempo real.

  2. Para probar el punto de conexión, vaya a la pestaña Prueba. Aquí puede especificar los datos de prueba y seleccionar Probar para verificar la salida del punto de conexión.

Actualización del punto de conexión en tiempo real

Puede actualizar el punto de conexión en línea con el nuevo modelo entrenado en el diseñador. En la página de detalles del punto de conexión en línea, busque el trabajo de canalización de entrenamiento anterior y el trabajo de canalización de inferencia.

  1. Puede encontrar y modificar el borrador de canalización de entrenamiento en la página principal del diseñador.

    También puede abrir el vínculo del trabajo de canalización de entrenamiento y, a continuación, clonarlo en un nuevo borrador de canalización para continuar con la edición.

    Captura de pantalla que muestra el vínculo del trabajo de entrenamiento en la página de detalles del punto de conexión.

  2. Después de enviar la canalización de entrenamiento modificada, vaya a la página de detalles del trabajo.

  3. Cuando finalice el trabajo, haga clic con el botón derecho en Entrenar modelo y seleccione Registrar datos.

    Captura de pantalla que muestra el registro del modelo entrenado como conjunto de datos.

    Escriba un nombre y seleccione Tipo de archivo .

    Recorte de pantalla del registro como recurso de datos con el nuevo recurso de datos seleccionado.

  4. Después de que el conjunto de datos se registre correctamente, abra el borrador de canalización de inferencia o clone el trabajo de canalización de inferencia anterior en un nuevo borrador. En el borrador de la tubería de inferencia, reemplace el modelo entrenado anterior, mostrado como el nodo MD-xxxx y conectado al componente Score Model, por el conjunto de datos recién registrado.

    Captura de pantalla que muestra cómo modificar la canalización de inferencia.

  5. Si necesita actualizar el elemento de preprocesamiento de datos en la canalización de entrenamiento y desea actualizarlo en la canalización de inferencia, el procesamiento es similar a los pasos anteriores.

    Para ello, es preciso registrar la salida de la transformación del componente de transformación como conjunto de datos.

    A continuación, reemplace manualmente el componente TD-xxxx en la canalización de inferencia por el conjunto de datos registrado.

    Captura de pantalla que muestra cómo reemplazar el componente de la transformación.

  6. Después de modificar la canalización de inferencia con el modelo o transformación recién entrenados, envíela. Una vez completado el trabajo, impleméntelo en el punto de conexión en línea existente implementado anteriormente.

    Captura de pantalla que muestra cómo reemplazar el punto de conexión en tiempo real existente.

Limitaciones

  • Debido a la limitación de acceso al almacén de datos, si la canalización de inferencia contiene los componentes Importar Datos o Exportar Datos, se eliminan automáticamente cuando se implementan en un punto de conexión en tiempo real.

  • Si tiene conjuntos de datos en la canalización de inferencia en tiempo real y quiere implementarlos en un punto de conexión en tiempo real, actualmente este flujo solo admite conjuntos de datos registrados desde el almacén de Blob. Si quiere usar conjuntos de datos de otros almacenes de datos de tipo, puede usar Seleccionar columna para conectarse con el conjunto de datos inicial con los valores de seleccionar todas las columnas, registrar las salidas deSeleccionar columna como conjunto de datos de archivo y, luego, reemplazar el conjunto de datos inicial en la canalización de inferencia en tiempo real por este conjunto de datos recién registrado.

  • Si el gráfico de inferencia contiene el componente Escribir datos manualmente, que no está conectado al mismo puerto que el componente Entrada de servicio web, el componente Escribir datos manualmente no se ejecutará durante el procesamiento de llamadas HTTP. Una solución es registrar las salidas de ese componente Escribir datos manualmente como un conjunto de datos y, luego, en el borrador de canalización de inferencia, reemplazar el componente Escribir datos manualmente por el conjunto de datos registrado.

    Captura de pantalla que muestra cómo modificar la canalización de inferencia que contiene el componente para especificar datos manualmente.

Limpieza de recursos

Importante

Los recursos que creó pueden usarse como requisitos previos de otros tutoriales y artículos de procedimientos de Azure Machine Learning.

Eliminar todo el contenido

Si no va a usar nada de lo que ha creado, elimine el grupo de recursos completo para que no le genere gastos.

  1. En Azure Portal, seleccione Grupos de recursos en la parte izquierda de la ventana.

    Eliminación de un grupo de recursos en Azure Portal

  2. En la lista, seleccione el grupo de recursos que creó.

  3. Seleccione Eliminar grupo de recursos.

Al eliminar el grupo de recursos también se eliminan todos los recursos que creó en el diseñador.

Eliminación de recursos individuales

En diseñador donde creó el experimento, elimine recursos individuales; para ello, selecciónelos y, luego, haga clic en el botón Eliminar.

El destino de proceso que ha creado aquí se escala automáticamente a cero nodos cuando no se usa. Esta acción se lleva a cabo para minimizar los cargos. Si quiere eliminar el destino de proceso, siga estos pasos:

Eliminación de recursos

Puede anular el registro de los conjuntos de datos del área de trabajo seleccionando cada conjunto de datos y Anular el registro.

Anular el registro de un conjunto de datos

Para eliminar un conjunto de datos, vaya a la cuenta de almacenamiento mediante Azure Portal o el Explorador de Azure Storage y elimine manualmente esos recursos.

En este tutorial, ha aprendido cómo crear, implementar y usar un modelo de aprendizaje automático en el diseñador. Para obtener más información sobre cómo usar el diseñador, consulte los artículos siguientes: