15パターン • 主にシステム全体・運用・保守、信頼性、予測性能に関するパターン群 • https://github.com/eai-transfer/ml-design-pattern 9 システム全体 Different Workloads in Different Computing Environments Distinguish Business Logic from ML Models ML Gateway Routing Architecture Microservice Architecture for ML Lambda Architecture Kappa Architecture プログラミング Data Lake Separation of Concerns and Modularization of ML Components Encapsulate ML models within Rule-base Safeguards Discard PoC Code 機械学習モデル操作 Parameter-Server Abstraction Data flows up, Model flow down Secure Aggregation Deployable Canary Model ML Versioning Hironori Washizaki, Foutse Khomh, Yann-Gael Gueheneuc, Hironori Takeuchi, Naotake Natori, Takuo Doi, Satoshi Okuda, “Software Engineering Design Patterns for Machine Learning Applications,” IEEE Computer, Vol. 55, No. 3, pp. 30-39, 2022.
構造化・非構造化のいずれも可能 な限り生データをストレージ保存 機械学習モデルからのビ ジネスロジック分離 全体的なビジネス・ロジックは他 に影響を与えず変更できるよう MLモデルから分離の必要あり ビジネス・ロジックと推論エンジンを 分離し、ビジネス・ロジックとML固 有のデータフローを疎結合 Data Layer Logic Layer Presentation Layer User Interface Database Data Collection Data Lake Business Logic Data Processing Inference Engine Real World Business Logic Specific ML Specific Architectural Layers Deployed as ML System Business Logic Data Flow ML Runtime Data Flow ML Development Data Flow Legend Haruki Yokoyama, Machine Learning System Architectural Pattern for Improving Operational Stability, ICSA-C, 2019 Hironori Washizaki, Foutse Khomh, Yann-Gael Gueheneuc, “Software Engineering Patterns for Machine Learning Applications (SEP4MLA),” 9th Asian Conference on Pattern Languages of Programs (AsianPLoP 2020)
Interface (Chatbot UI) Web App Front-end Slack Users Input Output Architectural Elements (Example Role as Chatbot) What How Business Logic Data Flow ML Development Data Flow ML Runtime Data Flow Input Data Output Data Legend System
Web App Front-end Slack Business Logic with Dasta Processing Web App Back-end Pre- and post- processing TensorFlow Inference Engine (Language Model) NN Model TensorFlow Database (Previous Q&A Store) DB Server (None) Data Lake (Vectorized Corpus) Word Vector TensorFlow (Text) Users Input Output ML Input ML Output Architectural Elements (Example Role as Chatbot) What How Business Logic Data Flow ML Development Data Flow ML Runtime Data Flow Input Data Output Data Word Vector Legend FR(機能性): 多様なデ ータに基づく応答推論 機械学習のため のデータレイク
Web App Front-end Slack Business Logic with Dasta Processing Web App Back-end Pre- and post- processing TensorFlow Inference Engine (Language Model) NN Model TensorFlow Database (Previous Q&A Store) DB Server (None) Data Lake (Vectorized Corpus) Word Vector TensorFlow (Text) Users Input Output ML Input ML Output Architectural Elements (Example Role as Chatbot) What How Business Logic Data Flow ML Development Data Flow ML Runtime Data Flow Input Data Output Data Word Vector Legend QR(変更容易性): データ源の拡充と モデルやロジックの変更しやすさ
Logic Layer Presentation Layer User Interface (Chatbot UI) Web App Front-end Slack Business Logic (Chatbot Logic) Web App Back-end Slack Data Collection (Dataset) Datasets Outside Conversation Corpus Data Processing (Text to Vector Transformer) NN Model pre- and post- processing TensorFlow Inference Engine (Language Model) NN Model TensorFlow Database (Previous Q&A Store) DB Server (None) Data Lake (Vectorized Corpus) Word Vector TensorFlow (Text) Users Data Source Input Output Datasets ML Input ML Output Input Data Output Data Input Data Datasets Word Vector QR(変更容易性): データ源の拡充と モデルやロジックの変更しやすさ