En el episodio de hoy te cuento qué es MLOps.
Esto es algo que he mencionado antes, pero nunca está de más insistir.
El entrenamiento del modelo en Machine Learning, ya sea regresión lineal, árboles de decisión, XGBoost, o incluso la red neuronal más avanzada del momento, no es lo más importante.
Es importante, sí, pero no es el fin del proyecto.
Has recolectado tus datos, analizado su calidad, elegido el mejor modelo, y tras muchos experimentos, finalmente tienes un modelo que parece funcionar.
¿Trabajo terminado?
Para nada.
Aquí es donde empieza el verdadero reto.
Cuando empezamos con proyectos de Machine Learning, solemos pensar que lo más importante es conseguir un modelo con buenos resultados.
Sin embargo, en cuanto lo pongas en producción, descubrirás que un modelo que predice bien no es suficiente.
Incluso los mejores modelos pueden fallar si no se despliegan y gestionan adecuadamente. Si no implementamos las herramientas adecuadas para su operación en el mundo real, corremos el riesgo de que el modelo termine abandonado y olvidado.
Esto es justo lo que MLOps busca evitar.
MLOps son las prácticas y herramientas que unifican el desarrollo y la operación de sistemas de Machine Learning.
Es decir, MLOps es el puente entre el equipo que construye el modelo y el equipo que lo pone en marcha y lo mantiene.
Y aquí está la clave: no basta con entrenar un modelo.
Lo verdaderamente difícil es construir un sistema que funcione de manera continua en producción.
El término MLOps proviene de DevOps, que es una filosofía en el desarrollo de software.
En un proyecto de software tradicional, el equipo de desarrollo crea el código y el equipo de operaciones lo pone en marcha.
DevOps unifica ambos equipos mediante la automatización de procesos como las pruebas, la integración y el despliegue del código (CI/CD).
Bien
Con la Integración Continua (CI), los desarrolladores integran su código en un repositorio compartido, lo que facilita la detección de errores en etapas tempranas.
Y con el despliegue continuo (CD), los cambios en el código que pasan las pruebas automáticas se despliegan automáticamente en producción.
MLOps toma esa misma idea y la aplica al Machine Learning, con algunas particularidades.
Mientras que el desarrollo de software tiene un flujo más predecible, el Machine Learning está lleno de experimentación y prueba/error.
Hay que probar distintos modelos, diferentes hiperparámetros, y lidiar con datos que cambian constantemente.
En los primeros episodios de este, nuestro podcast de confianza, te hablé de las etapas de un proyecto de ML:
Repasemos ahora muy rápidamente el ciclo de vida típico de un proyecto de Machine Learning para entender mejor dónde encaja MLOps.
Estas son las fases principales:
El objetivo principal de las prácticas de MLOps es unificar el desarrollo y la operación de los sistemas de Machine Learning para que los modelos entrenados puedan ser implementados, gestionados y mantenidos de forma eficaz en entornos de producción.
Para ello la idea es automatizar el ciclo de vida de un proyecto de Machine Learning. Queremos poder reducri la intervención manual desde la recolección de datos, el entrenamiento del modelo, hasta el despliegue y monitorización en producción.
Gracias a estas automatizaciones en el ciclo de vida de ML, podremos asegurar que los experimentos de Machine Learning se puedan replicar y que el flujo de trabajo sea coherente, independientemente de cuándo o quién lo ejecute.
Además, seremos capaces de integrar a los científicos de datos, ingenieros de Machine Learning y equipos de operaciones, utilizando procesos y herramientas comunes, para evitar cuellos de botella y malentendidos entre las diferentes áreas.
Y esto permite que se puedan desarrollar más proyectos de Machine Learning y más grandes 😎.
Uno de los grandes problemas de los modelos de Machine Learning es que, con el tiempo, los modelos pueden dejar de ser efectivos. Los datos cambian, las condiciones del negocio cambian, y lo que antes era un modelo muy bueno ahora puede volverse una m**rda.
Si no monitorizamos el rendimiento del modelo, corremos el riesgo de que sufra una degradación silenciosa.
Por eso, es importantísimo contar con un proceso de reentrenamiento continuo y si puede ser de manera automática (gracias a las prácticas de MLOps), mejor. Esto implica actualizar regularmente el modelo con nuevos datos y asegurarse de que sigue haciendo predicciones precisas.
Podemos saber el nivel de madurez de una organización en cuanto a sus sistemas de Machine Learning simplemente observando cómo es su implementación de MLOps.
En este nivel, todo se hace a mano.
Los científicos de datos entrenan modelos en notebooks, prueban diferentes configuraciones y los exportan para que el equipo de ingeniería se encargue del despliegue.
No hay integración continua ni despliegue continuo.
Este nivel es muy común en empresas que están empezando con proyectos de Machine Learning.
El siguiente paso es automatizar la pipeline de entrenamiento, donde el modelo se reentrena automáticamente cada vez que hay nuevos datos disponibles.
Aquí se empieza a implementar CI/CD (Integración Continua y Despliegue Continuo), permitiendo una entrega constante de modelos actualizados.
La idea principal es que cada vez que se actualizan los datos, el modelo se entrena automáticamente y se despliega sin necesidad de intervención manual. Así tenemos una entrega continua de modelos.
En este nivel, el enfoque cambia de hacer todo de manera manual a implementar un pipeline que automatice los pasos clave, como la validación de datos y de modelos.
Este pipeline se dispara automáticamente cuando hay nuevos datos disponibles, y así vamos teniendo versiones del modelo re-entrenado continuamente y conseguimos mantenerlo actualizado en producción automáticamente.
Para construir estas pipelines de entrenamiento, necesitamos que los componentes sean reutilizables y sean separables porque los pasos del experimento de ML están orquestados y queremos pasar de uno a otro de manera automática.
En el nivel más avanzado, todo el sistema está automatizado. Esto incluye la automatización de pruebas, generación de artefactos y el despliegue tanto del modelo como de la pipeline de entrenamiento en producción.
También se incluye el monitorización en tiempo real para detectar cualquier cambio en el rendimiento del modelo que salte las alarmas y dispare la pipeline de re-entrenamiento.
Llegar a un nivel avanzado de MLOps no sucede de la noche a la mañana.
Es un proceso progresivo, donde empezamos automatizando las partes más críticas, como el reentrenamiento del modelo y el despliegue.
Con el tiempo, puedes ir avanzando hacia un sistema completamente automatizado que mantenga el modelo siempre actualizado y operativo.
MLOps es la clave para que los modelos puedan funcionar de manera efectiva en producción y sigan aportando valor al negocio a lo largo del tiempo.
El objetivo de MLOps es bastante claro: hacer que nuestros modelos de Machine Learning no se queden atrapados en el notebook y funcionen de manera eficiente en producción, de principio a fin.
¿Cómo lo logramos?
Automáticamente, sin necesidad de estar tocando todo a mano.
MLOps nos permite reproducir experimentos, tener un flujo de trabajo consistente y, lo mejor de todo, monitorizar los modelos para que no se degraden con el tiempo.
Además, facilita que los equipos de datos y los de operaciones trabajen juntos sin dramas, asegurando que el modelo no solo funcione bien, sino que se mantenga al día con los datos y las demandas del negocio.
A medida que las organizaciones crecen en su adopción de Machine Learning, la necesidad de implementar MLOps se vuelve cada vez más evidente. Desde hacerlo todo manual en un notebook (nivel 0 ) hasta construir pipelines de entrenamiento automatizadas (nivel 2).
Espero que te guste el episodio.
Si es así, no olvides dejar un «Me gusta» y algún comentario al episodio en Ivoox o una valoración de 5 estrellas del podcast en Apple podcasts, en Spotify, en Youtube o donde quiera que escuches el podcast.
Recuerda que si tienes cualquier duda o pregunta puedes contactar conmigo a través del formulario de contacto o podemos seguir la conversación en Twitter.
Muchas gracias por estar ahí y te espero en el próximo episodio de Un Podcast Ninja sobre Big Data.