SlideShare a Scribd company logo
1 of 36
Download to read offline
機械学習システムの33のアーキテク
チャパターンおよびデザインパターン
鷲崎 弘宜
早稲田大学 / 国立情報学研究所 / システム情報 / エクスモーション
washizaki@waseda.jp
http://www.washi.cs.waseda.ac.jp/
スマートエスイーセミナー:
機械学習デザインパターンとアジャイル品質パターン2019年11月8日 r2
Hironori Washizaki, Hiromu Uchida, Foutse Khomh and Yann-Gaël Guéhéneuc,
“Studying Software Engineering Patterns for Designing Machine Learning
Systems,” The 10th International Workshop on Empirical Software Engineering in
Practice (IWESEP 2019), Tokyo, Japan, on December 13-14, 2019.
https://arxiv.org/abs/1910.04736
機械学習アーキテクチャ・デザインパターンの
全体像に向けて
• RQ1. ML開発者はMLシステム(MLS)の設計をどのように捉えて扱
っているのか?
– 方法: アンケート調査
– 結果: MLアーキテクチャ・デザインパターンについてほとんど知られ
ていない。
• RQ2. 学術論文や技術文書はMLSの設計をどのように扱っている
のか?
– 方法: 体系的文献調査
– 結果: 学術論文19編、技術文書19編
• RQ3. MLアーキテクチャ・デザインパターンはどのように分類できる
か?
– 方法: 様々な代表的プロセスの検討
– 結果: MLパイプラインプロセスおよびISO/IEC 12207ソフトウェアライフ
サイクルプロセスによる分類
• RQ4. MLアーキテクチャ・デザインパターンにはどのようなものがあ
るか?
– 方法: 文献からのパターン抽出およびプロセス上での分類
– 結果: 33のパターンを抽出、データ・フィーチャ系のパターン未特定 2
RQ1. ML開発者はMLシステムの設計
をどのように捉えて扱っているのか?
• 方法: 760+名の主として企業人へのアンケート調査
• 結果: 9名の回答。MLアーキテクチャ・デザインパタ
ーンについてほとんど知られていない。
3
参照アーキテクチャやパター
ンをMLSの設計において用い
ているか?
Yes No
3 (一般的なアーキテクチャ、
デザイン、クラウドパターン)
5
MLSの要求をどのように獲得
しているか?
パターン テンプレートや
プロセス
アドホック
0 2 7
MLSの非機能的特性をどのよ
うに保証しているか?
パターン プロセス アドホック
1 1 6
RQ2. 学術論文や技術文書はMLシステム
の設計をどのように扱っているのか?
• 方法:体系的文献調査
– 学術論文メタサーチエンジンEngineering Village
– 一般サーチエンジンGoogle
• 結果: 学術論文19編 s1-s10 & a1-a9、技術文書19編
g1-g19
4
((((system) OR (software)) AND (machine learning) AND (implementation pattern) OR
(pattern) OR (architecture pattern) OR (design pattern) OR (anti-pattern) OR (recipe) OR
(workflow) OR (practice) OR (issue) OR (template))) WN ALL) + ((cpx OR ins OR kna) WN
DB) AND (({ca} OR {ja} OR {ip} OR {ch}) WN DT)
(system OR software) "Machine learning" (pattern OR "implementation pattern" OR
"architecture pattern" OR "design pattern“ OR anti-pattern OR recipe OR workflow OR
practice OR issue OR template)
"machine implementation pattern" OR "architecture pattern" OR "design pattern“ OR anti-
pattern OR recipe OR workflow OR practice OR issue OR template
Engineering Village
Google
文書の時系列の傾向
5
0
1
2
3
4
5
6
7
8
9
10
2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019
Scholarly
Additional
Gray
6
s1 Developing machine learning products better
and faster at startups
s2 Hidden technical debt in machine learning
systems
s3 Machine learning at facebook: Understanding
inference at the edge
s4 Continuous integration of machine learning
models with ease.ml/ci: Towards a rigorous yet
practical treatment
s5 Uncertainty in machine learning applications: A
practice-driven classification of uncertainty
s6 Software architecture of a learning apprentice
system in medical billing
s7 Cleartk 2.0: Design patterns for machine
learning in UIMA
s8 Solution patterns for machine learning
s9 A survey on security threats and defensive
techniques of machine learning: A data driven
view
s10 Machine learning system architectural pattern
for improving operational stability
a1 Trials and tribulations of developers of
intelligent systems: A field study
a2 A methodology to involve domain experts
and machine learning techniques in the
design of human-centered algorithms
a3 Scaling distributed machine learning with the
parameter server
a4 Machine learning software engineering in
practice: An industrial case study
a5 Software engineering for machine learning: a
case study
a6 Integrated machine learning in the kepler
scientific workflow system
a7 Deep convolutional neural network design
patterns
a8 Practical Machine Learning
a9 Stream Analytics with Microsoft Azure: Real-
time data processing for quick insights using
Azure Stream Analytics
7
g1 Scaling machine learning at uber with
michelangelo
g2 Federated learning: Collaborative machine
learning without centralized training data
g3 Design patterns for deep learning
g4 Design patterns for machine learning in
production
g5 Patterns (and anti-patterns) for developing
machine learning systems
g6 The mvc for machine learning: Datamodel-
learner (dml)
g7 Rules of machine learning: Best practices for
ml engineering
g8 A design pattern for machine learning with
scala, spray and spark
g9 Closed-loop intelligence: A design pattern for
machine learning
g10 A design pattern for explainability and
reproducibility in production ml
g11 Top trends: Machine learning,
microservices, containers, kubernetes,
cloud to edge. what are they and how do
they fit together?
g12 Daisy architecture
g13 Event-driven architecture
g14 Demystifying data lake architecture
g15 Exploring development patterns in data
science
g16 Architecture of data lake
g17 From insights to value - building a modern
logical data lake to drive user adoption and
business value
g18 Lambda architecture pattern
g19 Busting event-driven myths
RQ3. MLアーキテクチャ・デザインパターン
はどのように分類できるか?
• 方法: 様々な代表的プロセスの検討
• 結果: MLパイプラインプロセスおよびISO/IEC 12207:2008ソフ
トウェアライフサイクルプロセスによる分類
8
MLパイプラインプロセス (Microsoft)
S. Amershi, et al., “Software engineering for machine learning: a case study,” 41st International
Conference on Software Engineering: Software Engineering in Practice, ICSE (SEIP) 2019
Requirements
Analysis
Architectural
Design
Detailed
Design
Construction
Integration
Qualification
Testing
Software Implementation Process (ISO/IEC 12207:2008)
RQ4. MLアーキテクチャ・デザインパターン
にはどのようなものがあるか?
• 方法: 文献からのパターン抽出およびプロセス上での分類
• 結果: 33のパターンを抽出、データ・フィーチャ系のパターン未特定
– 主にアーキテクチャパターン22、主にデザインパターン3
– アンチパターン8
9
10
a04
Separation of Concerns and
Modularization of ML Components
g02aFederated Learning
g05 Handshake or Hand Buzzer
g07a
Test the infrastructure independently
from the machine learning
g07b
Reuse Code between Training
Pipeline and Serving Pipeline
g08 Data-Algorithm-Serving-Evaluator
g09 Closed-Loop Intelligence
g10 Canary Model
g12 Daisy Architecture
g13 Event-driven ML Microservices
g15bMicroservice Architecture
g16 Data Lake
g17 Kappa Architecture
g18 Lambda Architecture
s02d
Design Holistically about Data
Collection and Feature Extraction
s02f
Reexamine Experimental Branches
Periodically
s02h Parameter-Server Abstraction
s02j Descriptive Data Type for Rich Information
s03a
Decouple Training Pipeline from
Production Pipeline
s03b ML Versioning pattern
s10a Distinguish Business Logic from ML Models
s10b Gateway Routing Architecture
MLアーキテクチャパターン MLアーキテクチャパターン
s05 Isolate and Validate Output of Model
s02b
Wrap Black-Box Packages into
Common APIs
g02bSecure Aggregation
MLデザインパターン
s02l Undeclared Consumers
s02k Multiple-Language Smell
s02i Plain-Old-Data Type Smell
s02g Abstraction Debt
s02e Dead Experimental Codepaths
s02c Pipeline Jungles
s02a Glue Code
g15a Big Ass Script Architecture
MLアンチパターン
a04. Separation of Concerns and
Modularization of ML Components
ML構成要素群における関心事の
分離およびモジュール化
• 問題: 要求やデータの変化に応じてML構成
要素群は、他のシステム構成要素よりも変わ
りやすい。
• 解決: ML構成要素群においてモジュール化を
進めて、関心事の分離および再利用しやすく
する。
11
g02a. Federated Learning フェデ
レーテッドラーニング
• 問題: 標準的な機械学習においては、単一個
所でまとまって訓練しなければならない。
• 解決: 携帯端末群で協調的に訓練しつつ、デ
ータは個別に持つ。
12
g02b. Secure Aggregation セキュア
な集約
• (フェデレーテッドラーニングにおける各携帯
端末からの)各データを暗号化しクラウド上で
個別吟味なしに合計や平均を算出
13
g05. Handshake or Hand Buzzer ハ
ンドシェイク・ハンドブザー
• 問題: 外部からの入力に依存している。
• 解決: 入力・バージョンと紐づけられたハンド
シェイクプロセスを標準化しておく。入力側に
ついて定期的にチェックし、重大な変更があ
れば警告を出す。
14
g07a. Test the infrastructure
independently from the machine
learning 機械学習部分とは独立し
てインフラをテスト
• 問題: インフラと機械学習が混ざった形では
誤りを特定しにくい。
• 解決: データ取得等のインフラ部分と機械学
習・訓練部分を分離して、独立にテスト可能と
する。
15
g07b. Reuse Code between
Training Pipeline and Serving
Pipeline 訓練パイプラインと(オン
ライン)推論パイプラインにおける
再利用
• 共通のプログラミング言語を用い、特に、人
が理解可能な形で結果を蓄えるオブジェクト
を用意することで、訓練パイプラインと(オンラ
イン)推論パイプラインとで再利用する。
16
g08. Data-Algorithm-Serving-
Evaluator データ・アルゴリズム・
(オンライン)推論・評価
• 機械学習のMVCとして次を分離する: データ、
アルゴリズム、(オンライン)推論、評価
17
g09. Closed-Loop Intelligence 閉
ループ知能
• 機械学習を利用者(による利用)につなげて
ループを閉じる。そのための明快なインタラク
ション、暗黙かつ直接的な出力を設計する。
18
g10. Canary Model カナリアモデル
• 説明性の高いカナリアモデルのパイプライン
を主の推論パイプラインと同時並行に動かし
て、予測の違いをモニタリングする。
19
g12. Daisy Architecture デイジー
アーキテクチャ
• かんばん、スケーリング、マイクロサービスの活
用による、メディアコンテント処理にあたってのプ
ル型、自動、オンデマンド・イテラティブの実現。
20
g11. Event-driven ML
Microservices イベント駆動MLマイ
クロサービス
• マイクロサービスの組み合わせとして柔軟な
データストリームからMLモデル、結果の提供
までを構成する
21
g15b. Microservice Architecture マ
イクロサービスアーキテクチャ
• データサイエンスを、再利用可能なマイクロ
サービスAPI群の提供と利用により実現する。
22
g16. Data Lake データレイク
• 構造化データと非構造化データを保存できる
一元化されたリポジトリを用意する。
23
https://it.impressbm.co.jp/articles/-/16979
g17. Kappa Architecture カッパアー
キテクチャ
• データをストリームとして処理する。リアルタイ
ムのデータ処理と連続的な再処理の両方に
単一のストリーム処理エンジンで対応する。
24
https://jp.talend.com/blog/2017/08/28/lambda-kappa-real-time-big-data-architectures/
g18. Lambda Architecture ラムダ
アーキテクチャ
• リアルタイム分析と過去データ分析を両立す
る。
25
Data
Stream
Query &
Reporting
Master
Dataset
Pre-
Computing
Batch
Views
バッチレイヤ サービスレイヤ
スピードレイヤ
Real-time
Views
s02d. Design Holistically about
Data Collection and Feature
Extractionデータ取集とフィーチャ
抽出を全体的に設計
• データ取集とフィーチャ抽出を全体的に設計
しパイプラインジャングルを解消する。
26
s02f. Reexamine Experimental
Branches Periodically 実験的分岐
の定期的な再点検
• コード中の実験のための条件分岐・パスを定
期的に見直すことで、グルーコードやパイプラ
インジャングルを解消する。
27
s02h. Parameter-Server
Abstraction パラメータサーバ
• パラメータサーバを通じた分散機械学習
28
s02j. Descriptive Data Type for Rich
Information 説明的データ型の利
用
• もともとリッチな情報・パラメータについて、意
味が分かるようにする。
29
s03a. Decouple Training Pipeline
from Production Pipeline プロダク
ションパイプラインからの訓練パイ
プラインの分離
30
s03b. ML Versioning pattern ML
バージョニング
• 異なるML推論エンジンのバージョンを管理す
る。
31
s10a. Distinguish Business Logic
from ML Models MLモデルからの
ビジネスロジックの切り分け
32
s10b. Gateway Routing
Architecture ゲートウェイルーティ
ング
33
s05. Isolate and Validate Output of
Model モデル出力の隔離と妥当
性確認
34
s02b. Wrap Black-Box Packages
into Common APIs ブラックボック
スなパッケージの共通API化
• 汎用的ブラックボックスなパッケージの共通
API化を通じたグルーコードの解消
35
まとめと展望
• RQ1. MLシステム(MLS)の設計におけるパターンはほ
とんど知られていないか、活用されていない。
• RQ2. 数多くの学術論文や技術文書がMLSの設計パタ
ーンやプラクティスを扱っている。
• RQ3. MLアーキテクチャ・デザインパターンは、 MLパイ
プラインプロセスおよびISO/IEC 12207ソフトウェアライ
フサイクルプロセスにより分類できる。
• RQ4. 33のMLアーキテクチャ・デザインパターンを抽出
した。
• 展望
– 各パターンの評価、検証
– パターン間の関係整理: 類似、汎化・特化、関連
– 新たなパターンの特定、拡充
44

