MLOps: niveles de madurez y herramientas Open Source

Hasta hace muy poco, construir modelos Machine Learning (ML) e Inteligencia Artificial (IA) y especialmente llevarlos a producción era todo un reto. Había retos en la obtención obtención y almacenamiento de datos de calidad, la inestabilidad de los modelos, la dependencia de los sistemas TI y también en la búsqueda de perfiles adecuados (una mezcla de perfiles Data Scientists y perfiles TI).

Por suerte esto está cambiando y aunque algunos de estos problemas siguen existiendo, las organizaciones han empezado a ver los beneficios de los modelos de ML y podemos decir que el uso de modelos ML en las empresas se ha generalizado.

Sin embargo, el crecimiento del despliegue de modelos de ML conlleva nuevos retos como la gestión y el mantenimiento de los activos de ML y la supervisión de los modelos. En este escenario, MLOps ha aparecido como una nueva tendencia, completamente necesaria en un ecosistema AIML que tiene el objetivo principal de maximizar el rendimiento de nuestros modelos de ML, aumentar la agilidad en el desarrollo de modelos y mejorar el ROI.

Fuente: Neal Analytics

Componentes de MLOps

El objetivo de MLOps es apoyar al ecosistema AIML para gestionar el ciclo de vida del modelo a través de la automatización, produciendo resultados fiables y de calidad de forma consistente sin degradación del rendimiento, y asegurando la escalabilidad de los productos AIML.

Sin embargo, como era de esperar conseguir esto no es nada fácil, así una solución automatizada completa de MLOps tiene varios componentes incluyendo:

  • Pipelines automatizados de construcción de modelos ML: Al igual que el concepto de integración continua y entrega continua (CI/CD) en DevOps, se establecen pipelines ML para construir, actualizar y hacer que los modelos estén listos para entrar en producción de forma precisa y sin problemas.
  • Serviciado de Modelos: Este es uno de los componentes más críticos, que proporciona una manera de desplegar los modelos de una manera escalable y eficiente para que los usuarios del modelo puedan seguir utilizando los resultados del modelo ML sin pérdida de servicio.
  • Control de Versiones de Modelos: Este es un paso importante en un flujo de trabajo AIML, que permite el seguimiento de los cambios de código, el mantenimiento del historial de datos y la colaboración entre equipos. Esto aporta escalabilidad para dar agilidad a los experimentos y reproducir los resultados de la experimentación siempre que sea necesario.
  • Monitorización del Modelo:  ayuda a medir los indicadores clave de rendimiento (KPI) relacionados con la salud del modelo ML y la calidad de los datos.
  • Seguridad y gobernanza: Este es un paso muy importante para asegurar los controles de acceso a los resultados de los modelos de ML y para rastrear las actividades para minimizar el riesgo asociado con el consumo de los resultados por parte de una audiencia no deseada y de malos actores. Hoy en día, los datos son el verdadero activo, por eso es esencial estos datos para que sean sólo accesibles por el público previsto.

Evaluación de madurez MLOps

En la actualidad la mayoría de los equipos y empresas no tienen todas estas piezas automatizadas, y es un proceso que requiere tiempo y esfuerzo. Para hacer un seguimiento del progreso y medir el nivel de automatización alcanzado con MLOps, diferentes proveedores AIML han creado sus propios modelos de madurez, como es el caso de Google o el de Microsoft, que veremos a continuación:

Modelo de Madurez MLOps de Microsoft

Este modelo consiste en cinco posibles niveles:

  • Nivel 0: no MLOps.
  • Nivel 1: DevOps sin MLOps.
  • Nivel 2: training automatizado.
  • Nivel 3: despliegue de modelos automatizados.
  • Nivel 4: operación automatizada MLOps completa.

El modelo de madurez de Microsoft proporciona, respecto a otros como el de Google, una mejor manera de seguir los procesos MLOps en una empresa, al ser más detallado y concreto.

Herramientas Open Source para soportar MLOps

Una vez comentados los componentes y los niveles de madurez de un sistema MLOps, es interesante ver algunas herramientas que podemos encontrar.

En el mundo Open Source hay varias herramientas disponibles, aunque ninguna cubre todas las piezas necesarias en el ámbito MLOps. Algunas de estas herramientas que pueden formar parte del ecosistema MLOps serían:

  • MLFlow: se trata de una plataforma MLOps que puede utilizarse para gestionar el ciclo de vida de ML de principio a fin. Permite realizar un seguimiento de los experimentos del modelo, gestionar y desplegar modelos de ML, empaquetar su código en componentes reutilizables, gestionar el registro de ML y alojar los modelos como endpoints REST.
  • Evidently AI: es una herramienta de código abierto utilizada para analizar y supervisar los modelos ML. Tienen características que nos permiten monitorear la salud del modelo, la calidad de los datos y analizar los datos usando varias visualizaciones interactivas.
  • DVC: es un sistema de control de versiones de código abierto para proyectos ML. Ayuda a la gestión de experimentos de ML, al control de versiones de proyectos, a la colaboración y hace que los modelos sean compartibles y reproducibles. Está construido sobre el control de versiones GitHub.

La evolución de MLOps está todavía en sus primeras pases, y el proceso va a madurar en los próximos años. Además, cada empresa y/o equipo tiene sus propios problemas: algunos necesitan desplegar modelos rápidamente en producción, otros quieren una forma eficiente de gobernar los modelos de ML, y otros pueden necesitar ayuda con el servicio y la monitorización de los modelos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.