持続可能なエッジインテリジェンス

エッジインテリジェンス

この用語は、ニューラルネットワークと機械学習アルゴリズムを利用して、推論タスクをネットワークの「エッジ上」で解決できる種別のデバイスを指します。ここで問題となるのが、なぜ人工知能が組み込みデバイスで使用されることが増え、ディープラーニングとディープニューラルネットワークがなぜ産業で重視されるようになったかということです。

この疑問への答えは、AI 自体にはそれほど関係せず、帯域幅、遅延、セキュリティ、分散データ処理などのテーマに関連しています。つまり、先進的なインダストリー 4.0 アプリケーションの中心的なテーマや課題です。重要なタスクの 1 つは、共有通信チャネルにつきものである帯域幅の競合を削減することで、センサーやカメラからの大量のデータを、エッジデバイス自体で有用な情報にフィルタリングまたは変換します。即時データ処理により、データ通信の遅延が発生せずに、画像撮影の時点で直接処理の判断を下せます。技術的およびセキュリティ上の観点から、中央処理装置との信頼性のある継続的な通信が、クラウドであっても、達成が困難であったり、好ましくない場合があります。この方法で獲得したデータをエッジデバイス上でカプセル化すると、データストレージと処理が分散化され、システム全体が攻撃を受ける可能性が低下します。結局、生成および転送されるデータのセキュリティはどの組織にとっても非常に重要です。

分散システムインテリジェンスによっても、ジョブ固有のタスクが明確に分離されます。たとえば、工場では数百のワークステーションがあり、各ステーションで異なる物体セットを分析する画像分類サービスが必要です。しかし、複数の分類器をクラウドでホストするとコストが高くなります。クラウド内のすべての分類器をトレーニングして、各ワークステーションに調整されたエッジデバイスにモデルを送信する、コスト効果の高いソリューションが望まれます。各モデルが専門化されるので、すべてのワークステーションについて予測を行う分類器よりも優れたパフォーマンスを発揮します。さらに、データセンター実現と比べて、シンプルな特殊ソリューションは開発時間が短縮されます。このすべてが、エッジデバイスで推論を実施させることの理由になります。

図 1 - インテリジェントなエッジデバイスにより、センサーと画像データの量が削減されます。有用な情報をエッジ上で直接生成し、これのみを制御装置に転送します。

課題

ニューラルネットワークは組み込み用途に「実際」には向いていない理由は何で、「エッジ上」で効果的に使用する場合の課題とは何でしょうか。エッジデバイス上で AI 推論タスクを実行することは、それほどたやすくはありません。エッジコンピューティングとは一般に効率性が重視されます。エッジデバイスが利用できる計算、ストレージ、電力リソースは通常、限られています。そこで、高効率で計算を実行しなければなりませんが、短い遅延時間で高パフォーマンスの価値を発揮しなければなりません。これは両立しがたいように思われます。CNN の実行とは、最上の規律を実施することでもあります。CNN はとりわけ、非常にリソースを消費することで知られており、入力を処理するために数十億ものの計算が必要です。CNN アーキテクチャ自体の記述に数百万のパラメーターが使用されるため、原則的にはエッジコンピューティングに向いていません。MobilNet、EfficientNet、SqueezeNet など、「パラメーター効率」に優れたネットワークでは、記述に必要なパラメーター数が少なく、組み込み用途に適しています。これにより、メモリや計算能力の要件が大幅に削減されます。しかし、これだけではありません。ストレージ要件を縮小するためには、ネットワークを圧縮する必要があります。たとえば、プルーニングによって重要性が低いパラメーターをトレーニング後に削除したり、量子化によってパラメーターを記述するビット数を減らしたりすることができます。CNN メモリ容量が削減されると、処理時間にもプラスの効果が発生します。さらに、最適化の最終局面にも及びます。

パラメーター効率に優れ、圧縮されたネットワークを使用しても、エッジ上で AI を効率的に実行するには、これらのアーキテクチャ向けにカスタマイズされた特殊な計算システムを使用する必要があります。このために、システムの 2 つの基本特性を検討する必要があります。前述した効率性に加えて、新しい CNN アーキテクチャを開発するために必要な柔軟性を備えていなければなりません。これは重視すべき点で、特に AI の分野では、新しいアーキテクチャと新しいレイヤータイプには研究開発の余地が常にあるからです。今は新しく先端的な技術でも、明日にはもう古くなっているかもしれません。それでは、どのようなプラットフォームがあるのでしょうか。

