Kubeflow is an open-source platform designed for machine learning and MLOps on Kubernetes, initially introduced by Google. It provides a collection of software components that correspond to different stages of a typical machine learning lifecycle, including model development, training, serving, and automated machine learning. Each component can be deployed separately, allowing users to adopt only the parts they need rather than the entire platform.
The platform aims to simplify the deployment and management of machine learning systems by leveraging Kubernetes for orchestration, scaling, and infrastructure management. It supports a range of popular frameworks and tools, making it a flexible option for both research and production environments.
History
The Kubeflow project was first announced at KubeCon + CloudNativeCon North America 2017 by Google engineers David Aronchick, Jeremy Lewi, and Vishnu Kannan. The initiative addressed a perceived lack of flexible options for building production-ready machine learning systems. The project also began as a way for Google to open-source how it ran TensorFlow internally.
The first release, Kubeflow 0.1, was announced at KubeCon + CloudNativeCon Europe 2018. Kubeflow 1.0 followed in March 2020, with a public blog post announcing that many components had reached a "stable status," indicating readiness for production usage. In October 2022, Google announced that Kubeflow had applied to join the Cloud Native Computing Foundation (CNCF). The foundation voted to accept Kubeflow as an incubating stage project in July 2023.
Components
Kubeflow Notebooks for Model Development
Machine learning models are developed in the Kubeflow Notebooks component. This component runs web-based development environments inside a Kubernetes cluster, with native support for Jupyter Notebook, Visual Studio Code, and RStudio. It allows data scientists to work in familiar interfaces while benefiting from cluster resources.
Kubeflow Pipelines for Model Training
Once developed, models are trained using the Kubeflow Pipelines component. This platform builds and deploys portable, scalable machine learning workflows based on Docker containers. Google Cloud Platform has adopted the Kubeflow Pipelines DSL within its Vertex AI Pipelines product, demonstrating its utility in cloud environments.
Kubeflow Training Operator for Model Training
For certain machine learning models and libraries, the Kubeflow Training Operator provides Kubernetes custom resources. It runs distributed or non-distributed training jobs for TensorFlow, PyTorch, Apache MXNet, XGBoost, and MPI on Kubernetes. This component simplifies the orchestration of complex training tasks.
KServe for Model Serving
KServe, previously named KFServing, provides Kubernetes custom resources for serving machine learning models on frameworks including TensorFlow, XGBoost, scikit-learn, PyTorch, and ONNX. It was developed collaboratively by Google, IBM, Bloomberg, NVIDIA, and Seldon. Publicly disclosed adopters include Bloomberg, Gojek, and the Wikimedia Foundation.
Katib for Automated Machine Learning
Katib is a Kubernetes-native project for automated training and development of machine learning models. It features hyperparameter tuning, early stopping, and neural architecture search, enabling automated optimization of model performance.
Release Timeline
Kubeflow has evolved through several releases since its inception. The initial 0.1 release in 2018 laid the groundwork, and the 1.0 release in 2020 marked a milestone for production readiness. Subsequent versions have continued to refine components and add features, with the project gaining CNCF incubation status in 2023.
Adoption and Ecosystem
Kubeflow is used across various industries for machine learning workflows. Its integration with Kubernetes makes it attractive for organizations already using container orchestration. The platform's modular design allows teams to combine it with other tools in the Machine learning ecosystem, such as Deep learning frameworks and Artificial intelligence services.
See Also
- Machine learning
- Deep learning
- kubernetes
- MLOps