SlideShare a Scribd company logo
Edge Computing
「あらゆるものが考える」世界を作るのに必要な技術
@hokekiyoo
2019.09.07 AIchi勉強会 Vol. 1
Ref
• 前職 : 機械学習・データ分析の研究
• 退職エントリが一大ムーブメントとなりましたね
• 現職 : 作業着着て、CTOやってます
• 工場向けのIoTシステム作ってます
• メインの業務は通訳です
• 趣味 : ブログやってます
• 旅とか、理系ネタとか、勉強の記録とか
• 『理系ネタを全力で』やった結果、本が出ました
• 『一人アドベントカレンダー』やりがちです
About Me.
本 : 身近な数学―数学で世界への見方が変わる!
ブログ : PROCRASIST
Edge Computing 「あらゆるものが考える」世界を作るのに必要な技術
Ref
IoT : Internet of Things
M2M:モノ同士で完結P2P:ヒト同士で完結
IoT
あらゆるものが
つながる
最近流行りの「IoT」ってなに?どう使うの?
エッジコンピューティング
あらゆるものが
つながる
あらゆるものが
考える
エッジコンピューティングとは
数百kB~数MB
推論
1,2,3,4,2, … , 3,4,1,2,3 統計処理
100個のデータ
{名前 : hokekiyoo} 匿名化
数kB
ねこ
平均: 2,5, 標準偏差: 1.3
2つの統計量
{xxx : yyy}
アップロードするデータ取得したデータ
エッジコンピューティング vs 普通のコンピューティング
精度
リソース 耐久性
コスト
帯域
電力
拘束条件付き最適化
エッジコンピューティングに必要なもの
処理の
高速化
遠隔での
モデル更新
エッジコンピューティングに必要なもの
処理の
高速化
遠隔での
モデル更新
モデルの軽量化と
ハードウェア最適化
Ref
精度とともに増えるモデルのパラメータ
エッジでは、
高速かつ精度良く動かすチューニングが必要
SQLML : Convolutional Network
画像分類タスクでの誤答率と層の数
• ソフトウェア側の工夫 : モデル軽量化
• 枝刈り (pruning)
• 量子化 (quantization)
• 蒸留 (distillation)
• ※モデルを軽くすることで、正規化され、汎化性能があがるという話もある
1. 推論処理の高速化
Ref LeapMindのディープラーニングモデル圧縮技術による低消費電力なシステム上での高速推論
SageMaker Neo
Day21. エッジでディープラーニングを可能にする「モデル圧縮」技術
• ハードウェアに最適化させる
• Amazon SageMaker Neo
• 学習モデルはそのままで、実行デバイスに合わせて最適化してコンパイル
• FPGAを使うとかもある
Ref
枝刈り (pruning)
関係の薄い
結合を0にする
入出力いずれか
0のところを消去
Learning both Weights and Connections for Efficient Neural Networks (NIPS2015)
9倍の圧縮率で
同等orそれ以上の精度
量子化 (quantization)
重みを1 or -1
にする
※重みを量子化する方法
(i) Deterministic
ቊ
+1 if 𝑤 > 0
−1 otherwise
(ⅱ) Probablistic
ቊ
+1 with 𝑝 = 𝜎(𝑤)
−1 with 1 − 𝑝
𝜎 = max 0, min 1,
𝑥 + 1
2
※ハードシグモイドという
Ref BinaryConnect: Training Deep Neural Networks with binary weights during propagations
Ref
蒸留(Distillation)
Teacher : 強いモデル
Student : 弱いモデル
入力データ
ねこ
いぬ
へび
確率的に結果を算出
(クロスエントロピーなど)
結果を予測
(確率論的 or 決定論的)
ねこ
いぬ
へび
2つの結果を合わせて
誤差を算出
Back Propagationにより重みを更新
Teacherの推論結果からわかることを
暗黙知としてStudentに伝える!
例 : 犬と猫は割と近い etc…
Distilling the Knowledge in a Neural Network
Deep Learningにおける知識の蒸留 | Code Craft House
Ref
• Intel製のオープンソース
• 裏はPyTorchで動いている
• yamlで軽量化のスケジューリングができる
• 例 : 「30 回目から100回目にかけて枝刈りをして。」
• ドキュメントもかなり充実していて、読むだけで勉強になる
モデル軽量化専門のライブラリ : Distiller
DistillerでDeepLearningのモデルを軽量化: Gradual Pruning編
github : Distiller
yamlファイル
やってみた(Distiller Example)
version: 1
pruners:
conv1_pruner:
class: 'AutomatedGradualPruner'
initial_sparsity : 0.15
final_sparsity: 0.3
weights: [conv1.weight]
(中略)
policies:
- pruner:
instance_name : 'conv1_pruner'
starting_epoch: 1
ending_epoch: 100
frequency: 2
(後略)
conv1の重みを
1回目から100回目まで
2回に1回ずつ
0.3になるまで
枝刈りしてね
before after
NNZ : Number of Non Zero
エッジコンピューティングに必要なもの
処理を
軽くする
遠隔での
モデル更新
エッジの推論と
クラウドの学習の分離
なぜ、分ける必要があるのか?
はじめから完璧を目指すより
変化に強い仕組みを作るほうが良い
実世界の要請
学習をどんどん進めて精度を上げて
季節によって気温が変わるから、
その考慮もして
あ、でもコストは抑えてね
つよいコンピュータが必要
つよくないコンピュータ つよいコンピュータ
推論
学習
データを転送
モデルを転送
推論
推論
• 物理世界と結合
• センサーにより、現実世界のデータを集められる
• 柔軟な設計
• 複数端末から一斉にデータを集めて学習する
• 自信がない画像だけuploadして再学習とか
• 異常検知 : 時期によって正常系が変化するときとかのモデルのチューニング
• エッジはリアルタイム、クラウド部分はバッチ処理
• 画像をアップロードするのは深夜にすると、コストが下がるとか
こんなことができるようになる
クラウドの力を借りよう
つくったもの
結果を通知
Ans : ネコ
自信がない結果は
保存、再度勉強
再学習して
つよくなる
ラズパイ
で推論
写真を撮る
• Raspi環境作り
• Raspiカメラの設定
• greengrassの導入
• DRL(DeepLearning Runtime)のインストール
• AWSの環境作り
• Greengrass, AWS IoTの設定
• Lambdaの設計、AWS IoTとの紐付け
• S3バケットの作成
• 学習モデルの作成
• Lv0. pre-trainedモデルを持ってくる(SageMakerNeo)
• Lv1. 作ったモデルをupdate
• モデルを作る(PyTorch)
• モデルをコンパイルする(SageMakerNeo:Compile Job)
• モデルをデプロイする(S3, aws greengrass)
• Lv2. モデルの軽量化(Distiller)
• Lv3 アノテーションの仕組みを作る(自作 or Ground Truth)
• Lv4. 再学習・コンパイル・デプロイを一気通貫(SageMaker)
レシピ
cf ※今回は遠隔デプロイにAWSのGreengrassを使ったが、 githubでも遠隔デプロイできるようになるらしい
• ネットワークつながってる?
• エッジで動いているLambdaのログを見るためには、sshでつないでおきたい
• greengrasssdが起動しているか確認する。起動時に立ち上がるようにして
おくと良い
• エッジのLambdaから外にはアクセスできない?requestはできないので一
度AWSまで飛ばしてからうんぬんすることになる
• まず、エラーログがどこに出るかわからない。それを把握する。
• greengrass Lambdaなら/var/…以下
• AWS IoTはデプロイ結果に情報が出てくる。
• ただしgreengrasssdが起動していないと永遠に進行中
• Lambdaはcloudwatchから
• 各種要件を満たすかちゃんとチェックする
• さすがに”Imcompatible”はどうしようもない…
• pytorchでinputの形式を探るにはverboseをTrueにすればよい
• ラズパイの容量もチェックしておく。起動できなくなっちゃう
• エッジ端末のアーキテクチャ
• Pythonのバージョンは正しい?
• インストールするソフトウェア(DRL, )のバージョンは正しい?
• AWS sagemakerでは使えないバージョンがある(pytorch1.1.0は未対応、
座して待つ)
• エッジは一昔遅れがちかもしれない
• センサやカメラを選ぶときに、その端末に適合しているかをチェックする
めちゃエラーでた
使った時間の8割位はエラーの対処 ※そのうち出たエラー集を記事にしておきます。
• 権限周りはAWSにっとって一番面倒で、一番重要
• permissionとかAuthとかでるときはこれ
• IAMポリシーを把握する
• greengrassに証明書を埋め込むことを忘れずにね
• 通信(MQTT) : greengrassのsubscriptionへの登録を忘れずに
• Lambda->raspiリソース : greengrassのリソースへの登録を忘れずに
• greengrassからS3へのアクセス権限を付与しないと学習モデル引っ張っ
てこれないよ。firehoseとかもそう
• 文字コード/json serializeはエンジニア能力いる
• 画像をMQTTで送るので、エンコード/デコードしたい時が来る
• base64わからん
• np.float()はだめなのでfloatにキャストしてやろう
• python2はデフォルトで日本語できないよ。
• AWSの使い方わからん
• 特有のエラーがでるので、トラブルシューティンか見る
• Lambdaの使い方がわからないと、はじめアップロードすらままならなかっ
たりする
• sagemakerも、それ様に「型」が決まっていたりする
• greengrassでLambdaを使ってもらうところ
• Document読もうな・英語は辛いけど
つくったアーキテクチャ
AWS Cloud
greengrass
Edge Client
IoT Core Lambda
sagemaker sagemaker
neo
S3
つくったアーキテクチャ
写真
遠隔デプロイ・
モデルの更新
ローカルで推論
クラウドに結果を送信
特定の推論結果
で発火
自信のあるタスクは
Slackに通知
自信のないデータを
再学習用に保存 学習
モデル軽量化
モデル保存
エッジ端末向け
にコンパイル
AWS Cloud
greengrass
Edge Client
IoT Core Lambda
sagemaker sagemaker
neo
S3
demo
AWS Cloud
今後の目標
greengrass
Edge Client
• IoT/エッジコンピューティングは拘束条件付最適化
• ITの総合格闘技
• 札束で殴るのが難しい
• ゆえに楽しい、アイディア勝負みたいなところもある
• 適材適所で、リソースをうまく使う
• AWSなどのクラウドを用いると良い
• 物理デバイス×AIは来るぞ
• 現実世界との結合がIoTの肝
• エッジコンピューティングが広がる土壌ができつつある
• あらゆるものがつながる⇨あらゆるものが考える
まとめ
ご清聴ありがとうございました!
※詳しくはwebで

