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 las prácticas de operaciones de aprendizaje automático (MLOps) 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 ciclo de vida del 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 proporciona las siguientes funcionalidades para el proceso de aprendizaje automático:

  • 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. Realizar un seguimiento de los metadatos asociados necesarios para usar un modelo.
  • Capturar 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. Los eventos incluyen la finalización del experimento, el registro y la implementación del modelo, 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 aprendizaje automático y canalizaciones de Azure. Uso de canalizaciones para probar y actualizar modelos con frecuencia. 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 Operaciones de aprendizaje automático.

Creación de canalizaciones de aprendizaje automático reproducibles

Use canalizaciones de Azure 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.

Si usa el diseñador de Azure Machine Learning para crear una canalización de aprendizaje automático, puede clonar la canalización para iterar sobre su diseño sin perder las versiones anteriores. Para clonar una canalización en cualquier momento en el diseñador, vaya a la esquina superior derecha para seleccionar ...>Clonar.

Para más información sobre las canalizaciones de Azure Machine Learning, consulte Canalizaciones de aprendizaje automático.

Creación de entornos de software reutilizables

Al usar los entornos de Azure 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 usar entornos para el entrenamiento y la implementación del modelo. Para más información, consulte ¿Qué son los entornos de Azure 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.

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 Azure Machine Learning. Después del registro, puede descargar o implementar el modelo registrado y recibir todos los archivos componentes.

Puede identificar los modelos registrados por nombre y versión. Cada vez que registra un modelo con el mismo nombre que uno existente, el registro incrementa el número de versión. Puede proporcionar etiquetas de metadatos durante el registro y usar estas etiquetas al buscar un modelo. Azure 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 Azure Machine Learning.

Importante

  • Si emplea la opción Filtrar porTags de la página Modelos de Estudio de Azure Machine Learning, 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 sobre cómo usar modelos en Azure Machine Learning, consulte Uso 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; sin embargo, puede especificar manualmente la imagen.

Es útil implementar primero en el entorno de desarrollo local para poder solucionar problemas y depurar antes de realizar la implementación en la nube. Esta práctica puede ayudarle a evitar problemas con la implementación en Azure Machine Learning. Para obtener más información sobre cómo resolver problemas comunes de implementación, consulte Cómo solucionar problemas de puntos de conexión en línea.

Conversión y optimización de modelos

Puede convertir el modelo en Open Neural Network Exchange (ONNX) para intentar mejorar el rendimiento. Normalmente, 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.

Implementación de modelos

Puede implementar modelos de Machine Learning entrenados como puntos de conexión en la nube o localmente. Las implementaciones usan la CPU y GPU para realizar 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 entrada1. Este script acepta las solicitudes, usa los modelos para puntuar los datos y devuelve una respuesta.
  • Un entorno2 que describe las dependencias de pip y conda que requieren los modelos y el script de entrada.
  • Cualquier otro recurso, como texto y datos, requeridos por el script de entrada y los modelos.

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

1,2 Al implementar un modelo de MLflow, no es necesario proporcionar un script de entrada, también conocido como script de puntuación. Tampoco es necesario proporcionar un entorno para la implementación. Para obtener más información sobre la implementación de modelos de MLflow, consulte Directrices para implementar modelos de MLflow.

Puntuación por lotes

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

Puntuación en tiempo real

Puede usar los modelos con un punto de conexión en línea para la puntuación en tiempo real. 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 sobre la implementación para la puntuación en tiempo real, consulte Implementación de puntos de conexión en línea.

Lanzamiento controlado para puntos de conexión en línea

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
  • Cambie entre implementaciones de 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 sobre la implementación mediante un lanzamiento controlado, consulte Realizar un lanzamiento seguro de las nuevas implementaciones para la inferencia en tiempo real.

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 la Integración de Azure Machine Learning en Power BI.

Captura de los datos de gobernanza necesarios para MLOps

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

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 recursos 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

Azure Machine Learning publica eventos clave en Azure Event Grid. Estos se pueden usar para notificar y automatizar eventos en el ciclo de vida del aprendizaje automático. Para obtener más información sobre cómo configurar procesos controlados por eventos basados en eventos de Azure Machine Learning, consulte Flujos de trabajo basados en eventos y CI/CD personalizados.

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. La extensión 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 más información sobre el uso de Azure Pipelines con Machine Learning, consulte Uso de Azure Pipelines con Azure Machine Learning.