エッジAIとTinyMLが切り開く可能性
はじめに
エッジAIは、人工知能(AI)の処理をエッジデバイス(スマートフォン、タブレット、センサーデバイスなど)上で行う技術です。従来のAIは、データをクラウドに送信し、クラウド上のサーバーで処理されることが一般的でしたが、エッジAIではデバイス自体がデータを処理し、リアルタイムの応答を期待されています。エッジAIを実現するデバイスの進化はGPUやNPUの搭載により著しく高性能となっています。それに伴いエッジにもDeep Laerningに分類されるような大規模AIモデルの搭載も可能となってきました。
エッジAIとは
処理能力の向上、低消費電力技術の進化、などによりエッジデバイス上でのAIの実行が可能となりました。今後は活用されるシーンの増加が予想されます。そのため、エッジにAIが搭載できるか否か、ではなく、どのようなAIモデルを搭載するか、が注目されるようになってきました。
TinyMLとは
TinyMLは、組み込みデバイスやエッジデバイスで機械学習を実行するための技術です。"Tiny"は"小さい"を意味し、"ML"は機械学習を指します。TinyMLは、メモリや処理能力の限られたデバイス上で機械学習モデルを実行するために最適化されています。この技術は、センサーデータのリアルタイム解析やエッジでの意思決定など、情報の隠蔽の必要がある工場などの環境での機械学習を可能にします。
<TinyMLを実現する技術>
1. 量子化(Quantization)
量子化は、モデルの重みパラメータを小さいビットで表現する技術です。たとえば、32ビット浮動小数点数を8ビット整数に変換することで、モデルのサイズを大幅に削減することができます。これにより、メモリ使用量を減らし、計算速度を向上させることが可能です。
QAT(Quantization Aware Training)とPT(Post Training)量子化は、ニューラルネットワークの重みや活性化を量子化するための2つの主要な手法です。
1-1. QAT(Quantization Aware Training)
QATは量子化実施による精度の低下を緩和するための手法で、訓練プロセス中に量子化を模擬します。つまり、訓練プロセスの各ステップで、重みの値を量子化してから逆量子化し、その結果得られる損失を背景とした更新を行います。この結果、量子化による効率性と精度の両立が可能になります。
1-2. PT(Post Training)量子化
PT量子化は、モデルが訓練された後に量子化を適用する手法です。PT量子化は実施が容易で、既存のモデルに対して容易に適用することが可能です。ただし、モデルが量子化による誤差を考慮して訓練されていないため、QATに比べて精度が低下しやすいとされています。
1-3. 量子化のビット数
大規模なAIでも、1bitに量子化する技術も研究されています。
参考文献 : itNet: Scaling 1-bit Transformers for Large Language Models(外部サイト)
QATは一般的にはPT量子化よりも高い精度を保つ可能性がありますが、訓練の時間やリソースが増える可能性もあります。一方、PT量子化は早く簡単に実装できますが、精度の低下が起こる可能性があります。どちらの手法を選ぶかは、特定のユースケースやリソースに依存します。
2. プルーニング(Pruning)
プルーニングは、モデルの重要でない部分(たとえば、重みが小さいニューロン)を削除する手法です。これにより、モデルのサイズを削減しながら、精度への影響を最小限に抑えることができます。
3. 蒸留(Distillation)
蒸留は、大きなモデル(教師モデル)の知識を小さなモデル(生徒モデル)に移す方法です。これにより、小さなモデルでも教師モデルと同等の性能を達成することが可能になります。
これらの技術は、一部または組み合わせて使用することにより、AIモデルを小さくし、組み込みシステムやモバイルデバイスなどのリソース制約のある環境での実行を可能にします。
TinyMLの構築方法
TinyMLに取り組んでいる企業をいくつかご紹介します。
1. Google
Googleは、エッジデバイスでの機械学習モデルの使用を可能にするフレームワーク、TensorFlow Lite for Microcontrollersを開発しています。
2. ARM
CMSIS-NNは、ARM が開発したニューラルネットワークライブラリで、エッジデバイスでの機械学習モデルの実行を加速します。CMSIS-NNは、リソースが限られたマイクロコントローラでの高いパフォーマンスを実現します。
3. Microsoft
ONNX Runtimeは、Microsoftが開発したクロスプラットフォームの機械学習インフラストラクチャで、Open Neural Network Exchange(ONNX)モデルの効率的な推論を可能にします。ONNX Runtimeは、エッジデバイスでのTinyMLの運用にも適しています。
TinyMLの活用事例
TinyMLは、リソースが限られたデバイスでも動作する能力を持つため、さまざまな分野で利用されています。
1. キーワードスポッティング
スマートスピーカーやスマートフォンなどのデバイスでは、"OK Google"や"Hey Siri"のような特定のキーワードを認識するためにTinyMLが使用されています。これにより、デバイスがユーザーの指示を受け取り、適切なアクションを実行することが可能になります。TinyMLはローカル(デバイス上)で動作するため、レイテンシが低く、またプライバシーも保護されます。
2. 画像認識
TinyMLは、ドローンやセキュリティカメラ、自動運転車などのデバイスで画像認識を行うために使用されます。これらのデバイスはリアルタイムで高速に動作する必要があり、TinyMLはその要件を満たします。
3. 予知保全
産業機械や設備の故障を予防するために、TinyMLは予知保全のアプリケーションで利用されます。センサーデータをモニタリングし、異常なパターンや潜在的な故障の兆候を検出することで、未然に問題を防ぎます。これはダウンタイムを削減し、メンテナンスコストを大幅に節約することにつながります。
これらの事例から、低消費電力と高度な機能性を備えたTinyMLは、今後の活躍が期待されています。
まとめ
エッジデバイスの性能向上により、AIの活躍できるシーンは増えてきましたが、それゆえに、エッジAIに期待される役割が変わってくると思われます。1つ目はクラウドのような大きなAIの置き換え、2つ目はこれまでのエッジAIに期待されていた小さなAIです。エッジAIとTinyMLは似ている技術ですが、エッジAIは「どのデバイスでAIを動かすか」を、TinyMLは「AIの大きさ」を示しており、適宜使い分けしていくことで、エッジデバイスの開発における議論がスムーズに進むのではないでしょうか。
オージス総研では、これまでのマイコン実装経験とAIの知見により、小さいAIの実現のノウハウを蓄積していますので、お気軽にご相談ください。
また、今後のエッジAI開発を見据えて、開発のチェックポイントや必要な技術について資料にまとめましたので、ぜひダウンロードしてご活用ください。
\ 資料をご用意しています /
2024年9月6日公開
※この記事に掲載されている内容、および製品仕様、所属情報(会社名・部署名)は公開当時のものです。予告なく変更される場合がありますので、あらかじめご了承ください。
関連サービス
-
システムエンジニアリング ソリューション
AIのメリット(嬉しさ)を分析する際に、システムエンジニアリングソリューション(SysML)の採用を提案しています。弊社のモデリング技術により、AI導入効果の可視化ができます。