More Related Content Similar to ML system design_pattern (20) More from yusuke shibui (20) ML system design_pattern2. 自己紹介
shibui yusuke
● 自動運転スタートアップのティアフォー所属
● 前職メルカリでAIとかKubernetesとか
● 文学部の大学院卒(イギリス史)
● もともとクラウド基盤の開発、運用。
● ここ5年くらいMLOpsで仕事。
● Github: @shibuiwilliam
● Qiita: @cvusk
● FB: yusuke.shibui
● 最近やってること: UnityとFlutterとIstio
cat : 0.55
dog: 0.45
human : 0.70
gorilla : 0.30
物体検知
16. ユーザ価値を改善することでチームを育成する
● 技術利用から課題解決へ
データ 機械学習 課題
ユーザ
システム
機械学習で課題を解決する
機械学習を含めたUI/UXに反応する
データ、機械学習、システムでユーザ体験をレベルアップする
データを使う
サイクルを繰り返しスケールすることで課題解決の速度と質を向上させる
主体的な開発と運用を繰り返すことでチームのレベルアップを実現する
→ DevOps、MLOps
データ
ML
SWE
SRE
PdM
LevelUP
!!
22. WFH with Catパターン
● ネコとともに在宅勤務するパターン。
● 仕事中、食事中、睡眠中、あらゆる状況で
障害が発生する。
● 作業を中断してネコが満足するまで撫でる
必要がある。
● 撫でずに無視すると以下の障害を招く。
○ キーボード歩き。
○ 椅子爪研ぎ。
○ ゴミ箱倒し。
● 多頭飼いでは他ネコも平等に撫でないと
上記の障害を招く。
→安定稼働しているシステムでも不意に
アラートが発生する。
→ひとつ対策を立ててもまた別の課題が生じる。
32. モデルリリースの課題
インフラ、OS
ライブラリ
モデル
入力 前処理 推論 出力
データ取得
前処理
学習
評価
ビルド
インフラ、OS
ライブラリ
学習環境のみ
- Jupyter Notebook
- バッチ学習用のライブラリ
(例:PyTorch、TensorFlow、Keras)
- バッチ学習用のインフラ(
GPUとか)
- データ・モデルバージョニングツール
- モデルビルダー
両環境に共通
- モデルファイル
- 前処理で使うライブラリ
(例:Sklearn、PIL、Mecab)
- 入出力のデータ型と形
推論環境のみ
- 推論用のライブラリ
(例:ONNX Runtime, TF Serving)
- ランタイムと外部インターフェイス
- ロガーとモニタリングツール
39. 同期推論パターン
ロードバランサー
REST API
Docker Python image
Gunicorn
Uvicorns
FastAPI
Model
● 最もシンプルな構成の推論器。
● すぐリリースしたいときに有効。
● GunicornやUvicornをベースに
FlaskやFastAPIで稼働。
Gunicorn(WSGI)
Uvicorn
(ASGI)
Uvicorn
(ASGI)
Gunicorn(WSGI)
Flask Flask
45. アンチパターン
● 推論器が遅すぎてユーザを待たせてる。 ● 性能劣化した推論器でも継続して
すべてのリクエストに推論を返す。
test data
accuracy:
99.99%
5秒/req
2015年の
accuracy:
99.99%
ネコ!
イヌ!
2015年
2020年
5秒で離脱
46. 機械学習システムの品質
機械学習システムの品質には
3カテゴリある。
1. 機械学習の推論モデル
a. 推論モデルのパフォーマンス
b. 本番データの変化による劣化とエラー
c. 問題定義とソリューション
2. 推論モデルを稼働させるシステム
a. 入出力のデータやデータ型
b. 推論スピードと可用性
c. 例外処理
3. 運用と体制
a. モデルの再現および再学習
b. 推論器の再現およびロールバック
c. 維持可能な運用体制
Client LB LB
int float
test data
accuracy:
99.99%
何のML
だっけ?
1sec/req
モデル作った
VM消したよ
dockerimg:latest
上書き
error率
0.01%
アサイン
変わった
me
too
転
職
商品カテゴリ
追加削除
そして誰も
いなくなった
47. 機械学習の推論スピード
● 推論器のボトルネックは推論。 Deep learningの場合、9割Deep learningなこともある
● 学習コストの高いDeep learningは学習後に測定するのではなく、学習前に測っておく
入力
前処理
推論
後処理
出力
通信
前処理
推論
後処理
出力
通信
入力
所要時間
通信