この記事ではエッジAIについて、分かりやすく解説します。
エッジコンピューティングとは
まずエッジコンピューティングについて紹介します。元々IoTはその名の通り、インターネット回線を使って小さなデバイスとクラウドとを繋ぐ仕組みです。センサーから取得したデータをクラウドへアップロードし、逆にクラウドからデータをダウンロードして動作を変更していました。この時、二つの課題がありました。一つはネットワーク帯域です。数値データくらいであれば問題ありませんが、カメラで取得した映像をアップロードするのは帯域を使います。これが数百台、数千台のデバイスとなれば、ネットワーク利用量は相当になります。
もう一つは遅延です。クラウドにアップロードして、サーバ側でデータを処理して動作を変えるという一連の流れはそれなりの時間がかかります。高速なネットワークで結ばれていれば良いですが、IoTではネットワークコストを下げるために低速度の回線が使われることも少なくありません。また、屋外に配置されたデバイスはネットワーク状態が悪いところにある場合も少なくありません。
それらの問題を解決するために考えられたのがエッジコンピューティングです。IoTデバイスが小型ながらもCPUやメモリリソースが潤沢になるのに合わせてデータをアップロードするのではなく、デバイス上で処理して動作に反映する仕組みが取れるようになりました。これにより、遅延なくリアルタイムにデータ処理が可能になりました。
エッジAIとは
そしてIoTデバイスがデータを処理する際に機械学習を用いるようになりました。これがエッジAIです。カメラの映像一つとっても、屋内にある場合と屋外の場合で映像の質は全く変わってきます。天候も日によって変わるでしょう。それらの処理パターンをすべてプログラミングするのはほぼ不可能です。そこで機械学習を使って処理判定を行うようになっています。
エッジAIが活きるのはリアルタイムな処理判断が求められる場面です。例えば自動運転があります。車の自動運転を実現する際に、データをクラウドにアップロードして処理を行っていたら事故につながるでしょう。少なくともネットワークが切れた途端に車は動けなくなってしまいます。また、ドローンの操縦などにも使われます。人や建物に当たらないよう、周囲の状況をモニタリングした上で飛ばすのにもエッジAIが使われます。
エッジAIを実現するために必要な技術
エッジAIは機械学習済みのモデルを使いますが、その学習は大量の計算処理を伴いますのでサーバで行われます。そして、その学習結果を各デバイスにダウンロードして実行します。そのため、まず機械学習モデルを作成するサーバ環境が必要になります。デバイスにおいても計算処理は大きいので、GPUを搭載した小型デバイスを採用するでしょう。
例えばNVIDIA Jetsonは128-core Maxwellを詰んだデバイスになります。Ubuntuのインストールもサポートされており、Raspberry Pi同様に利用できます。GPUを搭載しながらも小型デバイスらしく、5Wという低消費電力になっています。すでにCLOUDIAN AI Boxの中に組み込まれて製品化されているようです。IntelではNeural Compute Stick 2というUSBデバイスを販売しています。これはRaspberry Pi 3などに差し込むことで外部計算処理を行うデバイスです。
まとめ
より現場に近く、その場で処理するためにエッジAIが使われはじめています。特に画像処理やエラー検出など、従来のプログラミングでは難しいとされてきた処理で、機械学習が有利とされている分野において活用が期待されています。ぜひ今後のIoTプロジェクトにおいてはAI、機械学習の活用を視野に入れてみてください。
]]>