MLOps- Qué es y por qué implementarlo.

PabloMathias
5 min readJun 1, 2021

--

La evolución natural de la tecnología y del humano ha traído un aumento de los desafíos o problemas a resolver; hoy en día es factible pensar en una solución que hace años solo imaginábamos en películas. De este mismo modo, es como la programación tradicional también ha avanzado, cada año sale un nuevo lenguaje de programación, un nuevo software o una nueva metodología que nos ayudan a trabajar de mejor manera en el área de TI.

Si los problemas son diferentes o más complejos, es natural pensar que los lenguajes o herramientas de programación tradicionales puedan ser insuficientes. De este paradigma es que nace Machine Learning, que es la programación para dar la habilidad a un computador de aprender.

De la forma más simple que puedo explicar qué es machine learning, es con la siguiente analogia:

Imaginemos que se requiere programar un detector para identificar si una foto input de un animal animal corresponde a perro o un gato. Un código tradicional deberia tener muchas funciones, comparaciones y cálculos para identificar si las caracteristicas del animal a analizar son las de un perro o un gato o ninguno. Esto puede llevar a tener mucho código con demasiadas sentencias IF.

Pero qué pasa si por alguna razón, la imagen ahora es en blanco/negro y no tengo ninguna sentencia pensada para esa situación . Qué pasa si la imagen a analizar está desde distintos ángulos o qué haríamos si la imagen está rotada o cortada de alguna forma. Todo esto conlleva a muchos dolores de cabeza si lo pensabamos con software tradicional, aqui es donde nace Machine Learning para solucionar esta problematica.

En ML se crea un modelo que es entrenado con miles de fotos de perros y gatos. Con todas estas fotos, se crean principalmente calculos matemáticos que ayudaran a hacer comparaciones y/o clasificaciones: la foto a analizar tiene algun % de similitud con mi BD con la que entrené mi modelo? Si la respuesta es afirmativa, sería posible hacer una clasificacion de Perro — Gato. Si el modelo es entrenado con fotos de perros y gatos de distintos ángulos , colores, o recortes de los animales, es probable que mi % de eficacia sea cercano a un 100%. De esto se deduce que : Mientras más y mejor data, mejor puede performar nuestro modelo.

Considerando todo lo anterior, se deduce que la arquitectura tradicional de software o la cultura de desarrollo DevOps no sea la mejor para Machine Learning. Es aquí donde nace la cultura MLOps o Machine Learning Operations.

Según google, estos son todos los conceptos que se deben manejar o tener en mente para aplicar correctamente la cultura MLOps

https://cloud.google.com/architecture/mlops-continuous-delivery-and-automation-pipelines-in-machine-learning#devops_versus_mlops

Se destaca que el bloque de código propiamente tal, es una de las cajas de menor tamaño, y esto es porque en MLOps , el código no es lo más importante, la Data tiene igual o mayor importancia que el código mismo.

Al comparar la cultura DevOps con la cultura MLOps encontramos grandes diferencias:

Se observa que el ciclo de desarrollo de un proyecto ML tiene 3 pilares fundamentales: [DATA — MODEL — OPS].

Esto es por que el área de DEV fue reemplazada por DATA y MODEL, donde ambos deben tener [Continuouns Integration] debido a que la Data es igual de importante que el código mismo que debe tener un segmento completamente aparte.

Siguiendo la misma lógica de DevOps, una vez el modelo está desarrollado se debe implementar su operación [Continouns Delivery] pero acá se destaca otra diferencia fundamental [representada por la línea punteada]. Una vez que el modelo está operando y se está monitoreando, al detectarse un error, no necesariamente implica un nuevo desarrollo sino, más bien, un re entrenamiento con nuevos o distintos datos, a esta habilidad la llamamos [Continuouns Training].

Estos pilares fundamentales de MLOps los podemos ver como en la siguiente imagen

¿Porque es difícil implementar MLOps?

· Model Challenges: Los desafíos que son posible resolver con Machine Learning son tan variados y con tantos niveles de dificultades que es cada proyecto puede tener problemáticas o objetivos particulares. Tu caso de éxito puede ser disponibilizar un endpoint, crear una tarea programada cronjob, crear un dashboard power bi o hacer todo lo anterior en una web app.

· Operation Challenges: DevOps no es lo más adecuado para proyectos machine learning, todavía existe debate de como implementar MLOps o cuales son los pasos o arquitectura necesaria. AWS , Azure y GCP son los principales proveedores que entregan esta solución y aunque todos tienen propuestas similares, no son exactamente las mismas.

· Organizational Issues: Al no tener claridad de la cultura o procedimientos que involucra cada modelo, no están definidos aún los perfiles para MLOps: cómo se relaciona un Data Engineer con un Data Scientist y disponibilizan sus modelos en producción con ayuda de un nuevo perfil ( Machine Learning Engineer ) para que luego otro perfil logre mostrar los resultados de forma bonita y simple para el usuario final. Se deben definir responsabilidades para cada etapa de implementación e indicar desde donde comienza y termina el trabajo del Data Scientist , del Data Engineer y del ML Engineer en un proyecto completo.

· Model Risk: Cada industria que implemente un modelo, debe tener en consideración que los modelos pueden fallar. Nunca un modelo será exacto y perfecto, un modelo puede indicar que la foto input era un perro, pero realmente era un gato disfrazado de perro. También existe la opción que las condiciones actuales cambien y los datos con los que entrené a mi modelo ya no son consistentes con la actualidad, por lo que mi modelo comenzará a bajar performance y aumentar su tasa de errores. Todo esto hace necesario tener una implementación que me permita desarrollar y modificar un modelo para lograr llegar a producción lo antes posible.

Finalmente lo que busca la implementación la cultura MLOps es poder tener un correcto flujo de trabajo para proyectos de machine learning. Habilitando las distintas arquitecturas y correcto tratado de la Data, para que de esta forma se logre llevar de manera simple un modelo a producción y logre su objetivo de negocio.

--

--