En este artículo se describe cómo Azure Machine Learning usa operaciones de aprendizaje automático (MLOps) para 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.
MLOps se basa en los principios y prácticas de DevOps que aumentan la eficacia de los flujos de trabajo, como la integración continua, la implementación continua y la entrega continua. La aplicación de estos principios al ciclo de vida del aprendizaje automático da como resultado:
Experimentación y desarrollo de modelos más rápidos.
Conseguir una implementación más rápida de los modelos en producción
Mejor control de calidad y seguimiento de linaje de un extremo a otro.
Funcionalidades de MLOps
MLOps proporciona las siguientes funcionalidades para el proceso de aprendizaje automático:
Crear canalizaciones de aprendizaje automático reproducibles para definir pasos repetibles y reutilizables para los procesos de preparación, entrenamiento y puntuación de datos.
Cree entornos de software reutilizables para entrenar e implementar modelos.
Registro, empaquetado e implementación de modelos desde cualquier lugar y seguimiento de los metadatos asociados necesarios para usar el modelo.
Registro de los datos de linaje para la gobernanza del ciclo de vida de aprendizaje automático, como quién publicó modelos, por qué se realizaron cambios y cuándo se implementaron o usaron los modelos en producción.
Notificar y alertar sobre eventos de ciclo de vida de aprendizaje automático como la finalización del experimento, el registro de modelos, la implementación del modelo y la detección de desfase de datos.
Supervisar los problemas operativos y relacionados con el aprendizaje automático mediante la comparación de entradas del modelo, la exploración de métricas específicas del modelo y la visualización de supervisión y alertas en la infraestructura de aprendizaje automático.
Automatizar el ciclo de vida de aprendizaje automático de un extremo a otro mediante canalizaciones de aprendizaje automático y Azure Pipelines para probar, actualizar e implementar continuamente nuevos modelos de aprendizaje automático.
Canalizaciones de aprendizaje automático reproducibles
Use canalizaciones de Azure Machine Learning para unir todos los pasos del proceso de entrenamiento del modelo. Los pasos de canalización de Aprendizaje automático pueden incluir la preparación de datos, la extracción de características, el ajuste de hiperparámetros y la evaluación del modelo.
En el Diseñador de Estudio de Azure Machine Learning, puede clonar una 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, seleccione Clonar en la barra de menús superior.
Los entornos de Azure Machine Learning garantizan que las compilaciones se pueden reproducir sin usar configuraciones de software manuales. Los entornos pueden realizar un seguimiento y reproducir las dependencias de software pip y conda para los proyectos.
Puede usar entornos para el entrenamiento y la implementación del modelo. Para más información, consulte Entornos de Azure Machine Learning.
Registro, empaquetado e implementación de modelos
Azure Machine Learning puede usar MLOps desde cualquier lugar para registrar, empaquetar e implementar modelos.
Registro y supervisión de modelos
El registro de modelos almacena y versiones de los modelos en el área de trabajo de Azure Machine Learning en la nube de Azure. 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.
También puede registrar modelos entrenados fuera de Azure Machine Learning. Azure Machine Learning admite cualquier modelo que pueda cargarse mediante Python 3.5.2 o una versión posterior.
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.
Importante
No se puede eliminar un modelo registrado que se esté usando en una implementación activa.
Para implementar un modelo en producción, primero debe empaquetarlo 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, se puede especificar la imagen manualmente.
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.
Puede implementar modelos de Machine Learning entrenados como puntos de conexión en la nube o localmente. Las implementaciones usan CPU y GPU para la inferencia.
Para implementar un modelo como punto de conexión, debe proporcionar la siguiente información:
Los modelos que se usan para puntuar los datos enviados al servicio o dispositivo.
Un script de entrada, también denominado script de puntuación, que acepta solicitudes, usa los modelos para puntuar los datos y devuelve una respuesta.
Un entorno que describe las dependencias de pip y conda que requieren los modelos y el script de entrada.
Cualquier otro recurso, como texto y datos, requerido por el modelo y el script de entrada.
Importante
Al implementar un modelo de MLflow, no es necesario proporcionar un script de entrada ni 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.
También proporciona la configuración de la plataforma de implementación de destino, como el tipo de familia de máquina virtual (VM), la memoria disponible y el número de núcleos. Cuando Azure Machine Learning crea la imagen, también agrega los componentes que necesita, como los recursos necesarios para ejecutar el servicio web.
Puntuación por lotes con puntos de conexió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 con puntos de conexión en línea
Puede usar los modelos con un punto de conexión en línea para la puntuación en tiempo real. Los destinos de proceso para puntos de conexión en línea pueden ser entornos de desarrollo local, puntos de conexión en línea administrados o Azure Kubernetes Service (AKS).
Para implementar un modelo en un punto de conexión en línea, debe proporcionar la siguiente información:
El modelo o un conjunto de modelos.
Dependencias necesarias para usar el modelo, por ejemplo, un script que acepta solicitudes e invoca las dependencias del modelo y conda.
La configuración de implementación que describe cómo y dónde implementar el modelo.
Metadatos para la gobernanza del ciclo de vida del aprendizaje automático
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:
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.
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.
Nota
Cuando use las etiquetas de la opción Filtrar por en la página Modelos de Estudio de Azure Machine Learning, asegúrese de usar TagName=TagValue sin espacios en lugar de TagName : TagValue.
Notificación y alertas de eventos del ciclo de vida de Machine Learning
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 del aprendizaje automático
Puede usar Git y Azure Pipelines para crear un proceso de integración continua que entrene un modelo de aprendizaje automático. 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.
Puede 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 del área de trabajo de Azure Machine Learning al definir una conexión de servicio.
Permite la creación de modelos entrenados en una canalización de entrenamiento para desencadenar una implementación en Azure Pipelines.
Administre la ingesta y preparación de datos, el entrenamiento y la implementación de modelos, y la supervisión de soluciones de aprendizaje automático con Python, Azure Machine Learning y MLflow.
Obtenga información sobre cómo realizar el seguimiento y el registro de experimentos desde Data Science Virtual Machine con Azure Machine Learning o MLFlow.
Obtenga información sobre cómo las canalizaciones de Machine Learning ayudan a crear, optimizar y administrar los flujos de trabajo de aprendizaje automático.
Obtenga información sobre la programación de trabajos de canalización que le permitan automatizar las tareas rutinarias y lentas, como el procesamiento de datos, el entrenamiento y la supervisión.
Obtenga información sobre cómo usar la CLI de Azure Machine Learning o el SDK de Python para crear y trabajar con diferentes tipos y ubicaciones de modelos registrados.