プラットフォームの選択

  • CPU ベースのシステムは間違いなく、最大の柔軟性をもたらします。同時に、CPU は CNN を実行するには極めて非効率的で、省電力の面でもあまり優れていません。
  • GPU プラットフォ-ムは、コンピュートコアを並列に実行して、大量の電力を使用して CNN を実行します。CPU よりも特化されていますが、柔軟性は損なわれていません。ただし、GPU は非常に消費電力が多いので、エッジ上では問題が生じます。
  • プログラム可能な FPGA のアーキテクチャをフィールドで再構成して、新しい CNN アーキテクチャに調整できます。並列モードで実行するので、FPGA は非常に効率的に機能します。ただし、このプログラミングには高レベルのハードウェアの知識が必要です。
  • 完全な ASIC ソリューションはカスタマイズされた集積回路として効率性の面では明らかに飛び抜けており、所定の CNN アーキテクチャを効率的に実行するために特化して最適化されています。ただし、新規または変更された CNN アーキテクチャがサポートされなくなると、柔軟性が問題となる可能性があります。

「高性能、柔軟、省電力」という特性を備えた FPGA テクノロジーは、現段階の AI 開発では、CNN アクセラレーターをエッジデバイス上で実現するために適しています。

特殊用途または CNN 用の新しい構成ファイルでアップデートすると、動作中にいつでも変更できるので、長期的に機能するソリューションとなり、産業用途に最適と言えます。FPGA テクノロジーを使用する際の最大の課題は、プログラミングが非常に複雑で、スペシャリストでなければできないことです。

開発戦略

ニューラルネットワークを IDS NXT カメラという「ビジョンエッジデバイス」で実行するため、FPGA テクノロジーに基づく CNN アクセラレーターを開発することにしました。これを「deep ocean core」と名付けました。ただし、後で使用できるように FPGA の処理をできる限りシンプルに維持するには、異なる CNN タイプ別に最適化された異なる専用の構成を開発するのではなく、汎用に利用できる 1 つのアーキテクチャを開発すべきです。このようにすると、サポートされるレイヤーで構成されていれば、アクセラレーターをどのような CNN ネットワークでも実行できるようになります。ただし、畳み込みレイヤーなどの通常のレイヤー、追加レイヤー、各種のプーリングレイヤーまたは圧縮励起レイヤーのすべてがすでにサポートされているので、基本的には、どの重要なレイヤータイプでも使用できます。このため、新しい FPGA 構成を作成するために特殊な知識が不要になり、困難なプログラミングの問題が完全に解消されます。IDS NXT カメラのファームウェアアップデートにより、deep ocean core は常に進化し、CNN 分野でのあらゆる新開発をサポートします。

deep ocean core

汎用 CNN アクセラレーターはどのように動作し、トレーニング済みニューラルネットワークはどのような手順で実行する必要がありますか?アクセラレーターに必要なのは、CNN ネットワークを構成するレイヤーを示す「バイナリ記述」のみです。このためにプログラミングは不要です。ただし、たとえば Keras でトレーニングされたニューラルネットワークは、アクセラレーターで認識されない、特殊な「Keras 高レベル言語」で書かれています。このため、ある種の「連結リスト」に似せたバイナリ形式に変換する必要があります。CNN ネットワークの各レイヤーは、各レイヤーを正確に記述しするノードエンド記述子となります。最終的に、バイナリ表現での CNN の完全な連結リストが出来上がります。変換プロセス全体はツールで自動化されます。このときも特殊な知識は不要です。生成されたバイナリファイルがカメラのメモリにロードされ、deep ocean core が処理を開始します。これで CNN ネットワークが IDS NXT カメラで実行されます。

実行の柔軟性

CNN 表現を連結リストとして使用すると、アクセラレーターの柔軟性の面で明らかなメリットが生まれます。ネットワークをその場で切り替えられるようになります。それもシームレスに行われ、遅延は生じません。さまざまなニューラルネットワークの複数の「連結リスト表現」をカメラの動作メモリにロードできます。実行する CNN を選択するには、deep ocean アクセラレーターがそのリストの 1 つの先頭を指す必要があります。実行すべきことは、「ポインター値」をリストメモリの 1 つに変更することだけです。これは FPGA レジスタのシンプルな書き込み処理で、いつでもきわめて高速に実行できます。

以下の例では、CNN ネットワークの高速切り替えがなぜ重要かを説明しています。2 種類の製品を取り扱う 1 つの生産ラインがあるとします。製品の品質を検査しようとしています。このために、最初に製品の位置を認識し、その後、認識された製品カテゴリに基づく製品固有の欠陥に従って品質を分類します。

