El pasado viernes 16 de octubre, participé como ponente en la Webinar de Sogeti Spain acerca de AI Apps. Mi principal objetivo, poner de manifiesto un problema que afecta a muchas organizaciones cuando abordan proyectos de #IA. Para ello, hice una breve exposición de 20 minutos, donde conté mi experiencia al respecto.
Poniendo en contexto. La Inteligencia Artificial es una tecnología que ha venido para quedarse. Cada vez son más las aplicaciones, procesos y sistemas que hacen uso de ella. Pero además, no es exclusiva de un conjunto de sectores. No, es cross. Está impactando a todos, y los casos de uso no paran de crecer. Por lo tanto, normal que todas las compañías quieran subirse al carro.
En mi caso, llevo trabajando con modelos de Machine Learning y Deep Learning desde hace más de cinco años. Fue hace algo más de tres años, cuando decidí estructurar mi conocimiento, a través de la matriculación en el Máster Universitario de Ciencia de Datos de la UOC. Me parecía muy interesante obtener dicha titulación y convertirme en un Unicornio. Por aquel entonces, se denominaba al Científico de Datos como la «profesión más sexy del siglo XXI». Pero no pasó ni un año, cuando vi una charla en el DevOps Talk Conference de Melbourne donde Sasa Savic comenzó a hablar de que el paradigma había cambiado, y que ahora, el nuevo Unicornio era el Ingeniero de MLOps. No me lo podía creer, tenía que hacer algo.
NOTA: Por cierto, escribí una entrada en el blog de Sogeti acerca de esta charla el 20 de septiembre de 2018. Dejo el enlace por aquí: https://itblogsogeti.com/2018/09/20/el-rey-ha-muerto-larga-vida-al-rey/
En efecto, la situación requería pasar a la acción. ¿Qué podía hacer?, ¡si estaba inmerso en un learning path recién comenzado!. Bueno, pues lo que hice fue continuar con el plan de formación y aprovechar la oportunidad detectada a partir de esa charla. ¿Con qué objetivo?, con el de incrementar mi conocimiento acerca de cómo, una vez completada la experimentación, poder pasar a producción de la forma más segura y eficiente posible. De este modo sería capaz de aportar mucho más valor a la organización. Nació en mí la fiebre del MLOps.
Sin embargo, no fue fácil. Por aquel entonces, Azure Machine Learning aún era poco más que un conjunto de cajitas que se relacionaban unas con otras. Por otro lado, se había pasado de SQL Server 2016 R a SQL Server 2017, lo que permitía además de incorporar scripts de R en TSQL, usar Python. Pero aún quedaba un cierto tiempo para que Microsoft diera un fuerte impulso a Azure ML y lo terminara convirtiendo en la mejor plataforma Cloud para la instrumentalización de MLOps.
Es aquí donde nos encontramos, en utilizar Azure ML como orquestador principal de todo aquello relacionado con los modelos de IA. Por un lado, nos permite controlar aspectos clave de seguridad como son la autenticación y autorización, mediante Azure Active Directory y RBAC (Rol Based Access Control). Pero además, nos permite trabajar con el aislamiento mediante el uso de Azure Kubernetes Services (AKS) o Azure Container Instance (ACI). También con la posibilidad de securizar nuestros end points pasando de http a https. O en el caso de los datos, poder vincular las múltiples soluciones de Azure Data para elegir la mejor opción de seguridad en REST y TRANSIT.
Aspectos de seguridad aparte, centrando el tiro sobre el desarrollo de nuestros propios experimentos de Inteligencia Artificial. Azure ML nos permite controlar todo el proceso de ML. Desde el versionado de los datos, para poder realizar un correcto data linaje. Hasta aspecto como la monitorización de las métricas de evaluación, definidas por ti mismo, de cara a poder decidir cual es la versión del modelo a llevar a producción. Todas estas tareas se pueden ejecutar mediante la integración de Visual Studio Code o Jupyter Notebook, junto con Azure ML. Recordando que, para los procesos de entrenamiento y validación, puedes desplegar el recurso óptimo de Azure (MV, Databricks, HD Insight) para tu caso de uso, controlando así el coste del servicio y pagando únicamente por el uso real del mismo.
Vayamos un poco más allá. Tenemos Azure ML y el EDI (Visual Studio Code, Jupyter Notebook). ¿Qué nos falta?. Correcto, un repositorio de código como Git y una solución de DevOps para «profesionalizar» mi área de Inteligencia Artificial. Para eso, como ya he avanzado, tenemos Git y Azure DevOps. Conectando las distintas piezas, seremos capaces de realizar el control de código y finalmente, poder desplegar de forma automática en los distintos entornos, el modelo que mejor cumpla con las métricas de validación.
Por último, dispondremos de la posibilidad de orquestar nuestro modelo haciendo uso de AKS o ACI. En mi caso, suelo utilizar Azure Container Instance para publicar un end point y consumirlo mediante una API y así obtener el resultado de la predicción.

CONCLUSIÓN
¿Quieres ir un paso por delante en Inteligencia Artificial?, pues no te queda otra que definir desde el principio tu estrategia de MLOps y alinear al equipo respecto de dicho plan o tus eficiencia no será óptima. Con lo que, pon a un Ingeniero de MLOps en tu vida.