SlideShare une entreprise Scribd logo
1  sur  36
Télécharger pour lire hors ligne
機械学習システムの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

Contenu connexe

Tendances

近年のHierarchical Vision Transformer
近年のHierarchical Vision Transformer近年のHierarchical Vision Transformer
近年のHierarchical Vision TransformerYusuke Uchida
 
機械学習応用のためのソフトウェアエンジニアリングパターン
機械学習応用のためのソフトウェアエンジニアリングパターン機械学習応用のためのソフトウェアエンジニアリングパターン
機械学習応用のためのソフトウェアエンジニアリングパターンHironoriTAKEUCHI1
 
[DL輪読会]End-to-End Object Detection with Transformers
[DL輪読会]End-to-End Object Detection with Transformers[DL輪読会]End-to-End Object Detection with Transformers
[DL輪読会]End-to-End Object Detection with TransformersDeep Learning JP
 
失敗から学ぶ機械学習応用
失敗から学ぶ機械学習応用失敗から学ぶ機械学習応用
失敗から学ぶ機械学習応用Hiroyuki Masuda
 
画像処理AIを用いた異常検知
画像処理AIを用いた異常検知画像処理AIを用いた異常検知
画像処理AIを用いた異常検知Hideo Terada
 
機械学習モデルの判断根拠の説明(Ver.2)
機械学習モデルの判断根拠の説明(Ver.2)機械学習モデルの判断根拠の説明(Ver.2)
機械学習モデルの判断根拠の説明(Ver.2)Satoshi Hara
 
XAI (説明可能なAI) の必要性
XAI (説明可能なAI) の必要性XAI (説明可能なAI) の必要性
XAI (説明可能なAI) の必要性西岡 賢一郎
 
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)RyuichiKanoh
 
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料Yusuke Uchida
 
【メタサーベイ】Vision and Language のトップ研究室/研究者
【メタサーベイ】Vision and Language のトップ研究室/研究者【メタサーベイ】Vision and Language のトップ研究室/研究者
【メタサーベイ】Vision and Language のトップ研究室/研究者cvpaper. challenge
 
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...NTT DATA Technology & Innovation
 
(文献紹介)Depth Completionの最新動向
(文献紹介)Depth Completionの最新動向(文献紹介)Depth Completionの最新動向
(文献紹介)Depth Completionの最新動向Morpho, Inc.
 
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2Preferred Networks
 
Challenges for machine learning systems toward continuous improvement
Challenges for machine learning systems toward continuous improvementChallenges for machine learning systems toward continuous improvement
Challenges for machine learning systems toward continuous improvementAki Ariga
 
深層学習の数理
深層学習の数理深層学習の数理
深層学習の数理Taiji Suzuki
 
機械学習で嘘をつく話
機械学習で嘘をつく話機械学習で嘘をつく話
機械学習で嘘をつく話Satoshi Hara
 
機械学習応用システムの安全性の研究動向と今後の展望
機械学習応用システムの安全性の研究動向と今後の展望機械学習応用システムの安全性の研究動向と今後の展望
機械学習応用システムの安全性の研究動向と今後の展望Nobukazu Yoshioka
 
ChatGPT 人間のフィードバックから強化学習した対話AI
ChatGPT 人間のフィードバックから強化学習した対話AIChatGPT 人間のフィードバックから強化学習した対話AI
ChatGPT 人間のフィードバックから強化学習した対話AIShota Imai
 
文字認識はCNNで終わるのか?
文字認識はCNNで終わるのか?文字認識はCNNで終わるのか?
文字認識はCNNで終わるのか?Seiichi Uchida
 
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜SSII
 

Tendances (20)

近年のHierarchical Vision Transformer
近年のHierarchical Vision Transformer近年のHierarchical Vision Transformer
近年のHierarchical Vision Transformer
 
機械学習応用のためのソフトウェアエンジニアリングパターン
機械学習応用のためのソフトウェアエンジニアリングパターン機械学習応用のためのソフトウェアエンジニアリングパターン
機械学習応用のためのソフトウェアエンジニアリングパターン
 
[DL輪読会]End-to-End Object Detection with Transformers
[DL輪読会]End-to-End Object Detection with Transformers[DL輪読会]End-to-End Object Detection with Transformers
[DL輪読会]End-to-End Object Detection with Transformers
 
失敗から学ぶ機械学習応用
失敗から学ぶ機械学習応用失敗から学ぶ機械学習応用
失敗から学ぶ機械学習応用
 
画像処理AIを用いた異常検知
画像処理AIを用いた異常検知画像処理AIを用いた異常検知
画像処理AIを用いた異常検知
 