More Related Content

What's hot

強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)Shota Imai
 
自己教師学習(Self-Supervised Learning)
自己教師学習(Self-Supervised Learning)自己教師学習(Self-Supervised Learning)
自己教師学習(Self-Supervised Learning)cvpaper. challenge
 
Transformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法についてTransformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法についてSho Takase
 
なぜコンピュータを学ばなければならないのか 21世紀の君主論
なぜコンピュータを学ばなければならないのか 21世紀の君主論なぜコンピュータを学ばなければならないのか 21世紀の君主論
なぜコンピュータを学ばなければならないのか 21世紀の君主論Tokoroten Nakayama
 
(修正)機械学習デザインパターン(ML Design Patterns)の解説
(修正)機械学習デザインパターン(ML Design Patterns)の解説(修正)機械学習デザインパターン(ML Design Patterns)の解説
(修正)機械学習デザインパターン(ML Design Patterns)の解説Hironori Washizaki
 
強化学習の基礎的な考え方と問題の分類
強化学習の基礎的な考え方と問題の分類強化学習の基礎的な考え方と問題の分類
強化学習の基礎的な考え方と問題の分類佑 甲野
 
ブレインパッドにおける機械学習プロジェクトの進め方
ブレインパッドにおける機械学習プロジェクトの進め方ブレインパッドにおける機械学習プロジェクトの進め方
ブレインパッドにおける機械学習プロジェクトの進め方BrainPad Inc.
 
