La construcción de cualquier sistema de aprendizaje automático implica varios componentes importantes para abordar problemas con relación a la transferencia de datos para hacerlo en un formato y en una ubicación más accesible.
Conectar y administrar estos servicios y sistemas incluso para configuraciones moderadamente sofisticadas puede introducir barreras de complejidad bastante altas. A menudo, mover un modelo de ML de una computadora portátil a un clúster de nube altamente escalable, o de un entorno de experimentación a un contexto listo para la producción, es efectivamente imposible sin la arquitectura adecuada.
Además que por lo general se corre el riesgo de introducir errores en cada transición que se realice, por eso se creó Kubeflow. En este post te diremos ¿qué es Kubeflow? Una introducción.
¿Qué es Kubeflow? Una introducción
Si te preguntas qué es Kubeflow, comenzaremos por decirte que Kubeflow es una plataforma de código abierto proveniente de Kubenetes. Sirve para desarrollar, organizar, implementar y ejecutar cargas de trabajo de aprendizajes automáticos (ML) escalables y portátiles.
Kubeflow aborda todas las preocupaciones de los desarrolladores ayudando a la reproducibilidad y la colaboración en los ciclos de vida del flujo de trabajo de ML, para ejecutar este flujo de trabajo en entornos múltiples o híbridos y para ayudarlo a reutilizar bloques de construcción en diferentes flujos de trabajo.
Kubeflow también proporciona soporte para visualización y colaboración en su flujo de trabajo ML.
Por otro lado, también tenemos a Kubeflow Pipelines que no es más que un componente recientemente agregado de Kubeflow. Sirve para ayudarte a componer, implementar y administrar flujos de trabajo ML. Debido a que Pipelines es parte de Kubeflow, no hay bloqueo en la transición desde la creación de prototipos a la producción.
Kubeflow Pipelines admite la experimentación rápida y confiable, con una interfaz que facilita el desarrollo en un portátil Jupyter, por lo que puedes probar muchas técnicas de ML para identificar qué funciona mejor para tu aplicación.
Probando su última versión
- Kubeflow se encuentra en estos momentos en la versión 0.3 y es probable que quieras conocer algunas de sus características más notables:
- Ofrece soporte para múltiples frameworks de aprendizaje automático como:
- Soporte para capacitación distribuida de TensorFlow a través del TFJob CRD.
- Capacidad para servir a los modelos entrenados de TensorFlow utilizando el componente TF Serving.
- Capacidad para servirá los modelos de una amplia gama de marcos de ML utilizando Seldon.
- Una API v1alpha2 para PyTorch de Cisco que brinda paridad y coherencia con el operador de TFJob.
- Un conjunto creciente de ejemplos, incluido uno para XGBoost.
- Ofrece soporte para el servidor de inferencia TensorRT de NVIDIA, que es compatible con los marcos de trabajo más importantes de AI.
- Ofrece una inferencia por lotes basada en Apache Beam, incluido el soporte para GPU. Apache Beam facilita la escritura de trabajos de procesamiento de datos por lotes y transmisión de datos.
- Ofrece una instalación de JupyterHub con muchas bibliotecas y widgets requeridos comúnmente incluidos en la instalación de la notebook.
- Ofrece una mejor compatibilidad con el ajuste del hiperparámetro a través de Katib (basado en Vizier de Google) y un nuevo controlador personalizado Kubenetes.
- Ofrece una nueva utilidad de implementación de línea de comandos, kfctl.sh.
- Ofrece Kubebench, un marco de Cisco para la evaluación comparativa de las cargas de trabajo de ML en Kubeflow.
- Ofrece Kubeflow Pipelines.