/awesome-machine-learning-operations

A curated list of awesome open source libraries to deploy, monitor, version and scale your machine learning

MIT LicenseMIT

Maintenance GitHub GitHub GitHub

Awesome machine learning operations

  • This repository contains a curated list of awesome open source libraries that will help you deploy, monitor, version and scale your machine learning.

Quick links to sections in this page

Click in one of the links below to navigate this page:

πŸ” Explaining predictions & models πŸ” Privacy preserving ML πŸ“œ Model & data versioning
🏁 Model Orchestration πŸŒ€ Feature engineering πŸ€– Neural Architecture Search
πŸ““ Reproducible Notebooks πŸ“Š Visualisation frameworks πŸ”  Industry-strength NLP
🧡 Data pipelines & ETL πŸ—žοΈ Data storage πŸ“‘ Functions as a service
πŸ—ΊοΈ Computation distribution πŸ“₯ Model serialisation 🎁 Compiler optimisation
πŸ’Έ Commercial ML πŸ’° Commercial ETL

What is the operationalisation and productisation of machine learning?

Machine Learning Operations involves the infrastructure required to scale your ML capabilities. You can find an overview of MLOps in Alejandro Saucedo's talk at the 2018 EuroSciPy on Scalable Data Science: The State of MLOps in 2018.

This repository covers multiple different areas around machine learning operations. This can be visualised on the diagram on the right.

Main Contributors

Main Contents

1. Explaining Black Box Models and Datasets

  • XAI - eXplainableAI - An eXplainability toolbox for machine learning.
  • SHAP - SHapley Additive exPlanations is a unified approach to explain the output of any machine learning model.
  • LIME - Local Interpretable Model-agnostic Explanations for machine learning models.
  • ELI5 - "Explain Like I'm 5" is a Python package which helps to debug machine learning classifiers and explain their predictions.
  • Tensorboard's WhatIf - Tensorboard screen to analyse the interactions between inference results and data inputs.

2. Privacy Preserving Machine Learning

  • Tensorflow Privacy - A Python library that includes implementations of TensorFlow optimizers for training machine learning models with differential privacy.
  • TF-Encrypted - A Python library built on top of TensorFlow for researchers and practitioners to experiment with privacy-preserving machine learning.
  • PySyft - A Python library for secure, private Deep Learning. PySyft decouples private data from model training, using Multi-Party Computation (MPC) within PyTorch.
  • Uber SQL Differencial Privacy - Uber's open source framework that enforces differential privacy for general-purpose SQL queries.
  • Intel Homomorphic Encryption Backend - The Intel HE transformer for nGraph is a Homomorphic Encryption (HE) backend to the Intel nGraph Compiler, Intel's graph compiler for Artificial Neural Networks.

3. Model and Data Versioning

  • Data Version Control (DVC) - A git fork that allows for version management of models
  • ModelDB - Framework to track all the steps in your ML code to keep track of what version of your model obtained which accuracy, and then visualise it and query it via the UI
  • Pachyderm - Open source distributed processing framework build on Kubernetes focused mainly on dynamic building of production machine learning pipelines - (Video)
  • steppy - Lightweight, Python3 library for fast and reproducible machine learning experimentation. Introduces simple interface that enables clean machine learning pipeline design.
  • Quilt Data - Versioning, reproducibility and deployment of data and models.
  • ModelChimp - Framework to track and compare all the results and parameters from machine learning models (Video)
  • PredictionIO - An open source Machine Learning Server built on top of a state-of-the-art open source stack for developers and data scientists to create predictive engines for any machine learning task
  • MLflow - Open source platform to manage the ML lifecycle, including experimentation, reproducibility and deployment.
  • Sacred - Tool to help you configure, organize, log and reproduce machine learning experiments.
  • Catalyst - High-level utils for PyTorch DL & RL research. It was developed with a focus on reproducibility, fast experimentation and code/ideas reusing.
  • FGLab - Machine learning dashboard, designed to make prototyping experiments easier.
  • Studio.ML - Model management framework which minimizes the overhead involved with scheduling, running, monitoring and managing artifacts of your machine learning experiments.