More Related Content

PDF
Word2vecの並列実行時の学習速度の改善
PPTX
卒論執筆・スライド作成のポイント
PPTX
CVPR 2017 報告
PDF
研究室における研究・実装ノウハウの共有
PDF
研究の基本ツール
PDF
High-impact Papers in Computer Vision: 歴史を変えた/トレンドを創る論文
PDF
効率的学習 / Efficient Training(メタサーベイ)
PDF
捗るリコメンドシステムの裏事情(ハッカドール)
Word2vecの並列実行時の学習速度の改善
卒論執筆・スライド作成のポイント
CVPR 2017 報告
研究室における研究・実装ノウハウの共有
研究の基本ツール
High-impact Papers in Computer Vision: 歴史を変えた/トレンドを創る論文
効率的学習 / Efficient Training(メタサーベイ)
捗るリコメンドシステムの裏事情(ハッカドール)

What's hot (20)

PDF
ECCV2020 Oral論文 完全読破(1/2)
PDF
Caffeのデータレイヤで夢が広がる話
PDF
cvpaper.challengeについて
PPTX
関西Cvprml勉強会2017.9資料
PDF
【CVPR 2020 メタサーベイ】Vision & Other Modalities
PDF
Deep Learning技術の最近の動向とPreferred Networksの取り組み
PDF
東北大学講義資料 実世界における自然言語処理 - すべての人にロボットを - 坪井祐太 
PDF
Cross-modality meta-survey of dataset
PDF
優れた問いを見つける(中京大学講演)
PDF
How to Develop Experiment-Oriented Programs
PDF
先端技術とメディア表現1 #FTMA15
PDF
【CVPR 2020 メタサーベイ】Neural Generative Models
PDF
ディープラーニング最近の発展とビジネス応用への課題
PDF
ECCV2020 オーラル論文完全読破 (2/2)
PDF
20180115_東大医学部機能生物学セミナー_深層学習の最前線とこれから_岡野原大輔
PPTX
CVPR2017 参加報告 速報版 本会議 1日目
PDF
Deep learning を用いた画像から説明文の自動生成に関する研究の紹介
PDF
LDA等のトピックモデル
PDF
ヤフー音声認識サービスでのディープラーニングとGPU利用事例
PPTX
CVPR2017 参加報告 速報版 本会議 4日目
ECCV2020 Oral論文 完全読破(1/2)
Caffeのデータレイヤで夢が広がる話
cvpaper.challengeについて
関西Cvprml勉強会2017.9資料
【CVPR 2020 メタサーベイ】Vision & Other Modalities
Deep Learning技術の最近の動向とPreferred Networksの取り組み
東北大学講義資料 実世界における自然言語処理 - すべての人にロボットを - 坪井祐太 
Cross-modality meta-survey of dataset
優れた問いを見つける(中京大学講演)
How to Develop Experiment-Oriented Programs
先端技術とメディア表現1 #FTMA15
【CVPR 2020 メタサーベイ】Neural Generative Models
ディープラーニング最近の発展とビジネス応用への課題
ECCV2020 オーラル論文完全読破 (2/2)
20180115_東大医学部機能生物学セミナー_深層学習の最前線とこれから_岡野原大輔
CVPR2017 参加報告 速報版 本会議 1日目
Deep learning を用いた画像から説明文の自動生成に関する研究の紹介
LDA等のトピックモデル
ヤフー音声認識サービスでのディープラーニングとGPU利用事例
CVPR2017 参加報告 速報版 本会議 4日目
Ad