タスクを解決するには、大規模な CNN ネットワークをトレーイングして物体を検出すると同時に分類し、各製品グループについて考えられるあらゆる障害の事例を事前トレーニングします。これには非常に高いコストがかかり、ネットワークが非常に大きくなって動作が遅くなりますが、機能はします。問題は、十分な高精度を達成することです。アクティブな CNN ネットワークをその場で変更できるので、異なる物体の位置決めと分類を分離でき、個々の CNN のトレーニングが容易になります。物体認識では、2 つの種類を区別して位置を提供するだけです。さらに 2 つのネットワークを、該当する製品固有の特徴や欠陥クラスについてのみトレーニングします。位置決めした製品に応じて、カメラアプリケーションは結果としてどの分類ネットワークがアクティブ化されているかを全自動で判定し、該当する製品の品質を確認します。このアプローチでは、エッジデバイスは比較的シンプルなタスクをわずかなパラメーターで処理します。その結果、個々のネットワークははるかに小型になり、識別する必要がある特徴が減少するので、動作が高速になり、消費電力が低下し、エッジデバイスでの実行に最適になります。

図 2 - ニューラルネットワークの実行をその場で変更できるので、画像分析をシンプルな推論ワークフローに分割し、カメラ上の処理の効率、速度、安定性が向上します。

パフォーマンスと効率

IDS NXT 推論カメラの FPGA ベースの CNN アクセラレーターは、64 コンピュートコア搭載の Xilinx Zynq Ultrascale SoC で動作します。MobileNet、SqueezeNet、EfficientNet などの多数の有名な画像分類ネットワークでは、毎秒最大 67 フレームのフレームレートを実現します。Inception や ResNet などのネットワークファミリーでも、エッジコンピューティングには複雑すぎると考えられていますが、毎秒 20 フレームが可能で、多くの用途にとって十分です。FPGA 実装により、deep ocean アクセラレーターのパフォーマンスがさらに向上します。ファームウェアアップデートも、すでにフィールドにあるカメラにとって有効です。

しかしエッジコンピューティングにとっては、省電力性のほうがさらに重要です。ワットあたりシステムが毎秒何枚の画像を処理できるかを示します。異なるエッジソリューションを比較する際に、電力効率の指標となります。以下の図では異なる CNN アクセラレーターを比較しています。FPGA 実装としての deep ocean core、Jetson TX 2A 搭載の GPU ソリューション、最新の Intel Core-i7 CPU による従来の CPU ソリューション、組み込み CPU ソリューションとしての Raspberry Pi、Intel Movidius AI チップによる完全な ASIC ソリューション。

図 3 - MobilNets や SqueezeNet などのパラメーター効率の高いネットワークでは特に、FPGA アーキテクチャが適していることが明確にわかります。比較対象のシステムの中で最高の電力効率を発揮します。このため、エッジインテリジェンスにとって deep ocean core が最適な候補となります。

オールインワン推論カメラソリューション

FPGA ベースの CNN アクセラレーターをさらに使いやすくするため、IDS では完全な推論カメラソリューションを提供し、誰もがテクノロジーを容易に利用できるようにしています。ニューラルネットワークを実行するためにディープラーニング、画像処理、カメラ/FPGA プログラミングの専門知識は不要で、AI ベースの画像処理をすぐに開始できます。ツールが使いやすいので簡単に始められ、推論タスクを数分のうちに作成してカメラで即座に実行できます。インテリジェントなカメラプラットフォーム IDS NXT と FPGA ベースの CNN アクセラレーター "deep ocean core" に加えて、全体的なコンセプトとしてニューラルネットワーク用の使いやすいトレーニングソフトウェアも含まれています。すべてのコンポーネントは IDS が直接開発しており、シームレスに連携するよう設計されています。そのためワークフローがシンプルになり、システム全体の効率が非常に高くなります。

持続可能なエッジインテリジェンス

本稿で前述したニューラルネットワークを高速化する可能性にはどれも、それぞれのメリットとデメリットがあります。AI をマシンビジョンタスクに使用するためにエンドユーザーが必要なコンポーネントを自分で取り扱う必要がある場合、Intel Movidius などの完全統合 AI アクセラレーターが好まれます。すぐに使えるチップソリューションは効率的に機能し、大量生産ならではの単価が実現します。また、機能範囲を網羅するドキュメントがあるため、システムにすばやく比較的容易に統合できます。しかし、欠点もあります。AI 環境においては開発時間が長いという問題があり、AI 環境は今では大きく勢力を増しており、日々変化を起こしています。汎用で柔軟な「エッジインテリジェンス」を今開発するには、システムコンポーネントは他の要件を満たさなければなりません。FPGA ベースは、柔軟性、パフォーマンス、電力効率、持続性が最適に組み合わされています。つまり、産業製品にとって最も重要な要件は「産業への適合性」で、そのためには長期的な可用性と長期的なメンテナンスを容易に行えることが重要な要因になります。今日、使いやすい IDS NXT 推論カメラプラットフォームと FPGA CNN アクセラレーターの組み合わせで、持続可能なエンドツーエンドのエッジインテリジェンスソリューションが実現し、エンドユーザーは個々のコンポーネントや AI のアップデートを気にする必要がなくなります。