ニュース製品ニュース技術コラム

2022年11月17日
株式会社ユビキタスAI

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アプリケーションの搭載を可能にし、フレームレートや消費電力の向上を実現します。

Neutrino™ 概要

VectorBlox™

VectorBloxは、 Microchip社が提供するエッジAI/機械学習・推論アクセラレーターです。産業用カメラやIoTエッジデバイスに適した、ミッドレンジFPGA「PolarFire® FPGA & PolarFire SoC」で動作します。処理性能(GOPS)あたりの消費電力が非常に低く、画像認識処理に適しているとされています。

neutrino11.png neutrino12.png

引用:Microchip社VectorBlox Accelerator Software Development Kit for PolarFire® FPGA

検証方法

Neutrinoは自動最適化ツールですが、ツールとして提供している以外に、Neutrinoで最適化したオープンソースのモデル・教師データを、最適化済みモデルとして提供しています。 今回は、その中から画像分類で活用される ResNet18とResNet50モデルを使って、最適化あり・なしを検証します。

ResNet18:Neutrinoによる最適化前後比較

サイズ(MB)精度(%)パラメータ数(M)
最適化前44.669.711.7
最適化後15.568.64.0

ResNet50:Neutrinoによる最適化前後比較

サイズ(MB)精度(%)パラメータ数(M)
最適化前97.576.025.6
最適化後30.674.58.0

※ Neutrinoの設定を変更することで、異なる結果の出力も可能。

無償で利用することができるVectorBlox SDKは、Neutrinoの出力モデル形式の1つであるONNXを入力として、VectorBlox用のモデルを生成します。また、SDKには Bit Accurate の Simulator が同梱されているので、それを使用して実際のハードウェアで動作させた時の効果を確認できます。

これは、VectorBlox SDK v1.4.2を使用して Simulationを行った時の様子です。

VectorBlox SDKを使用したSimulation

参考:Microchip社VectorBlox SDK

検証結果

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)

参考資料

Neutrino™ 製品ページ