SlideShare ist ein Scribd-Unternehmen logo
1 von 27
機械学習応用のためのソフトウェアエンジニアリングパターン
(SE Patterns for ML)の概要ほか
竹内広宜(武蔵大学, eAI* プロセスパターンチーム)
1
スマートエスイーセミナー:機械学習デザインパターン
*JST未来社会 未来社会創造事業 機械学習を用いたシステムの高品質化・実用化を加速する”Engineerable AI”(eAI)
本講演の内容
 目的、パターンとは
 ML応用システムのためのソフトウェアエンジニアリングパターンの概要
 パターンの構造化
2
目的
 目的
機械学習技術を用いたシステムの開発(MLプロジェクト)を効果的に行いたい
 これまでのプロジェクト実践で得られたノウハウの収集
 繰り返し利用可能な知識の整備
 様々なプロジェクト関係者の間で共通理解可能なMLプロジェクトに関する知識の構築
3
ML応用システムのためのソフトウェアエンジニアリングパターン
ML応用システムのためのソフトウェアエンジニアリングパターン
 ソフトウェアパターン:典型的な設計をまとめたもの
どういう時に
こうしたければ・こういうことを考慮して
こうしなさい
そうすれば、こうなる
4
Intent パターンで達成したいこと
Problem 改善したい状態についての現状
Solution パターンでの実施内容
Context パターンを適用する開発フェーズや、開発するMLアプリケーションの利用環境
Discussion パターンを適用する際の前提条件や制約を書く
パターン作成のための情報収集と整理の流れ
 Engineering Village および Google検索エンジンを用いて文献を収集
学術論文
灰色文献
 第一段階で35件を抽出
 eAIチームでML応用システムのアーキテクチャ・デザインパターンとして15件に絞り込み、整理
5
本講演の内容
 目的、パターンとは
 ML応用システムのためのソフトウェアエンジニアリングパターンの概要
 パターンの構造化
6
eAIプロセスパターンチームで整理したパターンの一覧
7
番号 パターン名
01 a04 Separation of Concerns and Modularization of ML Components
02 g02a Data Flows up, Model Flow down (Federated Learning)
03 g02b Secure Aggregation
04 g10 Deployable Canary Model
05 g15b Microservice Architecture
06 g16 Data Lake
07 g17 Kappa Architecture
08 g18 Lambda Architecture
09 s02f Discard PoC code
10 s02h Parameter-Server Abstraction
11 s03a Isolate Data Workload and Training Workload to Different Machines
12 s03b ML Versioning
13 s05 Encapsulate ML models within rule-base safeguards
14 s10a Distinguish Business Logic from ML Models
15 s10b ML Gateway Routing Architecture
パターンの説明資料
 詳細はSlideShareの資料をご覧ください
8
https://www.slideshare.net/HironoriTAKEUCHI1/202007-236844365
各パターンの説明資料を公開しています。
パターンの全体像
9
Separation of Concerns and
Modularization of ML Components
Data Flows up, Model
Flow down (Federated
Learning)
Secure Aggregation
Deployable
Canary
Model
Microservice Architecture
Data Lake
Kappa Architecture
Discard PoC code
Parameter-Server
Abstraction
Isolate Data Workload and Training
Workload to Different Machines
ML Versioning Encapsulate ML models
within rule-base
safeguards
Distinguish Business
Logic from ML Models
ML Gateway Routing
Architecture
ビジネスロジックとの分離関係 Web・マイクロサービス関係
分散・エッジ関係
Lambda Architecture
保守性関係
ビッグデータ・ストリーム基盤関係
説明性・安全性関係
概要説明の中で紹介
パターンの構造化の中で紹介
Microservice Architecture
 複雑なアプリケーション間でのやり取りを無くして、標準的なインターフェースで通信を行う
10
DANIEL SMITH, Exploring Development Patterns in Data Science. https://www.theorylane.com/2017/10/20/some-development-patterns-in-data-science/
Azure Machine Learning とは. https://docs.microsoft.com/ja-jp/azure/machine-learning/overview-what-is-azure-ml
実現例
 Wantedly People
アプリケーションはフロントサーバとのみ通信を行う
フロントサーバでサービスを実装
 画像を整形するサービス
 画像からプロフィールを作成するサービス
