機械学習システム デザインパターン
機械学習システムを本番稼働させるために必要な学習、推論、運用のアーキテクチャ・デザイン・パターン集です。
目的
このドキュメントの目的は機械学習システムを本番稼働させるためのシステム・デザイン・パターンを説明することです。
このドキュメントは機械学習のモデル開発でパフォーマンスを向上させる方法(正解率やRMSE)を説明するものではありませんが、パターンによってはその手法に言及することもあります。
前提
このドキュメントで書かれる機械学習システムパターンのほとんどは、パブリック・クラウドおよびKubernetesを使って稼働させることを前提に記述されています。特定のプログラミング言語に依存しない内容にするよう努めますが、機械学習で使われる最もポピュラーな言語がPythonであるため、ほとんどのデザイン・パターンはPythonで構築可能なものとなっています。
読み物として
読みやすいフォーマットはこちらをご参照ください。
GitHub Pages
実装例
一部の実装例を以下で公開しました。 https://github.com/shibuiwilliam/ml-system-in-actions
Patterns
Serving patterns
本番サービスで推論サーバを稼働させ運用するパターン。
-
Edge prediction pattern: To do
QA patterns
機械学習のモデルおよび推論器を評価するためのパターン。
Training patterns
学習パイプラインを構成するパターン。
Operation patterns
推論器を管理、運用するためのパターン。
Lifecycle patterns
複数のパターンを組み合わせて機械学習システム全体を構成するパターン。
Committers
- Yusuke Shibui (@shibuiwilliam)
- Sung Yun Byeon (@zzsza)
- Jiyeon Seo (@jiyeonseo)
- Daeyoon Jin (@zetbouaka)
Contribution
新たにパターンを追加する場合はtemplate_design.mdを使用して執筆し、Issueを作成した後にPRを送ってください。
新たにアンチパターンを追加する場合はtemplate_antipattern.mdを使用して執筆し、Issueを作成した後にPRを送ってください。
修正や変更、疑問を呈する場合は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.
https://www.mercari.com/cla/
License
Copyright 2020 Mercari, Inc.
Licensed under the MIT License.