SlideShare a Scribd company logo
1 of 31
Download to read offline
MLOpsのはじめ方
2021/04/15
shibui yusuke
自己紹介
shibui yusuke
● 自動運転スタートアップのティアフォー所属
● MLOpsエンジニア &
インフラエンジニア &
データエンジニア
● もともとクラウド基盤の開発、運用。
● ここ5年くらいMLOpsで仕事。
● Github: @shibuiwilliam
● Qiita: @cvusk
● FB: yusuke.shibui
● 最近やってること: FlutterとIstio
cat : 0.55
dog: 0.45
human : 0.70
gorilla : 0.30
物体検知
CatOps!
放置しているとネコに
椅子を奪われる。
ネコ障害対応(餌、遊ぶ)。
「遊ぶ」を自動化する。
椅子に座っていても
ハンズフリーで遊べる。
day
奪
わ
れ
回
数
ハンズフリー導入
飽き始める
Dev
Data-driven
3
Ops
今日話すこと
1. これまでの機械学習プロジェクトの経験(
5年くらい)から、発生する課題と打開策を説明
2. 機械学習にDevOpsの方法論を応用してプロダクトにインパクトを与える方針を解説
今日話さないこと
1. 機械学習のアルゴリズム、開発方法、基盤の作り方、ライブラリの使い方
なぜ機械学習にDevOpsが必要か
● 機械学習の有用性を試す
PoCから次の段階に行くためには機械学習の
DevOpsが必要
● 機械学習を含むプロダクトの価値を継続的に引き出すのが
MLOps
0->1の次を目指す
PoCの数々
ようやく成功した
プロダクト
成長するには
なにが足りない?
→ビジネス指標から機械学習を評価する
→機械学習だけにフォーカスしない
最近の機械学習界隈の状況
● モデル開発から利用へ
データ収集 学習 デプロイ 利用
機械学習を使ったプロダクト例
画像処理
写真を撮る
タイトル入力
説明入力
登録する
自然言語処理
違反検知
登録情報から違反を
フィルタリング
入力情報から
入力補助
超解像による
画質改善
ねこ
検索 協調フィルタリングや
ランク学習による
並べ替え
あるコンテンツ登録アプリ
画像分類と
検索
機械学習を使ったプロダクトの評価例
画像処理
写真を撮る
タイトル入力
説明入力
登録する
自然言語処理
違反検知
登録情報から違反を
フィルタリング
入力情報から
入力補助
超解像による
画質改善
ねこ
検索 協調フィルタリングや
ランク学習による
並べ替え
あるコンテンツ登録アプリ
画像分類と
検索
Accuracy, Precision,
Recall
→間違って表示される
違反コンテンツと、
非表示にされる
正常コンテンツの比率
Precision, Recall, nDCG
→検索数、CTR、
コンバージョン率、
レスポンスタイム、 etc
MSE, MAE
→コンテンツの滞在時間、
CTR、いいね数、 etc
機械学習と仕組みと事業のライフサイクル
コンバージョン
コンバージョン率
クリック数
クリック率
表示回数
検索数
レイテンシー
協調フィルタリング
ランク学習等
リアルタイム
初期:数ヶ月
更新:数日〜
初期:数ヶ月
更新:数週間〜
データ 実行
システム
課題
機械学習で解決する課題と発生する課題
● 解決する課題:データに基いた自動化により、人間の一部の作業を代替する
○ 適切な検索結果や商品を上方に表示する、違反行為を検知する、等々
● 発生する課題:機械学習でプロダクトにインパクトを与えるためのワークフローとシステム
○ 機械学習のためのCI/CD、A/Bテスト、フィードバックループ
データ収集 前処理 評価
利用
学習
ビルド
フィードバック
デプロイ
A/Bテスト
ロギング
プロダクトを改善できない
● 推論システムをリリースしても推論結果を評価してモデルを改善していないケースは多い
データ収集 学習 デプロイ 利用
ワークフローを作れない
● タスク間を繋げる仕組みや文化を作ることができず、個々のプログラムが非連続に存在する
データ収集 前処理 評価
利用
学習
ビルド
フィードバック
デプロイ
A/Bテスト
ロギング
組織的な壁
● 機械学習は機械学習だけではない 
→ 関係チームも多い
https://papers.nips.cc/paper/2015/file/86df7dcfd896fcaf2674f757a2463eba-Paper.pdf
組織的な壁(諸説あり)
infrastructure
engineer, SRE
PM
???
ML engineer,
data scientist
backend
engineer
data engineer
test engineer,
QA engineer
MLOpsのはじめ方
Good
● プロダクトの課題からはじめる
● 評価からはじめる
● リリースからはじめる
Bad
● 機械学習からはじめる
● 汎用基盤からはじめる
● 技術的な課題からはじめる
Issueからはじめる
モデルをリリースして効果を記録する
協調フィルタリング
ランク学習等
time
metrics
導入
コンバージョン
コンバージョン率
クリック数
クリック率
表示回数
検索数
レイテンシー
アンチパターン:アサインはリリースまで
データ収集 前処理 評価
利用
学習
ビルド
フィードバック
デプロイ
A/Bテスト
ロギング
PM
ML engineer
Backend engineer
? engineer リリース!
機械学習の価値を評価する
time
metrics 導入
上がっている場合:
1. 維持、改善
2. 新たな施策の導入
下がっている場合:
1. 別モデルの開発
2. 停止判断
コンバージョン
検索数
before
ML
latency
after
ML
before
ML
CTR
after
ML
新
モデル改善
リソース
増強
複数のモデルをリリースする
time
metrics 導入
導入
現
新
コンバージョン
検索数
before
ML
latency
after
ML
before
ML
CTR
after
ML
latencyを
改善する
モデル
アンチパターン:リリース基準がない
新
機械学習の基準
システムの基準
セキュリティの基準
Precision
MAE
nDCG
Accuracy
F-score
RMSE
ログ
監視
テスト網羅率
負荷
遅延
コストの基準
・・・
切り戻す基準
複数のモデルを比較する
time
metrics 導入
導入
- このリスクを回避したい
- 長期的に比較したい
現
コンバージョン
検索数
新
カナリアリリースとA/Bテストを実施する
現
現:90%アクセス
新:10%アクセス
90%
10%
group
A
CTR
新
group
B
素早くモデルを増やす
現
現:50%アクセス
新:45%アクセス
v2:5%アクセス
50%
45%
v1
v2
v3
モデル開発の
技術的負債を
解消する
新
5%
アンチパターン:機械学習だけ更新する
ねこ
v1
v2
v3
・・・
汎用的に使えるモデル
動物の検索に有効
20代ユーザに有効
同じUI/UX
効果ある?
スケールさせるために基盤と自動化する
まとめ
まとめ
● 機械学習の価値を測るためには貢献しようとしているビジネス価値の数値化が必要。
● プロダクトの評価から機械学習を改善する。その逆ではない。
● 機械学習が価値を出しているからこそ研究開発や基盤が必要。その逆ではない。
出版します!
● AIエンジニアのための
機械学習システムデザインパターン
● 2021年5月17日出版
● https://www.amazon.co.jp/dp/4798169447/