など
フロントサーバのサービスは機能に応じてMLサーバとAPI通信
11 https://codezine.jp/article/detail/10533
Isolate Data Workload and Training Workload to
Different Machines
 異なるワークロードを異なるマシンに物理的に分離し柔軟性とスケーラビリティを実現
 ストレージからデータを読み取り凝縮するデータワークロード
 迅速かつ効率的に訓練する訓練ワークロード
 ワークロードの内容や規模、ネットワーク使用量に合わせ圧縮、スケジューリング、データ/計算機配置・構成最適化
12 Kim M. Hazelwood, et al. : Applied Machine Learning at Facebook: A Datacenter Infrastructure Perspective. HPCA 2018: 620-629
実現例
 Facebook ニュースフィードランキングアルゴリズム
様々なユーザーや環境要因に基づきランキングを決定するようにモデルを訓練
Facebookを訪問すると、モデルは何千もの候補の中から表示すべきベストな投稿、画像、その他の
コンテンツのパーソナライズされたセットを生成し、選択されたコンテンツのベストなランキングを決定
13
Facebookのサービスごとのオフライン訓練の計算機環境
Kim M. Hazelwood, et al. : Applied Machine Learning at Facebook: A Datacenter Infrastructure Perspective. HPCA 2018: 620-629
Discard PoC code
① PoCのために作成したコードは破棄し、PoCで得た知見に基づき保守性の高い
コードを再構築する
② 一般的に、PoCのために作成したコードでは、試行錯誤を効率的に実施するた
めの保守性を犠牲にしたコードや、最終的には不要なったコードが含まれることが
多い。
③ このPoCのために作成したコードを、プロダクトコードに組み込むと、プロダクトの品
質を低下させてしまうため、PoCで検証した事実に基づき、全体的に再設計した
ものを、プロダクトコードに組み込む。
14
本講演の内容
 目的、パターンとは
 ML応用システムのためのソフトウェアエンジニアリングパターンの概要
 パターンの構造化
15
Data Flows up, Model Flow down (Federated Learning)
概要
① 共有モデル(訓練済みモデル)をローカルデバイスに配置
② ローカルデバイスで収集された利用データを元に共有モデルを再訓練
③ 各ローカルデバイスから提供された共有モデルからの差分を用いて、共有モデルを改良
16
①
①
②
②
③
再訓練に用いる
利用データ
Data Flows up, Model Flow down (Federated Learning)
17
Intent 入力に対して予測を行う応答速度を上げると同時に、個別 の利用結果を
用いて予測の精度を改善する。一方、利用者のプライバシーデータを保護する。
Problem 機械学習システムではモデルがサーバーにあると、予測に時間がかかるという課
題がある。また、利用者の入力に独自の傾向がある場合には、予測精度が下
がるという課題がある。さらに、予測精度向上のために利用者の入力ログを収
集する場合には、データのプライバシーを考慮する必要がある。
Solution ① ローカルデバイスで予測モデルを動かす
② ローカルデバイスで個別に予測モデルを訓練する
③ ローカルデバイス内のデータを他と共有せずに、予測モデルを再訓練する
Context 個人利用のデバイス(スマートフォン)で動くアプリケーションの全体設計や予測
モデルの運用の際に適用する
Discussion • ローカルデバイスに十分な計算資源があること
• 個別の利用状況に応じた再訓練により悪影響がでないこと
• 予測モデル同士の統合ができること
①
①
②
②
③
再訓練に⽤いる
利⽤データ
パターンの記述内容
操作性の向上
セキュリティ・プライ
バシーの向上
応答速度をあげる
利用者データの保護
パターンの構造化
 ML応用システムのソフトウェアエンジニアリングパターン
複数の課題を解決したものが存在
Problem, Intentなどに複数の事柄が記載
要素間の関連が不明確になる
ビジネスと技術の双方から適用するパターンについて理解したい
18
ビジネス/技術の双方の観点で企業システムを表現するEAモデリングを用いて、
ML応用システムのソフトウェアエンジニアリングパターンを表現
• パターンの構成要素間の関係を明確化できる
• 図式化によりパターンを過不足なく記載することができる
が期待される
Enterprise Architectureによるモデル化
 エンタープライズアーキテクチャ(EA):企業の
活動をモデル化する手法
 ArchiMate: EAの代表的な記述言語
• ビジネス層 ①
• アプリケーション層 ②
• テクノロジー層
• 動機拡張(ミッション、ビジネスゴール) ③
19
ArchiMateで表現したビジネスアプリケーション
①
②
③
EAによるモデル化の例
20
 MLサービスシステム(ML応用システム)とその構成要素
訓練(学習)データの作成 訓練 ランタイム(予測)
パターンの適用動機・目的・内容などもEAでモデル化できないか?
EAによるパターンの構造化
 パターンの構成要素を図式要素と対応づけ、パターンをEAで図式化する
