Tracking de Experimentos con MLflow y Bucket en SQLite

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

Contenido del curso

Fundamentos de MLOps y tracking de modelos

Tracking del ciclo de vida de modelos de machine learning

Despliegue de modelo de machine learning

Resumen

Cuando trabajas con modelos de machine learning y necesitas registrar cada experimento de forma estructurada, utilizar un backend basado en una base de datos marca una diferencia importante. Aquí se explica cómo configurar MLflow para que las entidades —métricas, hiperparámetros y metadatos— se almacenen en SQLite, manteniendo los artefactos en la carpeta habitual mlruns.

¿Cómo funciona el flujo de tracking con un backend en SQLite?

El esquema general es muy parecido al tracking local que ya se conoce. Tu código de machine learning sigue comunicándose con MLflow, y los artefactos (modelos serializados, gráficas, archivos auxiliares) continúan guardándose en la carpeta mlruns. La diferencia central es que las entidades —todo lo que se registra y no es un artefacto— ahora se persisten en una base de datos compatible con SQLite [0:26].

Esto significa que cada run queda almacenado de manera organizada dentro de un archivo .db, lo cual facilita consultas y comparaciones cuando ejecutas múltiples combinaciones de hiperparámetros durante la optimización de un modelo.

¿Qué cambios se necesitan en el código?

El código base es prácticamente el mismo que se ha venido utilizando. Solo hay dos ajustes clave [0:50]:

  • set_tracking_uri: se modifica para indicar que el backend será SQLite, apuntando a la ruta del archivo de base de datos.
  • set_experiment: se asigna un nombre único al experimento; en el ejemplo se usó experiment_backend.

Al ejecutar el script, MLflow crea automáticamente el archivo backend.db [1:10]. Ese archivo es la base de datos donde se acumulan las ejecuciones con sus métricas, parámetros y demás información registrada.

¿Cómo se lanza la interfaz de MLflow con backend store?

Para visualizar los resultados en la UI de MLflow es necesario un comando especial que incluye el argumento --backend-store-uri, seguido de la ruta donde se encuentra el archivo .db [1:30].

Antes de ejecutar el comando, verifica dos cosas:

  • Tu entorno virtual debe estar activado.
  • Debes estar posicionado en el mismo nivel de directorio donde se encuentran los archivos de tracking.

Una vez lanzado el servidor, MLflow devuelve una dirección IP con un puerto que puedes pegar en tu navegador [1:56]. Al acceder, encontrarás el experimento creado con todos los runs registrados, incluyendo parámetros, métricas, entornos, requerimientos y el modelo serializado [2:14].

¿Cuáles son las limitantes del tracking local?

Aunque el backend con SQLite organiza mejor la información, sigue existiendo una restricción importante: todo permanece en tu máquina local [2:36]. Si necesitas compartir los resultados de un experimento con tu equipo de trabajo, no será posible de forma directa porque los datos no están accesibles desde otras máquinas.

Esta limitante se resuelve almacenando los experimentos en un bucket en la nube, de modo que otros desarrolladores y miembros del equipo puedan consultar la misma información desde cualquier lugar [2:50]. Ese paso representa la evolución natural del flujo de trabajo: pasar de un entorno local a uno colaborativo y compartido.

Si ya estás experimentando con distintas configuraciones de hiperparámetros, prueba este enfoque con SQLite como paso intermedio antes de migrar a la nube. Comparte en los comentarios qué configuración de backend te ha funcionado mejor en tus proyectos.