MLOps
Video
Puedes ver el video de este script acá: https://youtu.be/SL8O2PDdxgs
MLOps es una nueva y emergente área de las ciencias de la computación que se ocupa de aplicar las mejores prácticas desarrollo de software a la puesta en producción de modelos de machine learning. Estas prácticas incluyen, pero no se limitan a cosas como la colaboración en la escritura del código, pruebas automatizadas, reutilización de código, control de versiones, integración y despliegue continuos…
La rama del MLOps requiere que los y las practicantes aprendan cómo construir un ciclo de vida de machine learning en donde tanto código, como nueva información es constantemente integrada a una aplicación, todo esto sin perder de vista que en el centro de dicha aplicación existe un modelo no deterministico y que requiere de conocimiento especializado, que muchas veces está fuera del dominio ingenieril, para ser mantenido.
Para comenzar a hacer MLOps tenemos que aceptar la premisa de que una aplicación exitosa de machine learning involucra muchos más componentes que el modelo estadístico que los y las científicas de datos crean. Tu trabajo, como ingeniero o ingeniera de MLOps es el dar soporte para que este modelo sea fácil de reentrenar, probar, desplegar y monitorear, todo esto con la finalidad de garantizar que su desempeño a través del tiempo se mantenga y siga sirviendo el propósito para el cual fue creado en primera instancia.
Hablaba hace unos momentos del ciclo de vida del machine learning, y es que es eso precisamente: un ciclo. Este ciclo pude tomar muchas formas y pero las 4 etapas principales que lo forman son:
Gestión de la información “cruda” y procesada: los datos son parte vital del machine learning, obvio, es por eso que gestionarlos es de vital importancia. Y no solo me refiero al manejo de bases de datos SQL o noSQL, sino también al uso de herramientas como las nuevas “feature stores” para almacenar información ya procesada por los científicos de datos y otros sistemas de streaming que constantemente actualicen los datos a partir de lo que va sucediendo en producción. Aquí puede existir un pequeño traslape con las tareas de un ingeniero o ingeniera de datos.
Desarrollo del modelo: El tradicional desarrollo de la ciencia de datos que ya tanto conocemos, pero potenciada por un fuerte control de versiones que se extiende no solamente al código del modelo, sino también a todos los productos resultantes del entrenamiento.
Puesta en producción u operacionalización: La parte en donde colocar esa pieza de machine learning en el lugar adecuado, rodeado de otras piezas de software “tradicional”. Aquí nos toca asegurarnos que cualquier sistema que alimente nuestro modelo, o se alimente de los resultados de este funciona correctamente. Pero la cosa no se queda ahí, puesto que también es importante entender que el sistema requerirá de actualizaciones: ya sea que obtengamos más y mejores datos o que tengamos que hacer ajustes a otras partes dentro del código. Debemos considerar 3 cosas continuas: Integración, despliegue y entrenamiento continuos.
Monitoreo: Los modelos de machine learning son como los automóviles de agencia, en cuanto salen a la calle comienzan a perder su valor; es por eso que debemos estar monitoreando constantemente, no solo nuestro, sino también la información que entra y sale del modelo, para darnos cuenta de cuándo es que el nuestro está comenzando a mostrar signos de degradación y tal vez mandar alguna alerta, encender algun foquito rojo en un dashboard o, algo más avanzado, reentrenarse con nueva información.
Lo que les acabo de contar es un súper resumen de lo que implica el trabajo dentro de un proyecto en el que se está construyendo un systema potenciado por aprendizaje automático; también cabe mencionar que se trata de un ciclo, habrá veces en que del desarrollo del modelo tengamos que regresar a la parte de almacenamiento y procesamiento de datos… y es muy común que el monitoreo nos motive a revisar la etapa de desarrollo del modelo. Se trata de recibir constante retroalimentación para mejorar nuestro producto.
Ahora, sé que te gustaría que te hablara sobre las herramientas que se suelen usar dentro del MLOps y bueno, debes saber que existen muchas, literalmente cientos de herramientas que de una u otra forma están relacionadas con el área. En el futuro, hablaré más a detalle sobre algunas de estas e inclusive veremos un poco de código.
¿Qué te parece el campo del MLOps? ¿esperabas algo así? ¿te gustaría dedicarte a esto? Te invito a que me dejes tus comentarios debajo del video, y si tienes alguna pregunta para mi, que me comienzo a dedicar a esto del MLOps, también échala por ahí.