More Related Content

What's hot

Testing machine learning development
Testing machine learning developmentTesting machine learning development
Testing machine learning developmentyusuke shibui
 
Twillio deadshot made me happy
Twillio deadshot made me happyTwillio deadshot made me happy
Twillio deadshot made me happyyusuke shibui
 
TFLite_and_PyTorch_Mobile
TFLite_and_PyTorch_MobileTFLite_and_PyTorch_Mobile
TFLite_and_PyTorch_Mobileyusuke shibui
 
ML system design_pattern
ML system design_patternML system design_pattern
ML system design_patternyusuke shibui
 
Machine learning and_system_design
Machine learning and_system_designMachine learning and_system_design
Machine learning and_system_designyusuke shibui
 
Mercari Image search 1st Anniversary
Mercari Image search 1st AnniversaryMercari Image search 1st Anniversary
Mercari Image search 1st Anniversaryyusuke shibui
 
Machine learning microservice_management
Machine learning microservice_managementMachine learning microservice_management
Machine learning microservice_managementyusuke shibui
 
210526 Power Automate Desktop Python
210526 Power Automate Desktop Python210526 Power Automate Desktop Python
210526 Power Automate Desktop PythonTakuya Nishimoto
 
Herokuの課金から逃れるための安い鯖探し
Herokuの課金から逃れるための安い鯖探しHerokuの課金から逃れるための安い鯖探し
Herokuの課金から逃れるための安い鯖探しgecko655
 
