La importancia de la reproducibilidad en el aprendizaje automático

The importance of reproducibility in machine learning.

Y cómo los enfoques para una mejor gestión de datos, control de versiones y seguimiento de experimentos pueden ayudar a construir tuberías de aprendizaje automático reproducibles.

Cuando estaba aprendiendo machine learning, a menudo intentaba programar junto con los tutoriales de proyectos. Seguiría los pasos que había delineado el autor. Pero a veces, mi modelo rendía peor que el modelo del autor del tutorial. Tal vez te hayas encontrado en una situación similar, ¿no? O quizás simplemente has tomado el código de tu colega de GitHub. Y las métricas de rendimiento de tu modelo son diferentes de las que afirma el informe de tu colega. Entonces, ¿hacer lo mismo no garantiza los mismos resultados, cierto? Este es un problema prevalente en el machine learning: el desafío de la reproducibilidad.

No hace falta decir que los modelos de machine learning son útiles solo cuando otros pueden replicar los experimentos y reproducir los resultados. Desde el típico problema de “Funciona en mi máquina” hasta cambios sutiles en la forma en que se entrena el modelo de machine learning, hay varios desafíos para la reproducibilidad.

En este artículo, examinaremos más de cerca los desafíos y la importancia de la reproducibilidad en el machine learning, junto con el papel de la gestión de datos, el control de versiones y el seguimiento de experimentos en abordar el desafío de la reproducibilidad del machine learning.

¿Qué es la reproducibilidad en el contexto del machine learning?

Veamos cómo podemos definir mejor la reproducibilidad en el contexto del machine learning.

Supongamos que hay un proyecto existente que utiliza un algoritmo de machine learning específico en un conjunto de datos determinado. Dado el conjunto de datos y el algoritmo, deberíamos poder ejecutar el algoritmo (tantas veces como deseemos) y reproducir (o replicar) el resultado en cada una de esas ejecuciones.

Pero la reproducibilidad en el machine learning no está exenta de desafíos. Ya hemos discutido un par de ellos, repasémoslos con más detalle en la siguiente sección.

Desafíos de la reproducibilidad en el machine learning

Para cualquier aplicación, existen desafíos como la fiabilidad y el mantenimiento. Sin embargo, en las aplicaciones de machine learning, hay desafíos adicionales.

Cuando hablamos de aplicaciones de machine learning, a menudo nos referimos a las canalizaciones de machine learning de principio a fin que suelen incluir los siguientes pasos:

Por lo tanto, los desafíos de la reproducibilidad pueden surgir debido a cambios en uno o más de estos pasos. Y la mayoría de los cambios se pueden capturar en uno de los siguientes:

  • Cambios en el entorno
  • Cambios en el código
  • Cambios en los datos

Veamos cómo cada uno de estos cambios obstaculiza la reproducibilidad.

Cambios en el entorno

Python y los marcos de machine learning basados en Python hacen que el desarrollo de aplicaciones de ML sea muy fácil. Sin embargo, la gestión de dependencias en Python -gestionar las diferentes bibliotecas y versiones requeridas para un proyecto determinado- es un desafío no trivial. Un pequeño cambio, como utilizar una versión diferente de la biblioteca y una llamada de función que utiliza un argumento obsoleto, es suficiente para romper el código.

Esto también incluye la elección de sistemas operativos. Hay desafíos asociados con el hardware, como las diferencias en la precisión de punto flotante de la GPU, y cosas por el estilo.

Cambios en el código

Desde el barajado del conjunto de datos de entrada para determinar qué muestras van al conjunto de datos de entrenamiento hasta la inicialización aleatoria de pesos al entrenar redes neuronales: la aleatoriedad juega un papel importante en el machine learning.

Establecer una semilla aleatoria diferente puede llevar a resultados totalmente diferentes. Para cada modelo que entrenamos, hay un conjunto de hiperparámetros. Entonces, ajustar uno o más de los hiperparámetros también puede llevar a resultados diferentes.

Cambios en los datos

Incluso con el mismo conjunto de datos, hemos visto cómo las inconsistencias en los valores de los hiperparámetros y la aleatoriedad pueden dificultar la replicación de los resultados. Por lo tanto, es obvio que, cuando cambian los datos -un cambio en la distribución de los datos, modificaciones en un subconjunto de registros o eliminación de algunas muestras- dificultan la reproducción de los resultados.

En resumen: cuando intentamos replicar los resultados de un modelo de machine learning, incluso los cambios más pequeños en el código, el conjunto de datos utilizado y el entorno en el que se ejecuta el modelo de machine learning pueden impedirnos obtener los mismos resultados que el modelo original.

