Software for Edge Heavy Computing @ INTEROP 2016 Tokyo
Post on 21-Jan-2017
1996 Views
Preview:
Transcript
エッジ・ヘビー・コンピューティングを実現するソフトウェア
@INTEROP2016,Makuhari,June9th,
⽐⼾ 将平
ChiefResearchOfficer
PreferredNetworks,Inc.
IoTは「賢いクラウドとConnectedなモノ達」を超える“Software Is Eating The World”の延⻑l 既存IoTソリューションの中⼼=クラウド基盤が持つ弱点
データ量に伴って通信コストが爆発
クラウド経由のストリーム解析処理はリアルタイム処理に不向き
⽣データの外部送信への抵抗やセキュリティ問題の懸念
l ITベンダーのクラウド基盤+通信モジュール、だけで⼗分か?
製品を持つ会社が主導しベンダーやキャリアを巻き込み外部提供する流れ
u FANUC、GE、Bosch、Siemens、Honeywell…
u エコシステムはスタートアップにも開放される(主にアプリ)
IoTプラットホーム戦略の主導権をITベンダーが持つのは難しい
エンドユーザーまでのデリバリー困難、汎⽤IoTクラウドは作りこみ不⾜
エッジ・ヘビー・コンピューティングはIoTクラウドの弱点を補完
2/35
エッジ・ヘビー・コンピューティングで求められること
1. クラウドだけでなく、フォグやエッジでも動作
2. Analyzeだけでなく、Sense/OrganizeやAcKon/Feedbackもカバー
3. バッチ処理ではなく、ストリーム処理・リアルタイム処理が中⼼
4. 無理な機能追加でなく、機械学習(特に深層学習)を標準サポート
5. オールインワンでなく、業界・⽤途毎のコンパクトなパッケージ
3
Sense Organize Analyze Act
Sense Organize Analyze Act
Sense Organize Analyze Act
Feed
back
エッジ
フォグ
クラウド
1
2
34
機械学習 (深層学習)
5
3. DIMoソリューション
業界別
4/35
本セミナーの概要とPFNソフトウェア群の全体像
l PFNの持つ単⼀基盤であるDeep Intelligence in-Motion (DIMo) を紹介 l 2つのOSSの上で研究開発を⾏い、⽤途別のソリューションを構築
1. SensorBee: エッジからフォグ・クラウドまで統⼀されたデータ処理基盤
2. Chainer: 研究開発から製品化まで使いやすい深層学習フレームワーク
3. DIMoソリューション: 業界・課題別に機能をまとめたパッケージ
1.:IoT向けストリームデータ処理基盤
2.:ディープラーニングフレームワーク
Dee
p In
telli
genc
e in
-Mot
ion
(DIM
o)
タスク別
⾃動⾞
ヘルスケア
製造業 異常検知
映像解析…
???
…
⽬次
l SensorBee:IoT向けストリーム処理エンジン
l Chainer:柔軟性の⾼い深層学習フレームワーク
l DeepIntelligencein-MoKon(DIMo)ソリューション
l まとめ
5/35
SensorBeeTM: IoT向けストリーム処理エンジン
l ストリームデータのETL、特に機械学習ベースのTransformに重点
l エッジでもSQL-likeなクエリで情報を付加・変換・フィルタリング
l 機械学習のモデル構築とそれを⽤いた予測をネイティブにサポート
l 様々な解析ツールや⼊出⼒先(ChainerやFluentd)を組合せて利⽤
6/35
{ "id": 123, "age": "35", "gender": "male", "location": { "x": 252.1, "y": 179.3 }, …}
カメラ
⾞載機器
ルーター
センサー
Fluentd
RDBMS
検索
NoSQL
データ入力元 データ出力先
http://sensorbee.io/
SensorBeeの役割: Extract-Transform-Load (ETL)
l IoTシステムおけるETLの役割
Extract:様々なセンサー・⾮構造データのストリームを受理
☆Transform:時系列⽣データに情報を付与、活⽤可能な形に変換
Load:後段のデータ収集・蓄積・解析処理系にストリームを送出
l 特にエッジにおける機械学習ベースのIntelligentなTransformに注⼒
7/35
l 他のTransformへの⼊⼒
l 他の処理系への⼊⼒
分類・回帰・異常検知(ラベル・スコア付与)
⼈物検出・属性分類 (時刻と位置を列挙)
⽣データ
変換データ
⽣データメタデータ+例:センサー時系列
例:カメラ映像
新しいストリーム
情報が増えたストリーム
他のストリーム処理ソフトウェアとの違い: エッジだけで閉じるリアルタイム処理もサポートl ⼀般のストリーム処理系
JVMベースでクラウド動作
機械学習はオプション扱い
クラウドで発⽣したデータ→疑似リアルタイム処理
エッジで発⽣したデータ→⾼遅延なストリーム処理
8
l SensorBeeの特徴
エッジでも解析処理が動作
機械学習を基本サポート
場所問わず発⽣したその場で疑似リアルタイム処理
データの収集/蓄積コストを抑えつつフル活⽤
エッジ
フォグ
クラウド
⽣データ
⽣データ 変換・判断
エッジ
フォグ
クラウド
⽣データ 変換・判断対応リアルタイム対応
変換データ
SensorBeeの拡張性(1/3)- ユーザー定義による拡張
l UserDefinedState(UDS)
SensorBee内で何らかの状態を直接扱うために組み込まれた仕組み
機械学習モデル(学習された結果)を表すのが主な想定⽤途
⼀般にはセンサーの統計量、イベントのカウンタ、単語の辞書、等
l UserDefinedFuncKon(UDF,ユーザー定義関数)
SensorBee⾃体の機能を拡張する仕組み
機械学習モデルの学習や適⽤もUDFとして実装可能
⼀般的には集計、統計量計算、ルール処理など
9/35
正解情報 モニタリング
SensorBee
UDFUDF
UDS ⽣データ
UDFアクション
学習
適用
モデル
⼊⼒データ データ活⽤先
前処理
後処理
機械学習に特化したストリーム処理系
l ストリーム処理系全体におけるトレードオフ
処理性能:⾼スループット
耐障害性:処理/到達の保証
応答速度:低レイテンシ
状態保持:任意の情報をローカルで持てるか
l SensorBeeは機械学習ベースのETLに特化
収集前にエッジ側の情報抽出・判断するのための機械学習をサポート
UDFにより様々な機械学習アルゴリズムの利⽤を促進
UDSにより外部記憶に頼ることなく機械学習モデルを保持可能
JSON互換なデータモデルにより⾮構造化データを柔軟に表現
スキーマレスをデフォルトとしデータ加⼯の試⾏錯誤コストを低減
10/35
クラウド向けデータ処理系で重視
エッジ向け&機械学習で重視(SensorBeeの狙い)
SensorBeeの拡張性(2/3)- SQL-likeなクエリ⾔語BQL
l BQL:CQL(ConKnuousQueryLanguage)の⽅⾔
SELECT,FROM,AS,WHEREの他にCREATESTREAM,CREATESTATEなど
エンドユーザーはプログラミング無しでも処理フローを記述可能
開発者は新しく作った関数・モデルをBQLのUDF/UDSとして提供可能
l BQLをドメイン特化⾔語(DSL)として⽤意する理由
SQLのデータ操作・処理⾔語としての実績
SQLを扱える⼈の多さ(プログラマーよりも圧倒的に多数)
11/35
CREATE STREAM frames AS SELECT RSTREAM id AS camera_id, frame_id AS id, detect_people("my_detection_model",image) AS regions FROM camera1 [RANGE 1 TUPLES];
BQL例: 機械学習モデルを⽤いたTwitterユーザー属性予測
12/35
# 特徴量抽出CREATE STREAM fv_tweets AS SELECT RSTREAM { "text": nlp_weight_tf(text_vector), "description": nlp_weight_tf(description_vector) } AS feature_vector, age, gender FROM preprocessed_tweets [RANGE 1 TUPLES]; # 正解付きデータ選択CREATE STREAM age_labeled_tweets AS SELECT RSTREAM * FROM fv_tweets [RANGE 1 TUPLES] WHERE age != ""; CREATE STREAM gender_labeled_tweets AS SELECT RSTREAM * FROM fv_tweets [RANGE 1 TUPLES]
WHERE gender != ""; # 年齢予測モデルと性別予測モデルの学習INSERT INTO age_model_trainer FROM age_labeled_tweets; INSERT INTO gender_model_trainer FROM gender_labeled_tweets;
SensorBeeの拡張性(3/3)- Source/Sinkプラグイン
l Sourceプラグイン:CREATESOURCE⽂で使えるデータ⼊⼒の追加
l Sinkプラグイン:CREATESINK⽂で使えるデータ出⼒の追加
l プラグイン化する理由
ユーザーによる拡張とその共有・再利⽤を促進
SensorBeeの主な役割でない部分は積極的に外部連携・利⽤
13/35
センサー
⾞載機器
ルーター
カメラ
DB
NoSQL
DWH
CEP
データ入力元 データ出力先
JSON file
Sourceプラグイン
Fluentd
カメラ専⽤…
JSON file
Fluentd
Kafka…
Sinkプラグインメ
イン
の処
理
クラウド・フォグ・デバイスをまたがるSensorBee
l エッジ機器でも動作するように設計
Go⾔語実装なので多様な環境向けのクロスコンパイルが容易
u x86-32/64、arm32/64、ppc64、mips64
build_sensorbeeコマンド
u 必要なUDF/UDS/Source/Sinkプラグインのみを含めてバイナリを⽣成
cgoでC/C++ライブラリも呼び出し可能
動作例:RaspberryPi3
14/35
フォグ・エッジ
◊
(Embedded)Linux
Linuxベースの機器センサー
コントローラー
アクチュエーター
PLC / OS無し端末
⽬次
l SensorBee:IoT向けストリーム処理エンジン
l Chainer:柔軟性の⾼い深層学習フレームワーク
l DeepIntelligencein-MoKon(DIMo)ソリューション
l まとめ
15/35
Chainer: ⽇本発の深層学習フレームワーク
l Pythonベースの深層学習フレームワーク(2015年6⽉OSS公開)
l 複雑かつ⾼度なニューラルネットワークの研究と実装にフォーカス
l GPUをフル活⽤して他フレームワークに引けをとらない速度を実現
l NVIDIAからも公式にサポート・開発者向けリストに掲載
16/35http://chainer.org/
オリジナル開発者得居誠也
深層学習フレームワークの基礎と差別化ポイント
l 基礎:ニューラルネットワーク(NN)の定義・予測・学習
l 共通要素:多次元配列データ構造、NN構成単位の階層、最適化⼿法
l 差別化ポイント:NN定義の柔軟性、学習速度、スケーラビリティ
17/35
x1
xN
・・ h1
hH・・・・
kM
k1
yM
y1
Forward計算
Backward計算 (誤差逆伝播)
・・
・・
入力 隠れユニット 出力
⽂書
画像
センサー
オブジェクト: チューリップ
異常スコア: 0.35
記事カテゴリ: スポーツ
・・
・・・・
ディープラーニング⼿法の複雑化傾向
l NNは再利⽤可能な基本モジュールの組み合わせで構成
l NNを研究するアプローチには2種類(もしくはその両⽅)
新しい基本モジュールを提案→安定したペース、やがて成熟化
モジュールの新しい組み合わせ⽅・使い⽅を提案→無数に存在
l 新しい応⽤に対して後者のアプローチを適⽤する研究が増加
古いフレームワークでは実装困難、あるいは効率が悪いNN⼿法も増加
18/35
Deep Networks with Stochastic DepthG. Huang et al. 2016
Ladder Network A. Rasmus et. al. 2015
End-to-End Memory Network S. Sukhbaatar et. al. 2015
確率的に構造(深さ)が変化“記憶”と”操作”を表す構造 中間層にも制約を導⼊
Define-by-Run: Chainerの特徴 動的で柔軟なニューラルネットワーク記述l Define-and-Run
既存フレームワークの多くがこの2段階アプローチを採⽤
Define:事前に与えられた定義に従ってネットワーク構造をメモリ上に構築
Run:訓練データを⽤いてForward計算を繰り返し、誤差逆伝播でモデル更新
19/35
Run
計算グラフ 勾配関数
Parameters
正解データ
更新
損失と勾配
Defineモデル定義 計算グラフ 勾配関数
パラメータ
⾃動微分 vs
Define-by-Runモデル定義
計算グラフ 勾配関数
パラメータ
正解データ
更新
動的 変更制約・条件
l Define-by-Run
Chainerが採⽤
事前ではなく訓練時のForward計算で毎回ネットワーク構造を記憶
学習の繰り返し、またはサンプル毎に条件に応じて構造を動的に変更可能
特に複雑なNNの記述が容易&効率的
20/35
Chainerの産業応⽤における優位性
l 新しい応⽤向けの複雑な⼿法を容易に実装でき、作業効率が⾼い
l NVIDIAが主要なフレームワークとしてサポートし性能も向上
l PythonとNumPyとディープラーニングの基礎が分かれば使える
l 適⽤分野を選ばない:画像、ロボット、センサー、強化学習
l (PFNとして) 社内の全プロジェクトで使え、コード再利⽤性が⾼い
NVIDIA CEO基調講演よりNVIDIA cuDNN紹介資料より
深層学習フレームワークの⽐較
21/35
主要実装⾔語 Python C++ Lua Python C++/Python
主要開発者 Preferred Networks / Infrastructure
BVLC Idiap Research Institute, DeepMind
Univ. of Montreal
コミュニティ △(⽇本○) ◎ ○ ○ △〜○
RNN/LSTM対応
◎ × ○ ○ ○
動的ネットワーク構築
○ × × × ×
拡張性 ○ △ ○ ○ ○
ネットワーク設計
⾔語内DSL (Python)
設定ファイル(prototxt)
⾔語内DSL 設定ファイル(YAML)
⾔語内DSL (Python)
特徴 ネットワーク動的構築による省リソース
画像認識の コミュニティと豊富な事例
LuaJITによる⾼速化
⾃動微分機構 多くのフレームワークの基盤
マルチGPU・マルチノードをサポート TensorBoardによる 可視化
Chainerの実⾏速度評価
l 予測(Forwardのみ)はTensorFlowと同程度の速度
l 学習は最⼤2倍低速だが、コンパイル不要であるため、デバッグやチューニングの作業効率はほぼ変わらない
22/35
0
200
400
600
800
1000
1200
AlexNet GoogLeNet VGG-A OverFeat
TorchTensorFlowChainerCaffe(naCve)
0
200
400
600
800
1000
1200
AlexNet GoogLeNet VGG-A OverFeat
TorchTensorFlowChainerCaffe(naCve)
https://github.com/soumith/convnet-benchmarksより引用(4/5現在)。Caffe以外はcuDNN使用。
Forward computation (ミリ秒) Backward computation (ミリ秒)
最新ディープラーニング⼿法のChainer実装例: A Neural Algorithm of Artistic Style (Gatys et al., 2015)
l 名画などに描画スタイルを変化させたアート画像を⽣成
l hfps://github.com/mafya/chainer-gogh 社員の松元が実装、主要なコードは45⾏程度
23/35
コンテンツ画像 (猫)
スタイル 画像
新しい アート 画像
+ =
Main code (45 lines)
⽬次
l SensorBee:IoT向けストリーム処理エンジン
l Chainer:柔軟性の⾼い深層学習フレームワーク
l DeepIntelligencein-MoKon(DIMo)ソリューション
l まとめ
24/35
Deep Intelligence in-Motion (DIMo): 研究開発から製品/サービスへ新しい機能を直結
25/35
SensorBee
機能ライブラリツール群
DIM
oOEM/
ライセンス
R&D プロジェクト
再利⽤
機能追加
広く横展開
パートナー プログラム
限定的に先⾏提供設計⽀援
機能要望
パッケージング
個別成果は出るが スケールしない
サポート
l 研究開発指向ソフトウェア開発の課題
R&Dプロジェクトでは結果が優先され再利⽤性が犠牲になる傾向
良い結果が出ても成果物がそのまま商⽤展開できず再実装が必要
l PFN社内でDIMoを単⼀のソフトウェア基盤として定義 R&Dプロジェクトと商⽤展開をつなぐ位置づけ
R&D初期にSensorBeeベースで機能単位の分割、インタフェースを設計
R&Dプロジェクト中は設計の範疇で⾃由に試⾏錯誤・機能アップ
R&D成果コードを少ない労⼒でパッケージング・商⽤展開可能
DIMoのソフトウェア構成
26/35
Industries (Partners) Industries (PFN-involved)
SensorBeeTM:streamprocessingengineforIoT
MachinelearningDeeplearning(Chainer)
Auto Manufacturing
Self-driving/ADAS
Connected
OpKmizaKon
PredicKvemaintenance
Healthcare
Drugdiscovery
iPScell
Retail
CRM
AdopKmizaKon
Surveillance
AnK-crime
Tracking
Dee
p In
telli
genc
e in
-Mot
ion
(DIM
o)
StaKsKcs
Tool
s
Computervision
Detect/Track/Recognize
Reinforcementlearning
Distributed/Curriculum
Time-seriesRNN/
RepresentaKon
Sensorfusion
MulK-modal
AnnotaKonHawk
Feedback/AcKon
CameraUIkanohi
…
Libr
arie
s
Management
26 フォグ機器 クラウド エッジ機器
DIMo事例(1/3)- 製造業/ロボティクス
27/35http://tinyurl.com/pfn-irex15
国際ロボット展2015のバラ積みデモ (FANUC)FIELD system (FANUC+シスコ+ロックウェル)
l FANUCFIELDsystemにおいてDIMoが機械学習アプリの基盤に
クラウド型ではなくエッジヘビー型のIndustrialIoTプラットホーム
既存製品に機械学習ベースを中⼼とした様々なアプリをオプションで追加可能
l ディープラーニングを⽤いた解析アプリがFIELDの⼤きな利点 例1.3次元の画像認識を⽤いたバラ積みロボットの動作最適化
例2.予防保全に向けたセンサー情報からの故障予兆検知
DIMo事例(2/3)- コネクテッド・カー/⾃動運転
28/35http://tinyurl.com/pfn-ces16
CES2016における自動運転デモ (トヨタ+NTT)
l DIMoを中⼼とした未来のスマート交通インフラの構想 クラウドと⾞だけではなくフォグ層のインフラにもインテリジェンス
全ての層でDIMoが基盤となりつつそれぞれ異なる役割(機能)を担当
l ⾃動運転技術におけるトヨタ⾃動⾞様との取り組み ⾞載カメラ・センサー情報を⽤いた周辺認識技術の共同研究開発
NTT様と3社による強化学習を⽤いた⾃動運転のデモ展⽰
インテリジェンスを内包したスマート交通インフラ
路側デバイス ネットワーク
自動運転車
エッジ
フォグ
クラウド
DIMo事例(3/3)- 映像解析ソリューション
l 監視カメラ映像解析(⼈検出・属性認識・同⼀⼈物推定) NTTコミュニケーションズ様を始め⼤⼿3社で検証実績(2015/7〜)
l ⾞載映像解析 監視カメラ向け技術をベースに⾞載画像⽤に拡張・機能追加
例:Panasonic様との共同研究による駐⾞スペース認識
29/35www.ntt.com/about-us/press-releases/news/article/2016/20160330.html複数カメラ間の同一人物推定 (NTTコム+ALSOK共同実証) 駐車スペース認識(Panasonic)
DIMoの将来展開
30/35
l 既存パートナーシップの推進
製造業・⾞両向け解析アプリケーションの拡充と性能向上
FANUCFIELDsystemへの統合とビジネス展開サポート
l DIMoの解析機能と連携機能の追加
⼈⼯データを⽣成するシミュレータと組み合わせたモデル学習機能
分散協調型の機械学習をサポートする⾼度なモデル統合・管理機能
既存クラウド基盤・サービスとの連携機能
l 他分野への展開可能性
汎⽤的な機能をサブスクリプションサービスのパートナー提供
異常検知DIMoのパッケージングと多くの業界・対象への適⽤
バイオヘルスケア分野へのディープラーニング応⽤
⽬次
l SensorBee:IoT向けストリーム処理エンジン
l Chainer:柔軟性の⾼い深層学習フレームワーク
l DeepIntelligencein-MoKon(DIMo)ソリューション
l まとめ
31/35
ソフトウェア化する世界とネットワーク・ハードウェア
l エッジヘビーコンピューティングにおける新しい技術的チャレンジ ネットワークとソフトウェア、特に機械学習の⾼度な融合 ハードウェアの進化に寄り添った機械学習ソフトウェアの抽象化
ヘテロかつ動的に変化する動作環境における⾃律的な最適化
機械学習ネイティブなプラットホーム・ビジネスモデルを⽀える技術
l ソフトウェアの限界を決めるのはハードウェアとネットワーク
ソフトウェアの限界を変えるのもこれら
居⼼地の良いソフトウェアの領域だけに閉じていては勝負できない
HW/NWの専⾨家も巻き込んで全く新しい技術を⽣み出すことが必要
32/35
PreferredNetworksは新しい仲間を募集しています
最後に
l PreferredNetworksはエッジ・ヘビー・コンピューティング向けソフトウェアを開発、OSS公開し、ソリューション提供しています
l SensorBeeはIoT向けストリーム処理エンジンで、クラウドだけでなくフォグやエッジでの動作を設計されています
l Chainerは研究開発から製品・サービス化までの効率化を重視した柔軟性の⾼いディープラーニングフレームワークです
l DIMoを基盤としてパートナーとの先進的なR&Dを推進しつつ業界/応⽤別のパッケージングでビジネス展開を⾏っています
33/35
PFN participates in Amazon Picking Challenge 2016
34
top related