21
パターンの概念
Intent
Context
Problem
Solution
Discussion
ArchiMateの図式要素
Goal
Driver
Assessment
Outcome
Principal
Constraint
Business Process
Application Service
Actor
Device
類似の研究アプローチ:ビジネスモデルやイノベーションモデルの図式化
• ビジネスモデルキャンバスの図式化 Meertens et al. 2012
• ジョブ理論の図式化 Yamamoto et al. 2018
パターン構成要素の細分化と対応づけ
 パターンの構成要素を細分化し、ArchiMateの要素との対応づけをとる
22
パターンの要素 細分化した要素 ArchiMateの要素
Intent パターンの適用で達成したいこと Outcome
Problem 改善したい状態 Driver
改善したい状態についての分析結果 Assessment
改善によって解決されること Goal
Solution 実施すること Principle
Context パターンを使うフェーズ Business process
システムが動くデバイス Device
システムの利用者 Actor
Discussion パターンを適用する上での制約や条件 Constraint
パターンの
要素
記載する内容
Intent パターンで達成したいこと
Problem 改善したい状態についての現状
Solution パターンでの実施内容
Context パターンを適用する開発フェーズ
や、開発するMLアプリケーションの
利用環境
Discussion パターンを適用する際の前提条
件や制約を書く
ArchiMateを用いたパターンの表現
 細分化した構成要素とそれらの関係
23
Encapsulate ML models within rule-base safeguards
 決定的で検証可能な規則を用いてカプセル化し、機械学習モデルの不確実性に対処する
更なる情報源から得られるのデータを活用
不確実性を考慮した振る舞いの適合など
 例:機械学習による信号機画像認識を用いた交差点横断
GPSデータを追加の情報源として用いる
車両や道路の原則の利用
24
提案手法に基づき作成したパターンの構成要素
25
パターンの要素 細分化した要素 ArchiMateの要素 Encapsulate ML models within rule-base safeguardsパターンの記述を分解した結果
Intent パターンの適用で達成したいこと Outcome 安全性に関わる機能上の機械学習モデルの扱いにあたり不確実性や複雑さに対応する
Problem 改善したい状態 Driver 安全性
改善したい状態についての分析
結果
Assessment • 機械学習モデルは複雑かつ帰納的な性質を持ち正しさの保証がしばしば困難であるため、安
全性に関わる機能をMLへ直接には依存させにくい
• 機械学習モデルは不安定であり敵対的攻撃やデータのノイズ、ドリフトに対し脆弱
改善によって解決されること Goal 安全上のリスク低減
Solution 実施すること Principle 決定的で検証可能なルールベースの仕組みの中で機械学習モデルをカプセル化する
Context パターンを使うフェーズ Business
process
• 機械学習モデルを含むシステム全体およびソフトウェアの設計
• 機械学習モデルの配備、運用、モニタリング
システムが動くデバイス Device 安全性に関わるシステムが動くデバイス
システムの利用者 Actor 安全性に関わるシステムの利用者
Discussion パターン適用での制約や条件 Constraint NA
図式化の結果
 ArchiMateで図式化したEncapsulate ML models within rule-base safeguardsパターン
26
本パターンを適用するにあたっての動機
本パターンの目的
本パターンの実施内容
本パターンの適用する場所
本パターンの適用するシステム
まとめ
 ML応用システムのためのソフトウェアエンジニアリングパターンの概要を説明
eAIプロジェクトで整理した15のパターン
パターンの構造化手法
 パターンの構造化によって、パターン間の関連性などを概観できるようになると期待
同じような現状に対して適用できるパターンは何か?
ある品質特性に注目した際、留意すべきことは何か?
などなど
パターンが多くなった際に、効果的な活用が期待される
27

Weitere ähnliche Inhalte

Was ist angesagt?

グラフィカルモデル入門
グラフィカルモデル入門グラフィカルモデル入門
グラフィカルモデル入門
Kawamoto_Kazuhiko
 

Was ist angesagt? (20)

グラフィカルモデル入門
グラフィカルモデル入門グラフィカルモデル入門
グラフィカルモデル入門
 
ブレインパッドにおける機械学習プロジェクトの進め方
ブレインパッドにおける機械学習プロジェクトの進め方ブレインパッドにおける機械学習プロジェクトの進め方
ブレインパッドにおける機械学習プロジェクトの進め方
 
猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder
 
