banner
decidata-MLOps

Seguramente si te dedicas al mundo de los datos hayas oído hablar mucho de MLOps. Sin embargo, aunque te suene el término, seguramente no sepas en qué consiste, exactamente, qué niveles de adopción de MLOps puede tener una organización y, sobre todo, por qué y cómo incorporarlo en tu organización.


Pues bien, si ese es el caso, no te preocupes, porque en este post te voy a explicar todo lo que necesitas saber sobre MLOps, de forma sencilla y lo menos técnica posible, para que así estés al día con una de las tendencias más fuertes y que, seguramente, más crecerá en los próximos años.
¿Te suena interesante? ¡Vamos con ello!

Qué es y por qué nace MLOps


MLOps es un acrónimo de Machine Learning (ML) + Operations (Ops). Esta práctica surge para dar solución a una de las principales problemáticas cuando tenemos uno o varios modelos de Machine Learning en la compañía: hacer que la gestión del o los modelos sea escalable.
Aquí es donde entramos en la primera cuestión importante: MLOps no solo es una práctica de la que se benefician grandes compañías. No. Cualquier organización con modelos en producción puede beneficiarse de aplicar MLOps en su organización.


Lógicamente, esto no quiere decir que una empresa que tiene un modelo de ML en producción tenga que desarrollar los mismos procesos que una empresa que tenga muchos modelos en producción. Cada uno tendrá que desarrollar prácticas de MLOps a su nivel.
Es por ello por lo que, cuando hablamos de MLOps, hablamos también de los distintos niveles de adaptación de MLOps que puede tener una organización. Veámoslos.

Niveles de Adecuación de MLOps

Empresas que llevan mucho tiempo en esto del Machine Learning, como Google, han elaborado una lista de los tres distintos niveles de adaptación que existe en las diferentes organizaciones en términos de MLOps.
Sin embargo, desde DECIDATA consideramos que esos tres niveles no abarcan todas las casuísticas reales, y que las organizaciones se beneficiarían más si hubiera una cuarta fase de adaptación de MLOps, correspondiente a una fase inicial. Veamos en qué consiste.

MLOPs nivel 1: automatizando la puesta en producción


El primer nivel de adaptación de MLOps tiene como objetivo ayudar a las organizaciones que están poniendo en producción su primer modelo de Machine Learning en producción.
Las primeras veces que se pone un modelo de Machine Learning en producción suele ser, en general, un proceso muy iterativo: errores en los data pipelines, el modelo en producción no da los mismos resultados que en pre, etc.
Cada una de estas iteraciones supone una nueva versión del modelo en producción para el equipo. Y claro, siendo el primero modelo, lo más probable es que se trate de un proceso manual con herramientas que no faciliten la puesta en producción de modelos.


Aquí, precisamente, es donde entra el primer nivel de MLOps. Este primer nivel de MLOps busca automatizar la puesta en producción de los modelos, de tal forma que estas iteraciones sean mucho más rápidas. Así, el tiempo que lleva el modelo desde que se desarrolla hasta que se pone en producción es menor. En la siguiente imagen se muestra cómo sería el proceso de MLOps en el primer nivel:

En términos técnicos, este nivel de adecuación se puede obtener desde automatizaciones en Git mediante herramientas como Github Actions, o incluso workflows en Airflow que automaticen el despliegue de nuestro modelo en ecosistemas Cloud.


Sin embargo, una vez conseguimos que este modelo funcione de forma correcta, sigue habiendo muchos procesos que se deben realizar para asegurarnos del buen funcionamiento del modelo. Y claro, si tenemos que ejecutar un script manualmente para ver cómo funciona el modelo, no parece que esto sea muy escalable. Es aquí cuando entra el segundo nivel de adecuación de MLOps en las organizaciones.

MLOPs nivel 2: automatizando la monitorización del modelo


El segundo nivel de adaptación de MLOps es útil para aquellas empresas que tienen ya modelos de Machine Learning en producción. En estos casos, la supervisión de los modelos es fundamental y, claro, no puede haber una persona por detrás ejecutando un script para ver qué tal funciona el modelo.


En su lugar, en esta fase de MLOps se crea un dashboard donde puedan visualizar, de forma sencilla, la evolución del rendimiento de los modelos de ML que están en producción (acuraccy, MAE, RMSE, precission, recall, etc.).
Aunque este paso puede parecer simple, generalmente suele requerir de otro tipo de cambios, como la creación de una tabla en una base de datos donde registrar las predicciones (si no existe ya), así como cambiar el proceso del pipeline para incorporar dichas predicciones a esta tabla.

