MLflow, Kubeflow, Metaflow
Lots of flows around these days, right? All of these frameworks are extensive open source frameworks with support across the board, so which should you choose?
All of them come under the cover of MLOps but have slightly different strengths and focus points.
So let’s look at the high-level details first, as all of these things then expand to do the adjacent thing as well.
MLflow started out as an “everything in one” framework for the whole development and deployment process of ML. That starts with model training, logging, evaluation, and storing and goes all the way into deployment. It is safe to say that for that reason, Mlflow is probably the easiest way to get started, to go from 0 to a model in production - at scale. Realize that means you’ll need more than 1-2 ML engineers to get a benefit from MLflow.
Kubeflow, on the other hand, was launched as a runner for TensorFlow jobs, covering most of the deployment and orchestration parts of machine learning, not so much the development, evaluation, and testing parts. Kubeflow, as such, is the best way to scale machine learning workflows.
Metaflow, the final flow in our comparison, is closer to MLflow than to Kubeflow as it does try to cover the whole workload a machine learning engineer has to manage. However, it does so in a different way; it imposes a certain flow structure on the models and, as such, is great for orchestrating models and structuring projects. It takes away a bit of the flexibility you have with MLflow or Kubeflow but helps you get started quicker. As such, it is hard to say which category it falls under. It definitely tries to get ML engineers started quickly, and it might even help a single ML engineer get started, but it might slow down a larger set of people due to its rigidity in structure.