Con el aumento del interés y el número de proyectos de aprendizaje automático (vehículos autónomos, reconocimiento facial, sistemas de recomendación), el desarrollo de software tradicional ha pasado de reglas codificadas a reglas de estimación de datos, también conocidas como modelos basados en datos (consulte la figura 1). La creación de sistemas de información fiables y estables basados en modelos basados en datos imperfectos, como el control de versiones, el despliegue, la supervisión, la monitorización, la explicabilidad y la reproducibilidad de los modelos, surgieron una serie de nuevos desafíos.
Por Sansón ZHANG, científico de datos en LittleBigCode

Figura 1. Aprendizaje automático versus desarrollo de software tradicional. Fuente: http://datalya.com
Existe un conjunto completamente nuevo de mejores prácticas de ingeniería de software que vienen con el uso de modelos basados en datos para abordar esos desafíos, denominados MLOps. Para tener una visión más amplia de lo que es el mLOps, te recomiendo que leas el artículo de Jamila Rejeb: ¿Por qué es tan importante entender los MLOps? El objetivo principal de MLOps es hacer que todo el ciclo de vida de su proyecto de ML sea automatizado y repetible. En este artículo, nos centraremos principalmente en el experimento de seguimiento y versionado de datos y modelos. Los principales problemas que pretende resolver el seguimiento de experimentos con modelos y datos son:
- Reproducibilidad del código
- Reproducibilidad de conjuntos de datos
- Registro de artefactos (pesos del modelo, hiperparámetros)
- Comparación de resultados de experimentos
Un modelo basado en datos es, por definición, un modelo que aprende de los datos (consulte la figura 2). Significa que hablar de versionado de modelos no solo implica versionar el código/algoritmo (redes neuronales, árboles, etc.) y sus diferentes parámetros (pesos, etc.). También implica versionar los datos utilizados para entrenar a estos últimos, ya que, en la práctica, el conjunto de datos puede cambiar, lo que repercute en el rendimiento del modelo. El control de versiones del modelo hace que el modelo sea reproducible en diferentes entornos y facilita la colaboración.
Poder reproducir tus modelos no solo te beneficia a ti. En algunos casos, también puede impedirte tener problemas legales en los que tengas que demostrar que eres el propietario de los modelos demostrando que puedes generar tus modelos de principio a fin.

Figura 2. Qué es un modelo basado en datos. Fuente: http://dvc.org
¿Por qué necesitamos rastrear nuestros experimentos con modelos?
La ingeniería de software tradicional realiza un seguimiento de la lógica y las reglas de los sistemas mediante el control de versiones de su código, lo que se puede hacer fácilmente con herramientas como Git. Dado que los proyectos de aprendizaje automático integran modelos basados en datos en los sistemas de información tradicionales para reemplazar la lógica codificada de forma rígida, es posible que uno quiera versionar los modelos por las mismas razones.
Para algunas empresas, los modelos basados en datos se han convertido en el núcleo de sus sistemas y están totalmente relacionados con el rendimiento de esos modelos. El éxito de las empresas puede depender de su capacidad para mejorar sus modelos con el fin de ampliarlos.
Cuando los modelos basados en datos son tan importantes para el éxito de un proyecto, también definen la capacidad y los límites del sistema. En el caso de los algoritmos o modelos complejos, es posible que se desee explorar un nuevo camino prometedor con muchos experimentos para mejorar los modelos existentes, pero también podría ser necesario dar marcha atrás si la exploración no arroja resultados. Además, puede interesarnos reutilizar una parte de un experimento y combinarla con otras funciones nuevas del algoritmo. Puede resultar fácil perder la noción de tus experimentos anteriores si no los gestionas bien. Estos experimentos son caros y costosos (los modelos complejos, como los GAN, pueden tardar semanas enteras en prepararse para un único conjunto de hiperparámetros), por lo que es recomendable poder hacer un seguimiento de los experimentos y reproducir los modelos desde cero si es necesario.
¿No basta con rastrear el modelo con mejor rendimiento?
Como diría cualquier científico experimentado, la metodología es importante y es fundamental realizar un seguimiento de los parámetros y resultados de los experimentos. Como científico de datos, no solo debes explorar los datos, sino también mantener el mejor modelo entrenado. Debe y necesita realizar un seguimiento de todos sus experimentos con modelos. Saber qué ajustes de entrenamiento no producen los mejores resultados es tan importante como mantener el mejor modelo que se utiliza en la producción. Al igual que la ingeniería de software tradicional, el historial de experimentos ayuda a los miembros del equipo y a ti a recordar lo que se ha hecho, especialmente cuando tienes muchas configuraciones de experimentos e intentas recordarlas 6 meses después. Te indica los ajustes que ya has probado y te permite no repetir experimentos fallidos o poco prometedores, ahorrando así tiempo y dinero.
Características y herramientas deseables
Al experimentar con el entrenamiento de modelos de aprendizaje automático, descubrí que ejecutar un ciclo de entrenamiento y guardar los pesos finales es la parte más fácil al realizar una búsqueda de modelos, siempre y cuando no sea necesario revisar el experimento y el código, lo que francamente nunca ocurre. Al analizar los experimentos con modelos, lo que quiero recordar es cómo se crean y entrenan los modelos, con qué datos y entorno (dependencias, hardware) se pueden comparar diferentes ejecuciones y recuperar los modelos con mejor rendimiento en función de las métricas evaluadas en las métricas evaluadas en las métricas evaluadas en un conjunto de datos persistente, idealmente con una interfaz de usuario intuitiva.
Para ello, utilizaremos Git, mFlow y DVC.
Las tres herramientas son gratuitas, de código abierto y se complementan entre sí para proporcionar una experiencia completa de seguimiento de experimentos con modelos.
Existen muchas herramientas para el seguimiento de experimentos con modelos, pero exploraremos dos de ellas, gratuitas y de código abierto, que complementan bien la herramienta de control de versiones de Git:
- MLFlow GitHub — mlflow/mlflow: plataforma de código abierto para el ciclo de vida del aprendizaje automático para el seguimiento de experimentos (versión del código, hiperparámetros, métricas, gráficos). Tiene una API REST y una buena interfaz de usuario gráfica.
- Control de versión de datos (DVC) GitHub — iterativo/dvc: 🦉 Control de versiones de datos | Git para datos y modelos | Gestión de experimentos de aprendizaje automático para datos y control de versiones. El «Git para datos». Es especialmente adecuado para conjuntos de datos con una gran cantidad de archivos, como conjuntos de datos de imágenes.
Los demás temas de los MLOps se abordarán en artículos futuros.
Elegimos MLFlow y DVC porque, en lo que respecta al seguimiento de experimentos de código abierto, MLFlow y DVC se encuentran entre las herramientas más populares, con 167 millones de descargas/11,2 000 estrellas/más de 360 colaboradores y 9,2 000 estrellas/más de 240 colaboradores, respectivamente. Las han adoptado muchos equipos que trabajan tanto en empresas grandes como pequeñas, y sus comunidades son enormes. Da la sensación de seguridad de que Mlflow y DVC seguirán desarrollándose y utilizándose durante muchos años.

