Cómo administrar modelos de Machine Learning en Databricks

Publicado por

El Machine Learning se ha convertido en una herramienta esencial para los negocios de todos los tamaños. Sin embargo, el despliegue y administración modelos de ML puede ser complejo y consumir mucho tiempo. MLOps es un conjunto de prácticas que ayudan a automatizar y optimizar el ciclo de vida de un modelo de ML, desde la preparación de los datos hasta el despliegue y monitoreo.

Fuente: LinkedIn. (2021). Databricks with Machine Learning flow all in one solution

En este blog hablaremos de los beneficios de usar Databricks para MLOps y revisaremos el proceso de MLOps. Pero ¿Por qué Databricks es una plataforma popular para aplicar MLOps? Esto es debido a que Databricks aprovisiona un ambiente unificado para la preparación de los datos, entrenamiento de los modelos y despliegue de los mismos. También ofrece algunas características que ayudan a automatizar y escalar flujos de trabajo de MLOps de forma rápida y sencilla.

Ahora, ¿Por qué necesitamos MLOps?

Como lo dijimos al inicio, pasar a producción modelos de Machine Learning es una tarea difícil. El ciclo de vida de estos proyectos consiste en muchos componentes complejos tales como: la ingesta de datos, la preparación de estos, el entrenamiento de modelos y tener la total claridad en estos procesos. También requiere colaboración de diferentes equipos, por ejemplo, el ingeniero de datos para disponibilizar la data, el científico de datos para entrenar el modelo y un desarrollador o ingeniero de Machine Learning para desplegar el modelo a producción, es decir donde el modelo va a cumplir con su principal objetivo. Todo esto requiere una muy buena coordinación de los equipos involucrados para mantenerlos a todos trabajando de forma sincrónica. MLOps abarca la experimentación, iteración y el mejoramiento continuo de un modelo de ML.

De igual forma, usar Databricks para MLOps nos trae beneficios como:

  • Contar con un ambiente unificado: Databricks proporciona un ambiente unificado para la preparación de los datos, el entrenamiento del modelo y el despliegue, todo en un mismo lugar. Esto facilita el seguimiento y la administración de un modelo de ML.
  • Flujos de trabajo automatizados: Databricks ofrece un gran número de características que ayudan a automatizar los flujos de trabajo de ML.
  • Escalabilidad: Databricks es una plataforma escalable, esto significa que los flujos de trabajo se pueden escalar fácilmente de acuerdo con la necesidad creciente de cada uno.
  • Versatilidad entre nubes: Se puede montar la plataforma de Databricks en cualquiera de las tres principales nubes AWS, Microsoft Azure y GCP.

¿Cuáles son los principales componentes de MLOps?

Fuente: Databricks. (2023) what are the components of MLops?

Según las recomendaciones de Databricks para la implementación de un modelo de MLOps en esta plataforma, el proyecto debe contemplar las siguientes fases:

  1. Fase exploratoria de análisis de datos (EDA): Se puede hacer con los notebooks en Databricks.
  • Preparación de los datos e ingeniería de características: Para esta fase es necesario escribir código ya sea en Python, R, Scala o SQL con el fin de automatizar las tareas de preparación de datos y guardarlas incrementalmente como delta tables, para luego cruzarlos con otras fuentes y hacer la ingeniería de características.
  • Entrenamiento del modelo: En esta fase se deben utilizar librerías especializadas para el entrenamiento de modelos de ML tales como tensorflow, skitLearn y xgboost; Databricks ofrece cluster preconfigurados con este tipo de librerías.
  • Revisión y administración del modelo: Databricks permite la implementación del paquete mlflow para guardar versiones de modelos de machine Learning y escoger el de mejor rendimiento.
  • Inferencia de modelo y puesta en producción: Dentro de Databricks se pueden realizar predicciones en tiempo real a través de endpoints o predicciones en lote utilizando el poder de spark.
  • Despliegue del modelo y monitoreo: puedes habilitar endpoints fácilmente los cuales reciben una entrada en formato json y realizan la predicción con el modelo entrenado.
  • Reentrenamiento de modelo automatizado: puedes crear alertas (webhook) y automatizarlas para tomar acción inmediata cuando el modelo empieza a bajar su efectividad.

Una gran ventaja a la hora de implementar modelos de ML en Databricks es que todo lo puedes hacer en un solo lugar, por ejemplo, la extracción y preparación de los datos lo haces con notebooks ya sea en Python, R, scala o SQL; el entrenamiento de modelos también lo puedes hacer mediante la programación de notebooks que leen datos desde delta tables previamente creados. En resumen, Databricks está presente en cada fase del ciclo de vida de un proyecto de ML iniciando desde la construcción de las ELTs para el procesamiento y la disponibilización de los datos hasta la creación de modelos con MLflow.

Fuente: Databricks. (2022). Implementing MLOps on Databricks using Databricks notebooks and Azure DevOps, Part 2

Ahora revisemos un poco más a detalle que es mlflow y que funcionalidades soporta:

mlflow es una plataforma de código abierto para administrar modelos de machine Learning incluyendo experimentación, reproductibilidad, despliegue y un registro centralizado de modelos.

mlflow incluye principalmente cuatro componentes:

  1. Tracking: Sirve para guardar históricos de experimentos, por ejemplo, cuando se quiere guardar los resultados de varias pruebas sobre modelos.
  • Projects: Sirve para empaquetar sus propios proyectos de ciencia de datos en un formato común para después utilizarlos sin necesidad de volver a instalar las librerías necesarias para este modelo.
  • Models: Sirve para guarda modelos de Machine Learning y disponibilizarlos para su uso en diversos ambientes, diferentes a los que se han utilizado para entrenarlos.
  • Model Registry: Sirve para guardar sus modelos aquí y darles un manejo de versiones y estado, ya sea que este en pruebas o que se quiera pasar a producción.

Fuente: Databricks. (2021). Ray & MLflow: Taking Distributed Machine Learning Applications to Production

En conclusión, si esta pensando en implementar una solución de Machine Learning que se escalable y confiable, debería revisar la implementación de MLOps para la administración y monitoreo. Además, es importante tener en cuenta que una de las mejores herramientas para implementarlo es Databricks, ya que como se mencionó anteriormente ofrece todo en un solo lugar y sin complicaciones a la hora de configurar los ambientes tanto para desarrollo como para producción.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *