Machine learning system design pattern
This repository contains system design patterns for training, serving and operation of machine learning systems in production.
The main objective of this document is to explain system patterns for designing machine learning system in production.
This document is not the design patterns for developing machine learning model to achieve certain performance in accuracy, though some columns may refer to those use-cases.
All of the ML system patterns are designed to be deployed on a public cloud or a Kubernetes cluster. The document tries not to be dependent on a certain programming language or platform as possible, though since Python is the most major language for the machine learning technology, most of the patterns can be developed with Python.
Please refer below for reading:
The serving patterns are a series of system designs for using machine learning models in production workflow.
Edge prediction pattern: To do
Pattens to evaluate model as well as prediction server.
Patterns to construct training pipeline.
The operation patterns contain configuration, logging, monitoring and alerting system designs for machine learning system.
The lifecycle patterns contain composition of several patterns to realize actual ML system with operation.
- Yusuke Shibui (@shibuiwilliam)
- Sung Yun Byeon (@zzsza)
- Jiyeon Seo (@jiyeonseo)
- Daeyoon Jin (@zetbouaka)
For adding a new pattern, please use template_design.md as a template, and raise an issue and later PR.
For adding a new antipattern, please use template_antipattern.md as a template, and raise an issue and later PR.
To request for improvement, change or question, please propose an issue.
Please read the CLA carefully before submitting your contribution to Mercari. Under any circumstances, by submitting your contribution, you are deemed to accept and agree to be bound by the terms and conditions of the CLA.
Copyright 2020 Mercari, Inc.
Licensed under the MIT License.