Figura 3. Los experimentos de Mlflow y los conjuntos de datos de DVC están todos vinculados a las confirmaciones de Git.
Mlflow y DVC le brindan una experiencia completa de seguimiento de experimentos con modelos. Le ayudan a:
- Centralice sus datos
- Reduzca los costos de almacenamiento de datos al no duplicar los SATA
- Comparte tus experimentos con tus colaboradores
Todo lo que necesitas ver son las confirmaciones de git. Desde cualquiera de tus hash de git commit, puedes encontrar Todas La información relativa a su experimento modelo:
- El conjunto de datos utilizado rastreado por los archivos*.dvc en tu confirmación
- Los parámetros de entrenamiento, las métricas y los pesos del modelo registrados por Mlflow (Mlflow también registra el hash de confirmación para la búsqueda inversa)
Podemos usar la etiqueta MLFlow «tags.mlflow.source.git.commit» para buscar el experimento correspondiente (a través de la interfaz de usuario de mlflow o cualquier otra API de mlflow) (consulte la figura 4)

Figura 4. Experimente: ejecute la búsqueda con el hash de git commit en la interfaz de usuario de Mlfow
Por lo general, querríamos ver el conjunto de datos y el modelo utilizados que produjeron un determinado resultado registrado por Mlflow. En este caso, el hash de git commit se puede encontrar en las etiquetas de la ejecución del experimento. A partir de ahí, solo tienes que revisar tu repositorio de git y los conjuntos de datos rastreados por el DVD.
Conclusión
La formación de modelos basados en datos puede resultar cara (tiempo y dinero). El versionado automático de sus conjuntos de datos y experimentos con modelos le ayuda a:
• Centralice sus experimentos • Comparta los resultados de sus experimentos • Reproduzca sus modelos • Evite repetir experimentos fallidos
En este artículo, encontrarás una explicación del propósito del seguimiento de modelos y datos para proyectos de aprendizaje automático y una breve descripción de cómo algunas herramientas como DVC (para el seguimiento de conjuntos de datos) y MLFlow (seguimiento de experimentos de entrenamiento) pueden ayudar a resolver este desafío.
Este artículo pertenece a una serie de artículos sobre las herramientas y prácticas de MLOps para el seguimiento de datos y experimentos con modelos. Se publican cuatro artículos:
PARTE 1 (este artículo): Introducción al seguimiento de experimentos con datos y modelos
PARTE 2 (Haga clic aquí): mLOps: ¿Cómo gestiona DVC de forma inteligente sus conjuntos de datos para entrenar sus modelos de aprendizaje automático sobre Git?
PARTE 3 (disponible próximamente): MLOps: ¿Cómo MLFlow rastrea tus experimentos sin esfuerzo y te ayuda a compararlos?
PARTE 4 (disponible próximamente): Caso práctico: Realice un seguimiento sin esfuerzo de sus experimentos con modelos con DVC y MLFlow
¡No dudes en ir a otros artículos si ya estás familiarizado con los conceptos!



