¿Qué es Kubeflow?

Copiar URL

Kubeflow es un marco open source de Kubernetes para desarrollar, gestionar y ejecutar las cargas de trabajo de machine learning o ML (aprendizaje automático). Esta plataforma de inteligencia artificial y machine learning combina varias herramientas que abarcan los principales casos prácticos, como el análisis y los procesos de los datos y el entrenamiento y la distribución de los modelos.

Además, permite que los analistas de datos accedan a estas funciones a través de un portal que ofrece una serie de abstracciones de alto nivel para interactuar con estas herramientas, de manera que no necesitan preocuparse por conocer los detalles básicos sobre el modo en que Kubernetes se conecta a cada una de ellas. Kubeflow se diseñó específicamente para ejecutarse en Kubernetes y adopta muchos de los conceptos fundamentales, incluido el modelo de operador. 

Kubeflow soluciona muchos de los problemas relacionados con la organización de los procesos de machine learning, ya que ofrece un conjunto de herramientas y API que simplifican el entrenamiento y la implementación de modelos de ML según las necesidades. El término "proceso" designa un flujo de trabajo de machine learning, incluidos sus elementos y la manera en que estos interactúan. Kubeflow logra satisfacer los requisitos de muchos equipos con un solo proyecto y les permite trabajar desde cualquier infraestructura. Esto quiere decir que los analistas de datos pueden entrenar y distribuir modelos de machine learning desde la nube que elijan, como IBM Cloud, Google Cloud, AWS de Amazon o Azure. 

En general, Kubeflow organiza los proyectos y aprovecha el poder del cloud computing para estandarizar las operaciones de machine learning (MLOps). Algunos de los casos prácticos clave de Kubeflow incluyen la preparación de datos, el entrenamiento de modelos, la evaluación, la optimización y la implementación.

 

Kubernetes es fundamental para acelerar el ciclo de vida del machine learning, ya que estas tecnologías ofrecen a los analistas de datos la agilidad, la flexibilidad, la portabilidad y la capacidad de adaptación que tanto necesitan para entrenar, probar e implementar los modelos de machine learning.

Capacidad de adaptación: Kubernetes permite que los usuarios amplíen o reduzcan las cargas de trabajo de machine learning según sea necesario. Esto garantiza que los procesos de ML puedan ajustarse a los entrenamientos y los procesamientos de gran envergadura sin interferir con otros elementos del proyecto. 

Eficiencia: Kubernetes programa las cargas de trabajo en los nodos en función de su disponibilidad y capacidad para optimizar la asignación de recursos. Al garantizar que los recursos informáticos se utilicen de manera intencionada, los usuarios podrán observar una reducción en los costos y un aumento en el rendimiento.

Portabilidad: Kubernetes ofrece un entorno estandarizado que no depende de ninguna plataforma, lo cual permite a los analistas de datos desarrollar un solo proceso de ML e implementarlo en muchos entornos y plataformas de nube. Es decir, no deben preocuparse por los problemas de compatibilidad ni de dependencia de un solo proveedor.

Tolerancia a los errores: gracias a las funciones integradas de autorreparación y tolerancia a los errores, los usuarios pueden confiar en que, con Kubernetes, los procesos de machine learning seguirán funcionado incluso si falla el sistema de hardware o software.

  1. Kubeflow Central Dashboard es una interfaz web autenticada que permite acceder a la plataforma Kubeflow y a los elementos de su ecosistema. Actúa como un eje central y agrupa las interfaces de usuario de diversas herramientas y servicios dentro del clúster, de modo que ofrece un punto de acceso unificado para gestionar su plataforma de machine learning.
  2. Kubeflow se integra con Jupyter Notebooks y ofrece un entorno interactivo que permite el análisis de los datos, la experimentación y el desarrollo de modelos. Además, la aplicación Notebooks es compatible con varios lenguajes de programación, como Python, R y Scala, y brinda a los usuarios la posibilidad de crear y ejecutar flujos de trabajo de machine learning de manera colaborativa y replicable.
  3. Kubeflow Pipelines permite a los usuarios definir y ejecutar flujos de trabajo de machine learning complejos como grafos acíclicos dirigidos (DAG). Esta herramienta facilita la organización y la automatización integral del proceso que incluye el procesamiento previo de datos y el entrenamiento, la evaluación y la implementación de modelos, lo cual fomenta la capacidad de replicación, la escalabilidad y la colaboración en proyectos de machine learning. El SDK de Kubeflow Pipelines es un conjunto de paquetes de Python que permite que los usuarios definan y ejecuten sus flujos de trabajo de machine learning con precisión y eficiencia.
  4. Kubeflow Training Operator ofrece las herramientas adecuadas para entrenar modelos de machine learning según sea necesario, lo cual incluye soporte para el entrenamiento distribuido mediante marcos como TensorFlow, PyTorch y XGBoost. De este modo, los usuarios pueden aprovechar la flexibilidad y las funciones de gestión de recursos de Kubernetes para entrenar los modelos de forma eficiente en clústeres de máquinas.
  5. Kubeflow Serving permite que los usuarios implementen modelos de machine learning entrenados como servicios con capacidad de ajuste y listos para la producción. Proporciona una interfaz uniforme para distribuir modelos que utilizan marcos conocidos, como TensorFlow Serving, Seldon Core o servidores de inferencia personalizados. Los modelos pueden implementarse en tiempo real o en entornos de procesamiento por lotes, y generar predicciones a través de extremos HTTP.
  6. Kubeflow Metadata es un repositorio concentrado que permite hacer un seguimiento de los metadatos asociados a las pruebas, las ejecuciones y los elementos de machine learning, y gestionarlos. Ofrece una visión uniforme de los metadatos de machine learning en todo el flujo de trabajo, lo cual facilita la capacidad de replicación, la colaboración y el control en este tipo de proyectos.

