Skip to content

gaocegege/awesome-open-mlops

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 

Repository files navigation

Open Source MLOps

This is the Fuzzy Labs guide to the universe of free and open source MLOps tools.

Contents

What is MLOps anyway?

MLOps (machine learning operations) is a discipline that helps people to train, deploy and run machine learning models successfully in production environments. Because this is a new and rapidly-evolving field, there are a lot of tools out there, and new ones appear all the time. If we've missed any, then please do raise a pull request! (but please ensure it meets the definitions of open source below).

What counts as open source?

In deciding what to include in this list we apply 3 criteria.

👮‍ Fits the definition

Rather than invent our own definition, we defer to the Open Source Initiative's definition of open source. The OSI have laid out a set of clear and unambiguous requirements for something to be considered free and open source.

⚖ Open source license

So it follows that any OSI-approved license is acceptable, with examples including the various Apache, GPL, and BSD licenses. But this also means there are licenses that we don't include, such as the increasingly-popular Server Side Public License; to understand why, see the OSI's writeup on the subject.

🔋 Batteries included

We only list tools that are fully-functional and able to stand on their own. Some vendors offer limited open source versions of their tools, but ultimately those vendors want to guide you towards a SaaS offering. Sometimes there's a genuinely open-source client, but a proprietary server, meaning that the tool is not truly stand-alone. Everything in this collection comes complete with "batteries included".

Data version control

Just like code, data grows and evolves over time. Data versioning tools help you to keep track of these changes.

You might wonder why you can't just store data in Git (or equivalent). There are a few reasons this doesn't work, but the main one is size: Git is designed for small text files, and typical datasets used in machine learning are just too big. Some tools, like DVC, store the data externally, but also integrate with Git so that data versions can be linked to code versions.

Name License Description
DVC Apache 2.0 One of the most popular general-purpose data versioning tools.
Delta Lake Apache 2.0 Data versioning for data warehouses.
LakeFS Apache 2.0 Transform your object storage into a Git-like repository.
Git LFS MIT Not specialised in machine learning use-cases, but another popular way to version datasets.

Experiment tracking

Machine learning involves a lot of experimentation. We end up training a lot of models, most of which are never intended to go into production, but represent progressive steps towards having something production-worthy. Experiment tracking tools are there to help us keep track of each experiment. What exactly do we need to track? typically this includes the code version, data version, input parameters, training performance metrics, as well as the final model assets.

Name License Description
Sacred MIT
Tensorboard Apache 2.0
Guild.AI Apache 2.0
MLFlow Apache 2.0
Kedro Apache 2.0 A Python framework for creating reproducible, maintainable and modular data science code.

Model training

Name License Description
MLFlow Apache 2.0
Kubeflow Apache 2.0
Metaflow Apache 2.0

Model registries

Model registries are used to track the lifecycle of trained machine learning models.

Name License Description
MLFlow Apache 2.0 The ML Flow model registry allows you to store, annotate, discover, and manage models in a central repository.
modelstore Apache 2.0 A Python library for versioning, storing, and tracking ML model artefacts across several different types of storage.

Workflows

Name License Description
CML Apache 2.0

Feature stores

Name License Description
Feast Apache 2.0 A complete open source feature store.
Hopsworks AGPL-3.0 A feature store, feature engineering, and more.

Feature Engineering

Name License Description
Hamilton BSD-3 CC A way to organize, curate, and scale your feature transform code.

Model deployment and serving

Model serving is the process of taking a trained model and presenting it behind a REST API, and this enables other software components to interact with a model. To make deployment of these model servers as simple as possible, it's commonplace to run them inside Docker containers and deploy them to a container orchestration system such as Kubernetes.

Name License Description
Seldon Core Apache 2.0 Turn your models into microservices to run on Kubernetes
BentoML Apache 2.0
Bodywork AGPL-3.0
KServe Apache 2.0

Model monitoring

Monitoring means making sure that each deployed model is both functioning, and producing sensible results. We don't just want to check for errors in the traditional sense, but also for things like drift and signs of bias in the predictions and decisions that come from a model.

Name License Description
Evidently Apache 2.0
Boxkite ML Apache 2.0
Alibi Detect (by Seldon) Apache 2.0
whylogs Apache 2.0 whylogs allows users to generate data profiles, statistical summaries of data, that can be used as logs for an AI observability platform.

Full stacks

Name License Description
Open MLOps MIT
You Don't Need a Bigger Boat MIT
ZenML Apache 2.0 An extensible, open-source MLOps framework to create production-ready machine learning pipelines.

Governance

Name License Description
Bailo Apache 2.0 Managing the lifecycle of machine learning to support scalability, impact, collaboration, compliance and sharing.

More resources

Here are some more resources for MLOps, both open-source and proprietary.

About

The Fuzzy Labs guide to the universe of open source MLOps

Resources

License

Stars

Watchers

Forks

Packages

No packages published