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

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

En este artículo, obtenga información sobre cómo realizar operaciones de Machine Learning (MLOps) en Azure Machine Learning para administrar el ciclo de vida de los modelos. MLOps mejora 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 implementación de modelos y solución problemas en implementaciones.

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 obtener más información, consulte Implementación de modelos.

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:

  • Machine Learning se integra con Git para realizar un seguimiento de la información sobre el repositorio, rama o confirmación de donde procede el código.
  • 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.

Asociar un conjunto de datos a un modelo registrado es un paso opcional. Para obtener información sobre cómo hacer referencia a un conjunto de datos al registrar un modelo, vea la referencia de clase Model.

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.

Supervisión de incidencias operativas y relacionadas con el aprendizaje automático

La supervisión permite comprender qué datos se envían a su modelo y las predicciones que devuelve.

Esta información le ayudará a comprender cómo se usa el modelo. Los datos de entrada recopilados también podrían ser útiles para entrenar versiones futuras del modelo.

Para obtener más información, consulte Habilitación de la recopilación de datos de un modelo.

Nuevo entrenamiento del modelo con datos nuevos

A menudo, querrá validar el modelo, actualizarlo o incluso volver a entrenarlo desde cero, a medida que reciba información nueva. A veces, la recepción de nuevos datos es una parte esperada del dominio. Otras veces, como se describe en Detección del desfase de datos (versión preliminar) en los conjuntos de datos, el rendimiento del modelo puede degradarse debido a lo siguiente:

  • Cambios en un sensor determinado
  • Cambios naturales en los datos, como efectos estacionales
  • Características que cambian en relación con otras características

No hay ninguna respuesta universal a "Cómo saber si debo volver a entrenar", pero las herramientas de supervisión y eventos de Machine Learning que se han analizado anteriormente son buenos puntos de partida para la automatización. Una vez que haya decidido volver a entrenar un modelo, debe hacer lo siguiente:

  • Realizar un preprocesamiento de los datos mediante un proceso repetible y automatizado
  • Entrenar el nuevo modelo
  • Comparar las salidas del nuevo modelo con las del modelo anterior
  • Usar criterios predefinidos para elegir si quiere reemplazar el modelo anterior

Un tema que debe tener en cuenta de los pasos anteriores es que el reentrenamiento debe estar automatizado, no ser improvisado. Las canalizaciones de Machine Learning son una buena respuesta para crear flujos de trabajo relacionados con la preparación, el entrenamiento, la validación y la implementación de los datos. Lea Reentrenamiento de modelos con el diseñador de Machine Learning para ver cómo se ajustan las canalizaciones y el diseñador de Machine Learning en un escenario de reentrenamiento.

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:

También puede usar Azure Data Factory para crear una canalización de ingesta de datos que prepare los datos para su uso con el entrenamiento. Para más información, consulte Canalización de ingesta de datos.

Pasos siguientes

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