Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
エッジデバイスでディープラーニング! AWSを活用したエッジデバイスマネジメントの紹介/ aw...
Search
toshitanian
March 10, 2018
Technology
1
2.1k
エッジデバイスでディープラーニング! AWSを活用したエッジデバイスマネジメントの紹介/ aws-edge-device-deeplearning
toshitanian
March 10, 2018
Tweet
Share
More Decks by toshitanian
See All by toshitanian
機械学習プラットフォーム でのDocker利用事例 / DevSumiAbeja
toshitanian
1
540
nvidia-jetson-x-deep-learning
toshitanian
0
1.5k
Amazon Kinesis Video Streams × Deep Learning
toshitanian
1
6.8k
急成長スタートアップのシステムの裏側 / ABEJA Innovation Meetup
toshitanian
0
1.3k
Docker入門 - Ruby on RailsアプリケーションをDockerで動かしてみる - / Introduction to Docker
toshitanian
7
2.9k
Other Decks in Technology
See All in Technology
Larkご案内資料
customercloud
PRO
0
600
Ask! NIKKEIの運用基盤と改善に向けた取り組み / NIKKEI TECH TALK #30
kaitomajima
1
450
日経電子版 x AIエージェントの可能性とAgentic RAGによって提案書生成を行う技術
masahiro_nishimi
1
290
『衛星データ利用の方々にとって近いようで触れる機会のなさそうな小話 ~ 衛星搭載ソフトウェアと衛星運用ソフトウェア (実物) を動かしながらわいわいする編 ~』 @日本衛星データコミニティ勉強会
meltingrabbit
0
120
これからSREになる人と、これからもSREをやっていく人へ
masayoshi
6
4.1k
All you need to know about InnoDB Primary Keys
lefred
0
120
まだ間に合う! エンジニアのための生成AIアプリ開発入門 on AWS
minorun365
PRO
4
580
リーダブルテストコード 〜メンテナンスしやすい テストコードを作成する方法を考える〜 #DevSumi #DevSumiB / Readable test code
nihonbuson
11
5.8k
滅・サービスクラス🔥 / Destruction Service Class
sinsoku
6
1.5k
Moved to https://speakerdeck.com/toshihue/presales-engineer-career-bridging-tech-biz-ja
toshihue
2
550
FastConnect の冗長性
ocise
1
9.6k
Kubernetes x k6 で負荷試験基盤を開発して 負荷試験を民主化した話 / Kubernetes x k6
sansan_randd
2
730
Featured
See All Featured
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
Building an army of robots
kneath
302
45k
For a Future-Friendly Web
brad_frost
176
9.5k
Testing 201, or: Great Expectations
jmmastey
41
7.2k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
45
2.3k
The Pragmatic Product Professional
lauravandoore
32
6.4k
A designer walks into a library…
pauljervisheath
205
24k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Designing for Performance
lara
604
68k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
129
19k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
175
51k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
40
2k
Transcript
エッジデバイスでディープラーニング! AWSを活用したエッジデバイスマネジメント JAWS DAYS 2018 #jd2018_c #jawsdays ABEJA, Inc Toshiya
Kawasaki
河崎 敏弥 @toshitanian ABEJA, Inc. Platform Division Software Engineer •
Development on cloud • IoT devices • Containers • Edge computing
ABEJA Platform 1):4*$ "-803-% $ :#&3803-% *P5،ؙثُؒ٦ة٦ *P5إٝ؟٦ 傀㶷ךر٦ة ➭ךفٓحز
ؿؓ٦ي #JH%BUB رفٗ؎ 湊鋔 ؒحآ"* 䱿锷 ؙٓؐس"* 㷕统ה䱿锷 ♳ך*P5 ♴ך*P5 取得 蓄積 学習 デプロイ 推論・再学習
Object detection on an edge device
Edge features % *P5،ؙثُؒ٦ة٦ *P5إٝ؟٦ ךر٦ة ➭ךفٓحز ؿؓ٦ي #JH%BUB رفٗ؎
湊鋔 ؒحآ"* 䱿锷 ؙٓؐس"* 㷕统ה䱿锷 ♳ך*P5 ♴ך*P5 •クラウドからエッジデバイスへデプロイ • アプリケーション • 学習したモデル •クラウドからエッジデバイスの監視 • メトリクス • システムログ
Edge use cases 自動検品 危険検知 商品仕分け
アジェンダ •エッジデバイスでのディープラーニングの必要性 •デバイスマネジメントに使えるAWSサービスの紹介 •AWS Greengrassでのディープラーニング利用を考える
ディープラーニング運用のプロセス 取得 蓄積 学習 デプロイ 推論・再学習
取得 蓄積 学習 デプロイ 推論・再学習 •データの収集 •学習データセットの作成 •データの前処理 •教師あり学習の場合はアノテーション作業 ディープラーニング運用のプロセス
•次のプロセスを繰り返す •モデルの設計・構築 •ハイパーパラメータの設定 •GPUを使ったモデルの学習 •学習済みモデルとパラメータのバージョン管理 取得 蓄積 学習 デプロイ 推論・再学習
ディープラーニング運用のプロセス
•学習したモデルを推論環境にデプロイ・利用 •実環境でのモデルの状況を確認・再学習 •データを蓄積して精度の改善 •適用対象別にモデルを個別に最適化 取得 蓄積 学習 デプロイ 推論・再学習 ディープラーニング運用のプロセス
IoTセッション?
取得 蓄積 学習 デプロイ 推論・再学習 クラウド クラウド or エッジ 要件によって使い分け
ディープラーニング運用のプロセス
IoT での推論環境 エッジを使うべき状況 Cloud Edge (エッジと比較すると)高レイテンシ Latency 低レイテンシ 常時インターネット接続が必要 Connectivity
オフラインでも実行可能 データ量が多い場合はクラウドに送れない Bandwidth 処理済みの少量データのみクラウドに送れる 全てのデータをクラウドに送る *Privacy ローカル環境からデータが出ない *学習データはクラウドに蓄積が必要 取得 蓄積 学習 デプロイ 推論・再学習
エッジデバイス上での推論に必要な事 •デバイスに対する定期的なモデルの更新 •デバイスへの直接接続はできない(NAT超え) •モデル毎のライフサイクルに依存 •デバイスの状態の把握 •モデルの実環境での稼働状況は重要(精度/パフォーマンス) •デバイスの故障 = システム停止 =
業務の停止 •セキュア・シンプルなデバイス管理 •プロビジョニング時に必要なデバイス固有の情報は減らしたい •個別のデバイスから情報が抜かれても全体としてはセキュアに
AWSサービスを使って解決
AWSサービスを使った機能 Device ShadowとECRでモデルをデプロイ Parameter Storeで共通設定を管理 証明書ベースでセキュアにAWSサービスを利用 MQTTとIoT Ruleでログ収集
Device ShadowとECRでモデルをデプロイ •デバイス上でAWS IoTと接続するエージェントを動かしている •モデルをデプロイする時はupdateShadowでデバイスに通知 •NAT配下のデバイスへも更新をPushできる •デバイスがオフラインの時は通知されないので、復帰時にデバイスが取りに行く •エージェントがECRからイメージを引っ張ってくる Device Amazon
ECR AWS IoT updateShadow updateShadow docker images pull
MQTTとIoT Ruleでログ収集 ・・・ Device Kinesis Data Streams publish AWS IoT
Rules •デバイス上のfluentdがDockerコンテナのログを収集 •デバイス毎に決められたMQTT TopicへPublish •IoT Policyでデバイスごとに特定のTopicしかPub/Subできないように制御 •IoT Rulesを使ってKinesis Data Streamsへ流し込む •その後はよしなに… AWS IoT MQTT Broker
Parameter Storeで共通設定を管理 Device AWS System Manager Parameter Store putParameter getParameter
•全デバイスに適用したい共通パラメータがある •デバイス管理で使うAPIサーバのURLやAPIキー •Device Shadow → 一つの設定を全デバイスで共有するのには向かない •Thing Groups attributes → AWS APIのリクエスト数制限がある •Parameter StoreにKV形式で設定を保存 •全デバイスが定期的にチェック
証明書ベースでセキュアAWSサービスを利用 Device AWS IoT credential provider IAM Role assumeRole IAM
Policy •デバイス上のエージェントからAWSサービスへのアクセスが必要 •ECR / SSM / KMS •AWS IoT credential providerを使えばassumeRoleする事が可能 •AWS IoTで利用している証明書付きでHTTPエンドポイントにリクエスト •指定したのIAM Roleの権限を持つ一時クレデンシャルをもらえる •証明書以外の個別情報無し
AWS Greengrass ?
"84(SFFOHSBTTͱ wσόΠε্ͰͷίϯϐϡʔςΟϯάڥΛఏڙ wσόΠε্Ͱ"84-BNCEBΛಈ͔ͤΔ w.-*OGFSFODFͰΫϥυ͔ΒϞσϧΛಉظ wFUD wSF*OWFOUͰൃද w݄ʹ(" w.-ؔ࿈ػೳSF*OWFOUͰൃද wݱ࣌Ͱ1SFWJFX
AWS Greengrass 使わないの? 使いたい。
AWS Greengrass 僕らが使えない理由 •ローカルリソースアクセス機能が無かった •DL用途だと、GPUやカメラへのアクセスにアクセスしたい •re:Invent 2017後から使えるようになった •フレームワークまで含めた管理・デプロイをするのが難しい •DLフレームワーク・依存ライブラリも含めてデプロイしたい •DLフレームワークは依存するライブラリが多い(OpenCV/Boost/cuda/etc.)
•それぞれバージョンアップが頻繁→アップデートにより環境がしばしば壊れる •Lambdaでデプロイできる最大容量は50MB •デプロイパッケージにライブラリ類を含めるのは現実的では無い
まとめ •エッジデバイス上で推論をするにはそれなりのツラミがある •AWSのサービスを組み合わせる事で管理を実現できる •AWS IoT •Amazon ECR •etc. •AWS Greengrassは多くのユースケースで有効
•今後のアップデートに期待
ABEJA Wantedly