
拓海先生、最近うちの現場で「エッジでAIを動かす」と部下が騒いでましてね。論文があると聞いたのですが、要点を教えていただけますか。

素晴らしい着眼点ですね!この論文は小さなマイコン(マイクロコントローラ)でも実用的に動くように、ビット幅を極端に落としたBinary Neural Network(BNN:バイナリニューラルネットワーク)向けの専用回路、XNOR Neural Engine(XNE)を提案していますよ。

BNNって何でしたっけ。うちの工場でいうと軽量化して走らせる小型機みたいなものですか。

素晴らしい着眼点ですね!その比喩は非常に分かりやすいです。BNNは重みと活性化が+1か-1の二値で表されるため、計算が非常に単純化され、演算はXNORやポップカウント(bitsの数え上げ)で済みます。つまり、従来の大きなサーバを小さなエンジンに置き換えるようなものです。

そのXNEを導入すると、うちのPLCやセンサーにつなげて現場で推論できるということですか。投資対効果はどう見ればいいでしょうか。

大丈夫、一緒にやれば必ずできますよ。ポイントは三つです。第一にエネルギー効率、第二にメモリの扱い、第三に実用性です。論文はエネルギー効率を21.6 fJ/OPまで下げ、ResNet-34のようなモデルでも現実的なフレームレートと消費エネルギーで動かせることを示しています。

これって要するに、従来の高性能なGPUを持ち歩かずに、センサー近傍で十分な推論ができるということですか。

その通りです!大きく分けると得られる効果は三つありますよ。まず通信依存を減らせるため遅延と通信コストが下がります。次に消費電力が低いためバッテリで長時間稼働できます。最後にデータをクラウドへ送らないためプライバシーや運用コストが改善します。

ただ、現場の機器に組み込むと現場の担当者が扱えますか。複雑な設定や頻繁な学習が必要ではないでしょうか。

できないことはない、まだ知らないだけです。実運用の観点ではXNEはMCU(Microcontroller Unit:マイクロコントローラ)内に統合され、ソフトウェアとの協調動作が可能であるため、既存のファームウエアやIOと連携しやすい設計です。学習(トレーニング)は通常クラウドで行い、推論だけを現場で実行する運用が現実的です。

なるほど。要するに、重い学習は本部でやって、現場には軽くて低電力なエンジンを置く。これなら現場でも使えそうですね。では最後に、私の言葉でこの論文の要点を言い直しても良いですか。

素晴らしい着眼点ですね!ぜひお願いします。一緒に確認しましょう。

要するに、この論文では二値化したニューラルネットを小さなマイコン向けに専用回路で加速し、実際の用途で使える速度と低消費電力を両立して見せた、ということです。