Además, Kubeflow ofrece interfaces de usuario (UI) basadas en la web para supervisar y gestionar los experimentos de machine learning, las tareas de entrenamiento de modelos y los servicios de inferencia. Gracias a ellas, los usuarios pueden visualizar, medir y registrar el progreso de sus flujos de trabajo de machine learning, solucionar problemas y tomar mejores decisiones.

Al utilizar el modelo de operador Kubernetes, Kubeflow se puede ampliar y personalizar para adaptarlo a casos prácticos y entornos específicos. Asimismo, permite a los usuarios integrar más elementos, como herramientas de procesamiento previo de datos, almacenes de funciones, soluciones de supervisión y fuentes de datos externas, para mejorar las funciones de sus flujos de trabajo de machine learning.

Red Hat® OpenShift® es la plataforma de confianza, completa y uniforme para el desarrollo, la implementación y la gestión de aplicaciones en todos los entornos. Con las funciones de DevOps (por ejemplo, OpenShift Pipelines, OpenShift GitOps y Red Hat Quay) y la integración con aceleradores de hardware, Red Hat OpenShift permite una mejor colaboración y acelera la distribución de aplicaciones que usan la inteligencia artificial.

Con Red Hat OpenShift AI se ofrece un editor visual para crear y automatizar procesos de análisis de datos y pruebas a partir de las tareas de Kubeflow. OpenShift AI es una plataforma MLOps integrada destinada a diseñar, entrenar, implementar y supervisar las aplicaciones, y los modelos base y predictivos basados en inteligencia artificial en entornos de nube híbrida según sea necesario. Asimismo, puede automatizar y simplificar la tarea repetitiva de integración de los modelos de machine learning a los procesos de desarrollo de software, la implementación en la producción, la supervisión, el reentrenamiento y la reimplementación para lograr predicciones más precisas de forma permanente.

Red Hat OpenShift está disponible en IBM Cloud, Google Cloud, AWS y Azure, lo cual permite que los usuarios automaticen la gestión de clústeres de Kubernetes para diseñar, implementar y ajustar la capacidad de las aplicaciones rápidamente con una plataforma lista para la producción. 

 

Artículos relacionados

ARTÍCULO

Diferencias entre los contenedores y las máquinas virtuales

Las máquinas virtuales (VM) y los contenedores de Linux son entornos informáticos empaquetados que combinan varios elementos de TI y los aíslan del resto del sistema.

ARTÍCULO

¿Qué es la organización de los contenedores?

La organización en contenedores automatiza la implementación, la gestión, la escalabilidad y la conexión en red de los contenedores.

ARTÍCULO

¿Qué es un contenedor de Linux?

Un contenedor de Linux es un conjunto de procesos separados del resto del sistema, los cuales pueden ejecutarse desde una imagen diferente que proporciona todos los archivos necesarios para que funcionen.

Más información sobre los contenedores

Productos

Plataforma de aplicaciones empresariales que ofrece servicios probados para lanzar aplicaciones al mercado en la infraestructura que usted escoja.

Contenido adicional

Ebook

Los seis aspectos más importantes a tener en cuenta a la hora de seleccionar una plataforma de Kubernetes

PODCAST

Command Line Heroes Temporada 1, Episodio 5:

El Derby de los Containers

Capacitación

Curso de capacitación gratuito

Running Containers with Red Hat Technical Overview

Curso de capacitación gratuito

Containers, Kubernetes and Red Hat OpenShift Technical Overview

Curso de capacitación gratuito

Developing Cloud-Native Applications with Microservices Architectures