最新の動向に敏感な方なら、Nordic SemiconductorがNeuton.AIを買収したことを既にご存知でしょう。Neutonは、機械学習(ML)モデルをより身近なものにすることを目指すエッジAI企業です。競合他社のフレームワークよりも10分の1と小型でありながら高速なモデルを作成でき、非常に小型のエッジデバイスでもAI処理を可能にします。本記事では、開発者にとってこれが意味すること、そしてNeutonモデルを使用することで開発やエンド アプリケーションをどのように改善できるのか説明します。
Neutonを使うべき理由
開発者として、製品にエッジAIを使用するにあたって大きな障害は次の2つです:
- 選択したマイコンのメモリ容量に対してMLモデルが大き過ぎる。
- カスタムMLモデルの作成は本質的に手作業であり、データサイエンスの高度な知識を要する。
これらの障害に頭を悩ませる必要はもうありません。
Neutonは、TensorFlow Liteのような従来のフレームワークの数分の一のサイズでMLモデルを自動生成するフレームワークです。開発者にとってこれは、高度に最適化され、高速で正確なMLモデルのトレーニングにあたり、データセット以外何も要らない、ということを意味します。NeutonモデルはどのNordic SoCでも動作できます。フラッグシップであるnRF54L15はもちろん、非常に効率的であるため、nRF52805のような制約の多い最も小型のSoCでも動作できます。必要とするNVM(不揮発性メモリ)はわずか数キロバイトです。これにより、以前は不可能であったML機能をアプリケーションに追加することが可能となりました。例えば、センサのサイズとコストが重要で、寸法上の制約の厳しい大規模センサネットワークの全ノードでAI処理を行うことができるようになりました。
Neutonの特長
エッジAIのためのフレームワークは数多く、そして以前から存在していました。LiteRT(別名TensorFlow Lite for microcontrollers)や類似フレームワークとの大きな違いは、他のフレームワークでは、ニューラルネットワーク、ニューロン、ネットワークの深さを手動で整理する方法を、開発者が知っていることに依存していることです。そのようなアプローチでは、コードサイズ、実行速度、電力消費の点で効率の悪いモデルになってしまいます。
一方、Neutonはこれらすべてを自動的に処理します。最初からネットワークのパラメータを静的に定義する代わりに、Neutonはネットワークを自動的に成長させ、新しいニューロンを追加するたびに、それがモデルの性能を向上させるか確認します。意味のないニューロンは、資源を節約するため即座に取り除かれます。これは、開発者にはいくつも利点があります:
- ニューラルネットワークの構造、パラメータ、アーキテクチャの手作業による選択が不要
- リソースを消費するニューラル アーキテクチャの自動探索(NAS)が不要
- コードサイズが小さく、圧縮や最適化が不要
- 実行が高速であるため電力消費も小さい
Neutonモデルはプラットフォームから純粋なCコードとしてダウンロードされ、外部依存や特別なランタイム要件はありません。nRF52、nRF53、nRF54L、nRF54HシリーズSoCやnRF91シリーズSiPのアプリケーション コアのように、Arm Cortex-Mシリーズ プロセッサ上で動作する全てのアプリケーションに統合できます。
開発者にとっての意味
Neutonフレームワークを使ったMLモデルの作成は、lab.neuton.aiで既に利用可能です。今日にでも試すことができます。ただし、サンプルはまだ提供されていないため、ご自身でnRF Connect SDKアプリケーションに統合する必要があります。Nordicが誇る、より合理的な開発プロセスおよび開発体験をご希望の場合、Nordicでは開発エコシステムへの統合に関して、大きな機能強化を計画しています。そのため、すべての統合作業を自分でやってみたいのでなければ、nRF Connect SDKのサンプルと、Nordicのソリューションとシームレスに動作させるために必要なツールができるまでお待ちください。新製品の通知をご購読ください。エッジAIワークフローの最新情報をお知らせします。
仕組み
専用サンプル ファームウェアによるnRF Connect SDKとの統合はまだ開発中ですが、Neutonフレームワークを使用したモデル生成はすでに完全に自動化されており、非常に簡単です。
完全で依存性のないモデルをアプリケーション用に生成するには、3つのステップしか必要ありません。
- データを収集し、データセットをアップロードします。プラットフォームがラベル付きのCSVファイルを取得します
- データセットのどの変数がターゲット変数かを選択し、評価指標を選択します
- プラットフォームはバックグラウンドで自動的にニューラルネットワークを成長させ、アルゴリズムが完成すると通知します。
- Neutonモデルを完全なCライブラリとしてダウンロードし、わずか3つのシンプルな関数呼び出しのAPIを使用してアプリケーションに統合します:
- neuton_nn_setup - Neutonの内部コンポーネントをセットアップします。最初に、一度だけ呼び出します
- neuton_nn_feed_inputs - モデル推論のためにライブ入力特徴量をフィード、準備します
- neuton_nn_run_inference - 生成された入力特徴量をNeutonモデルに入力し、出力を計算します
可能となるユースケース
Neutonは、これまでNordicのフラッグシップ ハードウェアでしか実現できなかったユースケースを解放し、Nordicの全てのSoCをエッジAIに利用できるようにしました。例えば以下のようなアプリケーションです:
- 予知保全とビルオートメーションシステム
- 各ノードでローカルデータ分析を行うスマートセンサーネットワーク
- リモコンやウェアラブルデバイスのためのモーションおよびジェスチャー認識
- スマートヘルスウェアラブルのための健康と活動モニタリング
- その他にもたくさんあります...
ベンチマーク
下表は、同じnRF52840 SoC上で実行されたLiteRTモデル(以前はTensorFlow Lite for Microcontrollersとして知られていた)とNeutonモデルのベンチマーク結果を示しています。この比較は、よく知られた「魔法の杖」モーション認識のユースケースを使用したものです。両モデルは同じデータセットでトレーニングされ、同じホールドアウトセットで検証されました。
モデル |
LiteRT |
Neuton |
Neutonのアドバンテージ |
NVM: TinyML* |
80 KB |
5.4 KB |
1/14のサイズ |
NVM: ドライバ+ロジック |
93 KB |
93 KB |
NVM使用量が43%減 |
RAM: TinyML* |
18 KB |
1.7 KB |
1/10のサイズ |
RAM: ドライバ+ロジック |
46 KB |
46 KB |
RAM使用量が26%減 |
推論時間 |
55,262 µs |
1,640 µs |
33倍高速 |
精度 |
0.93 |
0.94 |
0.70% |
* TinyMLフレームワーク (モデル+推論エンジン+DSP)
詳細な比較はこちら(外部リンク)をご覧ください。
次のステップ
今後数か月間で、NordicはNeutonを開発エコシステムに統合し、開発者を支援し、アプリケーションに付加価値を与えるツール、サンプル、サポートを追加していきます。Neutonモデルの構築と統合をご自分で試してみたい場合、lab.neuton.aiのレガシー オンライン プラットフォームを使って今すぐお試しください。