Slide 1

Slide 1 text

モバイル向け機械学習モデル管理基盤 大嶋悠司 2020/11/06

Slide 2

Slide 2 text

whoami 大嶋 悠司 2019/12 ~ Tech Lead of EdgeAI team in Mercari ● OSS活動: ○ Kubeflow katib (owner) ○ Docker infrakit (maintainer) ● Github: YujiOshima ● Twitter: @overs_5121

Slide 3

Slide 3 text

多くの機能をリリース ● 検索の改善 ● 画像検索 ● 違反出品検知 ● AI出品 ● レコメンデーション Mercariにおける機械学習の取り組み 機械学習プラットフォーム

Slide 4

Slide 4 text

4 EdgeAI モバイルのようなデバイス上で機械学習の推論を行う技術

Slide 5

Slide 5 text

5

Slide 6

Slide 6 text

6 滑らかなUX実現の課題 ② 物体検出や画像検索 ① 写真を送信 ③ 結果を返す サーバで推論を行う場合 全体で1sec程度 ネットワークの影響を受ける

Slide 7

Slide 7 text

7 滑らかなUX実現の課題 サーバで推論を行う場合 滑らかな体験を実現するためには 100 msec 未満が必要 [Card, S. K., Robertson, G. G., & Mackinlay, J. D. (1991, March)] サーバでの推論では間に合わない

Slide 8

Slide 8 text

8 Edge AI 1 sec 〜 〜 50ms ● 100ms未満を実現可能 ● ネット環境の影響がない ● データをサーバに送らないのでセキュア

Slide 9

Slide 9 text

9 本日お話すること ● EdgeAI@スマホを実現する技術 ● EdgeAI@スマホの課題 ● Edge用モデルの検証基盤

Slide 10

Slide 10 text

10 課題設定 目標:インタラクティブなUXを実現 必要項目: ● アプリにネガティブな影響を与えない ● 100ms未満の推論レイテンシ ● 大半のお客様をサポート

Slide 11

Slide 11 text

11 Core ML モバイル上でのML推論用ライブラリ

Slide 12

Slide 12 text

12 Core ML ● マルチプラットフォーム ● 柔軟なランタイムオプション TensorFlow Lite を採用 モバイル上でのML推論用ライブラリ

Slide 13

Slide 13 text

13 EdgeAIにおけるMLモデル ● 学習データの作成 ● MLモデルの学習 MLモデルの変換 変換されたMLモデルを実行

Slide 14

Slide 14 text

14 モデルサイズ MLモデルの変換 数百MB~数GB 20 MB 程度 ※変換オプションに依存

Slide 15

Slide 15 text

15 ● FLOAT32 ○ サーバでモデルを学習・推論するときと同じ ● FLOAT16 ○ 重みを単精度で表現することで軽量化 ● Weight only quantization (UINT8) ○ 重みをUINT8量子化 ● Full quantization (UINT8) ○ 重みと活性化関数を量子化 TF Liteの変換オプション

Slide 16

Slide 16 text

16 変換オプション サイズ レイテンシ 精度劣化 FLOAT32 ✕ △ なし FLOAT16 △ △ 小 UINT8: weight only quant ◎ △ 中 UINT8: full quant ◯ ◎ 大 ※劣化の可能性が高い 変換オプションによる比較 ※

Slide 17

Slide 17 text

17 推論速度と精度のパフォーマンス [Howard, Andrew, et al. 2019] 推論レイテンシ ms (Pixel 1) Accuracy Top1 %

Slide 18

Slide 18 text

18 Edgeデバイス上でのモデル実行 オブジェクト検出モデル 例:SSDlite-mobilenetv2 前処理等も含むと不十分 device CPU Pixel3 120 msec

Slide 19

Slide 19 text

19 Java API Objective C API Core C Library Delegate GPU CPU CoreML NNAPI TensorFlow Liteのアーキテクチャ

Slide 20

Slide 20 text