Este proceso puede ser interesante para los casos en los que tengamos pocos modelos en producción y solo si la realidad detrás de estos modelos no cambia mucho.
Y es que, en este nivel de MLOps sigue siendo trabajo del Data Scientist reentrenar los modelos de forma manual. Y claro, si tenemos muchos modelos en producción o pocos modelos, pero muy cambiantes, no podemos tener al Data Scientist entrenando modelos.
En este caso es cuando aparece el tercer nivel de adaptación de MLOps en las organizaciones.

MLOPs nivel 3: automatizando el entrenamiento de modelos


El tercer nivel de adaptación de MLOps en las organizaciones es útil cuando tienes varios modelos en producción o pocos modelos, pero que la realidad que modelizan cambia frecuentemente.
Esta etapa de MLOps consiste en automatizar la creación de los modelos, de tal forma que los modelos se creen y desplieguen de forma automática. Sí, ya no será el Data Scientist quien cree los modelos, sino que se crearán solos.


Para ello, tenemos que cambiar el enfoque: ya no entrenamos un modelo, sino que tenemos que crear un pipeline que extrae los datos, los procesa, entrenan y tunea varios modelos y se queda con aquel modelo que mejor funcione.
Es decir, el trabajo del Data Scientist pasa de estar enfocado en la creación de modelos a la creación de pipelines. En la siguiente imagen se ve de forma más clara:

Al automatizar el proceso de creación de modelos, tenemos también que añadir ciertos elementos que nos permitan asegurarnos de la trazabilidad de los modelos. Básicamente podemos diferenciar tres puntos:

1. Metadata store:

se trata de un lugar donde podemos almacenar los datos de entrenamiento de los modelos, como los resultados que se han obtenido para cada combinación de hiperparámetros que hemos probado. De esta forma, podemos saber cómo es el modelo que se ha puesto en producción y por qué se ha puesto ese modelo.

2.Registro de artefactos:

Además de los hiperámetros del modelo, también querremos guardar el modelo en sí, o incluso ciertas imágenes para ver la evolución del algoritmo. Todo esto lo podemos guardar en el registro de artefactos.

3. Almacén de datos:

Para que un modelo sea reproducible, no solo necesitamos el modelo como tal, sino también los datos con los que se ha entrenado. Así pues, el almacén de datos es un lugar donde vamos guardando los datasets con los que se han entrenado los modelos, de tal forma que sean completamente reproducibles.


Un aspecto muy interesante de este nivel de MLOps es que, gracias a automatizar la creación y puesta en producción de los modelos de machine learning, ya no hace falta que haya una persona revisando el rendimiento del modelo en un dashboard. En su lugar, se pueden crear triggers para que, en caso de que el rendimiento del modelo baje de cierto umbral, se reentrene de forma automática.


Aunque este nivel de MLOps pueda parecer el sumun del MLOps (y en realidad lo es para la gran mayoría de organizaciones) existe un último nivel de MLOps que se da únicamente en las organizaciones más avanzadas en términos de datos. Veamos de qué se trata.


MLOPs nivel 4: paquetizando el datapipeline


En el nivel anterior hemos conseguido automatizar la creación de modelos, pero podríamos preguntarnos, ¿qué pasaría si en vez de normalizar los datos, los estandarizamos? En ese caso, tendríamos que cambiar todo el data pipeline y volverlo a lanzar.


Como puedes ver, esto no parece algo muy útil, sobre todo si quieres hacer muchas pruebas para conseguir las características que mejor funcionan en un caso en concreto.
Así pues, en este nivel de MLOps se paquetiza todo el proceso del pipeline, de tal forma que cambiar elementos de este sea mucho más ágil y sencillo. En este caso, la estructura del ecosistema MLOps es el siguiente:

Conclusión
Espero que este post te haya servido para tener una visión mucho más clara de qué es MLOps, y de que, sin duda alguna, si eres una empresa que usas o planeas usar modelos de Machine Learning para conseguir mejores resultados, debes abrazar la práctica del MLOps.
Como todo, el proceso es complicado, pero sin duda alguna merece la pena.

Si te ha gustado el artículo, puedes visitar nuestro blog para leer más como éste y pasarte por nuestra web si te interesa la Analítica de Datos y el Machine Learning.