Está en la página 1de 39

SESIÓN 6

Docente: Christian Fonseca


itinerario_

10:00-11:30: Desarrollo de la sesión


sabado_ 11:30-11:40: Receso
11:40-13:00: Desarrollo de la sesión

19:30-21:00: Desarrollo de la sesión


martes_ 21:00-21:10: Receso
21:10-22:30: Desarrollo de la sesión
Índice

• Contenedores II
• Despliegue en Cloud
• Monitoreo y Seguimiento de Modelos
• Arquitecturas comunes
Contenedores II
Problemática de los entornos
¿Cuántas veces te ha pasado que tu código funciona bien en tu
ordenador, pero no en el de los demás? La razón: tu ordenador y
el resto tienen diferentes entornos de Python.
Un entorno incluye todas las librerías y dependencias utilizadas
para crear una aplicación. Si podemos transferir ese entorno en
un Container, se puede utilizar en otros sitios el modelo.
Soluciones para entornos
Alternativas para crear un entorno aislado para nuestra
aplicación:
• Tener una máquina separada.
• Utilizar maquinas virtuales.
• Containers.
Repaso Docker
Docker es una herramienta para facilitar la creación,
implementación y ejecución de aplicaciones mediante Containers.
Estos permiten empaquetar una aplicación con todos sus
componentes y enviarlo como un solo paquete
Creando un Container
Para poder crear un Container vamos a tener que generar un
Dockerfile con las librerías necesarias para el modelo. Después
generamos el Docker Image, que contiene toda la información
necesaria para la ejecución del modelo.
Creando un Container
Para poder crear un Container vamos a tener que generar un
Dockerfile con las librerías necesarias para el modelo. Después
generamos el Docker Image, que contiene toda la información
necesaria para la ejecución del modelo.
Container para un API
Pycaret permite crear fácilmente un Container para un API de un
modelo.
Container de la aplicación de Flask
Vamos a generar un Container de Docker para nuestra aplicación
de Flask y HTML.
Laboratorio: Crear un docker para una app que usa
FastAPI.
Despliegue en Cloud
Importancia del Cloud
El ML ha estado fuera del alcance de la mayoría de empresas
debido a la alta especialización que requiere, costes de
implementación y dificultad para escalar. El ML en el Cloud
puede cambiarlo, gracias a:
Arquitectura
Despliegue en ECS
Podemos desplegar nuestro modelo en el cloud mediante Containers
de Docker. En este ejemplo, probaremos a desplegar el modelo en
Elastic Container Service.
Despliegue del Container en Azure
Vamos a desplegar el Container de la API en ECS, colocándolo en
un ECR. Para ello, utilizaremos el ECR para subir la imagen de
Docker.
Laboratorio: Deployar un modelo local de una app
en AWS
Monitoreo y Seguimiento
Principales medidas a tomar en cuenta

• Medición del Model Drift (Deriva del modelo)


• Metricas:
• Monitoreo de métricas de rendimiento del modelo
• Monitoreo de las predicciones del modelo
• Monitoreo de la latencia de las predicciones, etc
• Continuous Integration (CI), Continuous Deployment &
Continuous Training
Model Drift
El Model Drift. Este es un fenómeno que ocurre cuando la
distribución de datos en el entorno de producción cambia con el
tiempo, haciendo que el modelo de aprendizaje automático se
vuelva menos preciso en sus predicciones. Es decir, el modelo
se "desvía" de su rendimiento inicial.
Detección del Model Drift
1. Retroalimentación del usuario final: Esto se basa en recibir comentarios directos
de los usuarios finales del modelo. Por ejemplo, si tienes un modelo que
recomienda películas, puedes rastrear las calificaciones de los usuarios para las
películas recomendadas y ver si cambian con el tiempo.

2. Pruebas de integridad estadística (SIT): Estas pruebas se realizan para verificar si


la distribución de los datos de entrada al modelo se ha desviado
significativamente de la distribución original de los datos de entrenamiento.

3. Pruebas de integridad del modelo (MIT): Estas pruebas se realizan para verificar
si el rendimiento del modelo en sí ha cambiado con el tiempo.
Formula Basica
Formula Extendida
Metricas
Las métricas de rendimiento pueden variar según el tipo de
problema que estás intentando resolver. Por ejemplo, para
problemas de clasificación, puedes querer seguir de cerca la
precisión, la curva ROC, la sensibilidad, la especificidad,
etc. Para problemas de regresión, puedes querer seguir de cerca
el error cuadrático medio, el error absoluto medio, etc..
Formula Basica
CI, CD & CT

Integración Continua (CI): CI es una práctica de desarrollo


de software que consiste en que los desarrolladores integren
su trabajo frecuentemente, generalmente varias veces al día.
Cada integración se verifica mediante compilación automática
y pruebas automatizadas para detectar errores lo más
rápidamente posible. En el contexto del MLOps, CI puede
implicar la verificación de la calidad del código, las
pruebas unitarias de las funciones y componentes del código
y las pruebas de integración del código de aprendizaje
automático con otros sistemas.
CI, CD & CT

Entrega Continua (CD): CD es una práctica que implica la


automatización del proceso de entrega de software,
permitiendo a los equipos de desarrollo desplegar cambios de
código de manera más rápida y eficiente. En MLOps, CD podría
implicar la automatización del despliegue de modelos de
aprendizaje automático, incluyendo las pruebas de
aceptación, la preparación del entorno de despliegue y el
despliegue en sí.
CI, CD & CT

Entrenamiento Continuo: El entrenamiento continuo es un


concepto en MLOps donde un modelo de aprendizaje automático
se reentrena y se despliega de forma continua con nuevos
datos. Esto puede ser esencial para los modelos que operan
en entornos donde los datos cambian frecuentemente, como los
modelos financieros o de redes sociales.
Arquitecturas comunes
Soluciones General A
Soluciones General B
Soluciones de MLOps: Uber - Michaelangelo
Soluciones de MLOps: Netflix - Metaflow
Soluciones de MLOps: Netflix - Metaflow

También podría gustarte