Cómo Abordar el Desafío de la Reproducibilidad

Ahora veremos cómo podemos abordar estos desafíos.

Gestión de Datos

Vimos que uno de los desafíos más obvios en la reproducibilidad está en los datos. Existen ciertos enfoques de gestión de datos, como la versión de los conjuntos de datos, para que podamos rastrear los cambios en el conjunto de datos y almacenar metadatos útiles sobre el conjunto de datos.

Control de Versiones

Cualquier cambio en el código debe ser rastreado utilizando un sistema de control de versiones como Git.

En el desarrollo de software moderno, habrás encontrado pipelines de CI/CD que hacen que el seguimiento de los cambios, la prueba de nuevos cambios y su implementación en producción sean mucho más simples y eficientes.

En otras aplicaciones de software, el seguimiento de los cambios en el código es sencillo. Sin embargo, en el aprendizaje automático, los cambios en el código también pueden implicar cambios en el algoritmo utilizado y los valores de hiperparámetros. Incluso para modelos simples, el número de posibilidades que podemos probar es combinatoriamente grande. Aquí es donde se vuelve relevante el seguimiento de experimentos.

Seguimiento de Experimentos

La construcción de aplicaciones de aprendizaje automático es sinónimo de extensos experimentos. Desde algoritmos hasta hiperparámetros, experimentamos con diferentes algoritmos y valores de hiperparámetros. Por lo tanto, es importante hacer un seguimiento de estos experimentos.

El seguimiento de experimentos de aprendizaje automático incluye:

  • registro de barridos de hiperparámetros
  • registro de métricas de rendimiento del modelo, checkpoints del modelo
  • almacenamiento de metadatos útiles sobre el conjunto de datos y el modelo

Herramientas para el Seguimiento de Experimentos de Aprendizaje Automático, Gestión de Datos y Más

Como se ha visto, la versión de conjuntos de datos, el seguimiento de cambios en el código y el seguimiento de experimentos de aprendizaje automático replican las aplicaciones de aprendizaje automático. Aquí hay algunas de las herramientas que pueden ayudarte a construir pipelines de aprendizaje automático reproducibles:

  • Weights and Biases
  • MLflow
  • Neptune.ai
  • Comet ML
  • DVC

Conclusión

En resumen, hemos revisado la importancia y los desafíos de la reproducibilidad en el aprendizaje automático. Hemos repasado los enfoques como la versión de datos y modelos y el seguimiento de experimentos. Además, también hemos enumerado algunas de las herramientas que puedes usar para el seguimiento de experimentos y una mejor gestión de datos.

El MLOps Zoomcamp de DataTalks.Club es un excelente recurso para adquirir experiencia con algunas de estas herramientas. Si te gusta construir y mantener pipelines de aprendizaje automático de extremo a extremo, puede que te interese entender el papel de un ingeniero de MLOps. Bala Priya C es una desarrolladora y escritora técnica de India. Le gusta trabajar en la intersección de las matemáticas, la programación, la ciencia de datos y la creación de contenido. Sus áreas de interés y experiencia incluyen DevOps, ciencia de datos y procesamiento del lenguaje natural. Le gusta leer, escribir, programar y tomar café. Actualmente, está trabajando en aprender y compartir su conocimiento con la comunidad de desarrolladores escribiendo tutoriales, guías prácticas, artículos de opinión y más.

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

Consejos de PyTorch para aumentar tu productividad

Domina PyTorch con estos métodos comprobados.

Inteligencia Artificial

OpenAI discontinúa su detector de escritura de IA debido a una baja tasa de precisión

La investigación muestra que cualquier detector de escritura de IA puede ser derrotado y abundan los falsos positivos.

Ciencia de Datos

La Inteligencia Artificial ayuda a mostrar cómo fluyen los líquidos del cerebro.

Un equipo de científicos creó mediciones de velocimetría basadas en inteligencia artificial para cuantificar el flujo...

Inteligencia Artificial

Upstage presenta Solar-10.7B modelos de lenguaje grandes pioneros con escalado en profundidad y precisión ajustada para conversaciones de un solo turno

Los investigadores de Upstage (una empresa de IA de Corea del Sur) han abordado el desafío de maximizar el rendimient...

Inteligencia Artificial

Conoce DreamSync un nuevo marco de inteligencia artificial para mejorar la síntesis de texto a imagen (T2I) con comentarios de modelos de comprensión de imagen

Investigadores de la Universidad del Sur de California, la Universidad de Washington, la Universidad Bar-Ilan y Googl...