Optimizer入門&最新動向
Optimizer入門&最新動向Optimizer入門&最新動向
Optimizer入門&最新動向Motokawa Tetsuya
 
全力解説!Transformer
全力解説!Transformer全力解説!Transformer
全力解説!TransformerArithmer Inc.
 
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2Preferred Networks
 
感情の出どころを探る、一歩進んだ感情解析
感情の出どころを探る、一歩進んだ感情解析感情の出どころを探る、一歩進んだ感情解析
感情の出どころを探る、一歩進んだ感情解析Takahiro Kubo
 
情報検索の基礎
情報検索の基礎情報検索の基礎
情報検索の基礎Retrieva inc.
 
【メタサーベイ】基盤モデル / Foundation Models
【メタサーベイ】基盤モデル / Foundation Models【メタサーベイ】基盤モデル / Foundation Models
【メタサーベイ】基盤モデル / Foundation Modelscvpaper. challenge
 
ChatGPTは思ったほど賢くない
ChatGPTは思ったほど賢くないChatGPTは思ったほど賢くない
ChatGPTは思ったほど賢くないCarnot Inc.
 
[論文紹介] 機械学習システムの安全性における未解決な問題
[論文紹介] 機械学習システムの安全性における未解決な問題[論文紹介] 機械学習システムの安全性における未解決な問題
[論文紹介] 機械学習システムの安全性における未解決な問題tmtm otm
 
GOの機械学習システムを支えるMLOps事例紹介
GOの機械学習システムを支えるMLOps事例紹介GOの機械学習システムを支えるMLOps事例紹介
GOの機械学習システムを支えるMLOps事例紹介Takashi Suzuki
 
DataDrift in Azure Machine Learning
DataDrift in Azure Machine LearningDataDrift in Azure Machine Learning
DataDrift in Azure Machine LearningKeita Onabuta
 
2019年度チュートリアルBPE
2019年度チュートリアルBPE2019年度チュートリアルBPE
2019年度チュートリアルBPE広樹 本間
 

What's hot (20)

強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
 
自己教師学習(Self-Supervised Learning)
自己教師学習(Self-Supervised Learning)自己教師学習(Self-Supervised Learning)
自己教師学習(Self-Supervised Learning)
 
Transformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法についてTransformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法について
 
なぜコンピュータを学ばなければならないのか 21世紀の君主論
なぜコンピュータを学ばなければならないのか 21世紀の君主論なぜコンピュータを学ばなければならないのか 21世紀の君主論
なぜコンピュータを学ばなければならないのか 21世紀の君主論
 
(修正)機械学習デザインパターン(ML Design Patterns)の解説
(修正)機械学習デザインパターン(ML Design Patterns)の解説(修正)機械学習デザインパターン(ML Design Patterns)の解説
(修正)機械学習デザインパターン(ML Design Patterns)の解説
 
MLOpsはバズワード
MLOpsはバズワードMLOpsはバズワード
MLOpsはバズワード
 
強化学習の基礎的な考え方と問題の分類
強化学習の基礎的な考え方と問題の分類強化学習の基礎的な考え方と問題の分類
強化学習の基礎的な考え方と問題の分類
 
ブレインパッドにおける機械学習プロジェクトの進め方
ブレインパッドにおける機械学習プロジェクトの進め方ブレインパッドにおける機械学習プロジェクトの進め方
ブレインパッドにおける機械学習プロジェクトの進め方
 
BlackBox モデルの説明性・解釈性技術の実装
BlackBox モデルの説明性・解釈性技術の実装BlackBox モデルの説明性・解釈性技術の実装
BlackBox モデルの説明性・解釈性技術の実装
 
Optimizer入門&最新動向
Optimizer入門&最新動向Optimizer入門&最新動向
Optimizer入門&最新動向
 
全力解説!Transformer
全力解説!Transformer全力解説!Transformer
全力解説!Transformer
 
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
 
感情の出どころを探る、一歩進んだ感情解析
感情の出どころを探る、一歩進んだ感情解析感情の出どころを探る、一歩進んだ感情解析
感情の出どころを探る、一歩進んだ感情解析
 
情報検索の基礎
情報検索の基礎情報検索の基礎
情報検索の基礎
 
【メタサーベイ】基盤モデル / Foundation Models
【メタサーベイ】基盤モデル / Foundation Models【メタサーベイ】基盤モデル / Foundation Models
【メタサーベイ】基盤モデル / Foundation Models
 
ChatGPTは思ったほど賢くない
ChatGPTは思ったほど賢くないChatGPTは思ったほど賢くない
ChatGPTは思ったほど賢くない
 
[論文紹介] 機械学習システムの安全性における未解決な問題
[論文紹介] 機械学習システムの安全性における未解決な問題[論文紹介] 機械学習システムの安全性における未解決な問題
[論文紹介] 機械学習システムの安全性における未解決な問題
 
GOの機械学習システムを支えるMLOps事例紹介
GOの機械学習システムを支えるMLOps事例紹介GOの機械学習システムを支えるMLOps事例紹介
GOの機械学習システムを支えるMLOps事例紹介
 
