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
IoTデバイスでMLモデルを動かす技術
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Hirofumi Nakagawa/中河 宏文
March 08, 2022
Technology
230
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
IoTデバイスでMLモデルを動かす技術
Hirofumi Nakagawa/中河 宏文
March 08, 2022
More Decks by Hirofumi Nakagawa/中河 宏文
See All by Hirofumi Nakagawa/中河 宏文
Kanazawa_AI.pdf
hnakagawa
0
230
メルカリ写真検索における Amazon EKS の活用事例と プロダクトにおけるEdgeAI technologyの展望
hnakagawa
5
9.2k
メルカリの写真検索を支えるバックエンド CCSE 2019 version
hnakagawa
0
380
メルカリ写真検索における Amazon EKS の活用事例
hnakagawa
6
29k
メルカリの写真検索を支えるバックエンド
hnakagawa
1
1.2k
Mercari ML Platform
hnakagawa
1
17k
mlct.pdf
hnakagawa
2
2.1k
機械学習によるマーケット健全化施策を支える技術
hnakagawa
0
280
メルカリのマーケット健全化施策を支えるML基盤
hnakagawa
10
9.2k
Other Decks in Technology
See All in Technology
「軸足」は 固定しなくていい - 熱量と強みで描く、しなやかなキャリアの形
kakehashi
PRO
1
260
「ビジネスがわかるエンジニア」とは何か?
ryooob
0
300
Bucharest Tech Week 2026 - Guardians of the Cloud-Native Galaxy
edeandrea
PRO
0
140
秘密度ラベル初心者が第1歩でつまづかないための「設計・運用」ポイント
seafay
PRO
1
480
從開發到部署全都交給 AI:實作 AI 驅動的自動化流程
appleboy
0
160
5分でわかるDuckDB Quack
chanyou0311
3
250
Oracle Cloud Infrastructure:2026年6月度サービス・アップデート
oracle4engineer
PRO
0
300
2026年6月23日 Syncable Tech + Start Python Club にて
hamukazu
0
150
時期が悪い!それでもRaspberry Piを買って遊んで活用するには / 20260627-osc26do-rpi-jikigawarui
akkiesoft
0
800
脱SaaS!FDEを支えるプロビジョニングと分離設計
knih
0
300
AIが自律的に回る開発ループを設計してチーム開発に組み込む
nekorush14
0
130
コミットの「なぜ」を読む
ota1022
0
120
Featured
See All Featured
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
560
Designing for humans not robots
tammielis
254
26k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
590
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Utilizing Notion as your number one productivity tool
mfonobong
4
330
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
4 Signs Your Business is Dying
shpigford
187
22k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.7k
SEO for Brand Visibility & Recognition
aleyda
0
4.6k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
430
Into the Great Unknown - MozCon
thekraken
41
2.6k
Discover your Explorer Soul
emna__ayadi
2
1.1k
Transcript
© 2021 Spicescode All rights reserved. © 2021 Spicescode All rights reserved.
1 Update to a Sustainable Food Industry.
© 2021 Spicescode All rights reserved. © 2021 Spicescode All rights reserved.
自己紹介 中河 宏文 • スパイスコード株式会社CEO • 会社代表としては珍しく?現役でコードも書 いている • エンジニアとしてはデバイスドライバ開発か ら、フロントエンド開発までやる何でも屋 Twitter: hnakagawa14 GitHub: hnakagawa ※写真は10年前
© 2021 Spicescode All rights reserved. © 2021 Spicescode All rights reserved.
会社紹介 2019年08月15日 東京都中央区銀座に当社設立 2019年10月15日 0.2億円の資金調達 2020年02月30日 0.6億円の資金調達 2020年03月15日 調達・購買管理システムリリース 会社名 代表取締役 中河 宏文 所在地 東京都中央区銀座 6丁目13番16号銀座 Wallビル UCF5階 スパイスコード株式会社 事業内容 飲食店向けのプラットフォーム事業 2021年02月08日 2.0億円の資金調達 資本金 2億7,600万円 従業員 11名 2021年08月20日 農林水産省の実証実験に採択(補助金 :0.3億円) 2021年09月01日 FC向けのプラットフォームリリース 2021年11月01日 東京都の実証実験に採択(補助金 :0.1億円) 株主 Coral Capital (500 Startups)、STRIVE (GREE Ventures)、食の未来ファンド (Kemuri Ventures)、他
© 2021 Spicescode All rights reserved. © 2021 Spicescode All rights reserved.
私たちのミッション 美味しい料理は人を幸せにします。それは、言葉や文化の壁を簡単に超える力を持っています。それら を担い、支える産業がフード産業です。しかし、そのフード産業を取り巻く環境は現在、目紛しく変化して います。 外食業界は慢性的な人手不足の状況からコロナの影響によって、業界そのもの自体の存続性が問わ れる状況に陥り、その煽りを受けるように多くの卸売業や生産者たちは、多くの在庫を抱え新たな販路 を開拓する必要に迫られるなど、非常に苦しい状況に陥っています。 そんな中で、我々はテクノロジーの力を使って消費者起点のなめらかで、無駄のない食料生産・供給 ネットワークを社会実装し、飲食店様、強いては「食」の社会インフラを担っていらっしゃる皆様が、より 誇りと自信を持って価値を発揮できる環境を創出したいと考えています。 MISSION フード産業を持続可能な仕組みへアップデートする
© 2021 Spicescode All rights reserved. © 2021 Spicescode All rights reserved.
IoTデバイスでMLモデルを動かす技術
© 2021 Spicescode All rights reserved. © 2021 Spicescode All rights reserved.
IoTデバイスでMLモデルを動かす技術とは? • TensorFlow Lite • Pytorch Mobile • ONNX Runtime • etc… 現在、EdgeデバイスでDNNモデル(computation graph)を動かす為の様々な runtimeが存在します
© 2021 Spicescode All rights reserved. © 2021 Spicescode All rights reserved.
しかし、本日はDNN Runtimeの話はしません
© 2021 Spicescode All rights reserved. © 2021 Spicescode All rights reserved.
NAS(neural architecture search)と リアルタイム処理の話をします。
© 2021 Spicescode All rights reserved. © 2021 Spicescode All rights reserved.
何故NASなのか? • IoT(Edge)デバイスでMLモデルを走らせ る上で様々なトレードオフ問題が存在し ます。 ◦ Accuracy ◦ Latency ◦ Energy consumpition ◦ Model size • 目的のUXを達成するためには、アルゴリ ズム、エンジニアリング両方でそれらの バランスを考慮する必要がある Image credit[1] Image credit[1] オペレーションによって計算コストが違う mobile deviceでサポートしている GPUインターフェースのシェア Image credit[2]
© 2021 Spicescode All rights reserved. © 2021 Spicescode All rights reserved.
Landscape of execution environment ※Facebookのレポートからの引用 如何に目的のUXを実現できるデバイスのカバレッジを広げるか? Image credit[2] Image credit[2]
© 2021 Spicescode All rights reserved. © 2021 Spicescode All rights reserved.
Designing efficient networks Mobile Nets V1, V2 and V3 - Depthwise separable conv を使用し計算量を 低減 - Inverted residual with linear bottleneckを使用 しメモリアクセス量を低減 - 活性化関数にh-swishを使用 - squeeze & excitationを使用した channelのattention - 軽量なfinal blockの採用 etc… Image credit: [4] Image credit: [5] Image credit: [6] Efficient Net - NASを使用して開発 - ネットワークの階層,ネットワークの幅,入力画像のサイズを説明変数とし、 FLOPS,メモリ使用量を制約 とした最適化問題として探索 Image credit: [7]
© 2021 Spicescode All rights reserved. © 2021 Spicescode All rights reserved.
そこでNASを使いデバイスに 最適化されたモデルを生成します
© 2021 Spicescode All rights reserved. © 2021 Spicescode All rights reserved.
Designing efficient networks: Automated ways - 通常のモデルトレーニング - アーキテクチャ・サーチで探索 &トレーニング デバイス向けでは、探索時にLossにlatency等のペナルティ項を追加するなどして、 ターゲットデバイスにfitしたモデル、acuraccyとlatencyのバランスが取れたモデルを 探索
© 2021 Spicescode All rights reserved. © 2021 Spicescode All rights reserved.
NAS手法例 MnasNet[8] (RL-Based) Image credit: [8] Image credit: [9] FBNet[9] (Differentiable) - 探索空間から数千のmodelをsamplingする - 巨大な探索空間から探索できるが、巨大な 計算機リソースが必要になる - DARTSベースの探索手法 - differentiableベースの探索のため探索は軽量 だが、スーパーネットをGPUメモリに載せる 必要がある為、GPUメモリの使用量が問題と なりbatch sizeを上げられない - Binary Gateを挟むことによってGPUメモリ使用 量問題を解決 - Binary Gateはαパラメータを元にサンプリングを 行い決定 ProxylessNAS [10] (Differentiable)
© 2021 Spicescode All rights reserved. © 2021 Spicescode All rights reserved.
前半まとめ • IoT(Edge)デバイス上ではlatencyなどaccuracy以外の要素も重要となる • 目的のUXを実現するために、accuracyやlatency等のバランスを取る必要が ある ◦ 必ずしもAccuracyが最優先ではない • 個々のデバイス特性に合わせてDNNモデルを作るのは大変 ◦ NASで探索を行うと良い
© 2021 Spicescode All rights reserved. © 2021 Spicescode All rights reserved.
ここから後半
© 2021 Spicescode All rights reserved. © 2021 Spicescode All rights reserved.
リアルタイム処理(MediaPipe)について
© 2021 Spicescode All rights reserved. © 2021 Spicescode All rights reserved.
実践的にはNASよりよっぽど重要です(汗
© 2021 Spicescode All rights reserved. © 2021 Spicescode All rights reserved.
MediaPipeとは • リアルタイム処理を行う為の cross platformなPipeline framework • PipelineをGraphとして記述 • 効率良くPipelineを動作させる為の様々な 仕組みをサポート Image credit: [10]
© 2021 Spicescode All rights reserved. © 2021 Spicescode All rights reserved.
何が良いのか? カメラ入力 リサイズ等の 前処理 物体認識 画面描画 処理の流れ 33ms以上時間がかかる処理 30fpsで動作 • 通常カメラの入力スピード(例: 30fps)よりその後の処理 の方が時間がかかる • 愚直にシーケンシャル処理を行うとリアルタイム処理がで きない Image credit: [10]
© 2021 Spicescode All rights reserved. © 2021 Spicescode All rights reserved.
パイプライン・並列処理 カメラ入力 リサイズ等の 前処理 物体認識 画面描画 処理の流れ • 各工程の処理をパイプライン制御 • 並列処理はパイプライン・スケジューラが管理 ◦ パイプラインが詰まらないように後段の処理優先度を高く制御 • 処理が間に合わない場合は適当にデータを捨てる処理をパイプラインに入れ る事ができる カメラ入力 リサイズ等の 前処理 物体認識 画面描画 カメラ入力 リサイズ等の 前処理 物体認識 画面描画
© 2021 Spicescode All rights reserved. © 2021 Spicescode All rights reserved.
フレームワーク・アーキテクチャ パイプラインはGraphとして定義され以下の要素から構成さ れる • Nodes ◦ 処理が行われる所、入出力portを持つ ◦ 実装上はCalculatorと呼ばれる • Packet ◦ Graphを流れるデータを表す単位 ◦ Timestampによって順序が管理される • Streams ◦ Graphのedgeを表す ◦ PacketのTimestampを元にした 所謂priority queueな実装 • Side packets ◦ Timestampを考慮しないedge • Packet Ports ◦ Nodeの入出力port ◦ Nodeを結ぶ型情報が定義された物 Image credit: [11]
© 2021 Spicescode All rights reserved. © 2021 Spicescode All rights reserved.
まとめ DNNモデル (再掲) • IoT(Edge)デバイス上ではlatencyなどaccuracy以外の要素も重要となる • 目的のUXを実現するために、accuracyやlatency等のバランスを取る必要が ある ◦ 必ずしもAccuracyが最優先ではない • 個々のデバイス特性に合わせてDNNモデルを作るのは大変 ◦ NASで探索を行うと良い リアルタイム処理 • MediaPipeが強力なフレームワーク • パイプライン並列処理を簡単に記述できる • 実践的にはNASなんかよりこっちが重要
© 2021 Spicescode All rights reserved. © 2021 Spicescode All rights reserved.
Thank you all for coming today