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.
![](/wp-content/uploads/2024/06/Databricks1.png)
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.
![](/wp-content/uploads/2024/06/Databricks2.png)
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:
- 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
![](/wp-content/uploads/2024/06/Databricks3.png)
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:
- 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
![](/wp-content/uploads/2024/06/Databricks4.png)
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.