Kubeflow es una plataforma de código abierto nativa de Kubernetes para desarrollar, organizar, implementar y ejecutar cargas de trabajo de aprendizaje automático escalables y portátiles.
La construcción y capacitación de modelos son solo una pequeña parte de los flujos de trabajo de aprendizaje automático (ML). Otras cosas que debe abordar incluyen la transformación de datos a un formato determinado y la ubicación accesible de dichos datos; limpieza de datos e ingeniería de características; analizando tus modelos entrenados; gestión de versiones de modelos; sirviendo de manera escalable a tus modelos entrenados; y evitar el sesgo de entrenamiento. Este es particularmente el caso cuando los flujos de trabajo deben ser portátiles, repetibles y tienen muchas partes móviles que deben integrarse.
Además, la mayoría de estas actividades se repiten en múltiples flujos de trabajo, quizás solo con diferentes parametrizaciones. A menudo, está ejecutando un conjunto de experimentos que deben realizarse de manera auditable y repetible. A veces, parte o la totalidad de un flujo de trabajo de ML debe ejecutarse en las instalaciones, pero en otros contextos puede ser más productivo usar servicios en la nube administrados, lo que facilita la distribución y la ampliación de los pasos del flujo de trabajo y la ejecución de varios experimentos en paralelo. También tienden a ser más económicos para cargas de trabajo "reventadas".
La construcción de cualquier sistema ML listo para la producción involucra varios componentes, a menudo mezclando proveedores. Conectar y administrar estos servicios para configuraciones incluso moderadamente sofisticadas puede introducir barreras de complejidad. A menudo, las implementaciones están tan vinculadas a los clústeres que se han implementado que estas pilas están inmóviles, lo que significa que mover un modelo 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 re-arquitectura significativa. Todas estas diferencias se suman a un esfuerzo inútil y crean oportunidades para introducir errores en cada transición.
Kubeflow ayuda a abordar estas preocupaciones. Es una plataforma de código abierto nativa de Kubernetes para desarrollar, organizar, implementar y ejecutar cargas de trabajo ML escalables y portátiles. Ayuda a la reproducibilidad y la colaboración en los ciclos de vida del flujo de trabajo de ML, lo que le permite administrar la orquestación de punto a punto de las tuberías de ML, para ejecutar su flujo de trabajo en entornos híbridos o múltiples (como el intercambio entre los bloques de construcción locales y de la nube, según el contexto). ), 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.
Kubeflow Pipelines es un componente recientemente agregado de Kubeflow que puede ayudarnos a componer, implementar y administrar flujos de trabajo ML, de manera opcional, híbridos de extremo a extremo. 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 puede probar muchas técnicas de ML para identificar qué funciona mejor para su aplicación.
Hay muchas ventajas al construir una pila de ML sobre Kubernetes. No es necesario volver a implementar los fundamentos que se requerirían para dicho grupo, como el soporte para la replicación, las revisiones de estado y la supervisión. Kubernetes admite la capacidad de generar especificaciones declarativas sólidas y crear definiciones de recursos personalizadas adaptadas para ML. Por ejemplo, TFJob de Kubeflow es un recurso personalizado que facilita la ejecución de trabajos de capacitación distribuidos de TensorFlow en Kubernetes.
Kubernetes ofrece la escalabilidad, la portabilidad y la reproducibilidad requeridas para el soporte de flujos y experimentos de ML consistentemente ejecutados. Ayuda a crear y componer pasos de flujo de trabajo reutilizables y bloques de construcción de ML y facilita la ejecución de los mismos flujos de trabajo en diferentes clústeres a medida que pasan del prototipo a la producción o se mueven de un clúster local a la nube.
Dejo link:
https://github.com/kubeflow/kubeflow
https://www.kubeflow.org/