VectorBlox™でNeutrino™のAI最適化検証
このコラムで分かること
- エッジAIにおける低消費電力の実現について
- ディープラーニングモデル最適化ソフトウェアNeutrinoについて
- Microchip社 VectorBlox SDKについて
昨今、エッジAIの導入が加速する中、コストや運用上の観点からエッジデバイスへのAI実装が注目されています。しかし、メモリサイズなどに制約のあるエッジデバイスにAIを実装するには、その実装方法や低消費電力化をどうするかが課題となっています。
そこで、ディープラーニングモデル最適化ソフトウェア「Neutrino 」を使ってAIモデルを圧縮し、さらにサイズが圧縮されたAIモデルを、Microchip社のエッジAI/機械学習・推論アクセラレーター「VectorBlox SDK」を使って、どの程度消費電力を下げることができるのかを検証してみます。
Neutrino™
Neutrinoは、Deeplite社(カナダ)が開発した、ディープラーニングモデル最適化ソフトウェアです。DNNモデルとデータセットをNeutrinoに設定し、コマンドを一つ実行するだけで、自動的に最適化したDNNモデルを生成します。一般的な蒸留や枝刈りとは異なる独自の技術でモデルを再構成します。Neutrinoが実現する高い圧縮率が、メモリサイズの小さいエッジデバイスや IoT機器でもAIアプリケーションの搭載を可能にし、フレームレートや消費電力の向上を実現します。
VectorBlox™
VectorBloxは、 Microchip社が提供するエッジAI/機械学習・推論アクセラレーターです。産業用カメラやIoTエッジデバイスに適した、ミッドレンジFPGA「PolarFire® FPGA & PolarFire SoC」で動作します。処理性能(GOPS)あたりの消費電力が非常に低く、画像認識処理に適しているとされています。
引用:Microchip社VectorBlox Accelerator Software Development Kit for PolarFire® FPGA
検証方法
Neutrinoは自動最適化ツールですが、ツールとして提供している以外に、Neutrinoで最適化したオープンソースのモデル・教師データを、最適化済みモデルとして提供しています。 今回は、その中から画像分類で活用される ResNet18とResNet50モデルを使って、最適化あり・なしを検証します。
ResNet18:Neutrinoによる最適化前後比較
サイズ(MB) | 精度(%) | パラメータ数(M) | |
---|---|---|---|
最適化前 | 44.6 | 69.7 | 11.7 |
最適化後 | 15.5 | 68.6 | 4.0 |
ResNet50:Neutrinoによる最適化前後比較
サイズ(MB) | 精度(%) | パラメータ数(M) | |
---|---|---|---|
最適化前 | 97.5 | 76.0 | 25.6 |
最適化後 | 30.6 | 74.5 | 8.0 |
※ Neutrinoの設定を変更することで、異なる結果の出力も可能。
無償で利用することができるVectorBlox SDKは、Neutrinoの出力モデル形式の1つであるONNXを入力として、VectorBlox用のモデルを生成します。また、SDKには Bit Accurate の Simulator が同梱されているので、それを使用して実際のハードウェアで動作させた時の効果を確認できます。
これは、VectorBlox SDK v1.4.2を使用して Simulationを行った時の様子です。
検証結果
Neutrinoで最適化後のONNXを利用した推論動作結果(VectorBlox Accelerator動作クロックは最適化前ONNXファイルと同一)は、以下の通りでした。
ResNet18
推論処理時間 25%短縮
メモリ・アクセス帯域 26% 削減
ResNet50
推論処理時間 50%短縮
メモリ・アクセス帯域 50% 削減
最適化後の推論処理時間が最適化前と同じでよい場合には、クロック周波数を、それぞれ25%、50%低減できることになり、その分消費電力が下がることになります。
ただし、最適化前後でTop-1以外の推論結果に違いが表れていました。これは、 Neutrinoでの最適化をTop-1 accuracyで行っているためで、Top-1 以外の一部が異なる可能性があります。Top-5 accuracyで最適化すると改善すると思われますが、モデルが用意できず再検証することができませんでした。
まとめ
簡単ですが、この検証でNeutrino がハードウェアアクセラレータの効果を高める様子を観測することがでました。特に、監視カメラ、品質検査、外観検査などの画像を活用するケースで、消費電力に課題をお持ちの方の参考となれば幸いです。
引き続きNeutrinoの有効性などについて、いろいろな検証を行っていきたいと思います。
Neutrinoについては、以下のボタンよりお気軽にお問い合わせください。
VectorBloxおよびVectorBlox SDKに関しては、以下までお問い合わせください。
Microchip社VectorBlox技術担当 大川 崇 (techhelp@microchip.co.jp)
参考資料
- Microchip社VectorBlox SDK
https://github.com/Microchip-Vectorblox/VectorBlox-SDK - Microchip社VectorBlox Accelerator Software Development Kit for PolarFire® FPGA
https://www.microchip.com/en-us/products/fpgas-and-plds/fpga-and-soc-design-tools/vectorblox
このコラムの著者
株式会社ユビキタスAI
企画室 主席研究員
吉田 一茂​(よしだ かずしげ)
マイクロソフトの開発部門で25年間エンジニアを経験。言語・アプリケーション・OS開発をはじめ、組込からクラウドまで幅広いプログラミングをカバーする。帰国にあたりユビキタスAIに入社、企画室にて新規事業アイデアの立案やPoC作成、組織にわたる社内支援などを担当している。
より詳しく技術や関連製品について知りたい方へ
本コラムに関係する技術や関連する製品について知りたい方は、お気軽にご相談ください。