MLOps: Administración, implementación y supervisión de modelos con Azure Machine Learning

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 aplicar prácticas de MLOps (operaciones de aprendizaje automático) en Azure Machine Learning con el fin de administrar el ciclo de vida de los modelos. Al aplicar prácticas de MLOps, puede mejorar la calidad y la coherencia de las soluciones de aprendizaje automático.

¿Qué es MLOps?

MLOps se basa en principios y procedimientos de DevOps que aumentan la eficacia de los flujos de trabajo. Algunos ejemplos incluyen la integración continua, la entrega y la implementación. MLOps aplica estos principios al proceso de aprendizaje automático, con el objetivo de:

  • Conseguir una experimentación y un desarrollo más rápidos de los modelos
  • Conseguir una implementación más rápida de los modelos en producción
  • Garantizar el control de calidad y el seguimiento del linaje de un extremo a otro

MLOps en Machine Learning

Machine Learning ofrece las siguientes funcionalidades de MLOps:

  • Creación de canalizaciones de aprendizaje automático reproducibles. Use canalizaciones de aprendizaje automático con el fin de definir pasos repetibles y reutilizables para los procesos de preparación de datos, entrenamiento y puntuación.
  • Creación de entornos de software reutilizables. Use estos entornos para entrenar e implementar modelos.
  • Registro, empaquetado e implementación de modelos desde cualquier lugar. También puede realizar el seguimiento de los metadatos asociados necesarios para utilizar el modelo.
  • Captura de los datos de gobernanza del ciclo de vida de aprendizaje automático de un extremo a otro. La información de linaje registrada puede incluir quién está publicando modelos y por qué se han realizado los cambios. También puede mostrar cuándo se implementaron o se usaron los modelos en producción.
  • Notificación y alerta sobre eventos en el ciclo de vida de aprendizaje automático. Algunos ejemplos de eventos incluyen la finalización del experimento, el registro del modelo, la implementación de este y la detección del desfase de datos.
  • Supervisión de aplicaciones de aprendizaje automático para las incidencias operativas y las relacionadas con el aprendizaje automático. Compare las entradas del modelo entre el entrenamiento y la inferencia. Explore las métricas específicas del modelo. Proporcione supervisión y alertas en la infraestructura de aprendizaje automático.
  • Automatización del ciclo de vida de aprendizaje automático de un extremo a otro con Machine Learning y Azure Pipelines. Mediante el uso de canalizaciones, puede actualizar los modelos con frecuencia. También puede probar modelos nuevos. Además, puede implementar continuamente nuevos modelos de Machine Learning junto con sus otras aplicaciones y servicios.

Para obtener más información sobre MLOps, consulte DevOps de Machine Learning.

Creación de canalizaciones de aprendizaje automático reproducibles

Use canalizaciones de aprendizaje automático desde Machine Learning para unir todos los pasos del proceso de entrenamiento del modelo.

Una canalización de aprendizaje automático puede contener pasos que van desde la preparación de datos hasta la extracción de características, el ajuste de hiperparámetros o la evaluación del modelo. Para obtener más información, consulte Canalizaciones de aprendizaje automático.

Si usa el diseñador para crear las canalizaciones de aprendizaje automático, puede seleccionar en cualquier momento el icono en la esquina superior derecha de la página del diseñador. Después, seleccione Clonar. Cuando clone la canalización, podrá iterar el diseño de canalización sin perder las versiones anteriores.

Creación de entornos de software reutilizables

Al usar los entornos de Machine Learning, puede realizar un seguimiento de las dependencias de software de sus proyectos y reproducirlas a medida que evolucionan. Puede usar los entornos para asegurarse de que las compilaciones se pueden reproducir sin necesidad de configuración manual del software.

Los entornos describen las dependencias pip y conda de los proyectos. Puede usarlos para el entrenamiento y la implementación de modelos. Para obtener más información, consulte ¿Qué son los entornos de Machine Learning?

Registro, empaquetado e implementación de modelos desde cualquier lugar

En las secciones siguientes se describe cómo registrar, empaquetar e implementar modelos.

Registro y seguimiento de modelos de Machine Learning

Con el registro del modelo, puede almacenar y controlar las versiones de los modelos en la nube de Azure, en su área de trabajo. El registro de modelo facilita organizar y mantener un seguimiento de los modelos entrenados.

Sugerencia

Un modelo registrado es un contenedor lógico para uno o varios archivos que componen el modelo. Por ejemplo, si tiene un modelo que se almacena en varios archivos, puede registrarlos como un único modelo en el área de trabajo de Machine Learning. Después del registro, puede descargar o implementar el modelo registrado y recibir todos los archivos que se registraron.

Los modelos registrados se identifican por el nombre y la versión. Cada vez que registra un modelo con el mismo nombre que uno existente, el registro incrementa la versión. Se pueden proporcionar más etiquetas de metadatos durante el registro. Después, estas etiquetas se usan al buscar un modelo. Machine Learning admite cualquier modelo que pueda cargarse mediante Python 3.5.2 o una versión posterior.

Sugerencia

También puede registrar modelos entrenados fuera de Machine Learning.

Importante

  • Si emplea la opción Filtrar porTags de la página Modelos de Azure Machine Learning Studio en lugar de TagName : TagValue, use TagName=TagValue sin espacios.
  • No se puede eliminar un modelo registrado que se esté usando en una implementación activa.

Para más información, consulte Utilización de modelos en Azure Machine Learning.

Empaquetado y depuración de modelos

Antes de implementar un modelo en producción, se empaqueta en una imagen de Docker. En la mayoría de los casos, la creación de imágenes se produce automáticamente en segundo plano durante la implementación. Se puede especificar la imagen manualmente.