DataDrift in Azure Machine Learning
DataDrift in Azure Machine LearningDataDrift in Azure Machine Learning
DataDrift in Azure Machine Learning
 
2019年度チュートリアルBPE
2019年度チュートリアルBPE2019年度チュートリアルBPE
2019年度チュートリアルBPE
 

Similar to 機械学習システムの33のアーキテクチャパターンおよびデザインパターン

機械学習応用アーキテクチャ・デザインパターン概観
機械学習応用アーキテクチャ・デザインパターン概観機械学習応用アーキテクチャ・デザインパターン概観
機械学習応用アーキテクチャ・デザインパターン概観Hironori Washizaki
 
機械学習応用システムのアーキテクチャ・デザイパターン(2020-07 ドラフトバージョン))
機械学習応用システムのアーキテクチャ・デザイパターン(2020-07 ドラフトバージョン))機械学習応用システムのアーキテクチャ・デザイパターン(2020-07 ドラフトバージョン))
機械学習応用システムのアーキテクチャ・デザイパターン(2020-07 ドラフトバージョン))HironoriTAKEUCHI1
 
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けてHironori Washizaki
 
機械学習 - MNIST の次のステップ
機械学習 - MNIST の次のステップ機械学習 - MNIST の次のステップ
機械学習 - MNIST の次のステップDaiyu Hatakeyama
 
AutoML & InterpretML (2019/11/27 Deep Learning Lab 講演資料)
AutoML & InterpretML (2019/11/27 Deep Learning Lab 講演資料)AutoML & InterpretML (2019/11/27 Deep Learning Lab 講演資料)
AutoML & InterpretML (2019/11/27 Deep Learning Lab 講演資料)Keita Onabuta
 
How to organize data science project (データサイエンスプロジェクトの始め方101)
How to organize data science project (データサイエンスプロジェクトの始め方101)How to organize data science project (データサイエンスプロジェクトの始め方101)
How to organize data science project (データサイエンスプロジェクトの始め方101)Yasuyuki Kataoka
 
スマートエスイーセミナー:機外学習応用システムパターンの例
スマートエスイーセミナー:機外学習応用システムパターンの例スマートエスイーセミナー:機外学習応用システムパターンの例
スマートエスイーセミナー:機外学習応用システムパターンの例HironoriTAKEUCHI1
 
パターン(ランゲージ)によるKnow Why/What/How の言語化・文書化と発展, MLSE夏合宿
パターン(ランゲージ)によるKnow Why/What/How の言語化・文書化と発展, MLSE夏合宿パターン(ランゲージ)によるKnow Why/What/How の言語化・文書化と発展, MLSE夏合宿
パターン(ランゲージ)によるKnow Why/What/How の言語化・文書化と発展, MLSE夏合宿Hironori Washizaki
 
Machine Learning Operations (MLOps): Overview, Definition, and Architecture
Machine Learning Operations (MLOps): Overview, Definition, and ArchitectureMachine Learning Operations (MLOps): Overview, Definition, and Architecture
Machine Learning Operations (MLOps): Overview, Definition, and ArchitectureTakuya Minagawa
 
東北大学AIE - 機械学習中級編とAzure紹介
東北大学AIE - 機械学習中級編とAzure紹介東北大学AIE - 機械学習中級編とAzure紹介
東北大学AIE - 機械学習中級編とAzure紹介Daiyu Hatakeyama
 
Azure Machine Learning アップデートセミナー 20191127
Azure Machine Learning アップデートセミナー 20191127Azure Machine Learning アップデートセミナー 20191127
Azure Machine Learning アップデートセミナー 20191127Keita Onabuta
 
[DL輪読会]Parity Models: A General Framework for Coding-Based Resilience in ML I...
[DL輪読会]Parity Models: A General Framework for Coding-Based Resilience in ML I...[DL輪読会]Parity Models: A General Framework for Coding-Based Resilience in ML I...
[DL輪読会]Parity Models: A General Framework for Coding-Based Resilience in ML I...Deep Learning JP
 
ソフトウェアエンジニアリングとEssenceの広がり
ソフトウェアエンジニアリングとEssenceの広がりソフトウェアエンジニアリングとEssenceの広がり
ソフトウェアエンジニアリングとEssenceの広がりHironori Washizaki
 
データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~
データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~
データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~The Japan DataScientist Society
 
情報システム概論 Kanban Pizza Game
情報システム概論 Kanban Pizza Game情報システム概論 Kanban Pizza Game
情報システム概論 Kanban Pizza GameYoshiaki Rikitake
 
機械学習デザインパターンの必要性と機械学習ライフサイクル
機械学習デザインパターンの必要性と機械学習ライフサイクル機械学習デザインパターンの必要性と機械学習ライフサイクル
機械学習デザインパターンの必要性と機械学習ライフサイクルHironori Washizaki
 
基本から学ぶ ビッグデータ / データ分析 / 機械学習 サービス群
基本から学ぶ ビッグデータ / データ分析 / 機械学習 サービス群基本から学ぶ ビッグデータ / データ分析 / 機械学習 サービス群
基本から学ぶ ビッグデータ / データ分析 / 機械学習 サービス群Google Cloud Platform - Japan
 
Azure Machine Learning Build 2020
Azure Machine Learning Build 2020Azure Machine Learning Build 2020
Azure Machine Learning Build 2020Keita Onabuta
 
「機械学習:技術的負債の高利子クレジットカード」のまとめ
「機械学習:技術的負債の高利子クレジットカード」のまとめ「機械学習:技術的負債の高利子クレジットカード」のまとめ
「機械学習:技術的負債の高利子クレジットカード」のまとめRecruit Technologies
 

Similar to 機械学習システムの33のアーキテクチャパターンおよびデザインパターン (20)

機械学習応用アーキテクチャ・デザインパターン概観
機械学習応用アーキテクチャ・デザインパターン概観機械学習応用アーキテクチャ・デザインパターン概観
機械学習応用アーキテクチャ・デザインパターン概観
 
機械学習応用システムのアーキテクチャ・デザイパターン(2020-07 ドラフトバージョン))
機械学習応用システムのアーキテクチャ・デザイパターン(2020-07 ドラフトバージョン))機械学習応用システムのアーキテクチャ・デザイパターン(2020-07 ドラフトバージョン))
機械学習応用システムのアーキテクチャ・デザイパターン(2020-07 ドラフトバージョン))
 
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
 
組込みSW開発技術研究会キックオフミーティング
組込みSW開発技術研究会キックオフミーティング組込みSW開発技術研究会キックオフミーティング
組込みSW開発技術研究会キックオフミーティング
 
機械学習 - MNIST の次のステップ
機械学習 - MNIST の次のステップ機械学習 - MNIST の次のステップ
機械学習 - MNIST の次のステップ
 
AutoML & InterpretML (2019/11/27 Deep Learning Lab 講演資料)
AutoML & InterpretML (2019/11/27 Deep Learning Lab 講演資料)AutoML & InterpretML (2019/11/27 Deep Learning Lab 講演資料)
AutoML & InterpretML (2019/11/27 Deep Learning Lab 講演資料)
 