Devとopsをつなぐpuppet
DevとopsをつなぐpuppetDevとopsをつなぐpuppet
Devとopsをつなぐpuppetyuzorock
 
Herokuの新料金について
Herokuの新料金についてHerokuの新料金について
Herokuの新料金についてgecko655
 
Jupyterで手順再現!Elasticsearch構築・運用を実行可能ドキュメントで機械化してみた
Jupyterで手順再現!Elasticsearch構築・運用を実行可能ドキュメントで機械化してみたJupyterで手順再現!Elasticsearch構築・運用を実行可能ドキュメントで機械化してみた
Jupyterで手順再現!Elasticsearch構築・運用を実行可能ドキュメントで機械化してみたSatoshi Yazawa
 
Pythonで機械学習を自動化 auto sklearn
Pythonで機械学習を自動化 auto sklearnPythonで機械学習を自動化 auto sklearn
Pythonで機械学習を自動化 auto sklearnYukino Ikegami
 
興味から遠い論文を”あえて”レコメンドするSlack Botを作成してみる
興味から遠い論文を”あえて”レコメンドするSlack Botを作成してみる興味から遠い論文を”あえて”レコメンドするSlack Botを作成してみる
興味から遠い論文を”あえて”レコメンドするSlack Botを作成してみるKatsuya Ishiyama
 
Jupyter Notebookを納品した話
Jupyter Notebookを納品した話Jupyter Notebookを納品した話
Jupyter Notebookを納品した話Hiroki Yamamoto
 
S10 t1 spc_by_nowfromnow
S10 t1 spc_by_nowfromnowS10 t1 spc_by_nowfromnow
S10 t1 spc_by_nowfromnowTakeshi Akutsu
 
PyData入門(超初心者編)~野球のデータをカジュアルに可視化
PyData入門(超初心者編)~野球のデータをカジュアルに可視化PyData入門(超初心者編)~野球のデータをカジュアルに可視化
PyData入門(超初心者編)~野球のデータをカジュアルに可視化Shinichi Nakagawa
 

What's hot (20)

Testing machine learning development
Testing machine learning developmentTesting machine learning development
Testing machine learning development
 
Twillio deadshot made me happy
Twillio deadshot made me happyTwillio deadshot made me happy
Twillio deadshot made me happy
 
TFLite_and_PyTorch_Mobile
TFLite_and_PyTorch_MobileTFLite_and_PyTorch_Mobile
TFLite_and_PyTorch_Mobile
 
ML system design_pattern
ML system design_patternML system design_pattern
ML system design_pattern
 
Machine learning and_system_design
Machine learning and_system_designMachine learning and_system_design
Machine learning and_system_design
 
Mercari Image search 1st Anniversary
Mercari Image search 1st AnniversaryMercari Image search 1st Anniversary
Mercari Image search 1st Anniversary
 
Machine learning microservice_management
Machine learning microservice_managementMachine learning microservice_management
Machine learning microservice_management
 
210526 Power Automate Desktop Python
210526 Power Automate Desktop Python210526 Power Automate Desktop Python
210526 Power Automate Desktop Python
 
Herokuの課金から逃れるための安い鯖探し
Herokuの課金から逃れるための安い鯖探しHerokuの課金から逃れるための安い鯖探し
Herokuの課金から逃れるための安い鯖探し
 
Devとopsをつなぐpuppet
DevとopsをつなぐpuppetDevとopsをつなぐpuppet
Devとopsをつなぐpuppet
 
S08 t0 orientation
S08 t0 orientationS08 t0 orientation
S08 t0 orientation
 
Herokuの新料金について
Herokuの新料金についてHerokuの新料金について
Herokuの新料金について
 
