Skip to the content.

English Japanese

머신러닝 시스템 디자인 패턴

실제 운영 환경에서의 머신러닝 시스템 학습과 서빙, 운영을 위한 시스템 디자인 패턴을 다루고 있습니다.

목적

이 문서의 주된 목적은 실제 운영되는 머신러닝 시스템의 디자인 패턴을 설명하는 것입니다.
내용에 따라 일부 활용 사례를 참조하지만, 이 문서는 머신러닝 모델 성능 향상을 시키기 위한 디자인 패턴을 설명하는 것은 아닙니다.

필요 조건

이 문서에 있는 모든 머신러닝 시스템 패턴은 클라우드나 쿠버네티스 클러스터를 사용하여 배포하는 것을 전제로 설명합니다. 이 문서는 최대한 특정 프로그래밍 언어나 플렛폼에 의존하지 않도록 노력하나, Python은 머신러닝에서 가장 대중적인 언어임을 감안하여 대부분의 디자인 패턴은 Python으로 구현 가능하도록 되어 있습니다.

문서로 읽기

아래 링크로 더 편하게 문서를 읽어보세요. GitHub Pages

Sample implementations

아래에서 일부 샘플 구현을 사용할 수 있습니다. https://github.com/shibuiwilliam/ml-system-in-actions

Patterns

Serving patterns

서빙 패턴은 실제 운영 환경에서 머신러닝 모델을 이용할 수 있도록 만드는 일련의 시스템 디자인들입니다.

QA patterns

예측 서버와 모델 평가하기 위한 패턴들입니다.

Training patterns

학습 파이프라인을 구성하기 위한 패턴들입니다.

Operation patterns

ML 학습 시스템의 설정과 로깅, 모니터링, 알람 시스템을 위한 관리 및 운영 패턴들입니다.

Lifecycle patterns

실제 운영을 위한 ML 시스템 전체를 구성하기 위해 여러 패턴들을 조합한 패턴들입니다.


Committers

기여하기

새로운 패턴을 추가하려면 template_design.md를 템플릿으로 사용하여 Issue를 생성하고 Pull Request를 만들어 주세요.
새로운 안티 패턴을 추가할 경우 template_antipattern.md를 템플릿으로 사용하여 Issue와 Pull Request를 만들어 주세요.
더 개선될 점이나 변경, 질문이 있는 경우 Issue로 제안해주세요.

Mercari에 기여하기 전 CLA를 주의 깊게 읽어주세요. 기여를 함으로써 CLA의 약관에 따라 이를 승낙하고 동의한 것으로 간주됩니다.

https://www.mercari.com/cla/

License

Copyright 2020 Mercari, Inc.

Licensed under the MIT License.