Similar to Edge Computing 「あらゆるものが考える」世界を作るのに必要な技術 (20)

PDF
Kubeflowで何ができて何ができないのか #DEvFest18
PPTX
IoTハンズオン・レクチャー資料
PDF
私とOSSの25年
PDF
コンピューターが扱う浮動小数点の話
PDF
Introduction to Chainer (LL Ring Recursive)
PDF
MLCT#12 使われる機能目指して 測ったり試したり
PDF
Chainer on Azure 2 年の歴史
PPTX
なぜコンピュータを学ばなければならないのか 21世紀の君主論
PDF
opensource and accessibility (Dec2000) Part 2
PDF
Cytoscapeの現状とCyberinfrastructure
PDF
Introduction to NetOpsCoding#2
PDF
【メタサーベイ】基盤モデル / Foundation Models
PDF
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
PDF
2012-03-08 MSS研究会
PDF
インフラエンジニアがk8sでアプリを作って見えた今後のインフラ
PDF
Using Elixir for Factory Automation - how to execute ladder logic
PPTX
Lt7 circle ci hugo
PDF
Tuning, etc.
PDF
The Economics of a Cloud Computer 「クラウドコンピュータ」の経済学 - 楽天テクノロジーカンファレンス講演
PPTX
Python による 「スクレイピング & 自然言語処理」入門
Kubeflowで何ができて何ができないのか #DEvFest18
IoTハンズオン・レクチャー資料
私とOSSの25年
コンピューターが扱う浮動小数点の話
Introduction to Chainer (LL Ring Recursive)
MLCT#12 使われる機能目指して 測ったり試したり
Chainer on Azure 2 年の歴史
なぜコンピュータを学ばなければならないのか 21世紀の君主論
opensource and accessibility (Dec2000) Part 2
Cytoscapeの現状とCyberinfrastructure
Introduction to NetOpsCoding#2
【メタサーベイ】基盤モデル / Foundation Models
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
2012-03-08 MSS研究会
インフラエンジニアがk8sでアプリを作って見えた今後のインフラ
Using Elixir for Factory Automation - how to execute ladder logic
Lt7 circle ci hugo
Tuning, etc.
The Economics of a Cloud Computer 「クラウドコンピュータ」の経済学 - 楽天テクノロジーカンファレンス講演
Python による 「スクレイピング & 自然言語処理」入門
Ad