機械学習システムの33のアーキテクチャパターンおよびデザインパターン
機械学習システムの33のアーキテクチャパターンおよびデザインパターン機械学習システムの33のアーキテクチャパターンおよびデザインパターン
機械学習システムの33のアーキテクチャパターンおよびデザインパターン
 
Bayesian Neural Networks : Survey
Bayesian Neural Networks : SurveyBayesian Neural Networks : Survey
Bayesian Neural Networks : Survey
 
【DL輪読会】Code as Policies: Language Model Programs for Embodied Control
【DL輪読会】Code as Policies: Language Model Programs for Embodied Control【DL輪読会】Code as Policies: Language Model Programs for Embodied Control
【DL輪読会】Code as Policies: Language Model Programs for Embodied Control
 
ConvNetの歴史とResNet亜種、ベストプラクティス
ConvNetの歴史とResNet亜種、ベストプラクティスConvNetの歴史とResNet亜種、ベストプラクティス
ConvNetの歴史とResNet亜種、ベストプラクティス
 
【DL輪読会】マルチモーダル 基盤モデル
【DL輪読会】マルチモーダル 基盤モデル【DL輪読会】マルチモーダル 基盤モデル
【DL輪読会】マルチモーダル 基盤モデル
 
コンピュータビジョンの観点から見たAIの公平性
コンピュータビジョンの観点から見たAIの公平性コンピュータビジョンの観点から見たAIの公平性
コンピュータビジョンの観点から見たAIの公平性
 
Deeplearning輪読会
Deeplearning輪読会Deeplearning輪読会
Deeplearning輪読会
 
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
 
三次元点群を取り扱うニューラルネットワークのサーベイ
三次元点群を取り扱うニューラルネットワークのサーベイ三次元点群を取り扱うニューラルネットワークのサーベイ
三次元点群を取り扱うニューラルネットワークのサーベイ
 
[DL輪読会]GLIDE: Guided Language to Image Diffusion for Generation and Editing
[DL輪読会]GLIDE: Guided Language to Image Diffusion  for Generation and Editing[DL輪読会]GLIDE: Guided Language to Image Diffusion  for Generation and Editing
[DL輪読会]GLIDE: Guided Language to Image Diffusion for Generation and Editing
 
【論文調査】XAI技術の効能を ユーザ実験で評価する研究
【論文調査】XAI技術の効能を ユーザ実験で評価する研究【論文調査】XAI技術の効能を ユーザ実験で評価する研究
【論文調査】XAI技術の効能を ユーザ実験で評価する研究
 
強化学習エージェントの内発的動機付けによる探索とその応用(第4回 統計・機械学習若手シンポジウム 招待公演)
強化学習エージェントの内発的動機付けによる探索とその応用(第4回 統計・機械学習若手シンポジウム 招待公演)強化学習エージェントの内発的動機付けによる探索とその応用(第4回 統計・機械学習若手シンポジウム 招待公演)
強化学習エージェントの内発的動機付けによる探索とその応用(第4回 統計・機械学習若手シンポジウム 招待公演)
 
BlackBox モデルの説明性・解釈性技術の実装
BlackBox モデルの説明性・解釈性技術の実装BlackBox モデルの説明性・解釈性技術の実装
BlackBox モデルの説明性・解釈性技術の実装
 
FastAPIを使って 機械学習モデルをapi化してみた
FastAPIを使って 機械学習モデルをapi化してみたFastAPIを使って 機械学習モデルをapi化してみた
FastAPIを使って 機械学習モデルをapi化してみた
 
自己教師学習(Self-Supervised Learning)
自己教師学習(Self-Supervised Learning)自己教師学習(Self-Supervised Learning)
自己教師学習(Self-Supervised Learning)
 
先駆者に学ぶ MLOpsの実際
先駆者に学ぶ MLOpsの実際先駆者に学ぶ MLOpsの実際
先駆者に学ぶ MLOpsの実際
 
【DL輪読会】ViT + Self Supervised Learningまとめ
【DL輪読会】ViT + Self Supervised Learningまとめ【DL輪読会】ViT + Self Supervised Learningまとめ
【DL輪読会】ViT + Self Supervised Learningまとめ
 

Ähnlich wie 機械学習応用のためのソフトウェアエンジニアリングパターン

Ähnlich wie 機械学習応用のためのソフトウェアエンジニアリングパターン (20)

機械学習応用アーキテクチャ・デザインパターン概観
機械学習応用アーキテクチャ・デザインパターン概観機械学習応用アーキテクチャ・デザインパターン概観
機械学習応用アーキテクチャ・デザインパターン概観
 
