MLOps: desarrollo en el aprendizaje automático

desarrollo-aprendizaje-automatico-mlops
Eliminando la brecha entre el desarrollo y la producción en el aprendizaje automático: MLOps

Como científico de datos, dedico mucho tiempo a crear modelos para una gran variedad de tareas. Crear un modelo de aprendizaje automático es una tarea compleja en la que comienzas limpiando los datos, luego haces la representación y, al final, creas el modelo. Durante este proceso es necesario responder a muchas preguntas como:

  • ¿Cuáles son las características correctas para mi problema?
  • ¿Es este modelo mejor que el anterior?
  • ¿Cuáles son los mejores hiperparámetros?
  • Tengo un buen modelo. ¿Cómo lo puedo poner en producción?
  • ¿Cómo puedo monitorizar los resultados en producción?
  • Tengo una nueva versión de mi modelo. ¿Cuál es la mejor forma de reemplazar el modelo en producción?

MLOps se puede aplicar para resolver estas preguntas y muchas otras. En esta publicación, te voy a presentar qué es MLOps y cómo podemos usarlo en nuestros proyectos de aprendizaje automático. Además, al final de la publicación, voy a proporcionar una lista de herramientas que te facilitarán la vida como científico de datos. Empecemos.

¿Qué es MLOps?

Imagen sobre el proceso MLOps. El proceso está formado por ML, DEV y OPS.
Imagen MLOps. Fuente

Para comprender qué es MLOps , debemos retroceder en el tiempo y comprender algunos principios de DevOps y la forma de incorporarlos en nuestro trabajo. El objetivo de DevOps consiste en permitir que los desarrolladores de software puedan crear software con un enorme estándar de calidad. Algunas de las sugerencias propuestas sobre DevOps son:

  • Control de versiones de todo el código para que otros desarrolladores puedan rastrear el código.
  • Integración continua donde se pasan una serie de pasos de prueba al código para estar seguros de que no tenemos ningún error en nuestro desarrollo.
  • Entrega continua para implementar nuestro código en producción con la menor interacción humana posible. Por lo general, para permitir este paso es importante describir la infraestructura de hardware que necesitamos como código, por ejemplo, con AWS Cloud Formation Google Cloud Deployment Manager.
  • Monitorización del funcionamiento para rastrear cómo está funcionando el sistema en producción y detectar de manera eficiente posibles errores.

Ahora, con las sugerencias de DevOps en mente, podemos intentar buscar similitudes con nuestras aplicaciones de aprendizaje automático. Voy a describir algunas de las herramientas más utilizadas, pero esta no es una solución fija. Hay muchas herramientas que pueden ayudarte a integrar estos principios en tus proyectos. En la siguiente sección, te contaré dos de mis favoritas.

DVC y CML

Para rastrear modificaciones de los experimentos en Machine Learning es necesario implementar una estrategia de control de versiones. Nuestro algoritmo de aprendizaje automático no sólo depende del código, sino que también depende de los datos. Por eso, necesitamos versionar tanto el código (por ejemplo, con git) como los datos (por ejemplo, con DVC ). Al hacer esto, tú y tus compañeros podéis rastrear cada cambio en el código o los datos y ver cómo afecta al modelo.

CML es el proceso de aprendizaje automático continuo
Aprendizaje automático continuo

Para el paso de integración continua (CI) y entrega continua (CD), es importante verificar que el código y los resultados del modelo sean correctos. Para hacer eso, puedes usar una herramienta de flujo de trabajo como, por ejemplo, Github Actions. Usando, por ejemplo, Github Actions, puedes ejecutar las pruebas y entrenar el modelo en una máquina virtual con tus datos. Si todo es correcto, el modelo puede pasar a la etapa de implementación.

Recientemente, ha aparecido una nueva herramienta llamada Continuous Machine Learning o CML . Esta herramienta tiene una integración con las acciones de Github y GitLab y permite crear informes del proceso de entrenamiento y enviarlos al equipo. En la siguiente imagen se puede ver un ejemplo de cómo funciona la herramienta.

Proceso de acción en Github
Proceso de acción Github. Fuente

En este ejemplo, cuando se envía un fragmento de código a nuestro repositorio de Github, la acción se ejecuta. Esta acción ejecuta la secuencia de comandos de entrenamiento. Este script genera algunas métricas y cifras. Cuando finaliza el proceso, puedes utilizar CML para generar un informe y enviarlo al científico de datos como comentario. Con estos sencillos pasos puedes encontrar errores en tu proceso de entrenamiento y tener algunos pasos de calidad que te ayuden a estar seguro de los resultados.

MLFlow

MLFlow
MLFlow

Otra herramienta que creo que es muy útil es MLFlow. La idea detrás de MLFlow es brindar a los científicos de datos una herramienta para controlar la experimentación, la reproducibilidad y el despliegue de modelos de aprendizaje automático. MLFlow te permite:

  • Realizar un seguimiento de tus hiperparámetros, métricas e imágenes con MLFlow Tracking
  • Guardar tus modelos en un formato que permita la reproducibilidad en otras máquinas con MLFlow Projects
  • Poner en producción modelos de una manera muy fácil en AWS o Azure con MLFlow Models
  • Tener un registro para centralizar y guardar tus modelos con MLFlow Registry

Si necesito elegir una de las cuatro herramientas de MLFlow, elijo la plataforma de seguimiento. Utilizo esta plataforma todos los días para tener seguimiento de diferentes experimentos con sus hiperparámetros y métricas. La integración con Python es muy fácil y tiene una interfaz de usuario útil que te permite ver los resultados y hacer algunas consultas a los resultados en un lenguaje similar a SQL.

Conclusiones sobre MLOps

En conclusión, hemos visto dos herramientas que puedes utilizar para trabajar más rápido en tus desarrollos y borrar la línea entre desarrollo y producción. Primero, exploramos cómo usar DVC para lograr una integración continua en proyectos de aprendizaje automático. En segundo lugar, con MLFlow analizamos entre otras opciones, la forma de olvidarse de usar excel para guardar los hiperparámetros y métricas.

Estas no son las únicas soluciones, por ejemplo, algunas personas han comenzado a explorar Cortex para desplegar en producción rápidamente y de forma precisa en AWS. Esta herramienta permite a los desarrolladores obtener un nivel de abstracción de la infraestructura detrás de la API. Gracias a eso, puedes definir, por ejemplo, APIs en tiempo real que se autoescalan automáticamente.

Si deseas explorar más sobre el maravilloso mundo de MLOps, puedes consultar https://ml-ops.org . En este sitio web encontrarás más información sobre la motivación de usar MLOps, las mejores prácticas para monitorizar los modelos en producción y muchas herramientas que te pueden resultar útiles.

Autor: Marcos Esteve Casademunt, ML Engineer en Solver IA

Leer el artículo original aquí

Tags:
Share this post on:

¿Dónde estamos?

Dirección
C/ Colón, 60 – 4ª,
46004 Valencia

Horario
Lunes a viernes: de 9:00 a 18:00 h.

Enlaces de Interés

Puedes enviarnos un mensaje con tus preguntas, consultas o simplemente para informarnos sobre tu proyecto y veremos cómo podemos ayudarte. Si necesitas enviar archivos, te agradeceríamos que nos enviaras un correo electrónico a info@iasolver.com

Esta web utiliza cookies. Puede ver aquí la Política de cookies.    Ver Política de cookies
Privacidad