Fundamentos de MLOps y tracking de modelos

1

¿Qué es MLOps y para qué sirve?

2

Etapas del ciclo de MLOps

3

Componentes de MLOps

4

Tracking de modelos en localhost con MLflow

5

Tracking de modelos en localhost: directorio personalizado

6

Tracking de modelos con MLflow y SQLite

7

Tracking de modelos con MLflow en la nube

Tracking del ciclo de vida de modelos de machine learning

8

Tracking de experimentos con MLflow: preprocesamiento de datos

9

Tracking de experimentos con MLflow: definición de funciones

10

Tracking de experimentos con MLflow: tracking de métricas e hiperparámetros

11

Tracking de experimentos con MLflow: reporte de clasificación

12

Entrenamiento de modelos baseline y análisis en UI de MLflow

13

MLflow Model Registry: registro y uso de modelos

14

Registro de modelos con mlflow.client

15

Testing de modelo desde MLflow con datos de prueba

16

¿Para qué sirve el tracking de modelos en MLOps?

Orquestación de pipelines de machine learning

17

Tasks con Prefect

18

Flows con Prefect

19

Flow de modelo de clasificación de tickets: procesamiento de datos y features

20

Flow de modelo de clasificación de tickets: integración de las tasks

21

Flow de modelo de clasificación de tickets: ejecución de tasks

22

¿Cómo se integra la orquestación en MLOps?

Despliegue de modelo de machine learning

23

Despligue con Docker y FastAPI: configuración y requerimientos

24

Despligue con Docker y FastAPI: definición de clases y entry point

25

Despligue con Docker y FastAPI: procesamiento de predicciones en main app

26

Despligue con Docker y FastAPI: configuración de la base de datos

27

Despliegue y pruebas de modelo de machine learning en localhost

28

Despliegue y pruebas de modelo de machine learning en la nube

29

¿Qué hacer con el modelo desplegado?

Monitoreo de modelo de machine learning en producción

30

¿Cómo monitorear modelos de machine learning en producción?

31

Entrenamiento de modelo baseline

32

Preparar datos para crear reporte con Evidently

33

Análisis de la calidad de los datos con Evidently

34

Creación de reportes con Grafana

35

¿Cómo mejorar tus procesos de MLOps?

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Tracking de modelos con MLflow en la nube

7/35
Recursos

Aportes 12

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

