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 operaciones de aprendizaje automático (MLOps) en Azure Machine Learning para administrar el ciclo de vida de los modelos. Las prácticas de operaciones de aprendizaje automático pueden mejorar la calidad y la coherencia de las soluciones de aprendizaje automático.
Importante
Los elementos de este artículo marcados como versión preliminar están actualmente en versión preliminar pública. Esta versión preliminar se proporciona sin un acuerdo de nivel de servicio. No se recomiendan características en versión preliminar 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é son las operaciones de aprendizaje automático?
En función de principios y prácticas de DevOps, las operaciones de aprendizaje automático (MLOps) aumentan la eficacia de los flujos de trabajo. Por ejemplo, integración continua, entrega e implementación. Las operaciones de aprendizaje automático aplican 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 proporciona las siguientes funcionalidades de operaciones de aprendizaje automático:
- Crear canalizaciones de aprendizaje automático 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.
- Capture los datos de gobernanza para el 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, por qué se han realizado los cambios y cuándo se implementaron o usaron los modelos en producción.
- Notificar y alertar sobre eventos en el ciclo de vida del aprendizaje automático. Por ejemplo, la finalización del experimento, el registro del modelo, la implementación de este y la detección del desfase de datos.
- Supervisar aplicaciones de aprendizaje automático para problemas operativos y de aprendizaje automático. 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 aprendizaje automático.
- Automatización del ciclo de vida de aprendizaje automático de un extremo a otro con Azure Machine Learning y Azure Pipelines. El uso de canalizaciones permite actualizar modelos con frecuencia, probar nuevos modelos e implementar continuamente nuevos modelos de aprendizaje automático junto con otras aplicaciones y servicios.
Para obtener más información sobre las operaciones de aprendizaje automático, vea Operaciones de aprendizaje automático.
Creación de canalizaciones de aprendizaje automático reproducibles
Use canalizaciones de aprendizaje automático de Azure Machine Learning para unir todos los pasos implicados en el 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 más información, vea Canalizaciones de Azure Machine Learning.
Si usa el Diseñador para crear las canalizaciones de aprendizaje automático, seleccione los puntos suspensivos (...) en la parte superior derecha de la página Diseñador y, a continuación, seleccione 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. Los entornos se pueden usar para el entrenamiento y la 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
Puede registrar, empaquetar e implementar modelos desde cualquier lugar.
Registro y seguimiento de modelos de Machine Learning
El registro de modelos permite almacenar y versionar los modelos en el área de trabajo en la nube de Azure. 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.
El nombre y la versión identifican los modelos registrados. Cada vez que registra un modelo con el mismo nombre que uno existente, el registro incrementa la versión. Puede especificar otras etiquetas de metadatos 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 obtener más información, vea Registrar el modelo.
Importante
Al usar el filtro por Tags
opción en la página Modelos de Azure Machine Learning Studio, en lugar de usar TagName : TagValue
debe 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 más información, vea Implementación de modelos de aprendizaje automático en Azure y Solución de problemas de implementación de modelos remotos.
Conversión y optimización de modelos
Si convierte el modelo a Open Neural Network Exchange (ONNX), el rendimiento podría mejorar. En promedio, la conversión a ONNX puede duplicar el rendimiento.
Para más información, vea ONNX y Azure Machine Learning.
Uso de modelos
Los modelos de Machine Learning entrenados se implementan como servicios web en la nube o localmente. Las implementaciones usan CPU o GPU para la inferencia. También puede usar modelos de Power BI.
Cuando se usa 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.
- Cualquier otro recurso, como texto o datos, que requieran los modelos y el script de entrada.
También se proporciona la configuración de la plataforma de implementación de destino. Por ejemplo, el tipo de familia de máquinas virtuales, la memoria disponible y el número de núcleos al implementar 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 es compatible con las canalizaciones de aprendizaje automático. Para más información, vea Tutorial: Compilación de una canalización de Azure Machine Learning para la clasificación de imágenes.
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 las dependencias del modelo o de conda.
- La configuración de implementación que describe cómo y dónde implementar el modelo.
Para más información, vea Implementación de modelos de aprendizaje automático en Azure.
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, vea IA con flujos de datos.
Capture los datos de gobernanza necesarios para las operaciones de aprendizaje automático
Azure Machine Learning ofrece la capacidad de realizar un seguimiento de la pista de auditoría de un extremo a otro de todos los recursos de aprendizaje automático mediante metadatos.
- Azure Machine Learning se integra con Git para realizar un seguimiento de la información de qué repositorio, rama y confirmación procede del 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. Estos metadatos incluyen el experimento entrenado, donde se implementa y si sus implementaciones están en buen estado.
- La integración con Azure permite actuar en los eventos del ciclo de vida de aprendizaje automático. Por ejemplo, el registro de modelos, la implementación, el desfase de datos y los eventos de aprendizaje (ejecución).
Sugerencia
Se captura automáticamente cierta información sobre modelos y conjuntos de datos. Puede agregar otra 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 de Modelo.
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 más información, vea Desencadenadores de aplicaciones, procesos o flujos de trabajo de CI/CD basados en eventos de Azure Machine Learning.
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 pueden ser útiles para entrenar versiones futuras del modelo.
Para obtener más información, vea Recopilar datos de modelos en producción.
Nuevo entrenamiento del modelo con datos nuevos
A menudo, quiere validar el modelo, actualizarlo o incluso volver a entrenarlo desde cero, ya que recibe nueva información. A veces, la recepción de nuevos datos es una parte esperada del dominio. En otras ocasiones, el rendimiento del modelo puede degradarse debido a cambios en un sensor determinado, cambios de datos naturales, como efectos estacionales o cambios de características en relación con otras características. Para obtener más información, vea Detección de desfase de datos (versión preliminar) en conjuntos de datos.
No hay una respuesta universal a "¿Cómo sé si debo volver a entrenar?" pero las herramientas de supervisión y eventos de Azure Machine Learning que se han descrito anteriormente son buenos puntos de partida para la automatización. Una vez que decida volver a entrenar, 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 salidas del modelo anterior
- Usar criterios predefinidos para elegir si quiere reemplazar el modelo anterior
Un tema de los pasos anteriores es que el reentrenamiento debe automatizarse, no improvisar. 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 Uso de parámetros de canalización para volver a entrenar modelos en el diseñador para ver cómo encajan las canalizaciones y el diseñador de Azure 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 de un proyecto, Azure Pipeline inicia una ejecución de entrenamiento. Puede 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 más información sobre el uso de Azure Pipelines con Azure Machine Learning, vea los siguientes recursos:
- Integración continua e implementación de modelos de Machine Learning con Azure Pipelines
- Repositorio de MLOps en Azure Machine Learning
- Repositorio de MLOpsPython en Azure Machine Learning
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 obtener más información, vea DevOps para una canalización de ingesta de datos.
Contenido relacionado
Para más información, lea y explore los siguientes recursos:
- Implementación de modelos de aprendizaje automático en Azure
- Tutorial: Entrenamiento e implementación de un modelo de clasificación de imágenes con un ejemplo de Jupyter Notebook
- Repositorio de ejemplos de operaciones de aprendizaje automático
- Uso de Azure Pipelines con Azure Machine Learning
- Consumir un modelo de Azure Machine Learning que está implementado como un servicio web
- Diseño de arquitectura de inteligencia artificial
- Ejemplos, arquitecturas de referencia y procedimientos recomendados