Machine Learning Operations: automatización y eficiencia en el despliegue de modelos de aprendizaje automático

Escrito por Cristina Jerez en 2024-04-18T11:09:17+02:00

Topics: DevOps & Automation

Machine Learning Operations: automatización y eficiencia en el despliegue de modelos de aprendizaje automático

El mundo del aprendizaje automático (machine learning o ML) ha experimentado un crecimiento exponencial en los últimos años. Sin embargo, llevar modelos de aprendizaje automático desde el laboratorio hasta la producción sigue siendo un desafío significativo. Aquí es donde entra en juego MLOps (Machine Learning Operations), una disciplina que busca abordar precisamente este problema.

¿Qué es MLOps?

MLOps es un paradigma que se encuentra en la intersección del aprendizaje automático, DevOps e ingeniería de datos. Su objetivo es implementar y mantener modelos de aprendizaje automático en producción de manera confiable y eficiente. 

 

Ciclo de vida MLOps

 

Para ello, al ciclo de vida de DevOps se le añade un nuevo bucle centrado en todos los procesos vinculados con el aprendizaje automático como el entrenamiento de los modelos, la paquetización, el despliegue y la monitorización del estado de salud de estos.

A continuación, haremos énfasis en las 5 fases del nuevo bucle ML:

 

Fases del ciclo ML

 

  • Entrenamiento: se trata del proceso que ha de ser siempre reproducible en el que, según los datos, se generan y se construyen nuevos modelos.
  • Empaquetado: una vez generado un modelo lo que deberíamos hacer es empaquetarlo para facilitar su despliegue y poder hacer inferencia sobre él mismo.
  • Evaluación: en esta fase se evalúa que el paquete que hemos desplegado funcione correctamente y se pueda desplegar con garantía en los entornos operacionales en los que se va a ejecutar.
  • Despliegue: si la evaluación es correcta, el siguiente paso es el despliegue del modelo en un entorno de ejecución válido con todas las garantías que debe tener un entorno productivo.
  • Monitorización: por último, debemos monitorizar cómo actúa el modelo en la fase de inferencia para garantizar que la información que se ha proporcionado es válida y relativa a toda la información de entrenamiento en base de la que se ha generado.

Partiendo de este nuevo bucle, destacaremos los siguientes aspectos a tener en cuenta al diseñar una plataforma de ML:

  1. Automatización del ciclo de vida del ML: las MLOps automatizan procesos como el desarrollo de modelos, pruebas, integración, lanzamiento y administración de infraestructura. Esto garantiza una implementación más rápida y eficiente.
  2. Control de versiones: el seguimiento de cambios en los activos de ML permite reproducir resultados y auditar el proceso. Cada especificación de modelo o código de entrenamiento de ML tiene su número de versión.
  3. Integración con DevOps: las MLOps extienden la metodología DevOps para incluir procesos de aprendizaje automático y ciencia de datos. Esto mejora la confiabilidad y productividad del desarrollo de ML.
  4. Gestión de los datos: los datos son imprescindibles para la implementación de modelos de ML en sus diferentes fases. Se debe tener en cuenta el origen, almacenamiento y procesado de los mismos durante todo el ciclo de vida.
  5. Entornos de desarrollo y pruebas: los analistas de datos que desarrollan los modelos están muy familiarizados en utilizar unas herramientas concretas como por ejemplo los Jupyter Notebooks, donde logran obtener como resultado final un modelo que se debe ubicar en un contexto de ejecución adecuado para su evaluación. Se debe brindar la infraestructura que tenga los recursos necesarios para cumplir con los requisitos: cantidad de memoria RAM, GPU, etc.

Consideraciones para implementar MLOps en sistemas productivos

Cuando se trata de implementar modelos de ML en sistemas productivos, hay varios aspectos que hay que tener en cuenta:

  1. Estabilidad y escalabilidad: los sistemas productivos deben ser estables y capaces de manejar cargas de trabajo en producción. Las MLOps deben garantizar que los modelos de ML sean escalables y no afecten negativamente al rendimiento del sistema.
  2. Monitoreo continuo: es fundamental monitorear el rendimiento del modelo en producción. Las MLOps deben establecer alertas para detectar anomalías y cambios en el comportamiento del modelo.
  3. Actualizaciones y reentrenamiento: los modelos de ML no son estáticos; requieren actualizaciones y reentrenamiento. Las MLOps deben facilitar la implementación de nuevas versiones de modelos y la gestión de datos actualizados.
  4. Gestión de errores: los errores pueden darse en sistemas productivos. Las MLOps deben incluir mecanismos para manejar errores, como la reversión a versiones anteriores del modelo, si es necesario.
  5. Seguridad y privacidad: los modelos de ML pueden procesar datos sensibles. Las MLOps deben garantizar la seguridad y privacidad de los datos para así cumplir con regulaciones como el RGPD.
  6. ML como microservicio: dado que los modelos de ML están en constante evolución, es un buen enfoque afrontar la manera de explotarlos como si de un microservicio se tratase, donde una API nos ayude tanto a interactuar con ellos como con los pre y postprocesos que deben hacerse de las llamadas y respuestas.

En IThinkUPC trabajamos en la incorporación de las metodologías MLOps en el desarrollo de sistemas que hacen uso de modelos de Machine Learning. En la actualidad, la inteligencia artificial es una pieza fundamental para dar soporte a los procesos que se ejecutan en IThinkUPC y es un sello de garantía para la implementación de entornos productivos.