Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Software for Edge Heavy Computing @ INTEROP 2016 Tokyo

3,364 views

Published on

「エッジ・ヘビー・コンピューティングを実現するソフトウェア」
INTEROP 2016 Tokyoで発表した資料です。

Published in: Technology
  • Be the first to comment

Software for Edge Heavy Computing @ INTEROP 2016 Tokyo

  1. 1. エッジ・ヘビー・コンピューティング を実現するソフトウェア @ INTEROP 2016, Makuhari, June 9th, ⽐⼾ 将平 Chief Research Officer Preferred Networks, Inc.
  2. 2. IoTは「賢いクラウドとConnectedなモノ達」を超える “Software Is Eating The World”の延⻑ l  既存IoTソリューションの中⼼=クラウド基盤が持つ弱点 ̶  データ量に伴って通信コストが爆発 ̶  クラウド経由のストリーム解析処理はリアルタイム処理に不向き ̶  ⽣データの外部送信への抵抗やセキュリティ問題の懸念 l  ITベンダーのクラウド基盤+通信モジュール、だけで⼗分か? ̶  製品を持つ会社が主導しベンダーやキャリアを巻き込み外部提供する流れ u  FANUC、GE、Bosch、Siemens、Honeywell… u  エコシステムはスタートアップにも開放される(主にアプリ) ̶  IoTプラットホーム戦略の主導権をITベンダーが持つのは難しい ̶  エンドユーザーまでのデリバリー困難、汎⽤IoTクラウドは作りこみ不⾜ エッジ・ヘビー・コンピューティングはIoTクラウドの弱点を補完 2/35
  3. 3. エッジ・ヘビー・コンピューティングで求められること 1.  クラウドだけでなく、フォグやエッジでも動作 2.  Analyzeだけでなく、Sense / OrganizeやAcKon / Feedbackもカバー 3.  バッチ処理ではなく、ストリーム処理・リアルタイム処理が中⼼ 4.  無理な機能追加でなく、機械学習(特に深層学習)を標準サポート 5.  オールインワンでなく、業界・⽤途毎のコンパクトなパッケージ 3 Sense Organize Analyze Act Sense Organize Analyze Act Sense Organize Analyze Act Feedback エッジ フォグ クラウド 1 2 3 4 機械学習 (深層学習) 5
  4. 4. 3. DIMoソリューション 業界別 4/35 本セミナーの概要とPFNソフトウェア群の全体像 l  PFNの持つ単⼀基盤であるDeep Intelligence in-Motion (DIMo) を紹介 l  2つのOSSの上で研究開発を⾏い、⽤途別のソリューションを構築 1.  SensorBee: エッジからフォグ・クラウドまで統⼀されたデータ処理基盤 2.  Chainer: 研究開発から製品化まで使いやすい深層学習フレームワーク 3.  DIMoソリューション: 業界・課題別に機能をまとめたパッケージ 1. : IoT向けストリームデータ処理基盤 2. : ディープラーニングフレームワーク DeepIntelligence
 in-Motion(DIMo) タスク別 ⾃動⾞ ヘルスケア 製造業 異常検知 映像解析 … ??? …
  5. 5. ⽬次 l  SensorBee: IoT向けストリーム処理エンジン l  Chainer: 柔軟性の⾼い深層学習フレームワーク l  Deep Intelligence in-MoKon (DIMo) ソリューション l  まとめ 5/35
  6. 6. 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/
  7. 7. SensorBeeの役割: Extract-Transform-Load (ETL) l  IoTシステムおけるETLの役割 ̶  Extract: 様々なセンサー・⾮構造データのストリームを受理 ̶  ☆Transform: 時系列⽣データに情報を付与、活⽤可能な形に変換 ̶  Load: 後段のデータ収集・蓄積・解析処理系にストリームを送出 l  特にエッジにおける機械学習ベースのIntelligentなTransformに注⼒ 7/35 l  他のTransformへの⼊⼒ l  他の処理系への⼊⼒ 分類・回帰・異常検知 (ラベル・スコア付与) ⼈物検出・属性分類 (時刻と位置を列挙) ⽣データ 変換データ ⽣データ メタデータ + 例:センサー時系列 例:カメラ映像 新しいストリーム 情報が増えた
 ストリーム
  8. 8. 他のストリーム処理ソフトウェアとの違い: エッジだけで閉じるリアルタイム処理もサポート l  ⼀般のストリーム処理系 ̶  JVMベースでクラウド動作 ̶  機械学習はオプション扱い ̶  クラウドで発⽣したデータ→ 疑似リアルタイム処理 ̶  エッジで発⽣したデータ→ ⾼遅延なストリーム処理 8 l  SensorBeeの特徴 ̶  エッジでも解析処理が動作 ̶  機械学習を基本サポート ̶  場所問わず発⽣したその場で 疑似リアルタイム処理 ̶  データの収集/蓄積コストを 抑えつつフル活⽤ エッジ フォグ クラウド ⽣データ ⽣データ 変換・判断 エッジ フォグ クラウド ⽣データ 変換・判断対応 リアルタイム対応 変換データ
  9. 9. SensorBeeの拡張性(1/3)- ユーザー定義による拡張 l  User Defined State (UDS) ̶  SensorBee内で何らかの状態を直接扱うために組み込まれた仕組み ̶  機械学習モデル(学習された結果)を表すのが主な想定⽤途 ̶  ⼀般にはセンサーの統計量、イベントのカウンタ、単語の辞書、等 l  User Defined FuncKon (UDF, ユーザー定義関数) ̶  SensorBee⾃体の機能を拡張する仕組み ̶  機械学習モデルの学習や適⽤もUDFとして実装可能 ̶  ⼀般的には集計、統計量計算、ルール処理など 9/35 正解情報 モニタリング SensorBee UDF UDF UDS ⽣データ UDF アクション 学習 適用 モデル ⼊⼒データ データ活⽤先 前処理 後処理
  10. 10. 機械学習に特化したストリーム処理系 l  ストリーム処理系全体におけるトレードオフ ̶  処理性能:⾼スループット ̶  耐障害性:処理/到達の保証 ̶  応答速度:低レイテンシ ̶  状態保持:任意の情報をローカルで持てるか l  SensorBeeは機械学習ベースのETLに特化 ̶  収集前にエッジ側の情報抽出・判断するのための機械学習をサポート ̶  UDFにより様々な機械学習アルゴリズムの利⽤を促進 ̶  UDSにより外部記憶に頼ることなく機械学習モデルを保持可能 ̶  JSON互換なデータモデルにより⾮構造化データを柔軟に表現 ̶  スキーマレスをデフォルトとしデータ加⼯の試⾏錯誤コストを低減 10/35 クラウド向けデータ処理系で重視 エッジ向け&機械学習で重視 (SensorBeeの狙い)
  11. 11. SensorBeeの拡張性(2/3)- SQL-likeなクエリ⾔語BQL l  BQL: CQL (ConKnuous Query Language)の⽅⾔ ̶  SELECT, FROM, AS, WHEREの他にCREATE STREAM, CREATE STATEなど ̶  エンドユーザーはプログラミング無しでも処理フローを記述可能 ̶  開発者は新しく作った関数・モデルを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];
  12. 12. 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;
  13. 13. SensorBeeの拡張性(3/3)- Source/Sinkプラグイン l  Sourceプラグイン:CREATE SOURCE⽂で使えるデータ⼊⼒の追加 l  Sink プラグイン:CREATE SINK⽂で使えるデータ出⼒の追加 l  プラグイン化する理由 ̶  ユーザーによる拡張とその共有・再利⽤を促進 ̶  SensorBeeの主な役割でない部分は積極的に外部連携・利⽤ 13/35 センサー ⾞載機器 ルーター カメラ DB NoSQL DWH CEP データ入力元 データ出力先 JSON file Sourceプラグイン Fluentd カメラ専⽤ … JSON file Fluentd Kafka … Sinkプラグインメインの処理
  14. 14. クラウド・フォグ・デバイスをまたがるSensorBee l  エッジ機器でも動作するように設計 ̶  Go⾔語実装なので多様な環境向けのクロスコンパイルが容易 u  x86-32/64、arm32/64、ppc64、mips64 ̶  build_sensorbeeコマンド u  必要なUDF/UDS/Source/Sinkプラグインのみを含めてバイナリを⽣成 ̶  cgoでC/C++ライブラリも呼び出し可能 ̶  動作例: Raspberry Pi 3 14/35 フォグ・エッジ ◊ (Embedded) Linux Linuxベースの機器 センサー コントローラー アクチュエーター PLC / OS無し端末
  15. 15. ⽬次 l  SensorBee: IoT向けストリーム処理エンジン l  Chainer: 柔軟性の⾼い深層学習フレームワーク l  Deep Intelligence in-MoKon (DIMo) ソリューション l  まとめ 15/35
  16. 16. Chainer: ⽇本発の深層学習フレームワーク l  Pythonベースの深層学習フレームワーク(2015年6⽉OSS公開) l  複雑かつ⾼度なニューラルネットワークの研究と実装にフォーカス l  GPUをフル活⽤して他フレームワークに引けをとらない速度を実現 l  NVIDIAからも公式にサポート・開発者向けリストに掲載 16/35http://chainer.org/ オリジナル
 開発者 得居誠也
  17. 17. 深層学習フレームワークの基礎と差別化ポイント l  基礎:ニューラルネットワーク(NN)の定義・予測・学習 l  共通要素:多次元配列データ構造、NN構成単位の階層、最適化⼿法 l  差別化ポイント:NN定義の柔軟性、学習速度、スケーラビリティ 17/35 x 1 x N ・ ・ h 1 h H ・・・・ k M k 1 y M y 1 Forward計算 Backward計算 (誤差逆伝播) ・・ ・・ 入力 隠れユニット 出力 ⽂ 書 画像 センサー オブジェクト:
 チューリップ 異常スコア:
 0.35 記事カテゴリ:
 スポーツ ・ ・ ・・・・
  18. 18. ディープラーニング⼿法の複雑化傾向 l  NNは再利⽤可能な基本モジュールの組み合わせで構成 l  NNを研究するアプローチには2種類(もしくはその両⽅) ̶  新しい基本モジュールを提案 → 安定したペース、やがて成熟化 ̶  モジュールの新しい組み合わせ⽅・使い⽅を提案 → 無数に存在 l  新しい応⽤に対して後者のアプローチを適⽤する研究が増加 ̶  古いフレームワークでは実装困難、あるいは効率が悪いNN⼿法も増加 18/35 Deep Networks with Stochastic Depth
 G. Huang et al. 2016 Ladder Network 
 A. Rasmus et. al. 2015 End-to-End Memory Network
 S. Sukhbaatar et. al. 2015 確率的に構造(深さ)が変化“記憶”と”操作”を表す構造 中間層にも制約を導⼊
  19. 19. 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. 20. 20/35 Chainerの産業応⽤における優位性 l  新しい応⽤向けの複雑な⼿法を容易に実装でき、作業効率が⾼い l  NVIDIAが主要なフレームワークとしてサポートし性能も向上 l  PythonとNumPyとディープラーニングの基礎が分かれば使える l  適⽤分野を選ばない:画像、ロボット、センサー、強化学習 l  (PFNとして) 社内の全プロジェクトで使え、コード再利⽤性が⾼い NVIDIA CEO基調講演より NVIDIA cuDNN紹介資料より
  21. 21. 深層学習フレームワークの⽐較 21/35 主要実装⾔語 Python C++ Lua Python C++/Python 主要開発者 Preferred Networks / Infrastructure BVLC Idiap Research Institute, DeepMind Univ. of Montreal Google コミュニティ △(⽇本○) ◎ ○ ○ △〜○ RNN/LSTM対 応 ◎ × ○ ○ ○ 動的ネット ワーク構築 ○ × × × × 拡張性 ○ △ ○ ○ ○ ネットワーク 設計 ⾔語内DSL (Python) 設定ファイル (prototxt) ⾔語内DSL 設定ファイル (YAML) ⾔語内DSL (Python) 特徴 ネットワーク動 的構築による省 リソース 画像認識の コミュニティ と豊富な事例 LuaJITによる⾼速 化 ⾃動微分機構 多くのフレー ムワークの基 盤 マルチGPU・マル チノードをサポート TensorBoardによる 可視化
  22. 22. Chainerの実⾏速度評価 l  予測(Forwardのみ)はTensorFlowと同程度の速度 l  学習は最⼤2倍低速だが、コンパイル不要であるため、 デバッグやチューニングの作業効率はほぼ変わらない 22/35 0 200 400 600 800 1000 1200 AlexNet GoogLeNet VGG-A OverFeat Torch TensorFlow Chainer Caffe (naCve) 0 200 400 600 800 1000 1200 AlexNet GoogLeNet VGG-A OverFeat Torch TensorFlow Chainer Caffe (naCve) https://github.com/soumith/convnet-benchmarksより引用(4/5現在)。Caffe以外はcuDNN使用。 Forward computation (ミリ秒) Backward computation (ミリ秒)
  23. 23. 最新ディープラーニング⼿法の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)
  24. 24. ⽬次 l  SensorBee: IoT向けストリーム処理エンジン l  Chainer: 柔軟性の⾼い深層学習フレームワーク l  Deep Intelligence in-MoKon (DIMo) ソリューション l  まとめ 24/35
  25. 25. Deep Intelligence in-Motion (DIMo): 研究開発から製品/サービスへ新しい機能を直結 25/35 SensorBee 機能ライブラリ ツール群 DIMo OEM/ ライセンス R&D プロジェクト 再利⽤ 機能追加 広く横展開 パートナー プログラム 限定的に先⾏提供 設計⽀援 機能要望 パッケージング 個別成果は出るが スケールしない サポート l  研究開発指向ソフトウェア開発の課題 ̶  R&Dプロジェクトでは結果が優先され再利⽤性が犠牲になる傾向 ̶  良い結果が出ても成果物がそのまま商⽤展開できず再実装が必要 l  PFN社内でDIMoを単⼀のソフトウェア基盤として定義 ̶  R&Dプロジェクトと商⽤展開をつなぐ位置づけ ̶  R&D初期にSensorBeeベースで機能単位の分割、インタフェースを設計 ̶  R&Dプロジェクト中は設計の範疇で⾃由に試⾏錯誤・機能アップ ̶  R&D成果コードを少ない労⼒でパッケージング・商⽤展開可能
  26. 26. DIMoのソフトウェア構成 26/35 Industries (Partners)Industries (PFN-involved) SensorBeeTM: stream processing engine for IoT Machine learning Deep learning (Chainer) Auto Manufacturing Self-driving /ADAS Connected OpKmizaKon PredicKve maintenance Healthcare Drug discovery iPS cell Retail CRM Ad opKmizaKon Surveillance AnK-crime Tracking DeepIntelligence
 in-Motion(DIMo) StaKsKcs Tools Computer vision Detect/Track/ Recognize Reinforcement learning Distributed/ Curriculum Time-series RNN / RepresentaKon Sensor fusion MulK-modal AnnotaKon Hawk Feedback/AcKon Camera UI kanohi … Libraries Management 26フォグ機器 クラウドエッジ機器
  27. 27. DIMo事例(1/3)- 製造業/ロボティクス 27/35 http://tinyurl.com/pfn-irex15 国際ロボット展2015のバラ積みデモ (FANUC) FIELD system (FANUC+シスコ+ロックウェル) l  FANUC FIELD systemにおいてDIMoが機械学習アプリの基盤に ̶  クラウド型ではなくエッジヘビー型のIndustrial IoTプラットホーム ̶  既存製品に機械学習ベースを中⼼とした様々なアプリをオプションで追加可能 l  ディープラーニングを⽤いた解析アプリがFIELDの⼤きな利点 ̶  例1. 3次元の画像認識を⽤いたバラ積みロボットの動作最適化 ̶  例2. 予防保全に向けたセンサー情報からの故障予兆検知
  28. 28. DIMo事例(2/3)- コネクテッド・カー/⾃動運転 28/35 http://tinyurl.com/pfn-ces16 CES2016における自動運転デモ (トヨタ+NTT) l  DIMoを中⼼とした未来のスマート交通インフラの構想 ̶  クラウドと⾞だけではなくフォグ層のインフラにもインテリジェンス ̶  全ての層でDIMoが基盤となりつつそれぞれ異なる役割(機能)を担当 l  ⾃動運転技術におけるトヨタ⾃動⾞様との取り組み ̶  ⾞載カメラ・センサー情報を⽤いた周辺認識技術の共同研究開発 ̶  NTT様と3社による強化学習を⽤いた⾃動運転のデモ展⽰ インテリジェンスを内包したスマート交通インフラ 路側デバイス ネットワーク 自動運転車 エッジ フォグ クラウド
  29. 29. DIMo事例(3/3)- 映像解析ソリューション l  監視カメラ映像解析(⼈検出・属性認識・同⼀⼈物推定) ̶  NTTコミュニケーションズ様を始め⼤⼿3社で検証実績(2015/7〜) l  ⾞載映像解析 ̶  監視カメラ向け技術をベースに⾞載画像⽤に拡張・機能追加 ̶  例: Panasonic様との共同研究による駐⾞スペース認識 29/35 www.ntt.com/about-us/press-releases/news/article/2016/20160330.html 複数カメラ間の同一人物推定 (NTTコム+ALSOK共同実証) 駐車スペース認識(Panasonic)
  30. 30. DIMoの将来展開 30/35 l  既存パートナーシップの推進 ̶  製造業・⾞両向け解析アプリケーションの拡充と性能向上 ̶  FANUC FIELD systemへの統合とビジネス展開サポート l  DIMoの解析機能と連携機能の追加 ̶  ⼈⼯データを⽣成するシミュレータと組み合わせたモデル学習機能 ̶  分散協調型の機械学習をサポートする⾼度なモデル統合・管理機能 ̶  既存クラウド基盤・サービスとの連携機能 l  他分野への展開可能性 ̶  汎⽤的な機能をサブスクリプションサービスのパートナー提供 ̶  異常検知DIMoのパッケージングと多くの業界・対象への適⽤ ̶  バイオヘルスケア分野へのディープラーニング応⽤
  31. 31. ⽬次 l  SensorBee: IoT向けストリーム処理エンジン l  Chainer: 柔軟性の⾼い深層学習フレームワーク l  Deep Intelligence in-MoKon (DIMo) ソリューション l  まとめ 31/35
  32. 32. ソフトウェア化する世界とネットワーク・ハードウェア l  エッジヘビーコンピューティングにおける新しい技術的チャレンジ ̶  ネットワークとソフトウェア、特に機械学習の⾼度な融合 ̶  ハードウェアの進化に寄り添った機械学習ソフトウェアの抽象化 ̶  ヘテロかつ動的に変化する動作環境における⾃律的な最適化 ̶  機械学習ネイティブなプラットホーム・ビジネスモデルを⽀える技術 l  ソフトウェアの限界を決めるのはハードウェアとネットワーク ̶  ソフトウェアの限界を変えるのもこれら ̶  居⼼地の良いソフトウェアの領域だけに閉じていては勝負できない ̶  HW/NWの専⾨家も巻き込んで全く新しい技術を⽣み出すことが必要 32/35 Preferred Networksは新しい仲間を募集しています
  33. 33. 最後に l  Preferred Networksはエッジ・ヘビー・コンピューティング向け ソフトウェアを開発、OSS公開し、ソリューション提供しています l  SensorBeeはIoT向けストリーム処理エンジンで、クラウドだけで なくフォグやエッジでの動作を設計されています l  Chainerは研究開発から製品・サービス化までの効率化を重視した 柔軟性の⾼いディープラーニングフレームワークです l  DIMoを基盤としてパートナーとの先進的なR&Dを推進しつつ 業界/応⽤別のパッケージングでビジネス展開を⾏っています 33/35
  34. 34. PFN participates in Amazon Picking Challenge 2016 34

×