How to organize data science project (データサイエンスプロジェクトの始め方101)
How to organize data science project (データサイエンスプロジェクトの始め方101)How to organize data science project (データサイエンスプロジェクトの始め方101)
How to organize data science project (データサイエンスプロジェクトの始め方101)
 
スマートエスイーセミナー:機外学習応用システムパターンの例
スマートエスイーセミナー:機外学習応用システムパターンの例スマートエスイーセミナー:機外学習応用システムパターンの例
スマートエスイーセミナー:機外学習応用システムパターンの例
 
パターン(ランゲージ)によるKnow Why/What/How の言語化・文書化と発展, MLSE夏合宿
パターン(ランゲージ)によるKnow Why/What/How の言語化・文書化と発展, MLSE夏合宿パターン(ランゲージ)によるKnow Why/What/How の言語化・文書化と発展, MLSE夏合宿
パターン(ランゲージ)によるKnow Why/What/How の言語化・文書化と発展, MLSE夏合宿
 
Machine Learning Operations (MLOps): Overview, Definition, and Architecture
Machine Learning Operations (MLOps): Overview, Definition, and ArchitectureMachine Learning Operations (MLOps): Overview, Definition, and Architecture
Machine Learning Operations (MLOps): Overview, Definition, and Architecture
 
東北大学AIE - 機械学習中級編とAzure紹介
東北大学AIE - 機械学習中級編とAzure紹介東北大学AIE - 機械学習中級編とAzure紹介
東北大学AIE - 機械学習中級編とAzure紹介
 
Azure Machine Learning アップデートセミナー 20191127
Azure Machine Learning アップデートセミナー 20191127Azure Machine Learning アップデートセミナー 20191127
Azure Machine Learning アップデートセミナー 20191127
 
[DL輪読会]Parity Models: A General Framework for Coding-Based Resilience in ML I...
[DL輪読会]Parity Models: A General Framework for Coding-Based Resilience in ML I...[DL輪読会]Parity Models: A General Framework for Coding-Based Resilience in ML I...
[DL輪読会]Parity Models: A General Framework for Coding-Based Resilience in ML I...
 
ソフトウェアエンジニアリングとEssenceの広がり
ソフトウェアエンジニアリングとEssenceの広がりソフトウェアエンジニアリングとEssenceの広がり
ソフトウェアエンジニアリングとEssenceの広がり
 
データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~
データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~
データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~
 
情報システム概論 Kanban Pizza Game
情報システム概論 Kanban Pizza Game情報システム概論 Kanban Pizza Game
情報システム概論 Kanban Pizza Game
 
機械学習デザインパターンの必要性と機械学習ライフサイクル
機械学習デザインパターンの必要性と機械学習ライフサイクル機械学習デザインパターンの必要性と機械学習ライフサイクル
機械学習デザインパターンの必要性と機械学習ライフサイクル
 
基本から学ぶ ビッグデータ / データ分析 / 機械学習 サービス群
基本から学ぶ ビッグデータ / データ分析 / 機械学習 サービス群基本から学ぶ ビッグデータ / データ分析 / 機械学習 サービス群
基本から学ぶ ビッグデータ / データ分析 / 機械学習 サービス群
 
Azure Machine Learning Build 2020
Azure Machine Learning Build 2020Azure Machine Learning Build 2020
Azure Machine Learning Build 2020
 
「機械学習:技術的負債の高利子クレジットカード」のまとめ
「機械学習:技術的負債の高利子クレジットカード」のまとめ「機械学習:技術的負債の高利子クレジットカード」のまとめ
「機械学習:技術的負債の高利子クレジットカード」のまとめ
 

More from Hironori Washizaki

Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
IEEE Computer Society 2024 Technology Predictions Update
IEEE Computer Society 2024 Technology Predictions UpdateIEEE Computer Society 2024 Technology Predictions Update
IEEE Computer Society 2024 Technology Predictions UpdateHironori Washizaki
 
鷲崎弘宜, "国際規格ISO/IEC 24773とその意義", 情報処理学会 第86回全国大会
鷲崎弘宜, "国際規格ISO/IEC 24773とその意義", 情報処理学会 第86回全国大会鷲崎弘宜, "国際規格ISO/IEC 24773とその意義", 情報処理学会 第86回全国大会
鷲崎弘宜, "国際規格ISO/IEC 24773とその意義", 情報処理学会 第86回全国大会Hironori Washizaki
 
IEEE Computer Society’s Strategic Activities and Products including SWEBOK Guide
IEEE Computer Society’s Strategic Activities and Products including SWEBOK GuideIEEE Computer Society’s Strategic Activities and Products including SWEBOK Guide
IEEE Computer Society’s Strategic Activities and Products including SWEBOK GuideHironori Washizaki
 
TISO/IEC JTC1におけるソフトウェア工学知識体系、技術者認証および品質の標準化と研究・教育他への活用
TISO/IEC JTC1におけるソフトウェア工学知識体系、技術者認証および品質の標準化と研究・教育他への活用TISO/IEC JTC1におけるソフトウェア工学知識体系、技術者認証および品質の標準化と研究・教育他への活用
TISO/IEC JTC1におけるソフトウェア工学知識体系、技術者認証および品質の標準化と研究・教育他への活用Hironori Washizaki
 
アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225
アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225
アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225Hironori Washizaki
 
Joseph Yoder : Being Agile about Architecture
Joseph Yoder : Being Agile about ArchitectureJoseph Yoder : Being Agile about Architecture
Joseph Yoder : Being Agile about ArchitectureHironori Washizaki
 
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデートHironori Washizaki
 
SWEBOK Guide Evolution and Its Emerging Areas including Machine Learning Patt...
SWEBOK Guide Evolution and Its Emerging Areas including Machine Learning Patt...SWEBOK Guide Evolution and Its Emerging Areas including Machine Learning Patt...
SWEBOK Guide Evolution and Its Emerging Areas including Machine Learning Patt...Hironori Washizaki
 
デジタルトランスフォーメーション(DX)におけるソフトウェアの側面とダイバーシティ・インクルーシブに関する研究実践動向
デジタルトランスフォーメーション(DX)におけるソフトウェアの側面とダイバーシティ・インクルーシブに関する研究実践動向デジタルトランスフォーメーション(DX)におけるソフトウェアの側面とダイバーシティ・インクルーシブに関する研究実践動向
デジタルトランスフォーメーション(DX)におけるソフトウェアの側面とダイバーシティ・インクルーシブに関する研究実践動向Hironori Washizaki
 
SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~
SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~
SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~Hironori Washizaki
 
人生100年・60年カリキュラム時代のDX人材育成: スマートエスイー 2021年度成果および2022年度募集
人生100年・60年カリキュラム時代のDX人材育成: スマートエスイー 2021年度成果および2022年度募集人生100年・60年カリキュラム時代のDX人材育成: スマートエスイー 2021年度成果および2022年度募集
人生100年・60年カリキュラム時代のDX人材育成: スマートエスイー 2021年度成果および2022年度募集Hironori Washizaki
 
