©2019 Pasona Tech, Inc. All Rights Reserved.
AutoMLとQumicoを使って、ラズパイでディープラーニングを動かす
話
株式会社パソナテック
IoEソリューション事業部 AIプロダクトグループ
Qumicoプロダクトマネージャ
夏谷
2019/11/9
©2019 Pasona Tech, Inc. All Rights Reserved.
2
目次
自己紹介
AIのトレンド
エッジAI
Qumicoの紹介
アーキテクチャ
AutoMLからエッジAIへ
会社紹介
ONNX
AutoML
量子化の実装
©2019 Pasona Tech, Inc. All Rights Reserved.
自己紹介
3
©2019 Pasona Tech, Inc. All Rights Reserved.
自己紹介
4
株式会社パソナテック
IoEソリューション事業部 AIプロダクトグループ
Qumico Product Manager
夏谷 実
FPGAやLSIの画像処理から、Deep Learningの世界に入る。プログラミングが好き
昨年よりQumicoのプロダクトマネージャに就任。大阪と東京と半々くらいで、昨年は名古屋にも通う
TensorFlow Users Group KANSAIHatena id: natsutan Qiita id: natsutan
2019/9/25
https://qiita.com/natsutan
2019/9/25
https://tfug-kansai.connpass.com/event/146442/2019/9/25
http://natsutan.hatenablog.com/
©2019 Pasona Tech, Inc. All Rights Reserved.
AIのトレンド
5
エッジAI, ONNX, AutoML
©2019 Pasona Tech, Inc. All Rights Reserved.
エッジAIとは
6
よくあるAIを使ったサービス例
どこかにあるGPU搭載サーバー
日:エッジAIの技術に注目しています。
英:We are focusing on edge AI technology.
AI
同じようなアーキテクチャ
・画像の仕分け
・商品の推薦
・買い取り価格の見積もり
・商品のカテゴリー分け
©2019 Pasona Tech, Inc. All Rights Reserved.
エッジAIとは
7
https://www.irasutoya.com/2014/10/blog-post_185.html
https://www.irasutoya.com/2013/01/blog-post_7571.html
エッジAIのイメージ
AI AI
不審者
を発見
部屋に人が多いから
出力を上げよう
AIを処理するサーバーが無く、それぞれの装置がAIを搭載する。
誰もいないから風
力を落として節電
©2019 Pasona Tech, Inc. All Rights Reserved.
なぜエッジAIが必要なのか
8
物体検出
https://www.irasutoya.com/2014/10/blog-post_185.html
VS
サーバー AI
全ての映像をサーバーに送るアーキテクチャ
AI
エッジAIを使ったアーキテクチャ
AI AI
・・・・・
AI
・・・・・
物体検出 物体検出 物体検出
物体検出
物体検出した結
果だけを送信
・レイテンシー ◎
・通信量 ◎
・消費電力 〇
©2019 Pasona Tech, Inc. All Rights Reserved.
エッジAIを使う理由
・自動運転等、応答速度が非常に重要なケース
・コストが重要なケース
・通信環境が悪くても動く必要があるケース
・プライバシーを守りたいケース
9
世の中にAIが普及するにつれ、エッジAIの重要性も増えていく
©2019 Pasona Tech, Inc. All Rights Reserved.
業界標準フォーマットONNX
10
Open Neural Network Exchange(ONNX)
Microsoftの資料から引用
https://static.sched.com/hosted_files/linaroconnectsandiego/83/O
NNX%20%26%20ONNX%20Runtime%20-%20SAN19-211.pdf
2019/9/25
それぞれのフレームワークが、ONNXファイル
の入出力をサポート
ONNXの実行(推論)環境
ONNX runtime
©2019 Pasona Tech, Inc. All Rights Reserved.
ONNXフォーマット
11
Netronで可視化
• Model
• Version info
• Metadata
• Graph
• Graph
• Inputs and Outputs
• Graph name
• Computational nodes
• Computational Graph
• Operator
• Operator Parameter
• Inputs and Ourputs
中身はProtocol Buffers
APIが用意されているPythonだけでなくRust等でも操作可能
©2019 Pasona Tech, Inc. All Rights Reserved.
Auto MLとは
12
・Automated Machine Learningの略
・自動的に機械学習のハイパーパラ
メータを設定しパフォーマンスを上
げる技術。NAS(Neural
Architecture Search)と呼ばれるNN
アーキテクチャの探索も含む。
・GoogleがCloud上でAuto MLを使え
るようにしたのが「Cloud AutoML」
と呼ばれるサービス。Auto MLと言
った時にCloud AutoMLを指すことが
多い。
NASの例
input
output
input
output
input
output
CELL
CELL
©2019 Pasona Tech, Inc. All Rights Reserved.
Could AutoMLの実力
13
https://developers-jp.googleblog.com/2019/07/efficientnet-automl-
google.html
画像の識別に関しては、素人では絶対に勝てない
識別
物体検出
だいたい6万円くらいで、2016年末の最先端
(YOLO v2)に近い数字
Cloud AutoMLが対応しているタスクならAutoMLを使いたい。
©2019 Pasona Tech, Inc. All Rights Reserved.
AutoML
14
2019/9/30
https://research.preferred.jp/2018/12/optuna-
release/
PFN Optuna
Sony Prediction One
Amazon Forecast
2019/9/30
https://aws.amazon.com/jp/forecast/
2019/9/30
https://predictionone.sony.biz/about/feature/
©2019 Pasona Tech, Inc. All Rights Reserved.
Qumicoの紹介
15
©2019 Pasona Tech, Inc. All Rights Reserved.
Qumicoとは
16
• 目的
– ディープラーニングの学習結果をエッジデバイス向けにC言語変換
• OSレス環境での利用も想定
– 出力:標準C(その他依存のライブラリなし)
– IR:ONNXに準拠
• 弊社内製
• オープンソースとして公開(MITライセンス)
– https://github.com/PasonaTech-Inc/Qumico
©2019 Pasona Tech, Inc. All Rights Reserved.
Qumico Architecture
17
ONNX
Qumico Frontend Qumico Backend
Tensorflow
TFLite
Keras
C Source
- Neon support
- OpenMP
・Convert
・Graph Optimize
・Weight Extract
・Check
・Memory Allocate
・Control Flow
・API function
・Device Specific
Optimize
Intermediate Representation
IR
• フロントエンド
– 各種DLフレームワークの学習モデルをONNXに変換する
– 例:TensorFlowの学習済みモデルをONNXに変換
• バックエンド
– ONNXをC言語に変換する
©2019 Pasona Tech, Inc. All Rights Reserved.
Three Stage Compiler
18
2019/10/5
https://en.wikipedia.org/wiki/Compiler
スタンダードな3stage コンパイラの構成を踏襲
Wikipediaより
文法チェック
IRへ変換 IRの最適化 ターゲット向け最適化
Intermediate Representation
IR
©2019 Pasona Tech, Inc. All Rights Reserved.
Idein
19
Practical Developers
――機械学習時代のソフトウェア開発
[ゲームアプリ/インフラ/エッジ編]
P91 図3
©2019 Pasona Tech, Inc. All Rights Reserved.
PFN Chainer-compiler
20
2019/10/1
https://www.slideshare.net/pfi/da2019traininginferencehwsw-hare
DAシンポジウム2019招待講
演「深層学習モデルの高速な
Training/Inferenceのための
HW/SW技術」
P44
©2019 Pasona Tech, Inc. All Rights Reserved.
Qumicoの特徴
21
©2019 Pasona Tech, Inc. All Rights Reserved.
開発の流れ(例)
22
Qumicoフロントエンド Qumicoバックエンド
本スライドの写真 の作成者 不明な作成者 は CC BY-SA のライセンスを許諾されています
エッジデバイス
2.変換
1.学習
3.チューニング
4.デプロイ
チューニング
・CPUコア
・SIMD
・GPU
・メモリアライメント
等
学習済みモデル
計算グラフ最適化
TensorFlow
ONNX C
©2019 Pasona Tech, Inc. All Rights Reserved.
Qumico 新機能
Cloud AutoML カメラ+ラズベリーパイ
AutoMLで学習したモデルが、Qumicoを使ってエッジで動く
- ニューラルネットワークの知識不要
- 組込の知識不要
©2019 Pasona Tech, Inc. All Rights Reserved.
量子化
https://www.slideshare.net/insideHPC/beating-floating-point-at-its-own-game-posit-arithmetic
DLは10^(-4)~10^2くらいしかでてこない
FP16 max 6万程度fp32
浮動小数点数フォーマットのおさらい
指数部 仮数部
©2019 Pasona Tech, Inc. All Rights Reserved.
量子化
25
Qumicoを使ってTFLiteをONNXへ変
換した結果を可視化
・Cloud AutoMLをエッジ用に学習するとTFLite
のフォーマットでダウンロードできる。
・TFLiteの中身はFlatbufferで、エッジデバイス
向けに最適化されている。
・データは8bitに量子化されていて、量子化専用
の演算(オペレータ)が必要。
・量子化のパラメータは二つ
- scale
- zero_point
©2019 Pasona Tech, Inc. All Rights Reserved.
量子化の計算式
26
𝑥𝑞 = 𝑠𝑎𝑡𝑢𝑟𝑒
𝑥
𝑠𝑐𝑎𝑙𝑒
+ 𝑧𝑒𝑟𝑜_𝑝𝑜𝑖𝑛𝑡
xを量子化前の値、xqを量子化された値としたときの関係式
Qumicoが出力する量子化の場合は、xqがuint8なので、0-
255の値をとる。計算の結果、xqが負の値になった時は0に、
255を超えたときは255の範囲に飽和(clip)される。
©2019 Pasona Tech, Inc. All Rights Reserved.
AutoMLが出力するNN例(識別)
27
input
output
ADD
conv2d
conv2d
conv2d
Depth Width
Conv2dd
©2019 Pasona Tech, Inc. All Rights Reserved.
AutoMLが出力するNN(物体検出)
28
2019/10/4
http://natsutan.hatenablog.com/entry/2019/09/23/125835
NAS(Neural Architecture Search)
をしているようで、非常に複雑な構
成になっています。
©2019 Pasona Tech, Inc. All Rights Reserved.
Qumicoの新機能を使ってAutoMLを使う
29
Qumicoフロントエンド Qumicoバックエンド
本スライドの写真 の作成者 不明な作成者 は CC BY-SA のライセンスを許諾されています
エッジデバイス
2.変換
1.学習
3.チューニング
4.デプロイ
量子化対応
学習済みモデル
TFLite
TFLite対応
AutoML
ONNX C
©2019 Pasona Tech, Inc. All Rights Reserved.
Qumicoによる変換
30
def tflite_to_onnx(tflite_path, output_path, flat_c_path, schema_path):
frontend = TFLiteFrontend()
frontend.convert_tflite_to_onnx(tflite_path=tflite_path,
flatc_path=flat_c_path,
schema_path=schema_path,
export_path=output_path)
ONNXへの変換はとても簡単
※現在開発中のため、リリース時には変更になる可能性があります。
tflite_path: tfliteファイル
flatc_path: 変換に使用するflatcコマンドへのパス
schema_path: flatbufの定義が記載されたschema.fbsへのパス
export_path: 出力ファイル名
©2019 Pasona Tech, Inc. All Rights Reserved.
Qumicoベンチマーク(Mobilenet)
31
• 変更なし(複数のTransposeが追加される)
– 0.28[sec]
• Transposeを削除
– 0.16[sec]
• Softmaxを削除
– 0.065[sec]
– クラス分類で最終OPのSoftmaxであるため、出力ラベルは変化なし
– 前後のDequantize, Quantizeも削除
• 参考:ONNX変換前の推論性能
– A社:0.030[sec]
– 条件:OpenMP有効、Neon有効
– (注:Pythonからの呼び出しのため、厳密なプロファイルではないです)
©2019 Pasona Tech, Inc. All Rights Reserved.
ベンチマーク(Mobilenet)
32
0
0.05
0.1
0.15
0.2
0.25
0.3
変更なし Trasnpose削除 Softmax削除 A社
1推論性能[sec]
Qumico(赤)
©2019 Pasona Tech, Inc. All Rights Reserved.
Qumicoデモ
33
©2019 Pasona Tech, Inc. All Rights Reserved.
今後のQumico
・量子化対応バージョンリリース
・対応ターゲットボードの拡張
・最適化/高速化の充実
・エッジ学習
34
©2019 Pasona Tech, Inc. All Rights Reserved.
会社紹介
35
©2019 Pasona Tech, Inc. All Rights Reserved.
パソナテックの取り組み(2019年~)
データエンジニアの育成
36
データエンジニアとは?
データの前処理を中心に、データサイエンティストの指示で、デー
タそのものを扱うエンジニア
©2019 Pasona Tech, Inc. All Rights Reserved.
AutoMLが作るこれからの開発体制予測
37
データサイエン
ティスト
データエンジニア
AIプロジェクトAIプロジェクト
Auto
ML
Auto
ML
Auto
ML
Auto
ML
AIプロジェクト AIプロジェクト AIプロジェクト AIプロジェクト
AutoMLが対応してい
ないタスクはデータサ
イエンティストが担当
AutoMLが対応しているタスクは、
AutoMLに入力するデータを用意する
データエンジニアがいれば良い
AIプロジェクトの数が、データサイエン
ティストに依存しないでスケールする。
©2019 Pasona Tech, Inc. All Rights Reserved.
パソナテックの取り組み(2019年~)
38
データエンジニアのスキルセットの標準化と育成コースの開発
画像用NNの基礎
画像フォーマットの基礎
画像処理ライブラリ、アルゴリズム
<annotation>
<filename>0001.jpg</filename>
<size> <width>302</width>
<height>402</height>
<depth>3</depth> </size>
<object>
<name>pencilcase</name>
<bndbox> <xmin>100</xmin>
<ymin>100</ymin>
<xmax>261</xmax>
<ymax>186</ymax>
</bndbox>
</object>
</annotation>
物体検出用データオーギュメ
ンテーション
XML、乱数処理、回転、拡
大、縮小、画像の合成
データエンジニア研修 基礎編:2019年6月開始
データエンジニア研修 実践編: 2019年9月開始
データエンジニア研修 応用編:2019年9月開始
©2019 Pasona Tech, Inc. All Rights Reserved.
エッジAIの難しいところ
39
データ
アノテー
ション
量子化
過学習
抑止
データ
水増し
前処理
プルーニ
ング
速度
UP
ハイパーパ
ラメータ
画像処理
フレーム
ワークPython
組込みC
学習環境
構築
データ
収拾
異常値除
去
筐体モデル
選択
サイズ
削減
放熱
アプリ
組込
電力
コスト
JOB HUB
データエンジニア
育成
Auto
ML
AI/IoT支援
サービス
組込エンジニア
育成
ODM
サービス
エッジAI開発の難しさをトータルでサポートします。
©2019 Pasona Tech, Inc. All Rights Reserved.
まとめ
40
今後、ますます重要になっていくエッジAIについて、パソナテックは以下
のサービスを提供します。
・データエンジニアの育成
・組込AIエンジニアの育成
・AI/IoT支援サービス
・ODMサービス
・Qumico開発
派遣、委託等、様々な形で開発リソースを提供いたします。
データの収集から、組込機器の開発まで、どのフェーズでもご相談くださ
い。
オンサイトトレーニング可能!
©2019 Pasona Tech, Inc. All Rights Reserved.

