jueves, 3 de mayo de 2018

Kubeflow: Machine Learning en Kubernetes

Las herramientas de Machine Learning están cada vez más presentes en nuestro día a día. Con frecuencia estamos encontrando nuevos usos para aplicarlas y también nuevas APIs están surgiendo que nos simplifican su utilización.

Sin embargo hay un punto que todavía en ocasiones puede resultar un poco difícil a un analista de datos que quiere centrarse en su trabajo: la infraestructura.

Para solucionar esa problemática nace Kubeflow. Este proyecto busca simplificar y escalar el despliegue de los flujos de trabajo de las herramientas de Machine Learning más utilizadas. Para conseguirlo se aprovecha de todas las ventajas que puede ofrecer Kubernetes como infraestructura: portabilidad de nuestros sistemas, gestión de microservicios, escalabilidad según las necesidades...

Para utilizar Kubeflow lo único que necesitaremos será tener un cluster de Kubernetes e instalarnos ksonnet, un framework de configuraciones extensibles para Kubernetes que nos provee a día de hoy la interfaz de línea de comandos con la que podremos utilizar los diferenets componentes que el repositorio de kubeflow nos provee.

Siguiendo una serie de pasos muy sencillos descritos en su repositorio seremos capaces de levantar un sistema de entrenamiento para PyTorch o TensorFlow usando CPU o GPU, servir un modelo de TensorFlow previamente entrenado con TensorFlow serving o con Seldom y crear y gestionar Jupyter Notebooks.

A pesar de tratarse de un proyecto creado muy recientemente (el primer commit es del 30 de Noviembre del año pasado) creo que merece la pena seguirle la pista porque el apoyo de Google y la comunidad que hay detrás están haciendo que avance muy rápido.