スマートエスイーコンソーシアムの概要と2021年度成果紹介
スマートエスイーコンソーシアムの概要と2021年度成果紹介スマートエスイーコンソーシアムの概要と2021年度成果紹介
スマートエスイーコンソーシアムの概要と2021年度成果紹介Hironori Washizaki
 
DXの推進において企業内に求められる人材やデジタル人材の育て方
DXの推進において企業内に求められる人材やデジタル人材の育て方DXの推進において企業内に求められる人材やデジタル人材の育て方
DXの推進において企業内に求められる人材やデジタル人材の育て方Hironori Washizaki
 
対応性のある運用のパターン
対応性のある運用のパターン対応性のある運用のパターン
対応性のある運用のパターンHironori Washizaki
 
モデル訓練のパターン
モデル訓練のパターンモデル訓練のパターン
モデル訓練のパターンHironori Washizaki
 
パターンのつながりとAI活用成熟度
パターンのつながりとAI活用成熟度パターンのつながりとAI活用成熟度
パターンのつながりとAI活用成熟度Hironori Washizaki
 
データ表現のパターン
データ表現のパターンデータ表現のパターン
データ表現のパターンHironori Washizaki
 
青山幹雄先生を偲んで(開拓、理論、実践、コミュニティ&国際)
青山幹雄先生を偲んで(開拓、理論、実践、コミュニティ&国際)青山幹雄先生を偲んで(開拓、理論、実践、コミュニティ&国際)
青山幹雄先生を偲んで(開拓、理論、実践、コミュニティ&国際)Hironori Washizaki
 
Software Engineering Patterns for Machine Learning Applications
Software Engineering Patterns for Machine Learning ApplicationsSoftware Engineering Patterns for Machine Learning Applications
Software Engineering Patterns for Machine Learning ApplicationsHironori Washizaki
 

More from Hironori Washizaki (20)

Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
IEEE Computer Society 2024 Technology Predictions Update
IEEE Computer Society 2024 Technology Predictions UpdateIEEE Computer Society 2024 Technology Predictions Update
IEEE Computer Society 2024 Technology Predictions Update
 
鷲崎弘宜, "国際規格ISO/IEC 24773とその意義", 情報処理学会 第86回全国大会
鷲崎弘宜, "国際規格ISO/IEC 24773とその意義", 情報処理学会 第86回全国大会鷲崎弘宜, "国際規格ISO/IEC 24773とその意義", 情報処理学会 第86回全国大会
鷲崎弘宜, "国際規格ISO/IEC 24773とその意義", 情報処理学会 第86回全国大会
 
IEEE Computer Society’s Strategic Activities and Products including SWEBOK Guide
IEEE Computer Society’s Strategic Activities and Products including SWEBOK GuideIEEE Computer Society’s Strategic Activities and Products including SWEBOK Guide
IEEE Computer Society’s Strategic Activities and Products including SWEBOK Guide
 
TISO/IEC JTC1におけるソフトウェア工学知識体系、技術者認証および品質の標準化と研究・教育他への活用
TISO/IEC JTC1におけるソフトウェア工学知識体系、技術者認証および品質の標準化と研究・教育他への活用TISO/IEC JTC1におけるソフトウェア工学知識体系、技術者認証および品質の標準化と研究・教育他への活用
TISO/IEC JTC1におけるソフトウェア工学知識体系、技術者認証および品質の標準化と研究・教育他への活用
 
アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225
アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225
アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225
 
Joseph Yoder : Being Agile about Architecture
Joseph Yoder : Being Agile about ArchitectureJoseph Yoder : Being Agile about Architecture
Joseph Yoder : Being Agile about Architecture
 
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート
 
SWEBOK Guide Evolution and Its Emerging Areas including Machine Learning Patt...
SWEBOK Guide Evolution and Its Emerging Areas including Machine Learning Patt...SWEBOK Guide Evolution and Its Emerging Areas including Machine Learning Patt...
SWEBOK Guide Evolution and Its Emerging Areas including Machine Learning Patt...
 
デジタルトランスフォーメーション(DX)におけるソフトウェアの側面とダイバーシティ・インクルーシブに関する研究実践動向
デジタルトランスフォーメーション(DX)におけるソフトウェアの側面とダイバーシティ・インクルーシブに関する研究実践動向デジタルトランスフォーメーション(DX)におけるソフトウェアの側面とダイバーシティ・インクルーシブに関する研究実践動向
デジタルトランスフォーメーション(DX)におけるソフトウェアの側面とダイバーシティ・インクルーシブに関する研究実践動向
 
SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~
SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~
SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~
 
人生100年・60年カリキュラム時代のDX人材育成: スマートエスイー 2021年度成果および2022年度募集
人生100年・60年カリキュラム時代のDX人材育成: スマートエスイー 2021年度成果および2022年度募集人生100年・60年カリキュラム時代のDX人材育成: スマートエスイー 2021年度成果および2022年度募集
人生100年・60年カリキュラム時代のDX人材育成: スマートエスイー 2021年度成果および2022年度募集
 
スマートエスイーコンソーシアムの概要と2021年度成果紹介
スマートエスイーコンソーシアムの概要と2021年度成果紹介スマートエスイーコンソーシアムの概要と2021年度成果紹介
スマートエスイーコンソーシアムの概要と2021年度成果紹介
 
DXの推進において企業内に求められる人材やデジタル人材の育て方
DXの推進において企業内に求められる人材やデジタル人材の育て方DXの推進において企業内に求められる人材やデジタル人材の育て方
DXの推進において企業内に求められる人材やデジタル人材の育て方
 
対応性のある運用のパターン
対応性のある運用のパターン対応性のある運用のパターン
対応性のある運用のパターン
 
モデル訓練のパターン
モデル訓練のパターンモデル訓練のパターン
モデル訓練のパターン
 
パターンのつながりとAI活用成熟度
パターンのつながりとAI活用成熟度パターンのつながりとAI活用成熟度
パターンのつながりとAI活用成熟度
 
データ表現のパターン
データ表現のパターンデータ表現のパターン
データ表現のパターン
 
青山幹雄先生を偲んで(開拓、理論、実践、コミュニティ&国際)
青山幹雄先生を偲んで(開拓、理論、実践、コミュニティ&国際)青山幹雄先生を偲んで(開拓、理論、実践、コミュニティ&国際)
青山幹雄先生を偲んで(開拓、理論、実践、コミュニティ&国際)
 
Software Engineering Patterns for Machine Learning Applications
Software Engineering Patterns for Machine Learning ApplicationsSoftware Engineering Patterns for Machine Learning Applications
Software Engineering Patterns for Machine Learning Applications
 