AutoMLとQumicoを使って、ラズパイでディープラーニングを動かす話

  • 1.
    ©2019 Pasona Tech,Inc. All Rights Reserved. AutoMLとQumicoを使って、ラズパイでディープラーニングを動かす 話 株式会社パソナテック IoEソリューション事業部 AIプロダクトグループ Qumicoプロダクトマネージャ 夏谷 2019/11/9
  • 2.
    ©2019 Pasona Tech,Inc. All Rights Reserved. 2 目次 自己紹介 AIのトレンド エッジAI Qumicoの紹介 アーキテクチャ AutoMLからエッジAIへ 会社紹介 ONNX AutoML 量子化の実装
  • 3.
    ©2019 Pasona Tech,Inc. All Rights Reserved. 自己紹介 3
  • 4.
    ©2019 Pasona Tech,Inc. All Rights Reserved. 自己紹介 4 株式会社パソナテック IoEソリューション事業部 AIプロダクトグループ Qumico Product Manager 夏谷 実 FPGAやLSIの画像処理から、Deep Learningの世界に入る。プログラミングが好き 昨年よりQumicoのプロダクトマネージャに就任。大阪と東京と半々くらいで、昨年は名古屋にも通う TensorFlow Users Group KANSAIHatena id: natsutan Qiita id: natsutan 2019/9/25 https://qiita.com/natsutan 2019/9/25 https://tfug-kansai.connpass.com/event/146442/2019/9/25 http://natsutan.hatenablog.com/
  • 5.
    ©2019 Pasona Tech,Inc. All Rights Reserved. AIのトレンド 5 エッジAI, ONNX, AutoML
  • 6.
    ©2019 Pasona Tech,Inc. All Rights Reserved. エッジAIとは 6 よくあるAIを使ったサービス例 どこかにあるGPU搭載サーバー 日:エッジAIの技術に注目しています。 英:We are focusing on edge AI technology. AI 同じようなアーキテクチャ ・画像の仕分け ・商品の推薦 ・買い取り価格の見積もり ・商品のカテゴリー分け
  • 7.
    ©2019 Pasona Tech,Inc. All Rights Reserved. エッジAIとは 7 https://www.irasutoya.com/2014/10/blog-post_185.html https://www.irasutoya.com/2013/01/blog-post_7571.html エッジAIのイメージ AI AI 不審者 を発見 部屋に人が多いから 出力を上げよう AIを処理するサーバーが無く、それぞれの装置がAIを搭載する。 誰もいないから風 力を落として節電
  • 8.
    ©2019 Pasona Tech,Inc. All Rights Reserved. なぜエッジAIが必要なのか 8 物体検出 https://www.irasutoya.com/2014/10/blog-post_185.html VS サーバー AI 全ての映像をサーバーに送るアーキテクチャ AI エッジAIを使ったアーキテクチャ AI AI ・・・・・ AI ・・・・・ 物体検出 物体検出 物体検出 物体検出 物体検出した結 果だけを送信 ・レイテンシー ◎ ・通信量 ◎ ・消費電力 〇
  • 9.
    ©2019 Pasona Tech,Inc. All Rights Reserved. エッジAIを使う理由 ・自動運転等、応答速度が非常に重要なケース ・コストが重要なケース ・通信環境が悪くても動く必要があるケース ・プライバシーを守りたいケース 9 世の中にAIが普及するにつれ、エッジAIの重要性も増えていく
  • 10.
    ©2019 Pasona Tech,Inc. All Rights Reserved. 業界標準フォーマットONNX 10 Open Neural Network Exchange(ONNX) Microsoftの資料から引用 https://static.sched.com/hosted_files/linaroconnectsandiego/83/O NNX%20%26%20ONNX%20Runtime%20-%20SAN19-211.pdf 2019/9/25 それぞれのフレームワークが、ONNXファイル の入出力をサポート ONNXの実行(推論)環境 ONNX runtime
  • 11.
    ©2019 Pasona Tech,Inc. All Rights Reserved. ONNXフォーマット 11 Netronで可視化 • Model • Version info • Metadata • Graph • Graph • Inputs and Outputs • Graph name • Computational nodes • Computational Graph • Operator • Operator Parameter • Inputs and Ourputs 中身はProtocol Buffers APIが用意されているPythonだけでなくRust等でも操作可能
  • 12.
    ©2019 Pasona Tech,Inc. All Rights Reserved. Auto MLとは 12 ・Automated Machine Learningの略 ・自動的に機械学習のハイパーパラ メータを設定しパフォーマンスを上 げる技術。NAS(Neural Architecture Search)と呼ばれるNN アーキテクチャの探索も含む。 ・GoogleがCloud上でAuto MLを使え るようにしたのが「Cloud AutoML」 と呼ばれるサービス。Auto MLと言 った時にCloud AutoMLを指すことが 多い。 NASの例 input output input output input output CELL CELL
  • 13.
    ©2019 Pasona Tech,Inc. All Rights Reserved. Could AutoMLの実力 13 https://developers-jp.googleblog.com/2019/07/efficientnet-automl- google.html 画像の識別に関しては、素人では絶対に勝てない 識別 物体検出 だいたい6万円くらいで、2016年末の最先端 (YOLO v2)に近い数字 Cloud AutoMLが対応しているタスクならAutoMLを使いたい。
  • 14.
    ©2019 Pasona Tech,Inc. All Rights Reserved. AutoML 14 2019/9/30 https://research.preferred.jp/2018/12/optuna- release/ PFN Optuna Sony Prediction One Amazon Forecast 2019/9/30 https://aws.amazon.com/jp/forecast/ 2019/9/30 https://predictionone.sony.biz/about/feature/
  • 15.
    ©2019 Pasona Tech,Inc. All Rights Reserved. Qumicoの紹介 15
  • 16.
    ©2019 Pasona Tech,Inc. All Rights Reserved. Qumicoとは 16 • 目的 – ディープラーニングの学習結果をエッジデバイス向けにC言語変換 • OSレス環境での利用も想定 – 出力:標準C(その他依存のライブラリなし) – IR:ONNXに準拠 • 弊社内製 • オープンソースとして公開(MITライセンス) – https://github.com/PasonaTech-Inc/Qumico
  • 17.
    ©2019 Pasona Tech,Inc. All Rights Reserved. Qumico Architecture 17 ONNX Qumico Frontend Qumico Backend Tensorflow TFLite Keras C Source - Neon support - OpenMP ・Convert ・Graph Optimize ・Weight Extract ・Check ・Memory Allocate ・Control Flow ・API function ・Device Specific Optimize Intermediate Representation IR • フロントエンド – 各種DLフレームワークの学習モデルをONNXに変換する – 例:TensorFlowの学習済みモデルをONNXに変換 • バックエンド – ONNXをC言語に変換する
  • 18.
    ©2019 Pasona Tech,Inc. All Rights Reserved. Three Stage Compiler 18 2019/10/5 https://en.wikipedia.org/wiki/Compiler スタンダードな3stage コンパイラの構成を踏襲 Wikipediaより 文法チェック IRへ変換 IRの最適化 ターゲット向け最適化 Intermediate Representation IR
  • 19.
    ©2019 Pasona Tech,Inc. All Rights Reserved. Idein 19 Practical Developers ――機械学習時代のソフトウェア開発 [ゲームアプリ/インフラ/エッジ編] P91 図3
  • 20.
    ©2019 Pasona Tech,Inc. All Rights Reserved. PFN Chainer-compiler 20 2019/10/1 https://www.slideshare.net/pfi/da2019traininginferencehwsw-hare DAシンポジウム2019招待講 演「深層学習モデルの高速な Training/Inferenceのための HW/SW技術」 P44
  • 21.
    ©2019 Pasona Tech,Inc. All Rights Reserved. Qumicoの特徴 21
  • 22.
    ©2019 Pasona Tech,Inc. All Rights Reserved. 開発の流れ(例) 22 Qumicoフロントエンド Qumicoバックエンド 本スライドの写真 の作成者 不明な作成者 は CC BY-SA のライセンスを許諾されています エッジデバイス 2.変換 1.学習 3.チューニング 4.デプロイ チューニング ・CPUコア ・SIMD ・GPU ・メモリアライメント 等 学習済みモデル 計算グラフ最適化 TensorFlow ONNX C
  • 23.
    ©2019 Pasona Tech,Inc. All Rights Reserved. Qumico 新機能 Cloud AutoML カメラ+ラズベリーパイ AutoMLで学習したモデルが、Qumicoを使ってエッジで動く - ニューラルネットワークの知識不要 - 組込の知識不要
  • 24.
    ©2019 Pasona Tech,Inc. All Rights Reserved. 量子化 https://www.slideshare.net/insideHPC/beating-floating-point-at-its-own-game-posit-arithmetic DLは10^(-4)~10^2くらいしかでてこない FP16 max 6万程度fp32 浮動小数点数フォーマットのおさらい 指数部 仮数部
  • 25.
    ©2019 Pasona Tech,Inc. All Rights Reserved. 量子化 25 Qumicoを使ってTFLiteをONNXへ変 換した結果を可視化 ・Cloud AutoMLをエッジ用に学習するとTFLite のフォーマットでダウンロードできる。 ・TFLiteの中身はFlatbufferで、エッジデバイス 向けに最適化されている。 ・データは8bitに量子化されていて、量子化専用 の演算(オペレータ)が必要。 ・量子化のパラメータは二つ - scale - zero_point
  • 26.
    ©2019 Pasona Tech,Inc. All Rights Reserved. 量子化の計算式 26 𝑥𝑞 = 𝑠𝑎𝑡𝑢𝑟𝑒 𝑥 𝑠𝑐𝑎𝑙𝑒 + 𝑧𝑒𝑟𝑜_𝑝𝑜𝑖𝑛𝑡 xを量子化前の値、xqを量子化された値としたときの関係式 Qumicoが出力する量子化の場合は、xqがuint8なので、0- 255の値をとる。計算の結果、xqが負の値になった時は0に、 255を超えたときは255の範囲に飽和(clip)される。
  • 27.
    ©2019 Pasona Tech,Inc. All Rights Reserved. AutoMLが出力するNN例(識別) 27 input output ADD conv2d conv2d conv2d Depth Width Conv2dd
  • 28.
    ©2019 Pasona Tech,Inc. All Rights Reserved. AutoMLが出力するNN(物体検出) 28 2019/10/4 http://natsutan.hatenablog.com/entry/2019/09/23/125835 NAS(Neural Architecture Search) をしているようで、非常に複雑な構 成になっています。
  • 29.
    ©2019 Pasona Tech,Inc. All Rights Reserved. Qumicoの新機能を使ってAutoMLを使う 29 Qumicoフロントエンド Qumicoバックエンド 本スライドの写真 の作成者 不明な作成者 は CC BY-SA のライセンスを許諾されています エッジデバイス 2.変換 1.学習 3.チューニング 4.デプロイ 量子化対応 学習済みモデル TFLite TFLite対応 AutoML ONNX C
  • 30.
    ©2019 Pasona Tech,Inc. All Rights Reserved. Qumicoによる変換 30 def tflite_to_onnx(tflite_path, output_path, flat_c_path, schema_path): frontend = TFLiteFrontend() frontend.convert_tflite_to_onnx(tflite_path=tflite_path, flatc_path=flat_c_path, schema_path=schema_path, export_path=output_path) ONNXへの変換はとても簡単 ※現在開発中のため、リリース時には変更になる可能性があります。 tflite_path: tfliteファイル flatc_path: 変換に使用するflatcコマンドへのパス schema_path: flatbufの定義が記載されたschema.fbsへのパス export_path: 出力ファイル名
  • 31.
    ©2019 Pasona Tech,Inc. All Rights Reserved. Qumicoベンチマーク(Mobilenet) 31 • 変更なし(複数のTransposeが追加される) – 0.28[sec] • Transposeを削除 – 0.16[sec] • Softmaxを削除 – 0.065[sec] – クラス分類で最終OPのSoftmaxであるため、出力ラベルは変化なし – 前後のDequantize, Quantizeも削除 • 参考:ONNX変換前の推論性能 – A社:0.030[sec] – 条件:OpenMP有効、Neon有効 – (注:Pythonからの呼び出しのため、厳密なプロファイルではないです)
  • 32.
    ©2019 Pasona Tech,Inc. All Rights Reserved. ベンチマーク(Mobilenet) 32 0 0.05 0.1 0.15 0.2 0.25 0.3 変更なし Trasnpose削除 Softmax削除 A社 1推論性能[sec] Qumico(赤)
  • 33.
    ©2019 Pasona Tech,Inc. All Rights Reserved. Qumicoデモ 33
  • 34.
    ©2019 Pasona Tech,Inc. All Rights Reserved. 今後のQumico ・量子化対応バージョンリリース ・対応ターゲットボードの拡張 ・最適化/高速化の充実 ・エッジ学習 34
  • 35.
    ©2019 Pasona Tech,Inc. All Rights Reserved. 会社紹介 35
  • 36.
    ©2019 Pasona Tech,Inc. All Rights Reserved. パソナテックの取り組み(2019年~) データエンジニアの育成 36 データエンジニアとは? データの前処理を中心に、データサイエンティストの指示で、デー タそのものを扱うエンジニア
  • 37.
    ©2019 Pasona Tech,Inc. All Rights Reserved. AutoMLが作るこれからの開発体制予測 37 データサイエン ティスト データエンジニア AIプロジェクトAIプロジェクト Auto ML Auto ML Auto ML Auto ML AIプロジェクト AIプロジェクト AIプロジェクト AIプロジェクト AutoMLが対応してい ないタスクはデータサ イエンティストが担当 AutoMLが対応しているタスクは、 AutoMLに入力するデータを用意する データエンジニアがいれば良い AIプロジェクトの数が、データサイエン ティストに依存しないでスケールする。
  • 38.
    ©2019 Pasona Tech,Inc. All Rights Reserved. パソナテックの取り組み(2019年~) 38 データエンジニアのスキルセットの標準化と育成コースの開発 画像用NNの基礎 画像フォーマットの基礎 画像処理ライブラリ、アルゴリズム <annotation> <filename>0001.jpg</filename> <size> <width>302</width> <height>402</height> <depth>3</depth> </size> <object> <name>pencilcase</name> <bndbox> <xmin>100</xmin> <ymin>100</ymin> <xmax>261</xmax> <ymax>186</ymax> </bndbox> </object> </annotation> 物体検出用データオーギュメ ンテーション XML、乱数処理、回転、拡 大、縮小、画像の合成 データエンジニア研修 基礎編:2019年6月開始 データエンジニア研修 実践編: 2019年9月開始 データエンジニア研修 応用編:2019年9月開始
  • 39.
    ©2019 Pasona Tech,Inc. All Rights Reserved. エッジAIの難しいところ 39 データ アノテー ション 量子化 過学習 抑止 データ 水増し 前処理 プルーニ ング 速度 UP ハイパーパ ラメータ 画像処理 フレーム ワークPython 組込みC 学習環境 構築 データ 収拾 異常値除 去 筐体モデル 選択 サイズ 削減 放熱 アプリ 組込 電力 コスト JOB HUB データエンジニア 育成 Auto ML AI/IoT支援 サービス 組込エンジニア 育成 ODM サービス エッジAI開発の難しさをトータルでサポートします。
  • 40.
    ©2019 Pasona Tech,Inc. All Rights Reserved. まとめ 40 今後、ますます重要になっていくエッジAIについて、パソナテックは以下 のサービスを提供します。 ・データエンジニアの育成 ・組込AIエンジニアの育成 ・AI/IoT支援サービス ・ODMサービス ・Qumico開発 派遣、委託等、様々な形で開発リソースを提供いたします。 データの収集から、組込機器の開発まで、どのフェーズでもご相談くださ い。 オンサイトトレーニング可能!
  • 41.
    ©2019 Pasona Tech,Inc. All Rights Reserved.