El audio está corrido y el video tiene un bucle, es decir, se repite una parte
El link del recurso lleva a una branch que se llama `templates`, ahí no está trackeado el notebook `mlflow_con_aws`, hay que pasarse a la master para poder verlo
Si alguien recibe el siguiente error al intentar crear el servidor de MLFlow: `ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with LibreSSL 2.8.3. See: `[`https://github.com/urllib3/urllib3/issues/2168`](https://github.com/urllib3/urllib3/issues/2168) Se puede arreglar instalando la siguiente versión de urllib3 `pip install urllib3==1.26.6`
Una forma interesante es desplegar el server MLflow completamente en la nube. Por acá les comparto un repo mío donde levanto todo con Terraform y, como la profe lo hizo en la clase, con backend storage en postgres y S3 para artifacts. <https://github.com/Hausdorff94/mlflow-aws-terraform/tree/main>
Muchas expectativas con este curso, pero tiene muy poca conexión, no es posible seguir la linea del curso y uno se desconecta con mucha facilidad :(
Hola tengo una pregunta! Según manual de MLFlow se pueden crear experimentos usando `MlflowClient.create_experiment()`, borrar experimentos usando `MlflowClient.delete_experiment()` y obtener experimentos ya creados con `MlflowClient.get_experiment()` Por alguna razon quiero borrar un experimento que hice usando el `experiment_id` pero cuando intento crear un nuevo experimento MLflow me dice que ya existe y dehecho puedo obtener de nuevo ese experimento:( ![](https://static.platzi.com/media/user_upload/image-d73db931-8c5c-4afe-bcb7-21302aa7660b.jpg)
El **tracking de modelos con MLflow en la nube** se refiere al proceso de registrar, monitorear y gestionar experimentos de machine learning utilizando la herramienta **MLflow**, pero en lugar de almacenar los datos localmente, se utiliza un servicio en la nube. ### Conceptos básicos: 1. **MLflow:** * Es una herramienta que ayuda a los científicos de datos y a los ingenieros de machine learning a organizar y gestionar sus experimentos. * Con MLflow, puedes registrar todos los detalles de un experimento de machine learning: los parámetros que utilizaste, los resultados que obtuviste, y los modelos que entrenaste. 2. **Tracking (seguimiento):** * Es la capacidad de registrar y hacer un seguimiento de todos los experimentos que realizas. Así, puedes ver cuál combinación de parámetros funcionó mejor o comparar diferentes modelos para decidir cuál es el más adecuado. 3. **La nube:** * Cuando hablamos de "la nube", nos referimos a servicios de almacenamiento y computación proporcionados por empresas como Amazon Web Services (AWS), Google Cloud Platform (GCP), o Microsoft Azure. * En lugar de guardar los datos en tu computadora, los guardas en servidores remotos que están en la nube. ### ¿Cómo funciona el tracking de modelos con MLflow en la nube? 1. **Configuración de MLflow en la nube:** * En lugar de configurar MLflow para guardar los datos en tu computadora o en una base de datos local como SQLite, configuras MLflow para que guarde todo en un servicio en la nube. * Esto implica especificar la ubicación en la nube donde quieres almacenar la información (por ejemplo, un bucket en Amazon S3 o un servicio de base de datos en la nube). 2. **Registro de experimentos:** * Cuando entrenas un modelo y usas MLflow, todos los detalles de ese experimento (como los parámetros del modelo, las métricas de rendimiento y el propio modelo entrenado) se envían y almacenan en la nube. * Esto permite que todos los datos estén centralizados y accesibles desde cualquier lugar, siempre que tengas acceso a la nube. 3. **Consulta y análisis:** * Puedes acceder a tus experimentos desde cualquier lugar y en cualquier momento. Por ejemplo, si estás trabajando en un laboratorio de computación en la universidad y luego quieres revisar tus experimentos en casa, puedes hacerlo fácilmente porque los datos están en la nube. 4. **Ventajas:** * **Acceso desde cualquier lugar:** Como los datos están en la nube, no dependes de una sola máquina para acceder a ellos. * **Colaboración:** Si estás trabajando en equipo, todos pueden ver los experimentos y modelos, y pueden colaborar más fácilmente. * **Escalabilidad:** Las soluciones en la nube suelen manejar grandes volúmenes de datos mejor que las soluciones locales, lo que es útil si estás trabajando con modelos y conjuntos de datos grandes.
Al ingresar al servidor por el puerto 5000, no llegaba a levantar la interfaz, revisando vi que era por un tema de timeout, por ello terminé agregando al comando : `--gunicorn-opts "--timeout 180"` dejo la fuente: <https://github.com/mlflow/mlflow/issues/925#issuecomment-702059566>

ATENCIÓN: con la capa free tier de AWS, en el servicio de RDS sólo se permite crear 1 base de datos.

Si quieren crear una DB adicional, o borrar la antigua y crear una nueva, tendrán que pagar unos 15-17$ al mes (pago por uso, ya saben)

Link del archivo Markdown con las instrucciones * <https://github.com/platzi/Mlops-platzi/blob/master/tracking/mlflow_con_aws.md>

Por si las moscas el endpoint se encuentra en los detalles de la instancia del database:

Estuve profundizando en el servicio de RDS y aqui traje un corto resumen: AWS RDS (Relational Database Service) es un servicio que simplifica la configuracion, las operaciones y el escalamiento de bases de datos relacionales sobre AWS. Con este servicio te enforcas más en el desarrollo de tu aplicación que en otras tareas frecuentes como

  • Backups
  • Patching
  • Scaling
  • Replication

Ventajas

  • Simplficamos la instalación del software de base de dato s
  • Lanzamiento super veloz para empezar a hacer queries SQL
  • Podemos replicar nuestra data para aumentar la disponibilidad
  • Puedes conectar tus tools de reporting o incluso de ETL