Recently uploaded (8)

PDF
【QYResearch】グローバルコネクタ市場の動向と将来展望に関する詳細な分析報告
PDF
データモデラー視点で語るデータマネジメント入門~組織のデータ活用を成功に導くために~
PDF
【QYResearch】グローバル磁性材料産業チェーンの構造分析と市場動向の詳細解説
PDF
【QYResearch】グローバル農業機械市場の動向分析と成長戦略に関する総合調査報告
PDF
XCMSを用いた質量分析データ処理_BioCAsia2021_yamamoto.pdf
PDF
【初心者向け】生成AI SimonW/LLMとOllama・llamafile無料APIでコマンドラインをAI革命するセミナー。CPUでもGPUでも。Ne...
PDF
【QYResearch】人形ロボット産業の市場構造と今後の発展方向に関する分析レポート
PDF
【QYResearch】急拡大する医療機器市場における主要企業の動向と競争環境分析
【QYResearch】グローバルコネクタ市場の動向と将来展望に関する詳細な分析報告
データモデラー視点で語るデータマネジメント入門~組織のデータ活用を成功に導くために~
【QYResearch】グローバル磁性材料産業チェーンの構造分析と市場動向の詳細解説
【QYResearch】グローバル農業機械市場の動向分析と成長戦略に関する総合調査報告
XCMSを用いた質量分析データ処理_BioCAsia2021_yamamoto.pdf
【初心者向け】生成AI SimonW/LLMとOllama・llamafile無料APIでコマンドラインをAI革命するセミナー。CPUでもGPUでも。Ne...
【QYResearch】人形ロボット産業の市場構造と今後の発展方向に関する分析レポート
【QYResearch】急拡大する医療機器市場における主要企業の動向と競争環境分析

Edge Computing 「あらゆるものが考える」世界を作るのに必要な技術