The Best Kubeflow Alternatives

Posted June 18, 2020

Kubeflow is the ML toolkit for Kubernetes. It helps in maintaining machine learning systems – manage all the applications, platforms, and resource considerations. It facilitates the scaling of machine learning models by making run orchestration and deployments of machine learning workflows easier. It’s an open-source project that contains a curated set of compatible tools and frameworks specific for various ML tasks.

Kubeflow is built around 3 principles:

  1. Composability – you can choose which components of your entire ML project you want to use and make them work as independent systems
  2. Portability – run all the pieces of your project on a diverse infrastructure
  3. Scalability – your projects can access more resources when they’re needed and release them when they’re not

Kubeflow is a behemoth that deals with the entire ML lifecycle. But you may be looking for some smaller subset of functionalities in other ML tools that may be more suitable for a particular step of your ML process.

So if you’re in need of Kubeflow alternatives to deal with things like data versioning, experiment tracking, or model serving, we’ve got your back. Here are the best alternatives grouped in categories.

Data and Pipeline versioning

1. DVC

DVC, or Data Version Control, is an open-source version control system for machine learning projects. It’s an experimentation tool that helps you define your pipeline regardless of the language you use.

When you find a problem in a previous version of your ML model, DVC helps to save time by leveraging code, data versioning, and reproducibility. You can also train your model and share it with your teammates via DVC pipelines.

DVC can cope with versioning and organization of big amounts of data and store them in a well-organized, accessible way. It focuses on data and pipeline versioning and management but also has some (limited) experiment tracking functionalities.

DVC – summary:

  • Possibility to use different types of storage—it’s storage agnostic
  • Full code and data provenance help to track the complete evolution of every ML model
  • Reproducibility by consistently maintaining a combination of input data, configuration, and the code that was initially used to run an experiment
  • Tracking metrics
  • A built-in way to connect ML steps into a DAG and run the full pipeline end-to-end

2. Pachyderm

Pachyderm is a platform combining data lineage with end-to-end pipelines on Kubernetes.

It’s available in three versions, Community Edition (open-source, with ability to be used anywhere), Enterprise Edition (complete version-controlled platform), and Hub Edition (still a beta version, combining characteristics of the two previous versions).

You need to integrate Pachyderm with your infrastructure/private cloud.

Since in this section we are talking about data and pipeline versioning we’ll talk about the two but there is more to Pachyderm than just that (check out the website for more info).

When it comes to data versioning, Pachyderm data versioning system has the following main concepts:

  • Repository – a Pachyderm repository is the highest level data object. Typically, each dataset in Pachyderm is its own repository
  • Commit – an immutable snapshot of a repo at a particular point in time
  • Branch – an alias to a specific commit, or a pointer, that automatically moves as new data is submitted
  • File – files and directories are actual data in your repository. Pachyderm supports any type, size, and a number of files
  • Provenance – expresses the relationship between various commits, branches, and repositories. It helps you to track the origin of each commit

Experiment tracking and Meta ML

1. Neptune

Neptune is lightweight experiment management and collaboration tool. It is very flexible, works with many other frameworks, and thanks to its stable user interface, it enables great scalability (to millions of runs).

It’s a robust software that can store, retrieve, and analyze a large amount of data. Neptune has all the tools for efficient team collaboration and project supervision.

Neptune – summary:

  • Provides user and organization management with a different organization, projects, and user roles
  • Fast and beautiful UI with a lot of capabilities to organize runs in groups, save custom dashboard views and share them with the team
  • You can use a hosted app to avoid all the hassle with maintaining yet another tool (or have it deployed on your on-prem infrastructure)
  • Your team can track experiments which are executed in scripts (Python, R, other), notebooks (local, Google Colab, AWS SageMaker) and do that on any infrastructure (cloud, laptop, cluster)
  • Extensive experiment tracking and visualization capabilities (resource consumption, scrolling through lists of images)

2. MLflow

MLflow is an open-source platform that helps manage the whole machine learning lifecycle that includes experimentation, reproducibility, deployment, and a central model registry. 

MLflow is suitable for individuals and for teams of any size. 

The tool is library-agnostic. You can use it with any machine learning library and in any programming language

MLflow comprises four main functions:

  1. MLflow Tracking – an API and UI for logging parameters, code versions, metrics, and artifacts when running machine learning code and for later visualizing and comparing the results
  2. MLflow Projects – packaging ML code in a reusable, reproducible form to share with other data scientists or transfer to production
  3. MLflow Models – managing and deploying models from different ML libraries to a variety of model serving and inference platforms
  4. MLflow Model Registry – a central model store to collaboratively manage the full lifecycle of an MLflow Model, including model versioning, stage transitions, and annotations