機械学習デザインパターンおよび機械学習システムの品質保証の取り組み
機械学習デザインパターンおよび機械学習システムの品質保証の取り組み機械学習デザインパターンおよび機械学習システムの品質保証の取り組み
機械学習デザインパターンおよび機械学習システムの品質保証の取り組み
 
機械学習応用システムのアーキテクチャ・デザイパターン(2020-07 ドラフトバージョン))
機械学習応用システムのアーキテクチャ・デザイパターン(2020-07 ドラフトバージョン))機械学習応用システムのアーキテクチャ・デザイパターン(2020-07 ドラフトバージョン))
機械学習応用システムのアーキテクチャ・デザイパターン(2020-07 ドラフトバージョン))
 
AIビジネスクリエーションワークショップ@東京
AIビジネスクリエーションワークショップ@東京AIビジネスクリエーションワークショップ@東京
AIビジネスクリエーションワークショップ@東京
 
機械学習モデルのサービングとは?
機械学習モデルのサービングとは?機械学習モデルのサービングとは?
機械学習モデルのサービングとは?
 
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
 
エンタープライズと機械学習技術
エンタープライズと機械学習技術エンタープライズと機械学習技術
エンタープライズと機械学習技術
 
Azure machine learning service 最新の機械学習プラットフォーム
Azure machine learning service 最新の機械学習プラットフォームAzure machine learning service 最新の機械学習プラットフォーム
Azure machine learning service 最新の機械学習プラットフォーム
 
SSII2022 [OS3-03] スケーラブルなロボット学習システムに向けて
SSII2022 [OS3-03] スケーラブルなロボット学習システムに向けてSSII2022 [OS3-03] スケーラブルなロボット学習システムに向けて
SSII2022 [OS3-03] スケーラブルなロボット学習システムに向けて
 
組込みSW開発技術研究会キックオフミーティング
組込みSW開発技術研究会キックオフミーティング組込みSW開発技術研究会キックオフミーティング
組込みSW開発技術研究会キックオフミーティング
 
Azure Machine Learning アップデートセミナー 20191127
Azure Machine Learning アップデートセミナー 20191127Azure Machine Learning アップデートセミナー 20191127
Azure Machine Learning アップデートセミナー 20191127
 
開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析
開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析
開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析
 
20190807_Aidemy Azure AI ご紹介
20190807_Aidemy Azure AI ご紹介20190807_Aidemy Azure AI ご紹介
20190807_Aidemy Azure AI ご紹介
 
プログラミング未経験者を対象としたインタラクティブシステムの演習授業の開発
プログラミング未経験者を対象としたインタラクティブシステムの演習授業の開発プログラミング未経験者を対象としたインタラクティブシステムの演習授業の開発
プログラミング未経験者を対象としたインタラクティブシステムの演習授業の開発
 
AIシステムの要求とプロジェクトマネジメント-前半:機械学習工学概論
AIシステムの要求とプロジェクトマネジメント-前半:機械学習工学概論AIシステムの要求とプロジェクトマネジメント-前半:機械学習工学概論
AIシステムの要求とプロジェクトマネジメント-前半:機械学習工学概論
 
機械学習アーキテクチャ・デザインパターン
機械学習アーキテクチャ・デザインパターン機械学習アーキテクチャ・デザインパターン
機械学習アーキテクチャ・デザインパターン
 
開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析
開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析
開発者のための機械学習入門:Azure Machine Learning Studioで構造化データから予測分析
 
Part 3: サーバーレスとシステム間連携基盤 (製造リファレンス・アーキテクチャ勉強会)
Part 3: サーバーレスとシステム間連携基盤 (製造リファレンス・アーキテクチャ勉強会)Part 3: サーバーレスとシステム間連携基盤 (製造リファレンス・アーキテクチャ勉強会)
Part 3: サーバーレスとシステム間連携基盤 (製造リファレンス・アーキテクチャ勉強会)
 
機械学習工学と機械学習応用システムの開発@SmartSEセミナー(2021/3/30)
機械学習工学と機械学習応用システムの開発@SmartSEセミナー(2021/3/30)機械学習工学と機械学習応用システムの開発@SmartSEセミナー(2021/3/30)
機械学習工学と機械学習応用システムの開発@SmartSEセミナー(2021/3/30)
 
Azure Machine Learning Build 2020
Azure Machine Learning Build 2020Azure Machine Learning Build 2020
Azure Machine Learning Build 2020
 

機械学習応用のためのソフトウェアエンジニアリングパターン