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

MLflow com backend SQLite local

Resumen

Configurar MLflow con un backend SQLite te permite separar los artefactos del registro de entidades como métricas, parámetros e hiperparámetros, lo que abre la puerta a un tracking más estructurado para proyectos de machine learning. Si ya hiciste tracking básico con MLflow, este es el siguiente paso lógico antes de mover todo a la nube.

Qué cambia al usar un backend en MLflow

El flujo general se mantiene, pero la forma en la que se almacenan los datos cambia de fondo. Tu código de machine learning sigue igual, los artefactos se siguen guardando en la carpeta MLruns, y lo nuevo es que las entidades que rastreas viajan a una base de datos compatible con SQLite.

Eso significa que cada corrida que ejecutas, con sus métricas e hiperparámetros, queda registrada de forma ordenada en un archivo de base de datos en lugar de quedar suelta en el sistema de archivos.

¿Qué es un backend en MLflow? Es el sistema donde MLflow guarda las entidades del tracking (métricas, parámetros, runs). Con SQLite, todo eso vive en un archivo .db local en lugar de estar disperso en carpetas.

Cómo configurar el tracking con SQLite

La modificación clave está en dos líneas del código que ya venías usando [00:35]. Primero, cambias el set_tracking_uri para apuntar al backend SQLite. Después, defines un set_experiment con un nombre único, por ejemplo experiment_backend, aunque puedes nombrarlo como prefieras.

Al ejecutar el script por primera vez, MLflow crea automáticamente un archivo llamado backend.db. Ese archivo es tu base de datos: ahí se almacenan todas las entidades de cada run, lo cual es especialmente útil cuando estás optimizando un modelo con varios hiperparámetros y necesitas comparar resultados.

Cómo levantar la interfaz de MLflow con backend

Para visualizar los experimentos necesitas un comando especial que le indique a la API de MLflow dónde está la base de datos [01:30]. La instrucción usa el parámetro backend_store_uri apuntando al archivo backend.db que se generó.

Un detalle que no puedes pasar por alto: tienes que ejecutar el comando desde el directorio donde están los archivos de tracking. Si te paras en otra carpeta, MLflow no encontrará la base de datos y la interfaz aparecerá vacía.

  • Abre la terminal y verifica que tu entorno virtual esté activado.
  • Ubícate en la carpeta de trabajo donde está backend.db.
  • Pega y ejecuta el comando con backend_store_uri.

Después de ejecutarlo, MLflow te devuelve una dirección IP con un puerto, igual que en las veces anteriores. Copias esa dirección, la pegas en tu navegador y entras a la interfaz.

Qué encuentras dentro de la interfaz

Por defecto siempre aparece el experimento Default, pero al hacer clic en el experimento que creaste verás todos los runs ejecutados. Cada run tiene su propio registro con parámetros, métricas, ambiente, requisitos y el modelo entrenado.

Si corriste el experimento varias veces, vas a tener varios run names listados, ordenados por tiempo. Entrar a uno te muestra el detalle completo de esa ejecución, lo que facilita comparar versiones y entender qué configuración funcionó mejor.

¿Para qué sirve el archivo backend.db? Guarda todas las entidades del tracking de MLflow en formato SQLite. Cada run, con sus métricas e hiperparámetros, queda registrado ahí para que puedas consultarlo desde la interfaz web.

Por qué un backend local todavía tiene límites

Trabajar con SQLite local resuelve mucho, pero tiene un techo claro: no puedes compartir fácilmente la experiencia con tu equipo porque todo vive en tu máquina. Si un compañero quiere ver tus runs, no tiene forma directa de acceder al archivo backend.db.

Esa es la limitación natural del tracking local, y es justo el problema que se resuelve moviendo el almacenamiento a un bucket en la nube. Así tu equipo, otros desarrolladores o stakeholders pueden acceder al mismo lugar donde está toda la información de los experimentos.

¿Cuándo conviene mover MLflow a la nube? Cuando trabajas en equipo o necesitas que varias personas consulten los mismos experimentos. Un bucket en la nube centraliza el tracking y elimina la dependencia de tu máquina local.

¿Ya probaste configurar tu primer backend con SQLite? Cuéntame en los comentarios qué experimento estás rastreando y qué hiperparámetros estás comparando.