¿Qué es Kubeflow?

Kubeflow es una plataforma de aprendizaje automático (AA) de código abierto diseñada para simplificar la implementación y administración de flujos de trabajo de AA en Kubernetes. Gracias a la combinación de la potencia de Kubernetes con herramientas y bibliotecas específicas del AA, Kubeflow ayuda a facilitar la implementación de prácticas sólidas de operaciones de aprendizaje automático (MLOps) . Kubeflow también permite a los usuarios de Google Kubernetes Engine (GKE) compilar flujos de trabajo de AA con mayor facilidad como parte de una implementación de AI Hypercomputer.

Kubeflow ayuda a los ingenieros de aprendizaje automático y científicos de datos a aprovechar la escalabilidad y portabilidad de Kubernetes. Los usuarios pueden abstraer las complejidades de la creación de contenedores y enfocarse en compilar, entrenar y, luego, implementar sus modelos de aprendizaje automático.

¿Para qué se usa Kubeflow?

A menudo, Kubeflow puede usarse para una variedad de tareas de aprendizaje automático, como las siguientes:

  • Crear flujos de trabajo de AA escalables y portátiles: Los usuarios pueden definir sus flujos de trabajo de AA como canalizaciones que se pueden compartir y, además, implementar fácilmente en diferentes entornos, lo que promueve la coherencia y la reproducibilidad en los procesos de aprendizaje automático.
  • Entrenar modelos de AA a gran escala: Kubeflow ayuda a distribuir las cargas de trabajo de entrenamiento en un clúster de Kubernetes, lo que permite a los usuarios entrenar modelos en conjuntos de datos más grandes de forma más eficiente. Esta escalabilidad puede ser beneficiosa para manejar el volumen creciente de datos en las aplicaciones modernas de aprendizaje automático.
  • Implementar modelos de AA para la producción: Kubeflow puede facilitar la implementación de modelos de aprendizaje automático entrenados como servicios confiables y escalables, y cerrar la brecha entre el desarrollo y la implementación de modelos. Esto puede agilizar la transición de la experimentación a los modelos de AA listos para producción.
  • Administrar el ciclo de vida del AA: Kubeflow suele incluir funciones para hacer un seguimiento de los experimentos, administrar las versiones de los modelos y supervisar el rendimiento de los modelos, lo que optimiza todo el ciclo de vida del aprendizaje automático. Esta administración integral se alinea con los principios de MLOps de supervisión y mejora continuas.

Componentes de Kubeflow

Kubeflow incluyen varios componentes que pueden trabajar juntos para proporcionar una plataforma integral. Estos son algunos componentes clave:

Canalizaciones

Kubeflow Pipelines, que aprovecha los contenedores de Docker, proporciona una plataforma para crear y, además, implementar flujos de trabajo de aprendizaje automático que son portátiles y escalables. Cada canalización actúa como un plano, en el que se detallan los pasos de un flujo de trabajo de AA y sus interconexiones. Una interfaz fácil de usar en Kubeflow Pipelines permite una administración y un seguimiento eficientes de los experimentos, la visualización de las ejecuciones de la canalización y el examen detallado de los registros y las métricas de rendimiento.

Katib

Katib es un sistema de ajuste de hiperparámetros para modelos de aprendizaje automático. Encontrar el mejor conjunto de hiperparámetros para un modelo puede ser un proceso que consume mucho tiempo, pero Katib automatiza este proceso. Katib admite varios algoritmos de búsqueda, como la búsqueda de cuadrícula, la búsqueda aleatoria y la optimización bayesiana, lo que permite a los usuarios optimizar de forma más eficiente el rendimiento de sus modelos.

KFServing

KFServing proporciona una plataforma de inferencia sin servidores para implementar modelos de aprendizaje automático entrenados. Simplifica la implementación y el escalamiento de modelos entrenados. KFServing admite varios frameworks de aprendizaje automático, como TensorFlow, PyTorch y scikit-learn, lo que lo hace independiente del framework y adaptable a diferentes ecosistemas de AA.

Metadatos

El componente de metadatos de Kubeflow proporciona seguimiento del linaje y de artefactos. Este componente ayuda a los científicos de datos a hacer un seguimiento de sus experimentos, conjuntos de datos y modelos, lo que facilita la administración y reproducción de su trabajo. Este seguimiento de metadatos facilita la colaboración entre los miembros del equipo y garantiza la reproducibilidad de los resultados.