4. Model Deployment and Orchestration Frameworks

  • Seldon - Open source platform for deploying and monitoring machine learning models in kubernetes - (Video)
  • Redis-ML - Module available from unstable branch that supports a subset of ML models as Redis data types
  • Model Server for Apache MXNet (MMS) - A model server for Apache MXNet from Amazon Web Services that is able to run MXNet models as well as Gluon models (Amazon's SageMaker runs a custom version of MMS under the hood)
  • Tensorflow Serving - High-performant framework to serve Tensofrlow models via grpc protocol able to handle 100k requests per second per core
  • Clipper - Model server project from Berkeley's Rise Rise Lab which includes a standard RESTful API and supports TensorFlow, Scikit-learn and Caffe models
  • DeepDetect - Machine Learning production server for TensorFlow, XGBoost and Cafe models written in C++ and maintained by Jolibrain
  • MLeap - Standardisation of pipeline and model serialization for Spark, Tensorflow and sklearn
  • OpenScoring - REST web service for scoring PMML models built and maintained by OpenScoring.io
  • Open Platform for AI - Platform that provides complete AI model training and resource management capabilities.
  • NVIDIA TensorRT - Model server created by NVIDIA that runs models in ONNX format, including frameworks such as TensorFlow and MATLAB
  • Kubeflow - A cloud native platform for machine learning based on Google’s internal machine learning pipelines.
  • Polyaxon - A platform for reproducible and scalable machine learning and deep learning on kubernetes. - (Video)

5. Feature Engineering Automation

  • auto-sklearn - Framework to automate algorithm and hyperparameter tuning for sklearn
  • TPOT - Automation of sklearn pipeline creation (including feature selection, pre-processor, etc)
  • tsfresh - Automatic extraction of relevant features from time series
  • Featuretools - An open source framework for automated feature engineering
  • Colombus - A scalable framework to perform exploratory feature selection implemented in R
  • automl - Automated feature engineering, feature/model selection, hyperparam. optimisation

6. Neural Architecture Search

7. Data Science Notebook Frameworks

  • Jupyter Notebooks - Web interface python sandbox environments for reproducible development
  • Stencila - Stencila is a platform for creating, collaborating on, and sharing data driven content. Content that is transparent and reproducible.
  • RMarkdown - The rmarkdown package is a next generation implementation of R Markdown based on Pandoc.
  • H2O Flow - Jupyter notebook-like inteface for H2O to create, save and re-use "flows"

8. Industrial Strength Visualization libraries

  • Plotly Dash - Dash is a Python framework for building analytical web applications without the need to write javascript.
  • Plotly.py - An interactive, open source, and browser-based graphing library for Python.
  • Pixiedust - PixieDust is a productivity tool for Python or Scala notebooks, which lets a developer encapsulate business logic into something easy for your customers to consume.
  • ggplot2 - An implementation of the grammar of graphics for python.
  • seaborn - Seaborn is a Python visualization library based on matplotlib. It provides a high-level interface for drawing attractive statistical graphics.
  • Bokeh - Bokeh is an interactive visualization library for Python that enables beautiful and meaningful visual presentation of data in modern web browsers.
  • matplotlib - A Python 2D plotting library which produces publication-quality figures in a variety of hardcopy formats and interactive environments across platforms.
  • pygal - pygal is a dynamic SVG charting library written in python
  • Geoplotlib - geoplotlib is a python toolbox for visualizing geographical data and making maps
  • Missigno - missingno provides a small toolset of flexible and easy-to-use missing data visualizations and utilities that allows you to get a quick visual summary of the completeness (or lack thereof) of your dataset.

9. Industrial strenght NLP

  • SpaCy - Industrial-strength natural language processing library built with python and cython by the explosion.ai team.
  • Flair - Simple framework for state-of-the-art NLP developed by Zalando which builds directly on PyTorch.
  • Wav2Letter++ - A speech to text system developed by Facebook's FAIR teams.

10. Data Pipeline ETL Frameworks

  • Apache Airflow - Data Pipeline framework built in Python, including scheduler, DAG definition and a UI for visualisation
  • Luigi - Luigi is a Python module that helps you build complex pipelines of batch jobs, handling dependency resolution, workflow management, visualisation, etc
  • Genie - Job orchestration engine to interface and trigger the execution of jobs from Hadoop-based systems
  • Oozie - Workflow scheduler for Hadoop jobs
  • Apache Nifi - Apache NiFi was made for dataflow. It supports highly configurable directed graphs of data routing, transformation, and system mediation logic.

11. Data Storage Optimisation

  • EdgeDB - NoSQL interface for Postgres that allows for object interaction to data stored
  • BayesDB - Database that allows for built-in non-parametric Bayesian model discovery and queryingi for data on a database-like interface - (Video)
  • Apache Arrow - In-memory columnar representation of data compatible with Pandas, Hadoop-based systems, etc
  • Apache Parquet - On-disk columnar representation of data compatible with Pandas, Hadoop-based systems, etc
  • Apache Kafka - Distributed streaming platform framework
  • ClickHouse - ClickHouse is an open source column oriented database management system supported by Yandex - (Video)
  • Alluxio - A virtual distributed storage system that bridges the gab between computation frameworks and storage systems.

12. Function as a Service Frameworks

  • OpenFaaS - Serverless functions framework with RESTful API on Kubernetes
  • Fission - (Early Alpha) Serverless functions as a service framework on Kubernetes
  • Hydrosphere ML Lambda - Open source model management cluster for deploying, serving and monitoring machine learning models and ad-hoc algorithms with a FaaS architecture
  • Hydrosphere Mist - Serverless proxy for Apache Spark clusters
  • Apache OpenWhisk - Open source, distributed serverless platform that executes functions in response to events at any scale.

13. Computation load distribution frameworks

  • Hadoop Open Platform-as-a-service (HOPS) - A multi-tenency open source framework with RESTful API for data science on Hadoop which enables for Spark, Tensorflow/Keras, it is Python-first, and provides a lot of features
  • PyWren - Answer the question of the "cloud button" for python function execution. It's a framework that abstracts AWS Lambda to enable data scientists to execute any Pyhton function - (Video)
  • NumPyWren - Scientific computing framework build on top of pywren to enable numpy-like distributed computations
  • BigDL - Deep learning framework on top of Spark/Hadoop to distribute data and computations across a HDFS system
  • Horovod - Uber's distributed training framework for TensorFlow, Keras, and PyTorch
  • Apache Spark MLib - Apache Spark's scalable machine learning library in Java, Scala, Python and R
  • Dask - Distributed parallel processing framework for Pandas and NumPy computations - (Video)

14. Model serialisation formats

  • ONNX - Open Neural Network Exchange Format
  • Neural Network Exchange Format (NNEF) - A standard format to store models across Torch, Caffe, TensorFlow, Theano, Chainer, Caffe2, PyTorch, and MXNet
  • PFA - Created by the same organisation as PMML, the Predicted Format for Analytics is an emerging standard for statistical models and data transformation engines.
  • PMML - The Predictive Model Markup Language standard in XML - (Video)_
  • MMdnn - Cross-framework solution to convert, visualize and diagnose deep neural network models.
  • Java PMML API - Java libraries for consuming and producing PMML files containing models from different frameworks, including:

15. Compiler optimisation frameworks

  • Numba - A compiler for Python array and numerical functions

16. Commercial Data-science Platforms

  • Comet.ml - Machine learning experiment management. Free for open source and students (Video)
  • Skytree 16.0 - End to end machine learning platform (Video)
  • Algorithmia - Cloud platform to build, deploy and serve machine learning models (Video)
  • y-hat - Deployment, updating and monitoring of predictive models in multiple languages (Video)
  • Amazon SageMaker - End-to-end machine learning development and deployment interface where you are able to build notebooks that use EC2 instances as backend, and then can host models exposed on an API
  • Google Cloud Machine Learning Engine - Managed service that enables developers and data scientists to build and bring machine learning models to production.
  • Microsoft Azure Machine Learning service - Build, train, and deploy models from the cloud to the edge.
  • IBM Watson Machine Learning - Create, train, and deploy self-learning models using an automated, collaborative workflow.
  • neptune.ml - community-friendly platform supporting data scientists in creating and sharing machine learning models. Neptune facilitates teamwork, infrastructure management, models comparison and reproducibility.
  • Datmo - Workflow tools for monitoring your deployed models to experiment and optimize models in production.
  • Valohai - Machine orchestration, version control and pipeline management for deep learning.
  • Dataiku - Collaborative data science platform powering both self-service analytics and the operationalization of machine learning models in production.
  • MCenter - MLOps platform automates the deployment, ongoing optimization, and governance of machine learning applications in production.
  • Skafos - Skafos platform bridges the gap between data science, devops and engineering; continuous deployment, automation and monitoring.
  • SKIL - Software distribution designed to help enterprise IT teams manage, deploy, and retrain machine learning models at scale.
  • MLJAR - Platform for rapid prototyping, developing and deploying machine learning models.
  • MissingLink - MissingLink helps data engineers streamline and automate the entire deep learning lifecycle.
  • DataRobot - Automated machine learning platform which enables users to build and deploy machine learning models.
  • RiseML - Machine Learning Platform for Kubernetes: RiseML simplifies running machine learning experiments on bare metal and cloud GPU clusters of any size.
  • Datatron - Machine Learning Model Governance Platform for all your AI models in production for large Enterprises.

17. Commercial ETL Platforms