848 Views
December 23, 24
スライド概要
自動運転AI開発を加速させるCo-MLOps MEETUP発表資料を公開しました!
アーカイブ映像はこちら
https://www.youtube.com/live/JpPbhA4wpgQ?si=eeVv7i0SdPDLaFJG
Edge AIプロセッサを活用したデータ共有のためのEdge匿名化技術
発表概要
本発表では、Edge AIを活用したリアルタイムデータ匿名化手法について説明します。Edge AIにより、データをクラウドに送信せずにデバイス上で匿名化処理を実行することで、低遅延かつ高いプライバシー保護を実現します。この手法により、個人情報や機密データを守りながら、データの収集や活用が可能になります。また、匿名化AIをテーマに、エッジ実装の最適化手法についても詳しく紹介し、Edge AI技術のさらなる活用方法を提案します。 さらに、NVIDIA OrinやHailo-8など異なるハードウェア特性を考慮し、それぞれのデバイスに最適化を施す手法についても解説します。
講演者: 梅田 弾(ティアフォー)
1989年東京都生まれ。2015年早稲田大学基幹理工研究科情報理工専攻博士後期課程修了。早稲田大学 助手で並列コンパイラの研究、電気メーカ研究所でビックデータ可視化の研究、自動車メーカで自動運転AIの研究開発を従事。その後、2023年よりティアフォーにてLow Power AIを目指したAI実装技術に関して研究開発に従事し、現在はFuture SolutionチームにてCo-MLOps におけるAI開発をリードしている。早稲田大学 招聘研究員を兼務。 専門はEdge AI、Deep Neural Network、並列処理。
Edge AIプロセッサを活用したデータ共有のためのEdge 匿名化技術 株式会社ティアフォー 梅田 弾 1
これまでのMeetupの発表 自動運転におけるAIコンピューティング ▷Edge AIのためのDNN推論処理の最適化 Speaker 自動運転におけるAIコンピューティングⅡ ▷Hailo-8上の低消費電力Edge AI 梅田 弾 (Dan Umeda) Co-MLOps AIエンジニア 趣味(本業)は植物の新種創造 経歴: 早稲田大学基幹理工研究科情報理工専攻博士後期課程修了 ~2016 早稲田大学 基幹理工学部助手 車載ソフトウェア向けの並列化コンパイラの研究に従事 ~2017 電気メーカ研究所 ビックデータ可視化に関する研究開発に従事 ~2022 自動車メーカ研究所 自動運転AIの研究開発に従事 2019~ 早稲田大学 客員講師・ 招聘研究員(継続中) 並列化コンパイラの研究に従事 2023~ ティアフォー DNN高速化やEdge AIの研究開発に従事 2023/10~ ティアフォー Future Solution チーム Co-MLOpsにおけるAI開発に従事、AIサブチームをリード 2
Co-MLOpsにおけるAIの役割 1. 本日の議題 Active Learning 4. Image Anonymization 2. Reference AI Uncertainty Estimation 3. Auto-label Low Power Efficient Perception Engine Image Blurring / Face Swapping Ensemble of Foundation Models and Large-scale Models 3
Edge AIプロセッサを活 用したデータ共有のため のEdge匿名化技術 1) 2) 3) 4) 匿名化の重要性とEdge匿名化 Edge匿名化アーキテクチャ Edge匿名化学習手法 Edge匿名化デプロイのための最適化 a) NVIDIA Orin b) Hailo-8 4
匿名化の重要性とEdge匿名化 5
AIの進化に伴うデータの重要性 ● Scaling Law ○ 学習時間、パラメータ数、データ数でAI性能が決まる Scaling Laws for Neural Language Models, Kaplan el al. ● Data-Centric AI ○ Model-Centricなアプローチには限界があり、 Data-Centric AIにシフト ■ AI開発ではデータの改善(品質・多様性)による効果が大きい https://landing.ai/data-centric-ai AI技術の進展と共に、大規模かつ高品質なデータに対する需要が高まっている 6
世界のプライバシー規制 ➢ ADAS/ADのようなアプリケーションではグローバルなデータ収集が必要 ○ 各国の法規制に準拠しなければならない Personal Information Protection and Electronic Documents Act : PIPEDA (カナダ ) General Data Protection Regulation : GDPR (EU) Data Protection Law (エジプト ) Protection of Personal Information Act : POPIA (南アフリカ ) ● Personal Information Protection Law of the People's Republic of China : PIPL (中国 ) 個人情報保護法 (日本 ) California Consumer Privacy Act : CCPA (US カリフォルニア ) Personal Data Protection Act : PDPA (タイ ) GDPR (EU) ○ adequate, relevant and limited to what is necessary in relation to the purposes for which they are processed (‘data minimisation’); : Article 5 (c) https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32016R0679#d1e3074-1-1 ● 罰金 : 最大2000万ユーロまたは全世界年間売上高の4%のいずれか 急速な技術発展とグローバル化により、個人データの保護とプライバシー規制の遵守はかつてないほど重要になっている 7
自動運転におけるプライバシー保護 ● ● ● カメラから収集される車のナンバープレートや人の顔などが個人情報に 該当 ○ 一般的にプライバシー情報は撮像対象の許可が必要 (最低でも)カメラデータの匿名化が必要 GDPRにおけるデータ保護の原則の遵守(第5条)では技術的に可能な 限り速い段階で匿名化しなければならないと記載 => 解釈によっては、エッジ上で匿名化しなれければならない(?) ○ pseudonymising personal data as soon as possible with due regard to the state of the art, to make sure that controllers and processors are able to fulfil their data protection obligations. (78) ■ https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A320 16R0679#d1e3074-1-1
Co-MLOpsにおける匿名化処理 DRS DRS Record Upload Anonymize in cloud Quality Check クラウドベース匿名化 camera + - クラウドのリッチな計算資源を使えるため、比較的容易 GDPRの第5条の解釈によっては懸念が生じる クラウドで大規模な計算処理が必要になる Anonymize on the edge Record Upload Quality Check エッジベース匿名化 camera + + エッジデバイス上のリアルタイム処理 (HW制約) プライバシーリスクの低減 GDPRの第5条を遵守するためにはエッジ匿名化が必要な可能性が存在 クラウドでの処理負荷軽減ができる グローバルなデータ収集においてコスト・リスクを最小限に抑えるために、クラウド・エッジ両面での匿名化技術を研究開発中 9
Co-MLOpsにおけるEdge匿名化処理 「生成AIを活用した画像匿名化技術とEdge 環境に向けた最適化」にて紹介 DRS DRS Record Upload Anonymize in cloud Check Quality camera + - クラウドのリッチな計算資源を使えるため、比較的容易 GDPRの第5条に違反する可能性が存在 Edge Anonymization クラウドで大規模な計算処理が必要になる Anonymize on the edge Record Face Swapping Upload camera + + エッジデバイス上のリアルタイム処理 (HW制約) プライバシーリスクの低減 GDPRの第5条を遵守するためにはエッジ匿名化が必要な可能性が存在 クラウドでの処理負荷軽減ができる Check Quality 限られた計算資源の中で如何に高精度 かつ低レイテンシに匿名化するかが鍵 => 本発表ではEdge AI化の関連する要 素技術について詳述する 10
Edge匿名化のための最適化手法 トレードオフ 高精度化 [Edge匿名化アーキテクチャ ] -Dual Detector [Edge匿名化学習手法 ] -大規模データによる事前学習 高速化 [Edge匿名化デプロイのための最適化 ] -Dynamic Batch化 @ NVIDIA Orin GPU -Sparse化 @ NVIDIA Orin -GPU/DLA実装 @ NVIDIA Orin -Dataflowを考慮した実装 @Hailo-8
Edge匿名化アーキテクチャ 12
Single Shot Detectorによるアプローチ License Plate / Head Detector width = 2880 計算量少ない 小物体に弱い 高解像度が必要(それでもダウンサンプリング必要) 5MP/8MPのような高解像度カメラを活かしにくい YOLOのような一般的なア プローチ height = 1860 Resize (Bilinear) width = 640 height = 640 1. Single Shot Detector + - 現時点でのテクノロジーではEdge上で高解像度でのAI処理は難しい => 一般的なベンチマークでは640x640のような低解像度にダウンサンプ リングされる (1/13に情報量が縮小される) Single Shot Detectorではリサイズに伴う遠方や少物体の精度が課題 13
Two Stage Detectorによるアプローチ + + - 2. Two-Stage Based Detector Vehicle / Person Detector crop & resize 少物体に強い 高解像度カメラを有効活用しやす い 計算量多い (実行時間が物体数 に比例する ) License Plate / Head Detector width = 2880 width = 320 height= 320 Resize (Bilinear) … … height = 1860 Crop 少物体の情報量消失なし 少物体や遠方精度に優れているが、群衆のあるエリアでは適用が困難 14
Dual Detectorによるアプローチ + + 3. Dual Privacy Detector (DPD) Primary Privacy Detector (PPD) width = 2880 + 少物体に強い 計算量調整可能 (後段DNNの物体数に制限 ) 冗長化 Secondary Privacy Detector (SPD) crop & resize 画像全体から検出するモデルと物体画像から検出するモデルで冗長化 width = 320 height= 320 Resize (Bilinear) … … height = 1860 Crop 少物体の情報量消失なし Two-stage目のDetectorのN数に制限をかけることで、現実的な時間で少物体への精度維持ができる 15
Edge匿名化パイプラインの比較 1. Single Shot Detector License Plate / Head Detector 少物体精度 速度 冗長性 Single Shot 👌 ✅ 👎 Two-Stage ✅ 👎 👎 Dual ✅ 👌 ✅ 2. Two-Stage Based Detector Vehicle / Person Detector License Plate / Head Detector ✅: Excellent 👌: Average 👎: Poor 3. Dual Privacy Detector (DPD) Primary Privacy Detector (PPD) Secondary Privacy Detector (SPD) 16
Dual Privacy Detectorによるアプローチ 3. Dual Privacy Detector (DPD) 1x3x960x960, 46.71GFLOPS Primary Privacy Detector (PPD) Nx3x320x320, Nx5.45GFLOPS + + + Secondary Privacy Detector (SPD) 少物体に強い 冗長処理が可能 計算量調整可能 (後段DNNの物体数に制限 ) 実行時間が支配的な後 段の最適化手法につい て述べる 17
Edge匿名化学習手法 18
Primary Privacy Detector (PPD) Edge匿名化学習ワークフロー 初期学習データセットなし Secondary Privacy Detector (SPD) 自動運転向けデータセット 匿名化向け大規模 自動生成データセット (~1000万枚) 匿名化向けデータセット 匿名化向けデータセット (a) スクラッチ学習 (a) スクラッチ学習 匿名化向けデータセット (c) ファインチューニング (b) 転移学習 (b) 転移学習 (c) ファインチューニング 19
Primary Privacy Detector (PPD) Edge匿名化学習ワークフロー 初期学習データセットなし 自動運転向けデータセット 匿名化向けデータセット 匿名化向けデータセット (a) スクラッチ学習 (a) スクラッチ学習 Secondary Privacy Detector (SPD) 匿名化向け大規模 自動生成データセット (~1000万枚) 匿名化向けデータセット (c) ファインチューニング (b) 転移学習 (b) 転移学習 (c) ファインチューニング 20
Primary Privacy Detector (PPD) Edge匿名化学習ワークフロー 初期学習データセットなし 自動運転向けデータセット 匿名化向けデータセット 匿名化向けデータセット (a) スクラッチ学習 Secondary Privacy Detector (SPD) 匿名化向け大規模 自動生成データセット (~1000万枚) 匿名化向けデータセット (c) ファインチューニング (b) 転移学習 大規模データの 活用により精度改善 (a) スクラッチ学習 (b) 転移学習 (c) ファインチューニング 21
Edge匿名化デプロイのための最適化 22
Edge匿名化のDeploy Jetson NVIDIA Orin GPU Graphics Processing Unit NPU Neural Processing Unit NVIDIA Jetson AGX Orin Seriesより引用 Hailo-8 NPU Neural Processing Unit Hailo社ホームページ より引用 各種異なるハードウェア(GPU/NPU)特性を活かしてそれぞれ最適化する 23
Edge匿名化デプロイのための最適化 NVIDIA Orin実装 24
Jetson Orin [評価条件] JetPack : 5.1.1 Power Model : MAXN Jetson Clock : enable TensorRT使用 TOPS : Tera Operations Per Second INT8のピーク性能を指す https://developer.nvidia.com/blog/delivering-server-class-performance-at-the-edge-with-nvidia-jetson-orin/ より引用 AI Peak Performance ・GPU : 170 TOPS (Sparse INT8), 85 TOPS (Dense INT8) ・DLA0 : 52.5 TOPS (Sparse INT8), 26.25 TOPS (Dense INT8) ・DLA1 : 52.5 TOPS (Sparse INT8), 26.25 TOPS (Dense INT8) GPUに加えて、 2つのDLAを持つ Orin上の基本的な最適化については以下参照ください 自動運転におけるAIコンピューティング Edge AIのためのDNN推論処理の最適化 Orinが持つGPUとDLAを有効活用するために、バッチ最適化や Sparse化について紹介する 25
Edge匿名化プロファイル ➢ Primary Privacy Detector (PPD) Single Batch実行 Edgeモデルの軽い計算の場合、 Orinが持つ高い並列性を活用できていない可能性が高い Secondary Privacy Detector (SPD) 30物体に匿名化を実施した例 細切れにGPU処理が発生し、 GPUワークロードに無駄が存在 26
Multi-Batch最適化 ➢ Vehicle / Person / License Plate/ Head Detector Single Batch実行 Edgeモデルの軽い計算の場合、 Orinが持つ高い並列性を活用できていない可能性が高い ➢ License Plate / Head Detector 30物体に匿名化を実施した例 細切れにGPU処理が発生し、 GPUワークロードに無駄が存在 Multi Batch実行 GPUワークロードを大幅に改善 27
Batch最適化における評価 ⇓実行時間比較 ⇓実行効率比較 マルチバッチ化 GPUの実行効率向上を確認 28
Batch最適化における評価(GPU vs DLA) ⇓実行時間比較 ⇓実行効率比較 - Batch Sizeが1のときはGPU/DLA間で実行時間の差がない※ - Batch Sizeが増えると GPUが高い性能を出している (3.32x) ※評価対象のDNNがGPUが持つ高い並列性を活かしきれていないと考えられる - DLAの場合はBatch Sizeが1で高い計算効率を出している - GPUの場合はBatch Sizeが64を超えた段階で DLAの処理効率を 超える GPU : 軽量なDNNはMulti-Batchを使う DLA : Single Batchで十分 29
Static Batch vs Dynamic Batch 本当は実行時毎に Batchサイズを変えたい・・・ ➢ Static Multi Batch実行 8物体に匿名化を実施した例 B=30でEngine生成をした場合、物体数に限らず 30回分の必要以上に無駄な計算が発生 ➢ Dynamic Multi Batch実行 8物体に匿名化を実施した例 ※Dynamic BatchはGPU のみサポート B=-1でDynami BatchでEngine生成をした場合、物体数に応じて計算時間が変化 30
Dynamic Batching on GPU in : 1 x 320 x 320 x 3 <設定条件> minShapes : 1x3x320x320 optShapes : 32x3x320x320 maxShapes : 64x3x320x320 -GPUの高い並列性を引き出せない B=1 Single-batch in : 32 x 320 x 320 x 3 + GPUの高い並列性を引き出せる - 常時Nバッチ分の計算が必要 => レイテンシ増加 B=N Static Multi-batch in : N x 320 x 320 x 3 僅かに性能が落ちるが、動的にバッチサイズの変更が可能 シングルバッチに対して、 3.72xの計算効率改善 + GPUの高い並列性を引き出せる + 入力の数に応じてバッチ数を 1〜Nに調整可能 … B=1 to N Dynamic Multi-batch 31
2:4 Structured Sparsity on Ampere Tensor Cores ● Structure ○ Unstructured (高速化しにくい ) ○ Structured (高速化しやすい ) ● Granularity ○ Fine-grained ○ Vector-level (coarse-grained) ○ Kernel-level (coarse-grained) ○ Filter-level (coarse-grained) ○ 精度下がりやすさ ☓ ACCELERATING SPARSITY IN THE NVIDIA AMPERE ARCHITECTURE より引用 Exploring the Regularity of Sparse Structure in Convolutional Neural Networksより引用 速度・精度の維持のトレードオフの観点で Vector-level (2:4)で StructuredなSparsityをNVIDIAのTensor Coresでサポートされている Ampere世代のTensor Coresから2:4 Structered Sparsityを ハードウェアサポートしている 合致するフォーマットの場合、理論的には 2倍高速化可能 32
CNNの場合、Input Channel方向に 2:4の割合でSparseにする Sparse学習 0.78 0.70 1.78 -1.65 … L1 normの低い重 みを2/4の割合で ゼロ化 0.78 0.70 1.78 -1.65 … 0 0 1 1 … -1.51 -1.16 -0.07 0.93 … 1 1 0 0 … -1.51 -1.16 -0.07 0.93 … -1.42 -0.58 -0.53 -1.80 … -1.42 -0.58 -0.53 -1.80 … 1 0 0 1 … 1.37 0.90 0.66 -1.81 … 1.37 0.90 0.66 -1.81 … 1 0 0 1 … … … … … … … … … … … … … … … … Dense Weights Sparse Weights Sparse Mask re-trainにより重みをアッ プデート 2:4 Structured Sparsityのパターンに合わせて学習する必要あり Sparse Maskはキープする 0.78 0.70 1.93 -1.88 … 0 0 1 1 … -1.54 -1.33 -0.07 0.93 … 1 1 0 0 … -1.70 -0.58 -0.53 -1.89 … 1 0 0 1 … 1.21 0.90 0.66 -2.35 … 1 0 0 1 … … … … … … … … … … … Sparsity in INT8: Training Workflow and Best Practices for NVIDIA TensorRT Acceleration Sparse Weights Sparse Mask 33
Exploring the Regularity of Sparse Structure in Convolutional Neural Networksより引用 Sparse学習フロー Sparse化によって精度が上がることもある 匿名化向け大規模 自動生成データセット (~1000万枚) 匿名化向けデータセット Finetune Dense Model 匿名化向けデータセット Fine-tune while maintaining sparsity Sparsification as Fine-tuning ファインチューニングしたモデルからスパース学習 匿名化向け大規模 自動生成データセット (~1000万枚) 2:4 spasify + re-train 匿名化向け大規模 自動生成データセット (~1000万枚) 匿名化向けデータセット Fine-tune while maintaining sparsity Sparsification as Pre-training 事前学習の段階でSparse化を実施することで、 汎化精度向上 事前学習の段階でスパース学習したモデルからファインチューニング 34
Partial Quantizationについては以下参考 INTEGER QUANTIZATION FOR DEEP LEARNING INFERENCE: PRINCIPLES AND EMPIRICAL EVALUATION, Wu et al. Sparsification+Quanitzation 匿名化向け大規模 自動生成データセット (~1000万枚) 2:4 spasify + re-train 匿名化向け大規模 自動生成データセット (~1000万枚) 匿名化向けデータセット Fine-tune while maintaining sparsity -0.02% -0.3% Sparsification as Pre-training Quantize (Post Training Quantization : PTQ) FP16/FP32 キャリブレーションデータセット INT8 Partial Quantization (First Layer : FP16) FP16 INT8 INT8 INT8 35
2:4 Structured Sparsity性能評価 <参考値> https://github.com/NVIDIA/Deep-Learning-A ccelerator-SW RetinaNet ResNet-34による評価 1.05% Faster 1.29% Faster 1.08% Faster ○ ● ● GPUで1.05x, DLAで1.08x高速化 2:4 Structured Sparsityに性能を引き出すには? ○ 圧縮に伴うオーバヘッドを隠蔽するために ワークロードを高める必要あり ■ 高解像度化、高バッチ化 ■ channelサイズを128以上に設定等 ● 「Sparsity in INT8: Training Workflow and Best Practices for NVIDIA TensorRT Acceleration」 圧縮に伴うオーバヘッドを隠蔽するため に ワークロードを高める必要あり 1.35% Faster ワークロードが高いモデルでは2:4 Structured Sparsirtyで高い効果が得られる trtexecにて評価 [GPU] ./trtexec --onnx=retinanet_rn34_1280x768_dummy.onnx --int8 --sparsity=[disable/force] [DLA] ./trtexec --onnx=retinanet_rn34_1280x768_dummy.onnx --int8 --sparsity=[disalble/force] --useDLACore=0 --allowGPUFallback 36
GPU/DLAを活用した実装最適化 3. Hybrid Detector Primary Privacy Detector (PPD) Orin 1基 Secondary Privacy Detector (SPD) Single Batchのため DLAに実装 CAM 1,2,3,4 GPU(85TOPS) CAM 1,2 DLA0(26TOPS) CAM 3,4 DLA1(26TOPS) Dynamic Multi-Batchのため GPUに実装 SPD with dynamic Baching PPD PPD SPD with dynamic Baching SPD with dynamic Baching SPD with dynamic Baching PPD PPD Single Batchに最適化されているDLAはDynamic Batchをサポートしていない => Single Batchで動作するものをDLAに配置 37
Edge匿名化デプロイのための最適化 Edge AIアクセラレータHailo-8実装 38
Hailo-8 ● Edge AIに特化した電力性能比に優れた AIアクセラレータ ○ 26TOPS ○ Dataflowアーキテクチャ採用 ○ ユーザフレンドリーなSDK ○ Raspberry Pi AI HAT+で入手可 能になっている スイッチサイエンス社ホームページより引用 Hailo-8の使い方やHailo-8での基本的な最適化手法 については以下参照ください。 自動運転におけるAIコンピューティングⅡ Hailo-8上の低消費電力Edge AI 本発表ではHailoの特徴であるDataflowを活かした実装を紹介する Hailo社ホームページより引用 39
Dataflow Execution L1 Frame 1 Frame 2 L2 L1 L2 L3 L4 L1 L2 L3 L1 L2 Frame 3 L3 L1 Frame 4 L4 https://hailo.ai/blog/why-domain-specific-dataflowprocessing-is-the-only-way-forward/ throughput = 1000/ (Max(Ln))) Dataflowを活用することで高いスループットを引き出すことが可能 40
Hailo向けモデル最適化 モデルサイズがHailo-8に乗り切らない場合は、 コンテキスト(モデル)分割が自動的に実施される 前 処 理 ModelA-1 ModelA-2 Context Switch => overhead Context0 Context0 DRAMレスなため限られたSRAMに収まるサイ ズに実装する必要がある Compute Memory Control ModelA-3 後 処 理 Context1 Large Model 前 処 理 前 処 理 後 処 理 Model1 前 処 理 Light-weight Edge Model 後 処 理 Model1 Model1 前 処 理 Model1 …. 前 処 理 後 処 理 後 処 理 Model1 後 処 理 41
データフローを活用したHailoRT実装 crop & resize 3. Dual Privacy Detector 3.22% Faster Primary Privacy Detector (PPD) Secondary Privacy Detector (SPD) PPD SPD 各モデルを逐次実行 平均34物体を匿名化したときの実行時間 Dataflowを活用した実行 前処理 PPD 後処理 前 処 理 後 処 理 SPD 前 処 理 前処理 PPD 後処理 前 処 理 SPD 後 処 理 前 処 理 SPD 後 処 理 …. 後 処 理 SPD 前 処 理 後 処 理 SPD 前 処 理 後 処 理 SPD …. 前 処 理 SPD 後 処 理 42
まとめ ● 匿名化の重要性とEdge匿名化 ○ ● Edge匿名化アーキテクチャ ○ ● エッジ上で実行時間制約を守りつつ、高精度かつ冗長性を備えたDual Privacy Detectorの開発 Edge匿名化学習手法 ○ ● GDPRのような厳しい規制におけるリスク削減のためには、Edge匿名化が1つの鍵 大規模自動ラベルによる事前学習の実施で、汎化精度の向上を確認 Edge匿名化デプロイのための最適化 ○ ○ NVIDIA Orin ■ Dynamic Batch実装を実施し、GPUワークロード改善 (3.72xの効率改善) ■ 精度劣化なしで、2:4 Structured Sparsityを適用 ■ GPU/DLAの活用 Hailo-8 ■ データフローを活かした実装を実施し、3.22x高速化 43
CONTACT US https://tier4.jp/ Thanks Again ! 44