Beneficios de Kubeflow

Las organizaciones que buscan optimizar y mejorar sus procesos de aprendizaje automático pueden descubrir que Kubeflow ofrece numerosas ventajas:

Escalabilidad y portabilidad

Kubeflow ayuda a los usuarios a aumentar o reducir la escala de sus flujos de trabajo de aprendizaje automático según sea necesario, y se puede implementar en varias infraestructuras, incluidos entornos locales, en la nube y, además, híbridos. Esta flexibilidad permite a las organizaciones adaptar su infraestructura de AA a los requisitos específicos y evitar el compromiso con un solo proveedor.

Reproducibilidad y seguimiento de experimentos

Uno de los principales beneficios de usar Kubeflow es que su arquitectura basada en componentes permite reproducir experimentos y modelos con mayor facilidad. Proporciona herramientas para hacer control de versiones y realizar un seguimiento de conjuntos de datos, código y parámetros de modelos. Esta reproducibilidad garantiza la coherencia en los experimentos de AA y facilita la colaboración entre los científicos de datos.

Integración y extensibilidad

Kubeflow, que está diseñado para ser extensible, puede integrarse en varias otras herramientas y servicios, incluidas las plataformas de aprendizaje automático basadas en la nube. También se puede personalizar con componentes adicionales. Esto puede permitir que las organizaciones aprovechen sus herramientas y flujos de trabajo existentes, y que incorporen sin problemas Kubeflow en su ecosistema de AA.

Complejidad operativa reducida

Gracias a la automatización de muchas de las tareas asociadas con la implementación y la administración de flujos de trabajo de aprendizaje automático, Kubeflow ayuda a liberar a los ingenieros y científicos de datos para que se enfoquen en tareas de mayor valor, como el desarrollo y la optimización de modelos. Esta reducción de la carga operativa puede generar ganancias significativas en productividad y eficiencia.

Uso de recursos mejorado

Gracias a su integración estrecha con Kubernetes, Kubeflow puede permitir una utilización de recursos más eficiente. Las organizaciones pueden optimizar la asignación de recursos de hardware y reducir los costos asociados con la ejecución de cargas de trabajo de aprendizaje automático.

Comienza a usar Kubeflow

Los usuarios tienen varias formas de comenzar a usar Kubeflow, según las necesidades individuales y el nivel de experiencia:

  • Implementar Kubeflow en Google Kubernetes Engine (GKE): Esta opción proporciona una gran cantidad de flexibilidad y control sobre las implementaciones de Kubeflow. Los usuarios pueden personalizar la instalación para cumplir con requisitos específicos y tener acceso total al clúster subyacente de Kubernetes. Sin embargo, este enfoque puede requerir más experiencia en Kubernetes y podría ser más complejo.
  • Usar Vertex AI Pipelines: Esta opción es un servicio completamente administrado que puede facilitar la implementación y ejecución de canalizaciones de Kubeflow en Google Cloud. Vertex AI Pipelines se encarga de toda la administración de la infraestructura, de modo que los usuarios puedan enfocarse en crear y ejecutar flujos de trabajo de AA. Este enfoque puede ser una buena opción para quienes buscan una solución administrada que sea rápida y fácil de configurar.
  • Explorar Kubeflow en otras plataformas: Kubeflow también se puede implementar en otros entornos de Kubernetes. Las instrucciones de instalación y la documentación de estas plataformas se pueden encontrar en el sitio web de Kubeflow.
Para determinar el mejor enfoque, los usuarios deben considerar su familiaridad con Kubernetes, su nivel deseado de control sobre la infraestructura y su presupuesto. Para los usuarios que recién comienzan a usar Kubernetes o que quieren una solución más administrada, Vertex AI Pipelines puede ser un buen punto de partida. Si un usuario necesita más flexibilidad o quiere ejecutar Kubeflow de forma local, la implementación en GKE o en otra plataforma de Kubernetes podría ser una mejor opción.

Da el siguiente paso

Comienza a desarrollar en Google Cloud con el crédito gratis de $300 y los más de 20 productos del nivel Siempre gratuito.

Google Cloud