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

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

10/35
Recursos

¿Cómo realizar un seguimiento eficaz de las métricas en un modelo predictivo?

La capacidad de realizar un seguimiento eficaz de las métricas de un modelo predictivo es crucial para el desarrollo y mejora continua de modelos de aprendizaje automático. Esto nos permite auditar y comprender mejor nuestro modelo, brindando detalles que pueden orientar nuestras decisiones en fases futuras del proceso de desarrollo. En esta clase, aprenderemos cómo implementar un seguimiento adecuado utilizando técnicas de validación cruzada y búsqueda en grilla, un camino crucial para optimizar nuestro modelo predictivo.

¿Cuál es el significado de las métricas 'ROC AUC' y cómo se integran en el seguimiento?

El ROC AUC (Receiver Operating Characteristic - Area Under the Curve) es una métrica fundamental para evaluar la performance de modelos clasificatorios. Esta métrica permite detectar la capacidad del modelo para distinguir entre clases, representando este comportamiento en una gráfica ROC.

Para llevar un control adecuado de estas métricas, es esencial utilizar herramientas que nos permitan registrar cada una de ellas. Así, al ejecutar un código de seguimiento de estas métricas, podemos listar las métricas de entrenamiento y prueba de la siguiente manera:

metrics.extend([roc_auc_train, roc_auc_test])

El uso de logger para mostrar la información es crucial, aunque no suficiente, ya que se debe hacer un seguimiento real de estas métricas utilizando herramientas como emiliflow.logmetric.

¿Cómo implementamos predicciones sobre los datos y el seguimiento de precisión y recall?

Tomar predicciones sobre los conjuntos de datos de entrenamiento y prueba es esencial para evaluar diferentes métricas de evaluación, como precision y recall, aplicando ambas en modelos discriminativos.

La implementación del código para hacer predicciones y el registro de las métricas sería como sigue:

train_pred = model.predict(train_data)
test_pred = model.predict(test_data)

# Log metrics for precision and recall
emiliflow.logmetric("precision_train", precision_score(train_labels, train_pred))
emiliflow.logmetric("recall_train", recall_score(train_labels, train_pred))

emiliflow.logmetric("precision_test", precision_score(test_labels, test_pred))
emiliflow.logmetric("recall_test", recall_score(test_labels, test_pred))

Vale la pena señalar que estas métricas nos brindan una visión más amplia de la capacidad de rendimiento y generalización del modelo.

¿Cómo manejar el seguimiento de hiperparámetros con validación cruzada y búsqueda en grilla?

Comprender y realizar un seguimiento de los hiperparámetros utilizados en la validación cruzada y la búsqueda en grilla puede ser complicado, pero es esencial para optimizar eficazmente el modelo. La función de seguimiento que utilizaremos podrá identificar si un modelo fue entrenado con validación cruzada o no, ajustando dinámicamente los parámetros para registrar la información necesitada sin interrupciones.

En el caso de un modelo entrenado con búsqueda en grilla:

try:
    if use_cv:
        best_params = model.best_params_
    else:
        best_params = model.get_params()
    emiliflow.logParams(best_params)
except Exception as e:
    logger.info(f"Error encontrado: {str(e)}")

Este enfoque garantiza que, independientemente de cómo se haya entrenado el modelo, los mejores hiperparámetros sean reconocidos y rastreados, permitiéndonos optimizar futuras implementaciones.

¿Por qué es importante el registro de hiperparámetros en el proceso de modelado?

El registro de los hiperparámetros es crucial para entender el comportamiento y las características de un modelo. Nos ayuda a:

  1. Reproducibilidad: Permite a otros reproducir tu trabajo exacto en un futuro cercano.
  2. Análisis exhaustivo: Facilita el análisis comparativo entre diferentes modelos y configuraciones.
  3. Mejora continua: Proporciona una base para la optimización y mejora continua de modelos predictivos.

Al automatizar el proceso de registro de hiperparámetros, podemos asegurar que estamos listos para iterar utilizando los datos y configuraciones previas, fundamental para el aprendizaje automático moderno.

Aportes 5

Preguntas 0

Ordenar por:

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

Decepcionante hasta ahora el curso, todavía no entiendo qué es mlflow si fuera por el curso (ya que tuve que ver otros videos), lo único que está haciendo la profe es escribir codigo. Yo pensé que Platzi se daría cuenta de esto, ya que hay un monton de cursos con profes que te habla mientras escriben el codigo sin ninguna explicación profunda ni nada por el estilo, necesito explicaciones gráficas, recursos en la descripción, etc. Y más que todo de un tema tan complejo e importante como lo es MLOps.
Vengo del anterior curso de MLOps (que fue hace 2 años) y esperaba encontrarme con todas los problemas y debilidades del anterior resueltas.

El curso está bien, solo que la gente no entiende lo que es MLOps, yo soy científico de datos y también trabajo con MLOps en el momento y entiendo perfectamente, solo que si van a tomar este curso deben tener ciertos conocimientos previos, primero deben estudiar mas de Machine Learning y otros conceptos estadísticos.
Me siento raro en este curso, siento que los cursos no comienzan desde las bases o lo basico de algo, solo escucho y escucho a la profe hablar, pero no se que estamos haciendo, me siento perdido, siento que solo veo copiar pegar codigo, pero siento que no avanzo en nada de este curso, me siento perdiendo el tiempo.
También estoy de acuerdo con que el curso está bien. Esto no es una clase de Data Science o Procesamiento de Lenguaje, es una clase de MLOps y de como operar un ciclo de desarrollo de Machine Learning en ambientes productivos. Mi recomendación para los que no están entendiendo es que paren y tomen algunos cursos de NLP y luego vuelvan a tomarlo.
Me parece que para explicar MLOps tenemos un ejemplo algo complejo y se pierde la idea que se queire aprender aqui .Se esta tomando mas tiempo y esfuerzo al explicar las clases y metodos del NLP y se pierde enfoque en el MLOps .En conclusion la profesora es buena pero el proyecto que tomo como ejemplo me parece que no es el adecuado para que quede mas claro el MLOPS.