Jupyterで手順再現!Elasticsearch構築・運用を実行可能ドキュメントで機械化してみた
Jupyterで手順再現!Elasticsearch構築・運用を実行可能ドキュメントで機械化してみたJupyterで手順再現!Elasticsearch構築・運用を実行可能ドキュメントで機械化してみた
Jupyterで手順再現!Elasticsearch構築・運用を実行可能ドキュメントで機械化してみた
 
Pythonで機械学習を自動化 auto sklearn
Pythonで機械学習を自動化 auto sklearnPythonで機械学習を自動化 auto sklearn
Pythonで機械学習を自動化 auto sklearn
 
興味から遠い論文を”あえて”レコメンドするSlack Botを作成してみる
興味から遠い論文を”あえて”レコメンドするSlack Botを作成してみる興味から遠い論文を”あえて”レコメンドするSlack Botを作成してみる
興味から遠い論文を”あえて”レコメンドするSlack Botを作成してみる
 
Jupyter Notebookを納品した話
Jupyter Notebookを納品した話Jupyter Notebookを納品した話
Jupyter Notebookを納品した話
 
S09 t0 orientation
S09 t0 orientationS09 t0 orientation
S09 t0 orientation
 
S10 t1 spc_by_nowfromnow
S10 t1 spc_by_nowfromnowS10 t1 spc_by_nowfromnow
S10 t1 spc_by_nowfromnow
 
PyData入門(超初心者編)~野球のデータをカジュアルに可視化
PyData入門(超初心者編)~野球のデータをカジュアルに可視化PyData入門(超初心者編)~野球のデータをカジュアルに可視化
PyData入門(超初心者編)~野球のデータをカジュアルに可視化
 
5 sのはなし
5 sのはなし5 sのはなし
5 sのはなし
 

Similar to How to start MLOps

machine_learning_failure_apocalypse.pdf
machine_learning_failure_apocalypse.pdfmachine_learning_failure_apocalypse.pdf
machine_learning_failure_apocalypse.pdfyusuke shibui
 
Generative AIと検索を組み合わせた新たな体験の模索
Generative AIと検索を組み合わせた新たな体験の模索Generative AIと検索を組み合わせた新たな体験の模索
Generative AIと検索を組み合わせた新たな体験の模索yusuke shibui
 
機械学習システム構築実践ガイド
機械学習システム構築実践ガイド機械学習システム構築実践ガイド
機械学習システム構築実践ガイドyusuke shibui
 
Creative as Software Engineering for GenAI LT
Creative as Software Engineering for GenAI LTCreative as Software Engineering for GenAI LT
Creative as Software Engineering for GenAI LTyusuke shibui
 
MLOps failure(1_108)
MLOps failure(1_108)MLOps failure(1_108)
MLOps failure(1_108)yusuke shibui
 
機械学習でテスト実行を効率化するLaunchable.pdf
機械学習でテスト実行を効率化するLaunchable.pdf機械学習でテスト実行を効率化するLaunchable.pdf
機械学習でテスト実行を効率化するLaunchable.pdfyusuke shibui
 
Reviewing_machine_learning_program.pdf
Reviewing_machine_learning_program.pdfReviewing_machine_learning_program.pdf
Reviewing_machine_learning_program.pdfyusuke shibui
 
サイボウズライブでもHubotがしたい!
サイボウズライブでもHubotがしたい!サイボウズライブでもHubotがしたい!
サイボウズライブでもHubotがしたい!NAKAOKU Takahiro
 
Pythonで自動化した話1
Pythonで自動化した話1Pythonで自動化した話1
Pythonで自動化した話1Masato Fujitake
 
スタートアップツールチラ見せ
スタートアップツールチラ見せスタートアップツールチラ見せ
スタートアップツールチラ見せHisatoshi Kikumoto
 
プロ生ちゃんbotを作ろう!
プロ生ちゃんbotを作ろう!プロ生ちゃんbotを作ろう!
プロ生ちゃんbotを作ろう!treby
 
