Kubeflow: Kit de herramientas de aprendizaje automático para Kubernetes
Nuestra publicación de hoy, tratará sobre el ámbito del Aprendizaje Automático (Machine Learning / ML). Específicamente sobre una aplicación de código abierto llamada «Kubeflow», que a su vez, trabaja sobre Kubernetes. El cual, como muchos ya saben, es un sistema de código libre para la automatización del despliegue, ajuste de escala y manejo de aplicaciones en contenedores.
«Kubeflow» a pesar de estar disponible actualmente bajo la versión estable 1.2, tal como consta en su sitio oficial web oficial y de GitHub, en su Blog oficial, ya se comenta sobre la próxima versión 1.3. Por eso hoy, profundizaremos sobre dicha aplicación.
Y como de costumbre, para aquellos siempre ávidos de profundizar sobre un tema leído, dejaremos los siguientes enlaces de publicaciones anteriores relacionadas para que las exploren una vez terminen la presente publicación:
“Cognitive Toolkit de Microsoft (anteriormente llamado CNTK) es un kit de herramientas de aprendizaje profundo
(Machine Learning)
de«Código Abierto»
con un enorme potencial. También es gratuito, fácil de usar y tiene una calidad de nivel comercial que permite crear algoritmos de aprendizaje profundo capaces de aprender a un nivel cercano al del cerebro humano.” Cognitive Toolkit: SW de Aprendizaje profundo de Código Abierto
Kubeflow: Un proyecto abierto de aprendizaje automático
¿Qué es Kubeflow?
Según su sitio web oficial, este proyecto abierto es definido de la siguiente manera:
“Es un proyecto dedicado a hacer que los despliegues de flujos de trabajo de aprendizaje automático (ML) en Kubernetes sean simples, portátiles y escalables. Su objetivo no es recrear otros servicios, sino proporcionar una forma sencilla de desplegar los mejores sistemas de código abierto para ML en diversas infraestructuras. De manera tal que, en cualquier lugar donde se ejecute Kubernetes, se pueda ejecutar Kubeflow.”
Mientras que, en su sitio en GitHub, añaden de forma breve lo siguiente:
“Kubeflow, es la plataforma nativa en la nube para las operaciones de aprendizaje automático: pipelines, formación y despliegue.”
De esto, se puede deducir fácilmente que, el objetivo principal de «Kubeflow» es:
“Lograr que el escalado de los modelos de aprendizaje automático (ML) y su despliegue en producción sea lo más sencillo posible, dejando que Kubernetes haga lo que sabe hacer: Despliegues fáciles, repetibles y portátiles en una infraestructura diversa, el despliegue y gestión de microservicios débilmente acoplados y escalar en función de la demanda.”
¿Características?
Entre las características destacables de «Kubeflow» podemos mencionar las siguientes:
- Incluye servicios para crear y gestionar cuadernos (notebooks) Júpiter interactivos. Permitiendo personalizar el despliegue de los mismos y demás recursos informáticos para adaptarlos a las necesidades de la ciencia de datos. Facilitando así, el experimentar con flujos de trabajo locales, para luego desplegarlos en la nube cuando sea necesario.
- Proporciona un operador de trabajo de entrenamiento de TensorFlow personalizado. Que puede utilizarse para entrenar un modelo de ML. En particular, el operador de trabajo de Kubeflow puede manejar trabajos de entrenamiento TensorFlow distribuidos. Permitiendo el poder configurar el controlador de entrenamiento para usar CPUs o GPUs, y así para adaptarse a varios tamaños de clúster.
- Soporta un contenedor TensorFlow Serving para exportar modelos TensorFlow entrenados a Kubernetes. Además, Kubeflow también está integrado con Seldon Core, una plataforma de código abierto para desplegar modelos de aprendizaje automático en Kubernetes, y NVIDIA Triton Inference Server para maximizar la utilización de la GPU al desplegar modelos ML/DL a escala.
- Incluye la tecnología Kubeflow Pipelines. La cual es una solución integral para desplegar y gestionar flujos de trabajo de ML de extremo a extremo. Lo que permite una experimentación rápida y fiable, que sirve para programar y comparar ejecuciones, y examinar informes detallados sobre cada ejecución.
- Ofrece una base multi-framework. Ya que, además de trabajar muy bien con TensorFlow, pronto contará con soporte para PyTorch, Apache MXNet, MPI, XGBoost, Chainer, y otras más.
Más información actualizada sobre «Kubeflow» puede obtenerse directamente sobre su Blog oficial.
¿Qué es Kubernetes?
Dado que, «Kubeflow» trabaja sobre «Kubernetes», vale la pena precisar según su propio sitio web oficial que esta última es lo siguiente:
“Kubernetes (K8s) es una plataforma de código abierto para automatizar la implementación, el escalado y la administración de aplicaciones en contenedores.”
Y en caso de, desear profundizar sobre «Kubernetes» pueden explorar nuestras anteriores y últimas publicaciones relacionadas siguientes:
Conclusión
Esperamos que esta “pequeña y útil publicación” sobre «Kubeflow»
, un interesante y moderno proyecto de código abierto del ámbito del aprendizaje profundo, realizado para aumentar los alcances de la plataforma de código abierto «Kubernetes»; sea de mucho interés y utilidad, para toda la «Comunidad de Software Libre y Código Abierto»
y de gran contribución a la difusión del maravilloso, gigantesco y creciente ecosistema de aplicaciones de «GNU/Linux»
.
Por ahora, si te ha gustado esta publicación
, no dejes de compartirla con otros, en tus sitios web, canales, grupos o comunidades favoritas de redes sociales o sistemas de mensajería, preferiblemente libres, abiertas y/o más seguras como Telegram, Signal, Mastodon u otra del Fediverso, preferiblemente.
Y recuerda visitar nuestra página de inicio en «DesdeLinux» para explorar más noticias, además de unirte a nuestro canal oficial de Telegram de DesdeLinux. Mientras que, para mayor información, puedes visitar cualquier Biblioteca en línea como OpenLibra y JedIT, para acceder y leer libros digitales (PDFs) sobre este tema u otros.