Exploración de una arquitectura de MLOps
Como científico de datos, quiere entrenar el mejor modelo de aprendizaje automático. Para implementar el modelo, quiere hacerlo en un punto de conexión e integrarlo con una aplicación.
Con el tiempo, es posible que quiera volver a entrenar el modelo. Por ejemplo, cuando tenga más datos de entrenamiento.
En general, una vez entrenado un modelo de aprendizaje automático, le interesa preparar el modelo a escala empresarial. Para preparar el modelo y hacerlo funcionar, quiere hacer lo siguiente:
- Convertir el entrenamiento del modelo en una canalización sólida y reproducible.
- Probar el código y el modelo en un entorno de desarrollo.
- Implementar el modelo en un entorno de producción.
- Automatizar el proceso de un extremo a otro.
Configuración de entornos para desarrollo y producción
En MLOps, de manera similar a DevOps, un entorno hace referencia a una colección de recursos. Estos recursos se usan para implementar una aplicación o para implementar un modelo mediante proyectos de aprendizaje automático.
Nota
En este módulo, se hace referencia a la interpretación de entornos de DevOps. Tenga en cuenta que Azure Machine Learning también usa el término "entornos" para describir una colección de paquetes de Python necesarios para ejecutar un script. Estos dos conceptos de entornos son independientes entre sí.
El número de entornos con los que trabaja depende de su organización. Por lo general, hay al menos dos entornos: desarrollo o dev y producción o prod. Además, puede agregar entornos intermedios, como un entorno de almacenamiento provisional o de preproducción (preprod).
Un enfoque típico consiste en:
- Experimente con el entrenamiento del modelo en el entorno de desarrollo.
- Lleve el mejor modelo al entorno de almacenamiento provisional o de preproducción para implementarlo y probarlo.
- Por último, lleve el modelo al entorno de producción para implementarlo y que los usuarios finales puedan usarlo.
Organización de los entornos de Azure Machine Learning
Al implementar MLOps y trabajar con modelos de aprendizaje automático a gran escala, se recomienda trabajar con entornos independientes en las diferentes fases.
Imagine que su equipo usa un entorno de desarrollo, preproducción y producción. No todos los miembros del equipo deben tener acceso a todos los entornos. Los científicos de datos solo pueden trabajar en el entorno de desarrollo con datos que no sean de producción, mientras que los ingenieros de aprendizaje automático deben trabajar en la implementación del modelo en el entorno de tipo preprod y prod con los datos de producción.
Tener entornos independientes facilita el control del acceso a los recursos. A continuación, cada entorno se puede asociar a un área de trabajo de Azure Machine Learning independiente.
En Azure, usará el control de acceso basado en rol (RBAC) para proporcionar a sus compañeros el nivel adecuado de acceso al subconjunto de recursos con los que necesitan trabajar.
Como alternativa, solo puede usar un área de trabajo de Azure Machine Learning. Al usar un área de trabajo para desarrollo y producción, tendrá una superficie de Azure más pequeña y menos sobrecarga de administración. Sin embargo, RBAC se aplica tanto a entornos de desarrollo como de producción, lo que puede significar que se esté dando a la gente demasiado o demasiado poco acceso a los recursos.
Sugerencia
Obtenga información sobre los procedimientos recomendados para organizar los recursos de Azure Machine Learning.
Diseño de una arquitectura de MLOps
La incorporación de un modelo a la producción significa que necesita escalar la solución y trabajar conjuntamente con otros equipos. Junto con otros científicos de datos, los ingenieros de datos y el equipo de infraestructura, ha decidido usar el siguiente enfoque:
- Almacene todos los datos en una instancia de Azure Blob Storage, administrados por el ingeniero de datos.
- El equipo de infraestructura crea los recursos de Azure necesarios, como el área de trabajo de Azure Machine Learning.
- Los científicos de datos se centran en lo que mejor saben hacer: desarrollar y entrenar el modelo (bucle interno).
- Los ingenieros de aprendizaje automático implementan los modelos entrenados (bucle externo).
Como resultado, la arquitectura de MLOps incluye las siguientes partes:
- Configuración: creación de todos los recursos de Azure necesarios para la solución.
- Desarrollo de modelos (bucle interno): análisis y procesamiento de los datos para entrenar y evaluar el modelo.
- Integración continua: empaquetado y registro del modelo.
- Implementación de modelos (bucle externo): implementación del modelo.
- Implementación continua: prueba del modelo y promoción al entorno de producción.
- Supervisión: supervisión del rendimiento del modelo y del punto de conexión.
Cuando trabaja con equipos más grandes, no espera, como científico de datos, ser responsable de todas las partes de la arquitectura de MLOps. Sin embargo, para preparar el modelo para MLOps, debe pensar en cómo diseñar los pasos de supervisión y reentrenamiento.