Slide 1

Slide 1 text

Mercari ML Platform

Slide 2

Slide 2 text

自己紹介 ● Hirofumi Nakagawa(hnakagawa) ● 2017年7月入社 ● 所属はSRE ● デバイスドライバ開発からフロントエ ンド開発までやる何でも屋 ● NOT MLエンジニア

Slide 3

Slide 3 text

Kubernetes CLI Image builder Cluster Pipeline Engine Dashboard Metrics Runner Component Mercari ML Component ML platform architecture

Slide 4

Slide 4 text

Kubernetes CLI Image builder Cluster Pipeline Engine Dashboard Metrics Runner Component Mercari ML Component

Slide 5

Slide 5 text

Container imageを自動でbuild。利用者がDockerfileを 書く必要は極力無いようにしてある Cluster Pipeline Engine CLI/Image builder Metrics Clusterリソースを管理し、container化されたData Pipelineを実行する Prometheus使用している。ML modelに関するmetrics を取得

Slide 6

Slide 6 text

Kubernetes CLI Image builder Cluster Pipeline Engine Dashboard Metrics Runner Component Mercari ML Component

Slide 7

Slide 7 text

前処理や分類器をContainer Pipelineで実行できるよう にコンポーネント化したもの Runner ML Component Mercari ML Component Training/Serving環境でcluster環境とlocal環境の差を 埋める データ・ソースやitem分類等、社内利用に特化したコン ポーネント

Slide 8

Slide 8 text

Container Based Pipeline

Slide 9

Slide 9 text

DataSource Image Text  Preprocessing Image PV Picture  Preprocessing Image PV PV Estimator Image 全ての出力はPVに保存されキャッ シュとしても利用できる

Slide 10

Slide 10 text

Model Training & Serving Workflow

Slide 11

Slide 11 text

CI Training Cluster Job ・・・ Model Repository Job Job Serving Cluster REST API TF Serving Faiss ・・・ 全てのModelが version管理 & image化されている

Slide 12

Slide 12 text

Serving Architecture

Slide 13

Slide 13 text

Mercari API Flask SK Model SK Model SK Model TensorFlow Serving TF Model TF Model TF Model Virtual Service Basic serving API architecture

Slide 14

Slide 14 text

Streaming serving API architecture Flask SK Model SK Model SK Model TensorFlow Serving TF Model TF Model TF Model Virtual Service Proxy

Slide 15

Slide 15 text

A/B Test Architecture

Slide 16

Slide 16 text

Model Service A  Virtual Service Model Service B  Mercari API 90% 10% Model API is activated by Istio

Slide 17

Slide 17 text

Common Problems of Model Serving

Slide 18

Slide 18 text

Huge model file vs container image • 巨大なMLモデルファイルをimageに含めるか否か • 含めないのであれば何処に配置するのか • ポータビリティとロード時間のトレードオフ

Slide 19

Slide 19 text

Effective memory usage • 数GB程度のメモリを使用するのは普通 • プロセス毎にモデルをロードする必要がある環境は辛い • Copy on Write(CoW)を利かす工夫が必要

Slide 20

Slide 20 text

In Progress

Slide 21

Slide 21 text

モデル評価と ReTrainingの自動化 モデル生成の 自動化 本番環境への自動 Deploy Architecture searchやHyper parameter optimization によって簡単なモデル生成を自動化・簡素化 生成されたモデルを本番環境へ自動Deployし、最も良 いモデルが自動選択される 高度な自動化 運用中のモデルの評価/可視化、Re-Trainingを高度化・ 自動化する

Slide 22

Slide 22 text

ML Continuous Deployment Deploy Monitoring Evaluation Hyper parameter optimization Re-Training リリース後も 精度監視・Hyper parameterチューニング・Re-training・Deployを自 動で行う

Slide 23

Slide 23 text

AutoFlow Feature Extraction Components Concatenation Components Classification Components Model Builder Component Repository

Slide 24

Slide 24 text

In Future

Slide 25

Slide 25 text

Edge Device Democratization of AI Further Automation Future Plans

Slide 26

Slide 26 text

Edge Device • TensorFlow LiteやCore ML等Edgeサイドでpredictionを行える環 境が整ってきた • EdgeでのpredictionはUX上大きなメリットがあると考えている • 調査・研究を進めているので今後に乞うご期待?

Slide 27

Slide 27 text

Democratization of AI • 多くのモデルが求められている • MLエンジニア以外もモデルを作れるようにする • DataPlatformと合せて環境を整備する必要

Slide 28

Slide 28 text

Further Automation • 近い将来、数千〜のモデル運用を行う必要がある • さらなる高度な自動化が不可欠

Slide 29

Slide 29 text

No content