エッジAIの実装時に考慮すべき5つのポイント
近年、現場で使用されるエッジデバイスへAIモデルを実装する「エッジAI」が注目され、そのユースケースが増えています。当社でも、お客様からのエッジAIのコンサルティング・実装依頼のご相談が増えています。
当社でのエッジAI開発・実装の実務経験をもとに、本記事を含む2部構成で、エッジAI技術のトレンドと実装時に考慮すべきポイントをお伝えいたします。
・(1)最新エッジAI技術のトレンド
・(2)エッジAIの実装時に考慮すべき5つのポイント(本記事)
エッジAI実装時のポイント1:エッジAIのメリット・デメリットを考慮する
エッジAIの実装においては、実はメリットだけでなくデメリットも存在します。そのため、考慮すべき1つ目のポイントとしては、エッジAIの実装におけるメリット・デメリットの双方を検討し、メリットがデメリットを上回る場合にエッジデバイス上での実装を行うこと、が挙げられます。
エッジAIのメリット・デメリット
エッジAIのメリットとしては、(1)リアルタイム性、(2)低レイテンシ、(3)プライバシーの保護、(4)通信費の削減、といった点が挙げられます。
一方、エッジAIのデメリットとしては、(1)モデル管理の煩雑化、(2)初期投資の必要性、(3)ハードウェアの運用・保守工数の増加、といった点が挙げられるかと思います。
エッジAIを取り入れるかどうかの意思決定プロセス
こうしたエッジAIのメリット・デメリットを踏まえ、開発の実務においてどの様に意思決定すべきかを紹介します。
例えば、製造現場や建設現場など、現場向けのユースケースにおいては、クラウドではなくエッジで推論を行うべきケースが大半です。特に製造現場向けのユースケースにおいては、プライバシー・機密情報の保護の観点からも極力クラウドには情報を上げないか、もし上げたとしても、異常率などの統計化されたデータに留めることが多いと考えられます。
組み込み向けエッジデバイス vs ワークステーション
ただし、エッジで推論を行ううえで、組み込み向けエッジデバイス(NVIDIA Jetsonなど)への組み込みを行うか、ワークステーションやゲーミングPCなどを現場に設置して処理を行うかは、別論点になります。この点については、「エッジデバイスへの組み込み(エッジAI化)を行っても要件を実現出来るか」と「組み込むことの意義」の両面からの検討が必要です。
前者の「エッジデバイスへの組み込みを行って要件を実現出来るか」について、一般的にはワークステーションからエッジAI化を行うことで、計算リソースが限られ、処理速度が遅くなることが考えられます(速度低下を抑える弊社のモデル軽量化の技術については後述します)。この点が要件に対して許容可能か検討が必要です。システム全体の処理時間においては、通信時間がボトルネックとなることもあり、その際はエッジAI化による処理速度の低下が問題ではないケースもあります。
また、後者の「組み込む意義」については、例えば、展開を見込む規模感等を考慮します。展開規模(例:導入対象の工場や店舗等の数)が多くなると、エッジデバイスの活用によるハードウェア調達費用の抑制の意義が高まります。
エッジAI実装時のポイント2:速度と精度のトレードオフを考慮する
エッジデバイスへのAIモデル搭載においては、性能要件を満たすためにAIモデルの軽量化が必要になる場合が多いです。一般的に、AIモデルを軽量化することで推論速度は向上しますが、精度は劣化することが知られています。実際に、MobileNet V3/V2は軽量化により速度を向上させることができるAIモデルですが、レイテンシの低下に伴って精度が劣化し、特に低レイテンシになるほど精度劣化が顕著となることが示されています(※1)。
したがって、エッジAIの速度と精度との対応を見て、「どの程度の速度が求められるか、どの程度の精度劣化であれば許容できるか」という性能要件を実現可能性とともに見極めることが重要と考えられます。
※1: A. Howard et al., "Searching for MobileNetV3," 2019 IEEE/CVF International Conference on Computer Vision (ICCV), Seoul, Korea (South), 2019, pp. 1314-1324, doi: 10.1109/ICCV.2019.00140.
エッジAI実装時のポイント3:エッジデバイスでのベンチマークをとる
エッジAIの実装においては様々なAIモデルとハードウェアの組み合わせがあり、その中から最適なものを選択する必要があります。例えば、AIモデルには、パラメータが少なく推論効率の高いもの、パラメータが多く精度は高いが推論効率が低いものが存在します。
ハードウェアに関しても、NVIDIA社のもの、AIアクセラレータを使ったもの、等様々なものが選択可能であり、かつ、セットアップに時間がかかるものが多くあります。また、それぞれ制約や高速化のノウハウも存在します。そのため、本来は各ハードウェアに最適化したベンチマークをとる必要があります。
1つの解決策として、MLPerf(※2)のような公開されているベンチマークを活用する方法が挙げられます。MLPerfは、Intel社、Google社、NVIDIA社、スマートフォンメーカー等の多数の企業により開発・公開されており、様々なプロセッサ、アクセラレータ等を用いた際のベンチマークが掲載されています。具体的には、ベンチマークの測定条件(ハードウェア・ソフトウェアのスペック)、およびターゲットタスク(画像分類・物体検出・音声認識・自然言語処理など)の詳細が記載されています。ただし、データセットやAIモデル数は限られたものであるため、参考として用いるのが良いと考えています。
※2: https://mlcommons.org/en/
エッジAI実装時のポイント4: AIモデルがエッジデバイスへ搭載可能か否かを検討する
学習したAIモデルをエッジデバイスへ搭載する際、そのデバイスでサポートしているオペレーションやレイヤの種類を考慮する必要があります。
1つ目のケースとしては、エッジデバイス向けにAIモデルをコンパイルできない場合が挙げられます。
具体的には、変換できないネットワークのアーキテクチャ、またはオペレーションやレイヤ――特にカスタムレイヤ――等が存在するケースです。そのような場合は、他のレイヤを組み合わせて代替する、可能であればカスタムレイヤを別途定義する、といった対応を行う必要があります。
2つ目に考慮すべきケースは、コンパイルが可能であってもデバイスで高速化されない場合です。具体的には、ハードウェアによっては高速化をサポートしていないオペレーション/レイヤがあるため、エッジデバイスに搭載した際に高速に動作しないケースがあります。
例えば、Coralでは、ニューラルネットワークモデルの途中にサポートされていないオペレーションが存在する場合、それ以降のオペレーションがCPUで実行されるため(※3)、高速処理ができなくなります。(Coralのオペレーションは以下の図を参照。)
※3: https://coral.ai/docs/edgetpu/models-intro/#compiling
エッジAI実装時のポイント5:ニューラルネットワークの軽量化を検討する
一般的に、ニューラルネットワークの軽量化による速度向上は精度劣化を伴うことが多いですが、うまく軽量化をすれば精度の劣化を小さく抑えることができます。モデル軽量化の代表的な手法として、枝刈り(pruning)、蒸留(distillation)、量子化(quantization)をご紹介します。
https://papers.nips.cc/paper/2015/file/ae0eb3eed39d2bcef4622b2499a05fe6-Paper.pdf
枝刈りは、重要度の低い重み値をゼロとすることでネットワークを疎にする手法です。枝刈りによってニューラルネットワークの演算回数を減らすことが可能になり、モデルの軽量化と処理の高速化が期待できます。
蒸留は、大きなモデルの学習結果を教師データとして小さなモデルの学習に利用する手法です。小さいモデルを一から学習するのと比較して、高い精度の実現が可能となります。
量子化は、浮動小数点演算を整数演算に置き換えてモデルを軽量化する手法で、既に多くのデバイス・ツールで一般的となっています。例えば、Intel社のニューラルネットワークコンパイルツールOpenVINO、Google社の最適化フレームワークのTensorFlow Lite、また、NVIDIA社のニューラルネットワーク推論最適化ツールTensorRTなどは、精度をほとんど低下させることなく8ビット量子化をサポートしています。しかし、単純な8ビット以下の量子化(学習後の量子化:post-training quantization)では、顕著な精度劣化が起こる場合が多く、量子化に向けた特別な学習(quantization aware training)や精度劣化を抑えるキャリブレーション、といった専用の手法を組み合わせて用いることが重要です。
エッジAI開発ベンダーの選び方
実際にユーザ企業がエッジAI開発を進めるうえで、外部ベンダーを活用するケースもあると考えられます。ご紹介した5つのポイントに関連した以下の観点を押さえることが、外部ベンダー選定において重要と考えます。
モデル軽量化の開発ノウハウがある
ポイント5に記載の通り、軽量化には様々な手法があり、単純に1つの手法を適用すれば解決できる課題ではありません。様々な手法を熟知したうえで独自の開発手法を確立し、効率的・効果的に開発を推進できるベンダーが望ましいと考えます。
ハードウェアの活用ノウハウがある
ポイント3・4に記載の通り、エッジAI開発はハードウェア(エッジデバイス)とセットでの検討が求められます。要件に応じた適切なデバイスの選定や選定されたデバイスに応じた開発手法の設計が必要であり、そのノウハウを持ったベンダーが望ましいと考えます。
ビジネス要件と摺合せた提案ができる
ポイント1・2に記載の通り、エッジAI開発においては、精度と速度などのトレードオフの関係を伴うので、本来の目的に照らして最適解を見出していくことが求められます。場合によってはエッジAI化をとりやめる(例えばゲーミングPCなどの代替手段を検討する等)といった判断も含めて、ビジネス要件との摺合せによる最適な進め方を提案できるベンダーが望ましいと考えます。
アラヤのエッジAIソリューション
アラヤでは、エッジAIソリューションを提供しており、これまでに様々なユースケースでのモデル軽量化やシステムへの実装等の実績があります。
モデル軽量化やデバイスへの組み込み開発のノウハウにより、最低限の試行錯誤で要件を実現するなどの効率的なエッジAI実装支援(スケーラブルなモデル開発)が可能です。また、様々なエッジデバイスの活用実績により、ユーザ企業での指定デバイスに応じて、最適な手法での開発が可能です。開発内容をユーザ企業にて細かく明確化頂かなくても、ハイレベルなご要望に対してアラヤから最適な開発内容・手法を提案させて頂きます。
もしエッジAI実装に関するニーズをお持ちでしたら、お気軽にお問合せ頂ければと思います。
アラヤのエッジAIサービスのご紹介はこちらからご覧いただけます。
■記事一覧
・(1)最新エッジAI技術のトレンド
・(2)エッジAIの実装時に考慮すべき5つのポイント(本記事)