La promoción de modelos en MLflow es el paso que conecta el experimento con el entorno productivo, y aquí aprenderás cómo automatizar esa transición usando el cliente de MLflow, filtrar runs por métricas y mover versiones entre stages sin depender de la interfaz gráfica.
Antes de promover, hay un paso que muchos saltamos: validar la integridad del pipeline. Y aquí viene lo interesante, porque sin esa base, cualquier modelo que pongas en producción va a fallar tarde o temprano.
¿Qué son las pruebas de integridad en un pipeline de machine learning?
Las pruebas de integridad garantizan la trazabilidad completa del proceso, desde la adquisición de los datos hasta su transformación final. No se trata solo de medir la precisión del modelo, sino de revisar qué tan saludables están los datos que lo alimentan.
Muchas veces nos enfocamos tanto en construir la solución de machine learning que dejamos de lado la calidad de los datos. Y ese descuido se paga caro cuando el modelo deja de ser funcional.
Al integrar todas las piezas del sistema, también necesitas evaluar cómo se comportan las métricas y la latencia bajo una infraestructura real [00:36].
¿Qué valida una prueba de integridad? Verifica la trazabilidad del pipeline completo, la calidad continua de los datos y el comportamiento de métricas y latencia cuando todo el sistema corre junto.
¿Cómo buscar los mejores runs en MLflow con search_runs?
Para promover un modelo, primero tienes que encontrarlo. Te conectas al cliente de MLflow que ya configuraste antes y usas el método search_runs para filtrar las ejecuciones por experimento y métrica [01:10].
Los parámetros clave que vas a usar:
experiment_ids: aquí indicas el ID del experimento, en este caso el número uno.
filter_string: déjalo vacío o úsalo para filtrar por tags, por ejemplo, modelos de un desarrollador específico.
run_view_type: especifica que solo te interesan las ejecuciones activas.
max_results: define cuántos resultados quieres, por ejemplo, cinco.
order_by: ordena por una métrica como precision_test en orden descendente.
Las tags son un aliado enorme cuando manejas muchos modelos en paralelo, porque te permiten filtrar con precisión quirúrgica.
Al ejecutar la búsqueda, MLflow te devuelve los run IDs que cumplen con tus especificaciones, listos para el siguiente paso [02:08].
¿Cómo registrar y versionar un modelo desde un run ID?
Una vez que tienes el run ID ganador, vas a generar un registro a partir de ese identificador. Aquí hay un detalle crítico: el model_name que uses tiene que coincidir exactamente con el nombre que asignaste cuando registraste el modelo originalmente.
En este caso, el nombre es Tickets Classifier [02:55]. Si lo respetas, MLflow no crea un registro duplicado, sino que genera una nueva versión del modelo existente. Por eso, al ejecutar el registro, te indica que está creando la versión tres del model name Tickets Classifier.
¿Cómo consultar las versiones más recientes de un modelo?
Para saber en qué estado está cada versión, usas el método get_latest_versions pasándole el model_name. Recorres cada versión almacenada e identificas dos datos:
- La versión actual con el atributo
version.
- El estado actual con
current_stage.
En el ejemplo, aparecen dos versiones recientes: la versión dos en staging y la versión tres recién creada en estado none [03:35].
¿Cómo cambiar el stage de un modelo con transition_model_version_stage?
La promoción se hace con el método transition_model_version_stage. Le pasas el model_name, el número de versión y el stage destino. Por ejemplo, mover la versión tres a staging.
¿Cuáles son los stages disponibles en MLflow? Los principales son none, staging, production y archived. Cada uno representa un punto distinto del ciclo de vida del modelo, desde el registro inicial hasta el retiro.
Si la versión dos ya pasó las pruebas de integridad, calidad de datos y latencia, puedes promoverla de staging a production. Eso significa que ese modelo ya está siendo usado en serving real [04:22].
Al revisar la interfaz gráfica después del cambio, vas a ver exactamente esa transición: la versión tres pasó de none a staging, y la versión dos pasó a production.
¿Cómo identificar cuándo se promovió una versión?
MLflow guarda la marca de tiempo de cada transición. Puedes consultar esa información para auditar cuándo y bajo qué especificaciones se movió un modelo entre estados. También puedes enriquecer el registro con descripciones y otros parámetros que te ayuden a documentar el porqué de cada cambio.
¿Por qué automatizar la promoción de modelos en lugar de usar la interfaz?
La interfaz gráfica es útil para inspeccionar, pero no escala. Cuando trabajas con pipelines de producción, todas estas tareas tienen que correr de forma automática como parte de un flujo orquestado.
Lo que ya tienes en tu caja de herramientas:
- Conexión al cliente de MLflow usando un bucket específico y
mlflow.db como SQLite.
- Búsqueda de los mejores run IDs basada en una métrica de desempeño alineada al negocio.
- Transición programática de versiones entre staging y production.
Elegir la métrica correcta para optimizar es una decisión que va más allá de lo técnico, porque tiene que responder al problema real de tu negocio. Una precision alta no siempre es lo que necesitas si tu caso de uso prioriza el recall o la latencia.
En la próxima clase vas a aprender cómo simular pruebas con un conjunto de datos de testing sobre un modelo que ya está en producción. ¿Cómo manejas tú la transición entre staging y production en tus proyectos? Cuéntame en los comentarios.