Fundamentos de MLOps y tracking de modelos

1

¿Qué es MLOps y para qué sirve?

2

Tracking de modelos en localhost con MLflow

3

Tracking de modelos en localhost: directorio personalizado

4

Etapas del ciclo de MLOps

5

Componentes de MLOps

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

Componentes de MLOps

5/35
Recursos

¿Cuáles son los componentes esenciales de infraestructura en MLOps?

El mundo de MLOps está lleno de desafíos, y uno de los más destacados es configurar una infraestructura robusta. Es fundamental entender cómo controlar cada componente y cómo integrarlos adecuadamente para asegurar el éxito de los proyectos de Machine Learning. Te invito a descubrir el papel que desempeñan herramientas ya familiares como GitHub, CI/CD, y otras tecnologías emergentes.

¿Por qué es crucial el control de versiones?

El control de versiones es la base de un proyecto de MLOps bien gestionado. Este proporciona un registro detallado de todo el desarrollo que se realiza con el código. Los repositorios en plataformas como GitHub o GitLab no solo facilitan esta tarea, sino que también integran procesos críticos como la Integración Continua (CI) y la Entrega Continua (CD). Estos procesos aseguran que el desarrollo y despliegue en equipos de múltiples desarrolladores se lleve a cabo de manera ordenada, eficiente y sin romper la funcionalidad actual del software.

¿Qué papel juegan la integración y entrega continua en MLOps?

  • Integración Continua (CI): Permite identificar problemas de desarrollo temprano utilizando pruebas automatizadas. Garantiza que el código cumpla con las mejores prácticas, como el uso correcto de librerías y la creación de funciones eficientes.

  • Entrega Continua (CD): Va más allá al asegurar que las actualizaciones de servicio o aplicaciones puedan implementarse rápidamente. Esto incluye pruebas exhaustivas para garantizar que la infraestructura pueda manejar cambios como reentrenamientos de modelos de Machine Learning sin interrupción.

¿Cómo se maneja la orquestación en la infraestructura de MLOps?

La orquestación es vital, dado que une todos los procesos del flujo de trabajo de Machine Learning desde la adquisición de datos hasta la ejecución final. Frameworks como Data Version Control (DVC), Prefect y HIDRA son herramientas esenciales que facilitan la automatización del pipeline, eliminando la necesidad de intervención manual y permitiendo así un flujo completamente automático.

¿Cómo se gestionan los modelos y los datos en MLOps?

El versionado de datos y modelos es clave en MLOps. Ofrecen un entorno controlado para realizar experimentaciones variadas. Estos sistemas de gestión permiten:

  • Almacenar metadatos desde modelos hasta artefactos.
  • Asignar estados o etapas a los modelos, identificando si están en pruebas o en producción.
  • Integrar y manipular versiones del modelo de manera segura dentro de repositorios.

¿Qué son el Compute Serving y el Model Registry?

  • Batch Serving: Ideal para grandes volúmenes de datos. Permite dividir la información en lotes, procesarla, y almacenar las predicciones para análisis o toma de decisiones posteriores.

  • Real-Time Serving: Facilita predicciones inmediatas y exige una infraestructura enfocada en minimizar la latencia y optimizar el tráfico de red.

¿Por qué es importante el monitoreo en MLOps?

La supervisión constante de los modelos deployed es fundamental para garantizar su precisión y relevancia continua. Herramientas como Grafana habilitan la visualización en tiempo real de las inferencias realizadas y la creación de dashboards para monitorear el desempeño del modelo. Esto permite a los equipos detectar obsolescencia y ajustarse rápidamente a las cambios necesarios.

Embárcate en la construcción de un flujo de trabajo robusto en MLOps y utiliza estos componentes esenciales para asegurar la eficiencia y efectividad de tus proyectos de Machine Learning.

Aportes 5

Preguntas 0

Ordenar por:

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

Componentes de MLOPs

Control de versiones 🕎

  • Facilita integrar el trabajo de varios contribuidores y manejar las versiones del proyecto
  • Servicios: Github o GItLab

CI/CD ♻️

Continuos integration (CI)

  • Unit testing
  • Buenas prácticas de software developments

Continuos deployment (CD)

  • Facilitar la disponibilidad de los servicios de ML
  • Asegurar que se tiene la correcta infraestructura de software
  • Registrar la trazabilidad de las dependencias que se usan en el flujo de trabajo

Orquestación 🎻

  • Automatización de los del flujo de ML
  • Servicios: DVC, prefect, hydra

Model y container registry 📝

  • Experimentación de ML: Hiperparametros, datos, metadata
  • Servicios: MLFlow

Compute serving 📦

¿Cómo vamos a disponibilizar nuestro modelo?

  • Batch Serving
    • Las predicciones se hacen por lote
    • Priorizamos las métricas y las tasas de computo
  • Real-Time serving
    • Las predicciones se hacen bajo demanda
    • Priorizamos latencia, trafico en la red, etc.

Monitoreo 🔍

  • Este componente es crucial a la hora de dar seguimiento al performance de nuestro modelo, debemos siempre preguntarnos si el modelo funciona o es obsoleto
  • Integramos visualizaciones de metricas de negocio, etc.
  • Servicios: Grafana Labs
* **Control de versiones (Github, Gitlab)**: Permite tener el tracking de todo el desarrollo de código. Es común que se realice con Github y Gitlab, se relacionan con el CI / CD * **CI / CD** * CI (Continuous Integration): Es común que en un repositorio haya mas de un desarrollador, y al haber tantas personas manipulando el repositorio, se debe garantizar que la integración de esos códigos realizados ya haya pasado por pruebas antes de ser integrados. Pruebas unitarias, o pruebas que aseguren la integridad del código. * CD (Continuous Delivery): Es ir más allá del CI, es que al momento de implementar algo debemos tener algunos requerimientos de infraestructura, pruebas realizadas, etc. Antes de ponerlo en ambientes productivos. Tener la certeza y trazabilidad de que toda la infraestructura sea la adecuada para ponerlo disponible. Facilita la entrega de los servicios de ML. * **Orquestación (dvc, prefect, hydra, airflow):** Unimos todos los procesos, desde la adquisición de la data, ETL, experimentación de modelos de ML con sus métricas de desempeño, el objetivo es tener una madurez determinada por la pregunta ¿Qué tan automático tienes tu flujo? El propósito es tener automatizado todo el pipeline de ML. * **Model y Container Registry (mlflow):** Tiene como objetivo hacer varias experimentaciones con varios modelos de ML, haciendo diversas configuraciones en hiperparámetros, versionado de la data, para almacenar esa metadata. La metadata puede ser los modelos, versión del código que lo generó, artefactos, etc. A los modelos se les puede asignar un estado (staging) para saber si los modelos están en etapas de pruebas o productivas. Esto permite manipular los modelos dentro de un repositorio y tener la seguridad de que hacer con ellos (consumirlos y en cual versión enviar a producción) * **Compute Serving:** Disponibilizar un modelo, hay varias formas * **Batch Serving:** Cuando hay gran cantidad de datos, dividirlos en lotes de tamaños iguales, estos se introducen al modelo para que se pueda hacer la predicción respectiva, dependiendo del número de batches se tiene el número de predicciones. * **Real-Time Serving:** Tener predicciones bajo demanda (tiempo real), la infraestructura varía teniendo en cuenta latencia, ancho de banda, entre otros * **Monitoring (grafana):** Realizar monitoreo constante de los modelos de ML.
Veo a Jenkins, el otro no lo identifico, sin embargo una herramienta que esta ganando mucho terreno es Github Actions para CI / CD
me gusto la introducción <3
Buena introducción