Si experimenta problemas con la implementación, puede implementarla en su entorno de desarrollo local para solucionar problemas y depurarla.

Para obtener más información, consulte el artículo Cómo solucionar los problemas de los puntos de conexión en línea.

Conversión y optimización de modelos

Si convierte el modelo a Open Neural Network Exchange (ONNX), el rendimiento podría mejorar. De media, la conversión a ONNX puede duplicar el rendimiento.

Para obtener más información sobre ONNX con Machine Learning, consulte Creación y aceleración de modelos de Machine Learning.

Uso de modelos

Los modelos de Machine Learning entrenados se implementan como puntos de conexión en la nube o localmente. Las implementaciones usan la CPU y GPU para la realización de inferencias.

Cuando implemente un modelo como punto de conexión, proporcione los siguientes elementos:

  • Los modelos que se usan para puntuar los datos enviados al servicio o dispositivo.
  • Un script de entrada. Este script acepta las solicitudes, usa los modelos para puntuar los datos y devuelve una respuesta.
  • Un entorno de Machine Learning que describe las dependencias de pip y conda que requieren los modelos y el script de entrada.
  • Otros recursos, como texto y datos, requeridos por el script de entrada y los modelos.

También debe proporcionar la configuración de la plataforma de implementación de destino. Por ejemplo, el tipo de familia de la máquina virtual, la memoria disponible y número de núcleos. Cuando se crea la imagen, también se agregan los componentes requeridos por Azure Machine Learning. Por ejemplo, los recursos necesarios para ejecutar el servicio web.

Puntuación por lotes

La puntuación por lotes se admite mediante puntos de conexión por lotes. Para obtener más información, consulte Puntos de conexión.

Puntos de conexión en línea

Puede usar los modelos con un punto de conexión en línea. Los puntos de conexión en línea pueden usar los siguientes destinos de proceso:

  • Puntos de conexión en línea administrados
  • Azure Kubernetes Service
  • Entorno de desarrollo locales

Para implementar el modelo en un punto de conexión, debe proporcionar los siguientes elementos:

  • El modelo o un conjunto de modelos.
  • Las dependencias necesarias para usar el modelo. Un ejemplo es un script que acepta solicitudes e invoca el modelo y las dependencias de conda.
  • La configuración de implementación que describe cómo y dónde implementar el modelo.

Para más información, consulte Implementación de puntos de conexión en línea.

Lanzamiento controlado

Al implementar en un punto de conexión en línea, puede usar el lanzamiento controlado para habilitar los siguientes escenarios:

  • Creación de varias versiones de un punto de conexión para una implementación
  • Realización de pruebas A/B mediante el enrutamiento del tráfico a diferentes implementaciones dentro del punto de conexión
  • Cambio entre implementaciones del punto de conexión actualizando el porcentaje de tráfico en la configuración del punto de conexión

Para obtener más información, consulte Lanzamiento controlado de modelos de Machine Learning.

Análisis

Microsoft Power BI admite el uso de modelos de Machine Learning para el análisis de datos. Para obtener más información, consulte Integración de Machine Learning en Power BI (versión preliminar).

Captura de los datos de gobernanza necesarios para MLOps

Machine Learning ofrece la capacidad de realizar un seguimiento del registro de auditoría de un extremo a otro de todos los recursos de aprendizaje automático mediante metadatos. Por ejemplo:

  • Los conjuntos de datos de Machine Learning ayudan a realizar un seguimiento, generar perfiles y realizar versiones de sus datos.
  • La interpretabilidad permite explicar los modelos, satisfacer el cumplimiento normativo y comprender cómo llegan los modelos a un resultado para una entrada específica.
  • El historial de trabajos de Machine Learning almacena una instantánea del código, los datos y los procesos usados para entrenar un modelo.
  • El registro de modelos de Machine Learning captura todos los metadatos asociados al modelo. Por ejemplo, los metadatos incluyen qué experimento lo entrenó, dónde se implementa y si sus implementaciones son correctas.
  • La integración con Azure permite actuar en los eventos del ciclo de vida de aprendizaje automático. Algunos ejemplos son el registro de modelos, la implementación, el desfase de datos y los eventos de entrenamiento (trabajo).

Sugerencia

Aunque parte de la información sobre los modelos y conjuntos de datos se captura automáticamente, puede agregar más información mediante etiquetas. Al buscar modelos y conjuntos de datos registrados en el área de trabajo, puede usar etiquetas como filtro.

Notificación, automatización y alerta sobre eventos en el ciclo de vida de aprendizaje automático

Machine Learning publica eventos clave en Azure Event Grid. Estos se pueden usar para notificar y automatizar eventos en el ciclo de vida de aprendizaje automático. Para obtener más información, consulte Uso de Event Grid.

Automatización del ciclo de vida de aprendizaje automático

Puede usar GitHub y Azure Pipelines para crear un proceso de integración continua que entrene un modelo. En un escenario típico, cuando un científico de datos comprueba un cambio en el repositorio de Git para un proyecto, Azure Pipelines inicia un trabajo de entrenamiento. A continuación, se pueden inspeccionar los resultados del trabajo para ver las características de rendimiento del modelo entrenado. También puede crear una canalización que implemente el modelo como un servicio web.

La extensión de Machine Learning facilita el trabajo con Azure Pipelines. Ofrece las siguientes mejoras a Azure Pipelines:

  • Habilita la selección de áreas de trabajo al definir una conexión de servicio.
  • Permite que los modelos entrenados creados con una canalización de entrenamiento desencadenen las canalizaciones de versión.

Para obtener más información sobre el uso de Azure Pipelines con Machine Learning, consulte lo siguiente:

Pasos siguientes

Para más información, lea y explore los siguientes recursos: