DVC Pipelines : cómo construir un pipeline de aprendizaje automático reproducible

DVC Pipelines : cómo construir un pipeline de aprendizaje automático reproducible
2 min de lecture

PyImageSearch publica un tutorial dedicado a la construcción de un pipeline de aprendizaje automático reproducible con DVC, una herramienta de versionado de datos y modelos que funciona con Git. Firmado por Vikram Singh, esta guía muestra cómo encadenar varias etapas, desde el preprocesamiento de datos hasta la evaluación, para reejecutarlas con un solo comando.

El ejemplo se basa en el conjunto de datos Iris, un clásico del campo. El archivo crudo iris.csv se separa primero en un conjunto de entrenamiento y uno de prueba, según una proporción 80/20 que conserva las proporciones de las clases. Luego viene el entrenamiento de un modelo de regresión logística, seguido de una evaluación que calcula la precisión y produce un informe de clasificación. El tutorial precisa que todo el proyecto utiliza solo tres bibliotecas: DVC 3.48.4, pandas 2.1.4 y scikit-learn 1.3.2.

Tres etapas conectadas por un archivo de configuración

Cada etapa se describe en un archivo dvc.yaml, que especifica el comando a ejecutar, los archivos de los que depende la etapa y los resultados que produce. Las salidas de una etapa sirven como entradas de la siguiente. Así, una modificación del conjunto de datos reejecuta todo el pipeline, mientras que una modificación solo del script de entrenamiento solo reejecuta el entrenamiento y la evaluación.

Estas dependencias se registran en un archivo dvc.lock, que guarda el estado exacto del pipeline durante su ejecución. Según el autor, este archivo debe versionarse con Git, lo que permite a otro miembro del equipo, o a un servidor de integración continua, reproducir los resultados con los comandos dvc pull y luego dvc repro. Cuando nada ha cambiado, DVC indica que las etapas están actualizadas y no realiza ningún cálculo.

Inspeccionar y comparar las ejecuciones

El tutorial presenta varios comandos de inspección. dvc dag muestra el grafo de etapas en forma de esquema, dvc status indica qué dependencias han cambiado, y dvc diff compara las salidas con la última versión registrada. Para el seguimiento del rendimiento, dvc metrics show muestra las métricas de la última ejecución, y dvc metrics diff las compara de un commit a otro.

En el ejemplo presentado, la evaluación sobre 30 muestras de prueba da una precisión de 0,9333. El autor indica que la misma lógica permite seguir el efecto de un cambio de parámetros o de datos, detectando tanto las progresiones como las regresiones.

El tutorial menciona finalmente extensiones opcionales. Los hiperparámetros pueden moverse a un archivo params.yaml, los gráficos pueden seguirse como salidas, y nuevas etapas, como la ingeniería de características o la búsqueda de hiperparámetros, pueden añadirse al grafo sin modificar las otras etapas. DVC se encarga entonces de recalcular solo las partes afectadas.