Gestión del Ciclo de Vida ML: Integración MLflow en plataforma

Gestión del Ciclo de Vida ML: Integración MLflow en plataforma

Introducción MLflow

MLflow es una plataforma open-source para gestionar el ciclo de vida del desarrollo Machine Learning de principio a fin, y para esto incluye cuatro funcionalidades/módulos principales:

  • Tracking de experimentos para registrar y comparar parámetros y resultados (MLflow Tracking).

  • Empaquetado del código ML de forma reutilizable y reproducible para compartirlo con otros científicos de datos y desplegarlo en producción (MLflow Projects).

  • Gestión y despliegue de modelos desde una gran variedad de bibliotecas de ML a una variedad de plataformas para su serviciado (MLflow Models).

  • Proporcionar un almacén central de modelos para gestionar de forma colaborativa el ciclo de vida completo de un modelo MLflow, incluyendo el versionado de modelos, las transiciones de etapas y las anotaciones (MLflow Model Registry).

Integración en Plataforma

  • El usuario con rol Analytics o rol Administrador tendrá una nueva opción de menú en ANALYTICS TOOLS:

  • Desde esta opción de menú se pueden acceder a los Experimentos creados así como a los Models:

 

Uso desde la consola de comandos

Es posible usar esta nueva herramienta desde cualquier terminal cliente que tenga acceso a la plataforma. Para python será necesario instalar dos librerías:

  • MLFlow → pip install mlflow

  • Plugin mlflow onesaitplatform (uso de la herramienta de subida de fichero para trabajar con los archivos de los proyectos de ML) → pip install mlflow-onesaitplatform-plugin

Después, tendremos que setear la URL del tracking server del MLflow de onesaitplatform. Tenemos dos formas de hacerlo.

  • Mediante una variable de entorno llamada MLFLOW_TRACKING_URI, que setearemos al entorno/controlpanel/mlflow

  • Mediante el código de python usando el método:

Una vez que tenemos nuestra url podremos empezar a trabajar con diferentes experimentos que veremos en nuestra interfaz en onesaitplatform. Por ejemplo un proyecto tipo sería el siguiente:

Donde tenemos principalmente el código de train.py donde se entrenará el algoritmo y se logarán diferentes parámetros en el gestor de modelos de plataforma:

Tendremos también el conda.yaml donde tendremos las diferentes dependencias del mismo.

Aparte del propio archivo de definición del proyecto MLProject.

Esto no será necesario para logar parámetros, pero teniendo esta estructura nos permitirá mediante los comandos de MLflow lanzarlo directamente y usar nuestro proyecto como una pieza sola.

Uso desde los notebooks de plataforma

Para el uso de notebook, no será necesario setear la variable del tracking server ni de instalar las diferentes librerías, ya que vendrá todo cargado por defecto.

Con esto, simplemente, importando MLflow con el código python podremos empezar a trabajar. Además podemos trabajar en un modo compartido de modo que desarrollemos nuestro código en local y mediante git lo descarguemos en el notebook y lo lancemos con toda la capacidad de cálculo del servidor

 

Próximos pasos

  • Integración completa con la seguridad de Plataforma: cada usuario verá sus experimentos y podrá compartirlos con otros usuarios.

  • Serviciado Modelos como APIS de Plataforma.

  • Despliegue de modelos como contenedores.