👉 Check out the comparison between ML flow & Neptune!

>> Also, see our integration with MLflow

Training Run Orchestration

1. Amazon SageMaker

Amazon SageMaker is a platform that enables data scientists to build, train, and deploy machine learning models. It has all the integrated tools for the entire machine learning workflow providing all of the components used for machine learning in a single toolset.

SageMaker is a tool suitable for arranging, coordinating, and managing machine learning models. It has a single, web-based visual interface to perform all ML development steps – notebooks, experiment management, automatic model creation, debugging, and model drift detection

Amazon SageMaker – summary:

  • Autopilot automatically inspects raw data, applies feature processors, picks the best set of algorithms, trains and tunes multiple models, tracks their performance, and then ranks the models based on performance – it helps to deploy the best performing model
  • SageMaker Ground Truth helps you build and manage highly accurate training datasets quickly
  • SageMaker Experiments helps to organize and track iterations to machine learning models  by automatically capturing the input parameters, configurations, and results, and storing them as ‘experiments’
  • SageMaker Debugger automatically captures real-time metrics during training (such as training and validation, confusion, matrices, and learning gradients) to help improve model accuracy. Debugger can also generate warnings and remediation advice when common training problems are detected
  • SageMaker Model Monitor allows developers to detect and remediate concept drift. It automatically detects concept drift in deployed models and gives detailed alerts that help identify the source of the problem

> See our integration with Amazon SageMaker

2. Polyaxon

Polyaxon is a platform for reproducing and managing the whole life cycle of machine learning projects as well as deep learning applications.

The tool can be deployed into any data center, cloud provider, and can be hosted and managed by Polyaxon. It supports all the major deep learning frameworks, e.g., Torch, Tensorflow, MXNet.

When it comes to orchestration, Polyaxon lets you maximize the usage of your cluster by scheduling jobs and experiments via their CLI, dashboard, SDKs, or REST API.

Polyaxon – summary:

  • Support the entire lifecycle including run orchestration but can do way more than that
  • Has an open-source version that you can use right away  but provides options for enterprise
  • It integrates with Kubeflow so you can use both together.

👉 Check out the comparison between Polyaxon & Neptune!

Hyperparameter Tuning

1. Optuna

Optuna is an automatic hyperparameter optimization framework that can be used both for machine learning/deep learning and in other domains. It has a suite of state-of-the-art algorithms that you can choose (or connect to), it is very easy to distribute training to multiple machines, and lets you visualize your results nicely.

It integrates with popular machine learning libraries such as PyTorch, TensorFlow, Keras, FastAI, scikit-learn, LightGBM, and XGBoost.

Optuna – summary:

  • Supports distributed training both on one machine (multi-process) and on a cluster (multi node)
  • Supports various pruning strategies to converge faster (and use less compute)
  • Has a suite of powerful visualizations like parallel coordinates, contour plot, or slice plot

> See our integration with Optuna

2. SigOpt

SigOpt aims to accelerate and amplify the impact of machine learning, deep learning, and simulation models. It helps to save time by automating processes which makes it a suitable tool for hyperparameter tuning.

You can integrate SigOpt seamlessly into any model, framework, or platform without worrying about your data, model, and infrastructure – everything’s secure.

The tool also lets you monitor, track, and analyze your optimization experiments as well as visualize them.

SigOpt – summary:

  • Multimetric Optimization facilitates the exploration of two distinct metrics simultaneously
  • Conditional Parameters allow defining and tune architecture parameters and automate model selection
  • High Parallelism enables you to fully leverage large-scale computer infrastructure and run optimization experiments across up to one hundred workers

Model serving

1. Cortex

Cortex is an open-source alternative to serving models with SageMaker or building your own model deployment platform on top of AWS services like Elastic Kubernetes Service (EKS), Lambda, or Fargate and open source projects like Docker, Kubernetes, TensorFlow Serving, and TorchServe.

It’s a multiframework tool that lets you deploy all types of models.

Cortex – summary:

  • Automatically scale APIs to handle production workloads
  • Run inference on any AWS instance type
  • Deploy multiple models in a single API and update deployed APIs without downtime
  • Monitor API performance and prediction results

2. Seldon

Seldon is an open-source platform that allows you to deploy machine learning models on Kubernetes. It’s available in the cloud and on-premise.

Seldon – summary:

  • Simplify model deployment with various options like canary deployment
  • Monitor models in production with the alerting system when things go wrong
  • Use model explainers to understand why certain predictions were made. Seldon also open-sourced a model explainer package alibi

To Wrap It Up

We hope you found the best alternative to Kubeflow that will help you work efficiently and deliver the best results. After all, a good tool can improve your workflow.

Happy experimenting!

Paweł Kijko