Tracking de Experimentos de Machine Learning con AWS y MLflow
Clase 7 de 35 • Curso de MLOPS: Despliegue de Modelos de Machine Learning
Resumen
¿Cómo realizar tracking en la nube con AWS para Machine Learning?
Iniciar el camino hacia el uso eficiente de servicios en la nube es esencial en el mundo del Machine Learning. En esta guía, exploraremos cómo hacer tracking utilizando los servicios de Amazon Web Services (AWS), lo que permite compartir los resultados de tus experimentos de manera efectiva con tu equipo de trabajo. Al integrar MLflow con AWS, puedes gestionar y almacenar experimentos, bases de datos y resultados en un entorno accesible y colaborativo. ¡Vamos a comenzar!
¿Qué debes configurar en AWS?
Antes de aprovechar al máximo los servicios de AWS, es vital seguir una serie de pasos de configuración. Aquí te dejo un resumen de los aspectos clave:
- Crear una instancia S2 en AWS: Aquí es donde se ejecutará nuestro servidor. Esta instancia servirá como la base para realizar el tracking.
- Configurar un bucket en S3: Este bucket almacenará los resultados de los experimentos, lo que facilitará su gestión y acceso al equipo.
- Establecer una base de datos Postgres: Actuará como Backend Store para MLflow. No olvides anotar información crucial, como el nombre de usuario, contraseña y endpoint de la base de datos.
¿Cómo activar MLflow con un servidor AWS?
Ahora que hemos configurado nuestra infraestructura, el siguiente paso es habilitar MLflow para realizar el tracking. Sigamos este esquema de configuración:
# Configuración para server de MLflow
port: 5000
backend_store_uri: "postgres://<usuario>:<contraseña>@<endpoint>:5432/nombre_DB"
default_artifact_root: "s3://nombre-tu-bucket/mlflow"
Pasos:
-
Conectar a la instancia S2: Utiliza las llaves generadas para acceder al servidor. Asegúrate de estar en la posición correcta al hacer la conexión.
-
Actualizar y configurar dependencias: Ejecuta los comandos para descargar e instalar las dependencias necesarias para que MLflow opere correctamente.
-
Importar y configurar variables ambientales: Crea un módulo de Python para gestionar de manera segura tus claves de acceso (
secret key
yaccess key
).
¿Cómo correr experimentos de ML con tracking en AWS?
Una vez configurado el servidor y MLflow, estás listo para ejecutar tus experimentos de Machine Learning y realizar el tracking de resultados. Aquí te muestro un ejemplo simple:
import mlflow
import mlflow.sklearn
# Configurar dirección del servidor
mlflow.set_tracking_uri('http://<tu-dirección-ip>:5000')
# Configura tu experimento
mlflow.set_experiment('Logistic Regression')
with mlflow.start_run():
mlflow.log_param('param_name', param_value)
mlflow.log_metric('metric_name', metric_value)
mlflow.sklearn.log_model(model, 'model')
Pasos:
-
Definir el tracking server: Usa la dirección pública de tu instancia S2 y el puerto 5000.
-
Realizar el tracking de los experimentos: Ejecuta tu código de experimentación, registrando parámetros, métricas y tu modelo en MLflow.
-
Visualizar resultados en MLflow: Accede al servidor MLflow en tu navegador mediante
http://<tu-dirección-ip>:5000
para explorar tus experimentos.
Ahora tienes la capacidad de compartir de forma segura y eficiente los resultados de tus experimentos de Machine Learning con tu equipo a través de AWS. No más transferencias manuales o riesgos de pérdida de información. Continúa explorando y optimizando tus procesos para aprovechar al máximo el potencial de la nube en tus proyectos de Machine Learning.