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

SE APLICA A:Extensión de ML de la CLI de Azure v1Azure ML del SDK de Python v1

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.

Importante

Los elementos en este artículo marcados como "versión preliminar" se encuentran actualmente en una versión preliminar pública. Se ofrece la versión preliminar sin Acuerdo de Nivel de Servicio y no se recomienda para cargas de trabajo de producción. Es posible que algunas características no sean compatibles o que tengan sus funcionalidades limitadas. Para más información, consulte Términos de uso complementarios de las Versiones Preliminares de Microsoft Azure.

¿Qué es MLOps?

Operaciones de Machine Learning (MLOps) se basa en los principios y prácticas de DevOps que aumentan la eficacia de los flujos de trabajo. Por ejemplo, integración continua, entrega e implementación. MLOps aplica estos principios al proceso de aprendizaje automático, con el objetivo de:

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

MLOps en Azure Machine Learning

Azure Machine Learning ofrece las siguientes funcionalidades de MLOps:

  • Creación de canalizaciones de ML reproducibles. Las canalizaciones de Machine Learning permiten definir pasos repetibles y reutilizables para los procesos de preparación de datos, entrenamiento y puntuación.
  • Cree entornos de software reutilizables 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 Machine Learning de un extremo a otro. La información de linaje registrada puede incluir quién está publicando modelos, por qué se han realizado los cambios y cuándo se implementaron o usaron los modelos en producción.
  • Notificación y alerta sobre eventos en el ciclo de vida de Machine Learning. Por ejemplo, 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 las aplicaciones de ML para las incidencias relacionadas con ML y operativas. Compare las entradas del modelo durante el entrenamiento y la inferencia, explore las métricas de un modelo específico e incluya supervisión y alertas en su infraestructura de ML.
  • Automatización del ciclo de vida de un extremo a otro de Machine Learning con Azure Machine Learning y Azure Pipelines. El uso de canalizaciones le permite actualizar con frecuencia los modelos, probar los modelos nuevos e implementar continuamente nuevos modelos de ML junto con sus otras aplicaciones y servicios.

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

Creación de canalizaciones de ML reproducibles

Utilice canalizaciones de ML desde Azure Machine Learning para unir todos los pasos implicados en el proceso de entrenamiento del modelo.

Una canalización de ML 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 el artículo canalizaciones de aprendizaje automático.

Si utiliza el Diseñador para crear sus canalizaciones ML, en cualquier momento puede hacer clic en "..." en la parte superior derecha de la página del Diseñador y luego seleccionar Clonar. La clonación de la canalización le permite iterar el diseño de canalización sin perder las versiones anteriores.

Creación de entornos de software reutilizables

Use los entornos de Azure Machine Learning para realizar un seguimiento de las dependencias de software de sus proyectos y reproducirlas a medida que evolucionan. Los entornos le permiten 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, y se pueden usar para el entrenamiento e implementación de modelos. Para más información, consulte ¿Qué son los entornos de Azure Machine Learning?.

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

Registro y supervisión de modelos de aprendizaje automático

El registro del modelo permite almacenar y versionar 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 Azure 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 etiquetas de metadatos adicionales durante el registro. Después, estas etiquetas se usan al buscar un modelo. Azure Machine Learning admite cualquier modelo que pueda cargarse mediante Python 3.5.2 o posterior.

Sugerencia

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

No se puede eliminar un modelo registrado que se esté usando en una implementación activa. Para más información, consulte la sección de registro de modelos de Implementación de modelos.

Importante

Cuando se emplea la opción Filtrar por Tags en la página Modelos de Azure Machine Learning Studio en lugar de TagName : TagValue, los clientes deben usar TagName=TagValue (sin espacio)

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), puede mejorar el rendimiento. En promedio, la conversión a ONNX puede duplicar el rendimiento.

Para más información sobre ONNX con Azure Machine Learning, consulte el artículo sobre creación y aceleración de los modelos de aprendizaje automático.

Uso de modelos

Los modelos de Machine Learning entrenados se implementan como servicios web en la nube o localmente. Las implementaciones utilizan matrices de puertas programable (FPGA) por CPU, GPU o campos para las inferencias. También puede usar modelos de Power BI.

Cuando use un modelo como servicio web, 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 Azure Machine Learning que describe las dependencias de PIP y Conda que requieren los modelos y el script de entrada.
  • Los recursos adicionales, como texto, datos, etc. 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 implemente en Azure Kubernetes Service.

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 son compatibles con las canalizaciones de ML. Para obtener más información, vea Predicciones por lotes de macrodatos.

Servicios web en tiempo real

Puede usar los modelos en servicios web con los siguientes destinos de proceso:

  • Azure Container Instances
  • Azure Kubernetes Service
  • Entorno de desarrollo locales

Para implementar el modelo como un servicio web, debe proporcionar los siguientes elementos:

  • El modelo o un conjunto de modelos.
  • Las dependencias necesarias para usar el modelo. Por ejemplo, un script que acepta solicitudes e invoca el modelo, las dependencias de conda, etcétera.
  • 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.

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 (versión preliminar).

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 ML mediante metadatos.

  • Azure 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 Azure 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 la entrada determinada.
  • El historial de ejecución 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 (el experimento que lo entrenó, dónde se está implementando, si las implementaciones son correctas).
  • La integración con Azure permite actuar en los eventos del ciclo de vida de Machine Learning. Por ejemplo, el registro de modelos, la implementación, el desfase de datos y los eventos de aprendizaje (ejecución).

Sugerencia

Aunque parte de la información sobre los modelos y conjuntos de datos se capturan automáticamente, puede agregar información adicional 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 Modelo.

Notificación, automatización y alerta sobre eventos en el ciclo de vida de ML

Machine Learning publica eventos clave en Azure Event Grid. Estos se pueden usar para notificar y automatizar eventos en el ciclo de vida de ML. Para obtener más información, vea este documento.

Supervisión de problemas operativos y de Machine Learning

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 pueden ser útiles para entrenar versiones futuras del modelo.

Para más información, consulte cómo habilitar 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 explica en Detección del desfase de datos (versión preliminar) en los conjuntos de datos, el rendimiento del modelo puede reducirse en función de los cambios realizados en un sensor determinado, los cambios naturales en los datos, como los efectos estacionales, o las características que se desplazan 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 Azure Machine Learning que se han analizado anteriormente son buenos puntos de partida para la automatización. Una vez que haya decidido volver a entrenarlo, debe:

  • 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 a considerar de los pasos anteriores es que el reciclaje debe estar automatizado, en lugar de ser ad hoc. Las canalizaciones de Azure 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 Volver a entrenar modelos con el diseñador de Azure Machine Learning para ver cómo se ajustan las canalizaciones y el diseñador de Azure Machine Learning en un escenario de reentrenamiento.

Automatización del ciclo de vida de Machine Learning

Puede usar GitHub y Azure Pipelines para crear un proceso de integración continua que entrene un modelo. En un escenario común, cuando un científico de datos comprueba un cambio en el repositorio de Git para un proyecto, Azure Pipelines inicia una ejecución de entrenamiento. A continuación, se pueden inspeccionar los resultados de la ejecución 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 Azure 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 Azure Machine Learning, consulte los vínculos siguientes:

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: