navy-xie / awesome-machine-learning-operations

a curated list of awesome resources to deploy, monitor, version and scale your machine learning (ML + DevOps = MLOps)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Machine Learning Operations (ML + DevOps = MLOps)

What is Machine Learning Operations (MLOps)?

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 two of the core principles of MLOps:
  • Reproducibility: Model & Data Versioning
  • Orchestration: Model Deployment Orchestration

Overview of this repo

  • This repository contains a curated list of awesome resources that will help you kick-start or enhance your machine learning operations
  • Machine Learning Operations involve everything that is required to serve your ML, including deploying, monitoring, scaling, versioning, etc

Main Contributors

Index

  • Model standard formats
  • Model versioning
  • Data storage / standardisation
  • Feature engineering automation
  • Model deployment frameworks
  • Computation load distribution frameworks
  • Function as a service / Lambda frameworks
  • Computational optimisation libraries
  • Commercial data science platforms
  • Commercial ETL platforms

Main Contents

Model Standard Formats for interoperability

  • 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.
  • PMLL - The Predictive Model Markup Language standard in XML - (Video)_
  • Java PMML API - Java libraries for consuming and producing PMML files containing models from different frameworks, including:

Model & Pipeline 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.
  • Jupyter Notebooks - Web interface python sandbox environments for reproducible development
  • Quilt Data - Versioning, reproducibility and deployment of data and models.
  • H2O Flow - Jupyter notebook-like inteface for H2O to create, save and re-use "flows"
  • 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

Data Storage / Standardisation / Privacy

  • 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
  • Uber SQL Differencial Privacy - Uber's open source framework that enforces differential privacy for general-purpose SQL queries.
  • ClickHouse - ClickHouse is an open source column oriented database management system supported by Yandex - (Video)

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

Model Deployment 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
  • NVIDIA TensorRT - Model server created by NVIDIA that runs models in ONNX format, including frameworks such as TensorFlow and MATLAB
  • OpenScoring - REST web service for scoring PMML models built and maintained by OpenScoring.io

Computation load distribution frameworks

Data Pipeline 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

Function as a Service / Lambda 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

Infrastructure Orchestration Frameworks

  • 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)

Optimization of Computation

  • Numba - A compiler for Python array and numerical functions

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
  • neptune.ml - community-friendly platform supporting data scientists in creating and sharing machine learning models. Neptune facilitates teamwork, infrastructure management, models comparison and reproducibility.

Commercial ETL Platforms

About

a curated list of awesome resources to deploy, monitor, version and scale your machine learning (ML + DevOps = MLOps)

License:MIT License