Ejecución de Flujos de Trabajo con Prefect: Conceptos y Prácticas
Clase 21 de 35 • Curso de MLOPS: Despliegue de Modelos de Machine Learning
Resumen
¿Cómo ejecutar un flujo con Prefect?
Ejecutar un flujo con Prefect puede ser una experiencia enriquecedora, especialmente después de diseñar e implementar diversas tasks. Ahora, el siguiente paso es poner en marcha este flujo. Antes de proceder, ten en cuenta dos aspectos fundamentales:
- Activar el entorno predefinido: Asegúrate de que tu entorno de trabajo esté activo.
- Inicializar el servidor de Prefect: Si aún no lo has hecho, inicia el servidor en otra terminal para tener todo preparado.
Una vez asegurados estos dos puntos, navega al directorio raíz del proyecto donde se encuentra tu flujo. A continuación, ejecuta el módulo que contiene tu flujo con el siguiente comando en tu terminal:
python orchestration/nombre_modulo.py
Es probable que la primera tarea tarde algunos minutos, dado que se están procesando grandes volúmenes de datos. Una vez finalizada, el resto de las tareas se ejecutarán de forma secuencial, aprovechando los datos procesados por la primera tarea.
¿Qué resultados podemos esperar al correr esto?
Una vez ejecutado el flujo, visualizarás en la terminal que cada tarea se ha completado con éxito. Incluso podrás ver métricas como la accuracy en los reportes de entrenamiento. Esto ofrece un panorama completo del rendimiento del flujo. Navegando a la interfaz de Prefect, en la sección MLEplowruns, podrás ver detalles como el tiempo total de ejecución (por ejemplo, 2 minutos con 43 segundos) y los logs de cada tarea.
Las tareas se dividen en:
- Text processing
- Feature extraction
- Entrenamiento del modelo
Además, aunque no lo implementemos ahora, es interesante saber que Prefect permite la integración de subflows, es decir, ejecutar un flujo dentro de otro. Esta funcionalidad es útil si en algún momento lo requieres.
¿Cómo visualizar y entender las relaciones entre tareas?
Una de las ventajas más destacadas de visualización es poder analizar las relaciones entre las tareas que componen tu flujo. Esto se representa de forma gráfica en Prefect, facilitando la comprensión de cómo interactúan y se sincronizan:
- Ejecuciones en serie y en paralelo: Puedes decidir si algunas tareas se ejecutarán una tras otra o simultáneamente. Las tareas independientes, por ejemplo, pueden correr en paralelo.
- Facilidad en la configuración: Puedes ajustar parámetros de instancia, como el tamaño (medium, large, etc.) y seleccionar si utilizarás recursos adicionales como GPUs para trabajos más complejos.
Estos elementos dotan de flexibilidad a los workflows, permitiendo ajustes y personalizaciones según las necesidades específicas del proyecto.
Por último, aunque no se han generado artifacts en este ejemplo, es recomendable explorar esta opción y consultar la documentación para profundizar en la integración y maximizar el potencial de Prefect en futuros proyectos. Con perseverancia y curiosidad, cada flujo que construyas será más sofisticado y eficiente. ¡Sigue aprendiendo e innovando!