Editor's Notes

  • #5 ・元々画像処理のバックグランドがあって、画像処理のアルゴリズムの一つとしてDLに興味を持った ・2016年の、XXXXでテンサーフローの話を聞いて、そこからとりこになってます。 ・DLは実際難しく、日々勉強。特に、手法がすぐ古くなる。 ・最近は後で説明するAutoML(AIがAIを作る)技術に注目と期待をしています。
  • #7 これは、よくあるアーキテクチャ。 ブラウザやスマホで翻訳サイトを開いて、翻訳したい文章を入れると、翻訳結果が返ってきます。 他の説明もゆっくり
  • #8 ここからゆっくり! エッジというのは、クラウドから見た端っこ。だからエッジ。 従来は組込機器と呼ばれていたり、最近はIoT機器とか呼ばれているもの。 これにAIを乗せるのがエッジAI。
  • #10 エッジAIを実際に使うケースでの具体的な例を説明します。 まずは、自動運転。車以外にもいろいろ自動運転があるんですが、カメラからくるデータを全部送って、結果を待っている間に事故がおきちゃう可能性があります。 レイテンシー、つまり反応速度を確保するためにはエッジでAIを動かす必要があります。 コスト面でいうと、GPUのような高価な
  • #14 ここでAutoMLの画面を見せて説明 PythonやTensorFlowを一切書かなくてもOK データの水増しもやってくれる
  • #15 ここでデモを終えて30分