Skip to the content.

English Korean

機械学習システム デザインパターン

機械学習システムを本番稼働させるために必要な学習、推論、運用のアーキテクチャ・デザイン・パターン集です。

目的

このドキュメントの目的は機械学習システムを本番稼働させるためのシステム・デザイン・パターンを説明することです。
このドキュメントは機械学習のモデル開発でパフォーマンスを向上させる方法(正解率やRMSE)を説明するものではありませんが、パターンによってはその手法に言及することもあります。

前提

このドキュメントで書かれる機械学習システムパターンのほとんどは、パブリック・クラウドおよびKubernetesを使って稼働させることを前提に記述されています。特定のプログラミング言語に依存しない内容にするよう努めますが、機械学習で使われる最もポピュラーな言語がPythonであるため、ほとんどのデザイン・パターンはPythonで構築可能なものとなっています。

読み物として

読みやすいフォーマットはこちらをご参照ください。
GitHub Pages

実装例

一部の実装例を以下で公開しました。 https://github.com/shibuiwilliam/ml-system-in-actions

Patterns

Serving patterns

本番サービスで推論サーバを稼働させ運用するパターン。

QA patterns

機械学習のモデルおよび推論器を評価するためのパターン。

Training patterns

学習パイプラインを構成するパターン。

Operation patterns

推論器を管理、運用するためのパターン。

Lifecycle patterns

複数のパターンを組み合わせて機械学習システム全体を構成するパターン。


Committers

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.