Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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