20 ● GPU ○ iOS, Android両方をサポート ● XNNPack ○ iOS, Android両方:特定の行列演算をCPU上で高速化 ● NNAPI ○ Android向け:Pixel4ではEdgeTPUを利用できる ● CoreML ○ iOS向け:iPhone 11ではNPUが利用可能 TFLite でサポートされる Delegate

Slide 21

Slide 21 text

21 Edgeデバイス上でのモデル実行 オブジェクト検出モデル 例:SSDlite-mobilenetv2 device CPU GPU Pixel3 120 msec 30 msec

Slide 22

Slide 22 text

22 Edgeデバイス上でのモデル実行 オブジェクト検出モデル 例:SSDlite-mobilenetv2 device CPU GPU Pixel3 120 msec 30 msec メルカリが動作するデバイスは多種

Slide 23

Slide 23 text

23 Delegateオプションと実行デバイス Delegate ● CPU ● GPU ● XNNPACK ● NNAPI ● CoreML iOS Android デバイスごとにCPU, GPUの性能は異なる [Wu, C. J., et. al. 2019] 広範な実デバイスでのテストが重要

Slide 24

Slide 24 text

24 EdgeにおけるMLモデルの選定 変換形式 Delegate デバイス モデル いかに精度を保ちながらモデルサイズとレイテンシを減らしていくか

Slide 25

Slide 25 text

25 EdgeにおけるMLモデルの選定 変換形式 Delegate デバイス モデル 自動化!

Slide 26

Slide 26 text

26 Edgeモデル検証用プラットフォーム

Slide 27

Slide 27 text

27 Edgeモデル検証用プラットフォーム

Slide 28

Slide 28 text

28 Kubernetes上にML基盤を構築するプロジェクト 複数のコンポーネントを持つ ● Kubeflow pipeline ○ 機械学習モデルの学習や評価のパイプラインの管理 ● Kubeflow metadata ○ 機械学習モデルのメタデータ管理

Slide 29

Slide 29 text

29 Edgeモデル検証用プラットフォーム

Slide 30

Slide 30 text

30 学習 評価 変換 ベンチマーク実行 ベンチマーク結果を metadataに保存 変換による精度劣化評価

Slide 31

Slide 31 text

31 Edgeモデル検証用プラットフォーム

Slide 32

Slide 32 text

32 公式でAndroid, iOS向けにBenchmarkアプリが公開 https://github.com/tensorflow/tensorflow/tree/master/tensorflow/lite/t ools/benchmark ● モデルを読み込んで推論時間を計測できる ● オペレータごとの所要時間なども計測可能 TFLite Model Benchmark

Slide 33

Slide 33 text

33 Edgeモデル検証用プラットフォーム 生成されたモデルを組み込んでAndroid, iOS用のアプリをビルド

Slide 34

Slide 34 text

34 Edgeモデル検証用プラットフォーム

Slide 35

Slide 35 text

35 https://firebase.google.com/docs/test-lab Android, iOS両方の実デバイス上でアプリのテストが行える メルカリで主要なデバイスを指定しbenchmarkアプリを実行 Firebase Test Lab

Slide 36

Slide 36 text

36 Edgeモデル検証用プラットフォーム

Slide 37

Slide 37 text

37 精度比較と変換による劣化の検証 モデルA モデルB float16 float32 uint8

Slide 38

Slide 38 text

38 デバイスごとのベンチマーク iPhone 11 iPhone 8 CoreML GPU CPU XNNPack

Slide 39

Slide 39 text

39 ● EdgeAI@スマホ ○ 精度とモデルサイズ,レイテンシのトレードオフ ○ EdgeAIでなければ実現できないUXがある ● Edge用モデル検証プラットフォーム ○ 物理デバイス上でのテストをパイプラインに組み込む ○ 他のモデルやデバイスと様々な観点で比較できるUI まとめ

Slide 40

Slide 40 text

40 Edgeモデル検証用プラットフォーム

Slide 41

Slide 41 text

41