機械学習モデルの判断根拠の説明(Ver.2)
機械学習モデルの判断根拠の説明(Ver.2)機械学習モデルの判断根拠の説明(Ver.2)
機械学習モデルの判断根拠の説明(Ver.2)
 
XAI (説明可能なAI) の必要性
XAI (説明可能なAI) の必要性XAI (説明可能なAI) の必要性
XAI (説明可能なAI) の必要性
 
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
 
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
 
【メタサーベイ】Vision and Language のトップ研究室/研究者
【メタサーベイ】Vision and Language のトップ研究室/研究者【メタサーベイ】Vision and Language のトップ研究室/研究者
【メタサーベイ】Vision and Language のトップ研究室/研究者
 
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
 
(文献紹介)Depth Completionの最新動向
(文献紹介)Depth Completionの最新動向(文献紹介)Depth Completionの最新動向
(文献紹介)Depth Completionの最新動向
 
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
 
Challenges for machine learning systems toward continuous improvement
Challenges for machine learning systems toward continuous improvementChallenges for machine learning systems toward continuous improvement
Challenges for machine learning systems toward continuous improvement
 
深層学習の数理
深層学習の数理深層学習の数理
深層学習の数理
 
機械学習で嘘をつく話
機械学習で嘘をつく話機械学習で嘘をつく話
機械学習で嘘をつく話
 
機械学習応用システムの安全性の研究動向と今後の展望
機械学習応用システムの安全性の研究動向と今後の展望機械学習応用システムの安全性の研究動向と今後の展望
機械学習応用システムの安全性の研究動向と今後の展望
 
ChatGPT 人間のフィードバックから強化学習した対話AI
ChatGPT 人間のフィードバックから強化学習した対話AIChatGPT 人間のフィードバックから強化学習した対話AI
ChatGPT 人間のフィードバックから強化学習した対話AI
 
文字認識はCNNで終わるのか?
文字認識はCNNで終わるのか?文字認識はCNNで終わるのか?
文字認識はCNNで終わるのか?
 
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
 

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

機械学習応用アーキテクチャ・デザインパターン概観
機械学習応用アーキテクチャ・デザインパターン概観機械学習応用アーキテクチャ・デザインパターン概観
機械学習応用アーキテクチャ・デザインパターン概観Hironori Washizaki
 
機械学習応用システムのアーキテクチャ・デザイパターン(2020-07 ドラフトバージョン))
機械学習応用システムのアーキテクチャ・デザイパターン(2020-07 ドラフトバージョン))機械学習応用システムのアーキテクチャ・デザイパターン(2020-07 ドラフトバージョン))
機械学習応用システムのアーキテクチャ・デザイパターン(2020-07 ドラフトバージョン))HironoriTAKEUCHI1
 
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けてHironori Washizaki
 
機械学習 - MNIST の次のステップ
機械学習 - MNIST の次のステップ機械学習 - MNIST の次のステップ
機械学習 - MNIST の次のステップDaiyu Hatakeyama
 
機械学習デザインパターンおよび機械学習システムの品質保証の取り組み
機械学習デザインパターンおよび機械学習システムの品質保証の取り組み機械学習デザインパターンおよび機械学習システムの品質保証の取り組み
機械学習デザインパターンおよび機械学習システムの品質保証の取り組みHironori Washizaki
 
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
 
(修正)機械学習デザインパターン(ML Design Patterns)の解説
(修正)機械学習デザインパターン(ML Design Patterns)の解説(修正)機械学習デザインパターン(ML Design Patterns)の解説
(修正)機械学習デザインパターン(ML Design Patterns)の解説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
 

Similaire à 機械学習システムの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夏合宿
 
(修正)機械学習デザインパターン(ML Design Patterns)の解説
(修正)機械学習デザインパターン(ML Design Patterns)の解説(修正)機械学習デザインパターン(ML Design Patterns)の解説
(修正)機械学習デザインパターン(ML Design Patterns)の解説
 
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
 
機械学習デザインパターンの必要性と機械学習ライフサイクル
機械学習デザインパターンの必要性と機械学習ライフサイクル機械学習デザインパターンの必要性と機械学習ライフサイクル
機械学習デザインパターンの必要性と機械学習ライフサイクル
 
基本から学ぶ ビッグデータ / データ分析 / 機械学習 サービス群
基本から学ぶ ビッグデータ / データ分析 / 機械学習 サービス群基本から学ぶ ビッグデータ / データ分析 / 機械学習 サービス群
基本から学ぶ ビッグデータ / データ分析 / 機械学習 サービス群
 

Plus de 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
 

Plus de 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