Juan González Del Pino, Nuria Sánchez

Inetum España S.A.

En un artículo previo, explorábamos las posibilidades que ofrecen las soluciones de AutoML para automatizar en la medida de lo posible los pasos para la generación de modelos de ML/DL, abstrayéndonos de la complejidad de su desarrollo y reduciendo así de forma significativa el tiempo necesario para su puesta en producción.

Sin embargo, aunque estas herramientas han demostrado ser de gran utilidad, recomendamos no confiar únicamente en ellas a la hora de embarcarnos en un proyecto donde se requieran modelos ML de calidad, sobre todo si no se tiene claro cómo minimizar el riesgo de introducir sesgos tanto en los datos como en el propio planteamiento de la solución. De otra manera, desde el punto de vista de negocio, podríamos encontrarnos en cualquiera de estas situaciones: “¿Por qué funcionaba ayer pero no hoy?” “¿Cómo mejoro el rendimiento?” “¿Por qué ese resultado?”. Al mismo tiempo, estas son las cuestiones típicas que suelen surgir entre los componentes del equipo de desarrollo dedicado al proyecto “¿Cuándo sé cuándo el modelo deja de funcionar?” “¿Es posible mantenerlo actualizado automáticamente?” “¿Tengo los datos que realmente necesito?”

Un buen equipo de data scientists e ingenieros ML con experiencia para preparar los datos, desarrollo e integración de modelos, junto a una rigurosa metodología operativa para validación y refinamiento de los resultados, deben contribuir en partes iguales al éxito de cualquier proyecto de IA.

Image

Es por ello por lo que, en esta ocasión, nos centraremos en enfatizar cómo MLOps (Machine Learning Operations), mediante la implementación de prácticas de integración e implementación continuas (CI/CD), puede ayudarnos a mantener todos los procesos (manuales o no) síncronos y trabajando en conjunto.

Image

Es cierto que, como hemos comentado, la metodología MLOps nos ayuda a poner nuestro modelo IA disponible para ser usado y que, de ese modo, nos pueda dar el valor añadido que deseamos. Pero, al final, un modelo representa los datos con los que ha sido entrenado. Es posible que, con el tiempo, los datos de nuestro dominio cambien, y con ello el rendimiento de nuestro modelo puede ir cayendo y ser menos efectivo debido a que los datos son distintos comparados con los que han sido entrenados.

Para evitar esto es importante monitorizar nuestro modelo y obtener una serie de métricas que nos ayudarán a detectar problemas de este tipo con antelación. Por ejemplo, podríamos ir almacenando la probabilidad que nos dice el modelo con cada predicción (en el caso de modelos de clasificación múltiple) y así poder ver si la tendencia de esas probabilidades va aumentando, disminuyendo o se mantiene estable. De este modo estas tendencias nos indicarán si empieza a existir algún problema con las predicciones a lo largo del tiempo.

Otra parte importante para el mantenimiento de un modelo dentro de nuestro MLOps sería poder confirmar que la predicción de nuestro modelo es correcta o no. Por ello sería necesario algún sistema de obtener “feedback” del usuario respecto a dichas predicciones. En el caso de que dicha realimentación fuera negativa, significa que la predicción fue incorrecta, por lo que esos datos deben ser reentrenados con el valor real.

Además, idealmente deberíamos monitorizar los datos para detectar el llamado “model drifting” o “model shift”. Por ejemplo, un cambio en la distribución de los datos nos podría dar problemas en el futuro, ya que si tenemos un número mucho mayor de datos de un tipo que de otro, y esta distribución difiere de la que había cuando se entrenó el modelo, nos puede afectar en el rendimiento de nuestras predicciones.

Para resolver este problema y los anteriores, la plataforma MLOps nos sirve de una base sólida.  Debido al tipo de ejecución de tareas en estas plataformas (estilo “flujo” o “workflow”) nos permite crear lógicas reutilizables basadas en condiciones. De este modo, mediante la obtención de métricas, como la que mencionamos anteriormente, seremos capaces de detectar desviaciones y poder reentrenar nuestro modelo para poder maximizar su rendimiento. Este tipo de operaciones podrían hacerse con una cierta frecuencia (diaria, semanal, mensual...) dependiendo de la variabilidad de los datos en nuestro dominio.

Por último, en nuestro “pipeline” de MLOps podríamos añadir una tarea sobre lo que se llama “Explainable AI” o “XAI” para poder descubrir algo de más de “insight” en los datos. Mediante la aplicación de este tipo de herramientas podremos ver qué variables influyen más en nuestras predicciones, lo que nos puede valer para realizar una selección de las variables más importantes (ó “feature selection”) y descartar las que menos influencia tienen. Además, el XAI nos permitirá ver problemas del algoritmo a la hora de tomar decisiones de predicción respecto a algún tipo de sesgo de raza, sexo u otro tipo.

La posibilidad de desarrollar modelos de mayor calidad y más “Explicables” en menos tiempo, poder supervisar el comportamiento de miles de modelos corriendo en paralelo, junto a otras características como el poder reutilizar pipelines de procesamiento, hacen que la eficiencia, la escalabilidad y la reducción de riesgos con MLOps esté asegurada.