Exploración de una arquitectura de MLOps

Completado

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 que haya entrenado un modelo de aprendizaje automático, querrá preparar el modelo para 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 forma similar a DevOps, un entorno hace referencia a una colección de recursos. Estos recursos se usan para implementar una aplicación o con proyectos de aprendizaje automático para implementar un modelo.

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. Normalmente, hay al menos dos entornos: desarrollo o dev y producción o prod. También se pueden agregar entornos intermedios, como un entorno de ensayo o de preproducción (pre-prod).

Un enfoque típico es:

  • Experimente con el entrenamiento del modelo en el entorno de desarrollo .
  • Mueva el mejor modelo al entorno de ensayo o preproducción para implementar y probar el modelo.
  • Por último, libere el modelo en el entorno de producción para implementar el modelo para que los usuarios finales puedan consumirlo.

Organización de 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 para distintas fases.

Imagina que tu equipo utiliza un entorno de desarrollo, preproducción y producción. No todos los miembros del equipo deben acceder a todos los entornos. Los científicos de datos solo pueden trabajar en el entorno de desarrollo con datos que no son de producción, mientras que los ingenieros de aprendizaje automático trabajan en la implementación del modelo en el entorno preproducción y prod con 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.

Diagrama de varias áreas de trabajo de Azure Machine Learning para tener varios entornos.

En Azure, se usa el control de acceso basado en rol (RBAC) para proporcionar a los compañeros el nivel correcto 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, tiene 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 a entornos prod, lo que puede significar que está dando a las personas demasiado poco o demasiado acceso a los recursos.

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, ingenieros de datos y un equipo de infraestructura, puede decidir el uso del 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:

Diagrama de una arquitectura que muestra un proyecto típico de MLOps.

  1. Configuración: creación de todos los recursos de Azure necesarios para la solución.
  2. Desarrollo de modelos (bucle interno): análisis y procesamiento de los datos para entrenar y evaluar el modelo.
  3. Integración continua: empaquetar y registrar el modelo.
  4. Implementación de modelos (bucle externo): implementación del modelo.
  5. Implementación continua: pruebe el modelo y promueva al entorno de producción.
  6. Supervisión: supervisión del rendimiento del modelo y del punto de conexión.

Cuando trabaja con equipos más grandes, no se espera que, como científico de datos, seas 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.