Administración de modelos de MLOps 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 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.
Para obtener más información sobre MLOps, consulte Operaciones 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.
Para más información sobre las canalizaciones de Azure Machine Learning, consulte Canalizaciones de aprendizaje automático.
Entornos de software reutilizables
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 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
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.
Para obtener más información sobre ONNX con Azure Machine Learning, consulte Creación y aceleración de modelos de Machine Learning.
Implementación de modelos como puntos de conexión
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.
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.
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:
- 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.
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.
Para más información sobre el uso de Azure Pipelines con Azure Machine Learning, consulte Uso de Azure Pipelines con Azure 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, vea IA con flujos de datos.