Letsgo developer 2012 Continuous Delivery
Letsgo developer 2012 Continuous DeliveryLetsgo developer 2012 Continuous Delivery
Letsgo developer 2012 Continuous DeliveryNobuhiro Sue
 
DevSummit_2022_summer_MLOps.pdf
DevSummit_2022_summer_MLOps.pdfDevSummit_2022_summer_MLOps.pdf
DevSummit_2022_summer_MLOps.pdfyusuke shibui
 
STM32H745を四足歩行させる話
STM32H745を四足歩行させる話STM32H745を四足歩行させる話
STM32H745を四足歩行させる話MinoruInoue2
 
@nifty エンジニアサポートの使い方
@nifty エンジニアサポートの使い方@nifty エンジニアサポートの使い方
@nifty エンジニアサポートの使い方Yuichi Saotome
 
Tentoってなんだろう
TentoってなんだろうTentoってなんだろう
TentoってなんだろうShinichi Kusano
 
IPython notebookを使おう
IPython notebookを使おうIPython notebookを使おう
IPython notebookを使おうKazufumi Ohkawa
 

Similar to How to start MLOps (19)

machine_learning_failure_apocalypse.pdf
machine_learning_failure_apocalypse.pdfmachine_learning_failure_apocalypse.pdf
machine_learning_failure_apocalypse.pdf
 
Generative AIと検索を組み合わせた新たな体験の模索
Generative AIと検索を組み合わせた新たな体験の模索Generative AIと検索を組み合わせた新たな体験の模索
Generative AIと検索を組み合わせた新たな体験の模索
 
機械学習システム構築実践ガイド
機械学習システム構築実践ガイド機械学習システム構築実践ガイド
機械学習システム構築実践ガイド
 
Creative as Software Engineering for GenAI LT
Creative as Software Engineering for GenAI LTCreative as Software Engineering for GenAI LT
Creative as Software Engineering for GenAI LT
 
MLOps failure(1_108)
MLOps failure(1_108)MLOps failure(1_108)
MLOps failure(1_108)
 
機械学習でテスト実行を効率化するLaunchable.pdf
機械学習でテスト実行を効率化するLaunchable.pdf機械学習でテスト実行を効率化するLaunchable.pdf
機械学習でテスト実行を効率化するLaunchable.pdf
 
Reviewing_machine_learning_program.pdf
Reviewing_machine_learning_program.pdfReviewing_machine_learning_program.pdf
Reviewing_machine_learning_program.pdf
 
サイボウズライブでもHubotがしたい!
サイボウズライブでもHubotがしたい!サイボウズライブでもHubotがしたい!
サイボウズライブでもHubotがしたい!
 
Pythonで自動化した話1
Pythonで自動化した話1Pythonで自動化した話1
Pythonで自動化した話1
 
スタートアップツールチラ見せ
スタートアップツールチラ見せスタートアップツールチラ見せ
スタートアップツールチラ見せ
 
Not free
Not freeNot free
Not free
 
プロ生ちゃんbotを作ろう!
プロ生ちゃんbotを作ろう!プロ生ちゃんbotを作ろう!
プロ生ちゃんbotを作ろう!
 
Letsgo developer 2012 Continuous Delivery
Letsgo developer 2012 Continuous DeliveryLetsgo developer 2012 Continuous Delivery
Letsgo developer 2012 Continuous Delivery
 
DevSummit_2022_summer_MLOps.pdf
DevSummit_2022_summer_MLOps.pdfDevSummit_2022_summer_MLOps.pdf
DevSummit_2022_summer_MLOps.pdf
 
STM32H745を四足歩行させる話
STM32H745を四足歩行させる話STM32H745を四足歩行させる話
STM32H745を四足歩行させる話
 
@nifty エンジニアサポートの使い方
@nifty エンジニアサポートの使い方@nifty エンジニアサポートの使い方
@nifty エンジニアサポートの使い方
 
Tentoってなんだろう
TentoってなんだろうTentoってなんだろう
Tentoってなんだろう
 
IPython notebookを使おう
IPython notebookを使おうIPython notebookを使おう
IPython notebookを使おう
 
Openthology256pub
Openthology256pubOpenthology256pub
Openthology256pub
 

How to start MLOps