Tracking de Modelos de Machine Learning con MLflow Local

Clase 2 de 35Curso de MLOPS: Despliegue de Modelos de Machine Learning

Resumen

¿Qué es el tracking en Machine Learning?

El tracking es una herramienta esencial en Machine Learning que permite registrar métricas de rendimiento y los hiperparámetros de un modelo. Adicionalmente, ofrece la posibilidad de etiquetar con información relevante, como el nombre del desarrollador o el equipo de desarrollo. Esto no solo facilita la organización y seguimiento del progreso, sino que también ayuda en la reproducibilidad de experimentos. En este contenido, exploraremos cómo implementar el tracking usando MLflow y su backend, especialmente de manera local.

¿Cómo trackear con MLflow localmente?

Para incorporar MLflow en un proyecto de Machine Learning local, primero es fundamental preparar el ambiente. En el repositorio, encontrarás recursos cruciales como el archivo pyproject.tom que describe el entorno con Poetry y las versiones de Python y dependencias empleadas. También, si no estás familiarizado con Poetry, hay un README en la sección de configuración del entorno que proporciona instrucciones detalladas para establecer el ambiente.

Código de ejemplo para tracking en MLflow

import mlflow
from sklearn.datasets import load_iris
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score

# Set up experiment
mlflow.set_experiment("iris_experiment")

# Start run
with mlflow.start_run(run_name="example_1"):
    # Load data
    X, y = load_iris(return_X_y=True)

    # Define hyperparameters
    params = {"C": 0.1, "random_state": 42}

    # Log parameters
    mlflow.log_params(params)

    # Train model
    model = LogisticRegression(**params).fit(X, y)

    # Make predictions
    predictions = model.predict(X)

    # Log metric
    accuracy = accuracy_score(y, predictions)
    mlflow.log_metric("accuracy", accuracy)

    # Log model
    mlflow.sklearn.log_model(model, "model")

Este ejemplo detalla paso a paso el proceso de configuración de un experimento, inicialización del tracking, carga de datos, establecimiento de un modelo de regresión logística y su evaluación a través de la métrica 'accuracy'.

Visualización de experimentos en MLflow

Después de ejecutar el código, los artefactos generados y almacenados se organizan en la carpeta predeterminada MLruns. Para visualizar los experimentos de manera más amigable, es posible acceder a la interfaz gráfica de MLflow via navegador:

  1. Asegúrate de que el entorno con MLflow esté activado.
  2. Localiza el notebook ejecutado en el mismo directorio.
  3. Soluciona cualquier error de conexión borrando caché y datos del navegador de las últimas 24 horas.

Ejecutando mlflow ui en la terminal, se obtiene una dirección IP pública para ver en el navegador. Allí, el panel muestra experimentos como iris_experiment con detalles sobre parámetros, métricas y artefactos asociados, proporcionando herramientas útiles para la comparación visual de modelos.

Importancia de la trazabilidad y comparación de modelos

La interfaz de MLflow no solo presenta el tracking de experimentos, sino que también asegura la trazabilidad al ofrecer detalles sobre los requerimientos del entorno de Python. Esto es crucial para la reproducibilidad, permitiendo que otros puedan entrenar el mismo modelo bajo condiciones controladas. Además, la posibilidad de comparar fácilmente métricas como el accuracy entre múltiples modelos ayuda a identificar de manera visual y efectiva cuál tiene el mejor desempeño.

A medida que te sumerjas en proyectos más avanzados, el tracking de MLflow será tu aliado para comprobar la eficiencia de tus modelos y adoptar decisiones informadas en el proceso de desarrollo. ¡Sigue explorando y optimizando tus habilidades en Machine Learning!