機械学習システムの33のアーキテクチャパターンおよびデザインパターン

  • 1. 機械学習システムの33のアーキテク チャパターンおよびデザインパターン 鷲崎 弘宜 早稲田大学 / 国立情報学研究所 / システム情報 / エクスモーション washizaki@waseda.jp http://www.washi.cs.waseda.ac.jp/ スマートエスイーセミナー: 機械学習デザインパターンとアジャイル品質パターン2019年11月8日 r2 Hironori Washizaki, Hiromu Uchida, Foutse Khomh and Yann-Gaël Guéhéneuc, “Studying Software Engineering Patterns for Designing Machine Learning Systems,” The 10th International Workshop on Empirical Software Engineering in Practice (IWESEP 2019), Tokyo, Japan, on December 13-14, 2019. https://arxiv.org/abs/1910.04736
  • 2. 機械学習アーキテクチャ・デザインパターンの 全体像に向けて • RQ1. ML開発者はMLシステム(MLS)の設計をどのように捉えて扱 っているのか? – 方法: アンケート調査 – 結果: MLアーキテクチャ・デザインパターンについてほとんど知られ ていない。 • RQ2. 学術論文や技術文書はMLSの設計をどのように扱っている のか? – 方法: 体系的文献調査 – 結果: 学術論文19編、技術文書19編 • RQ3. MLアーキテクチャ・デザインパターンはどのように分類できる か? – 方法: 様々な代表的プロセスの検討 – 結果: MLパイプラインプロセスおよびISO/IEC 12207ソフトウェアライフ サイクルプロセスによる分類 • RQ4. MLアーキテクチャ・デザインパターンにはどのようなものがあ るか? – 方法: 文献からのパターン抽出およびプロセス上での分類 – 結果: 33のパターンを抽出、データ・フィーチャ系のパターン未特定 2
  • 3. RQ1. ML開発者はMLシステムの設計 をどのように捉えて扱っているのか? • 方法: 760+名の主として企業人へのアンケート調査 • 結果: 9名の回答。MLアーキテクチャ・デザインパタ ーンについてほとんど知られていない。 3 参照アーキテクチャやパター ンをMLSの設計において用い ているか? Yes No 3 (一般的なアーキテクチャ、 デザイン、クラウドパターン) 5 MLSの要求をどのように獲得 しているか? パターン テンプレートや プロセス アドホック 0 2 7 MLSの非機能的特性をどのよ うに保証しているか? パターン プロセス アドホック 1 1 6
  • 4. RQ2. 学術論文や技術文書はMLシステム の設計をどのように扱っているのか? • 方法:体系的文献調査 – 学術論文メタサーチエンジンEngineering Village – 一般サーチエンジンGoogle • 結果: 学術論文19編 s1-s10 & a1-a9、技術文書19編 g1-g19 4 ((((system) OR (software)) AND (machine learning) AND (implementation pattern) OR (pattern) OR (architecture pattern) OR (design pattern) OR (anti-pattern) OR (recipe) OR (workflow) OR (practice) OR (issue) OR (template))) WN ALL) + ((cpx OR ins OR kna) WN DB) AND (({ca} OR {ja} OR {ip} OR {ch}) WN DT) (system OR software) "Machine learning" (pattern OR "implementation pattern" OR "architecture pattern" OR "design pattern“ OR anti-pattern OR recipe OR workflow OR practice OR issue OR template) "machine implementation pattern" OR "architecture pattern" OR "design pattern“ OR anti- pattern OR recipe OR workflow OR practice OR issue OR template Engineering Village Google
  • 5. 文書の時系列の傾向 5 0 1 2 3 4 5 6 7 8 9 10 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 Scholarly Additional Gray
  • 6. 6 s1 Developing machine learning products better and faster at startups s2 Hidden technical debt in machine learning systems s3 Machine learning at facebook: Understanding inference at the edge s4 Continuous integration of machine learning models with ease.ml/ci: Towards a rigorous yet practical treatment s5 Uncertainty in machine learning applications: A practice-driven classification of uncertainty s6 Software architecture of a learning apprentice system in medical billing s7 Cleartk 2.0: Design patterns for machine learning in UIMA s8 Solution patterns for machine learning s9 A survey on security threats and defensive techniques of machine learning: A data driven view s10 Machine learning system architectural pattern for improving operational stability a1 Trials and tribulations of developers of intelligent systems: A field study a2 A methodology to involve domain experts and machine learning techniques in the design of human-centered algorithms a3 Scaling distributed machine learning with the parameter server a4 Machine learning software engineering in practice: An industrial case study a5 Software engineering for machine learning: a case study a6 Integrated machine learning in the kepler scientific workflow system a7 Deep convolutional neural network design patterns a8 Practical Machine Learning a9 Stream Analytics with Microsoft Azure: Real- time data processing for quick insights using Azure Stream Analytics
  • 7. 7 g1 Scaling machine learning at uber with michelangelo g2 Federated learning: Collaborative machine learning without centralized training data g3 Design patterns for deep learning g4 Design patterns for machine learning in production g5 Patterns (and anti-patterns) for developing machine learning systems g6 The mvc for machine learning: Datamodel- learner (dml) g7 Rules of machine learning: Best practices for ml engineering g8 A design pattern for machine learning with scala, spray and spark g9 Closed-loop intelligence: A design pattern for machine learning g10 A design pattern for explainability and reproducibility in production ml g11 Top trends: Machine learning, microservices, containers, kubernetes, cloud to edge. what are they and how do they fit together? g12 Daisy architecture g13 Event-driven architecture g14 Demystifying data lake architecture g15 Exploring development patterns in data science g16 Architecture of data lake g17 From insights to value - building a modern logical data lake to drive user adoption and business value g18 Lambda architecture pattern g19 Busting event-driven myths
  • 8. RQ3. MLアーキテクチャ・デザインパターン はどのように分類できるか? • 方法: 様々な代表的プロセスの検討 • 結果: MLパイプラインプロセスおよびISO/IEC 12207:2008ソフ トウェアライフサイクルプロセスによる分類 8 MLパイプラインプロセス (Microsoft) S. Amershi, et al., “Software engineering for machine learning: a case study,” 41st International Conference on Software Engineering: Software Engineering in Practice, ICSE (SEIP) 2019 Requirements Analysis Architectural Design Detailed Design Construction Integration Qualification Testing Software Implementation Process (ISO/IEC 12207:2008)
  • 9. RQ4. MLアーキテクチャ・デザインパターン にはどのようなものがあるか? • 方法: 文献からのパターン抽出およびプロセス上での分類 • 結果: 33のパターンを抽出、データ・フィーチャ系のパターン未特定 – 主にアーキテクチャパターン22、主にデザインパターン3 – アンチパターン8 9
  • 10. 10 a04 Separation of Concerns and Modularization of ML Components g02aFederated Learning g05 Handshake or Hand Buzzer g07a Test the infrastructure independently from the machine learning g07b Reuse Code between Training Pipeline and Serving Pipeline g08 Data-Algorithm-Serving-Evaluator g09 Closed-Loop Intelligence g10 Canary Model g12 Daisy Architecture g13 Event-driven ML Microservices g15bMicroservice Architecture g16 Data Lake g17 Kappa Architecture g18 Lambda Architecture s02d Design Holistically about Data Collection and Feature Extraction s02f Reexamine Experimental Branches Periodically s02h Parameter-Server Abstraction s02j Descriptive Data Type for Rich Information s03a Decouple Training Pipeline from Production Pipeline s03b ML Versioning pattern s10a Distinguish Business Logic from ML Models s10b Gateway Routing Architecture MLアーキテクチャパターン MLアーキテクチャパターン s05 Isolate and Validate Output of Model s02b Wrap Black-Box Packages into Common APIs g02bSecure Aggregation MLデザインパターン s02l Undeclared Consumers s02k Multiple-Language Smell s02i Plain-Old-Data Type Smell s02g Abstraction Debt s02e Dead Experimental Codepaths s02c Pipeline Jungles s02a Glue Code g15a Big Ass Script Architecture MLアンチパターン
  • 11. a04. Separation of Concerns and Modularization of ML Components ML構成要素群における関心事の 分離およびモジュール化 • 問題: 要求やデータの変化に応じてML構成 要素群は、他のシステム構成要素よりも変わ りやすい。 • 解決: ML構成要素群においてモジュール化を 進めて、関心事の分離および再利用しやすく する。 11
  • 12. g02a. Federated Learning フェデ レーテッドラーニング • 問題: 標準的な機械学習においては、単一個 所でまとまって訓練しなければならない。 • 解決: 携帯端末群で協調的に訓練しつつ、デ ータは個別に持つ。 12
  • 13. g02b. Secure Aggregation セキュア な集約 • (フェデレーテッドラーニングにおける各携帯 端末からの)各データを暗号化しクラウド上で 個別吟味なしに合計や平均を算出 13
  • 14. g05. Handshake or Hand Buzzer ハ ンドシェイク・ハンドブザー • 問題: 外部からの入力に依存している。 • 解決: 入力・バージョンと紐づけられたハンド シェイクプロセスを標準化しておく。入力側に ついて定期的にチェックし、重大な変更があ れば警告を出す。 14
  • 15. g07a. Test the infrastructure independently from the machine learning 機械学習部分とは独立し てインフラをテスト • 問題: インフラと機械学習が混ざった形では 誤りを特定しにくい。 • 解決: データ取得等のインフラ部分と機械学 習・訓練部分を分離して、独立にテスト可能と する。 15
  • 16. g07b. Reuse Code between Training Pipeline and Serving Pipeline 訓練パイプラインと(オン ライン)推論パイプラインにおける 再利用 • 共通のプログラミング言語を用い、特に、人 が理解可能な形で結果を蓄えるオブジェクト を用意することで、訓練パイプラインと(オンラ イン)推論パイプラインとで再利用する。 16
  • 17. g08. Data-Algorithm-Serving- Evaluator データ・アルゴリズム・ (オンライン)推論・評価 • 機械学習のMVCとして次を分離する: データ、 アルゴリズム、(オンライン)推論、評価 17
  • 18. g09. Closed-Loop Intelligence 閉 ループ知能 • 機械学習を利用者(による利用)につなげて ループを閉じる。そのための明快なインタラク ション、暗黙かつ直接的な出力を設計する。 18
  • 19. g10. Canary Model カナリアモデル • 説明性の高いカナリアモデルのパイプライン を主の推論パイプラインと同時並行に動かし て、予測の違いをモニタリングする。 19
  • 20. g12. Daisy Architecture デイジー アーキテクチャ • かんばん、スケーリング、マイクロサービスの活 用による、メディアコンテント処理にあたってのプ ル型、自動、オンデマンド・イテラティブの実現。 20
  • 21. g11. Event-driven ML Microservices イベント駆動MLマイ クロサービス • マイクロサービスの組み合わせとして柔軟な データストリームからMLモデル、結果の提供 までを構成する 21
  • 22. g15b. Microservice Architecture マ イクロサービスアーキテクチャ • データサイエンスを、再利用可能なマイクロ サービスAPI群の提供と利用により実現する。 22
  • 23. g16. Data Lake データレイク • 構造化データと非構造化データを保存できる 一元化されたリポジトリを用意する。 23 https://it.impressbm.co.jp/articles/-/16979
  • 24. g17. Kappa Architecture カッパアー キテクチャ • データをストリームとして処理する。リアルタイ ムのデータ処理と連続的な再処理の両方に 単一のストリーム処理エンジンで対応する。 24 https://jp.talend.com/blog/2017/08/28/lambda-kappa-real-time-big-data-architectures/
  • 25. g18. Lambda Architecture ラムダ アーキテクチャ • リアルタイム分析と過去データ分析を両立す る。 25 Data Stream Query & Reporting Master Dataset Pre- Computing Batch Views バッチレイヤ サービスレイヤ スピードレイヤ Real-time Views
  • 26. s02d. Design Holistically about Data Collection and Feature Extractionデータ取集とフィーチャ 抽出を全体的に設計 • データ取集とフィーチャ抽出を全体的に設計 しパイプラインジャングルを解消する。 26
  • 27. s02f. Reexamine Experimental Branches Periodically 実験的分岐 の定期的な再点検 • コード中の実験のための条件分岐・パスを定 期的に見直すことで、グルーコードやパイプラ インジャングルを解消する。 27
  • 28. s02h. Parameter-Server Abstraction パラメータサーバ • パラメータサーバを通じた分散機械学習 28
  • 29. s02j. Descriptive Data Type for Rich Information 説明的データ型の利 用 • もともとリッチな情報・パラメータについて、意 味が分かるようにする。 29
  • 30. s03a. Decouple Training Pipeline from Production Pipeline プロダク ションパイプラインからの訓練パイ プラインの分離 30
  • 31. s03b. ML Versioning pattern ML バージョニング • 異なるML推論エンジンのバージョンを管理す る。 31
  • 32. s10a. Distinguish Business Logic from ML Models MLモデルからの ビジネスロジックの切り分け 32
  • 33. s10b. Gateway Routing Architecture ゲートウェイルーティ ング 33
  • 34. s05. Isolate and Validate Output of Model モデル出力の隔離と妥当 性確認 34
  • 35. s02b. Wrap Black-Box Packages into Common APIs ブラックボック スなパッケージの共通API化 • 汎用的ブラックボックスなパッケージの共通 API化を通じたグルーコードの解消 35
  • 36. まとめと展望 • RQ1. MLシステム(MLS)の設計におけるパターンはほ とんど知られていないか、活用されていない。 • RQ2. 数多くの学術論文や技術文書がMLSの設計パタ ーンやプラクティスを扱っている。 • RQ3. MLアーキテクチャ・デザインパターンは、 MLパイ プラインプロセスおよびISO/IEC 12207ソフトウェアライ フサイクルプロセスにより分類できる。 • RQ4. 33のMLアーキテクチャ・デザインパターンを抽出 した。 • 展望 – 各パターンの評価、検証 – パターン間の関係整理: 類似、汎化・特化、関連 – 新たなパターンの特定、拡充 44