IoTデバイスで機械学習を身近なものにするには?

次からも入手できます English 日本語

小規模な機械学習をIoTエッジデバイスで広く可能にすれば、様々なインダストリーを超えてスマート・センシングにおける飛躍となるでしょう。以下、私たちの現在進行中のTinyML as-a-Serviceプロジェクトの一環としてIoT機械学習を可能にする技術的なマイルストーンを示します。

 IoTの可能性を最大限に引き出す

Senior Researcher IoT

Experienced Researcher IoT technologies

Senior Researcher IoT

Contributor (+1)

Experienced Researcher IoT technologies

Category & Hashtags

概念としてのTinyMLはIoTデバイスの超低消費電力(ULP~1mW)のマイクロコントローラー上で機械学習の推論を実行することです。今日でさえ、様々な課題が組み込みIoTでのTinyMLの効率的な実行を制限しています。

私たちエリクソンのTinyMLaaSの焦点はTinyMLを容易にすることです。それは製造業者が8、16、32ビットのマイクロコントローラー上でTinyMLを使うAIビジネスを容易に始められるようにすることです。

私たちの目的はある特定のクラスのデバイスにおいて機械学習タスクの実行を容易にすることです。それらのデバイスはマイクロコントローラー上のセンサーやアクチュエーターといった非常に非力なハードウェアとソフトウェアのリソースのカテゴリーです。

以下、どのようにしてTinyMLに「as-a-Service」を結びつけたか紹介します。私たちのコンセプトの技術的な概観を示し、この新しいパラダイムを形成するデザイン要件と構成要素を紹介します。

これはTinyML as-a-Service連載の3回目です。以前の記事では、「TinyML as-a-Serviceの紹介」、「エッジでの機械学習の課題」を紹介しました。

TinyMLaaSを可能にするアプローチ

ハードウェアとソフトウェアの依存度を可能な限りなくしてTinyMLソフトウェアの高位抽象化を構築することを提案します。さらにそれを「as-a-Service」として提供します。なぜか?機械学習のための特製ハードウェア利用は専用のMLコンパイラーを必要とします。MLコンパイラーは機械学習モデルをそのハードウェア用に変換します。ハードウェアと専用コンパイラーという特殊性は様々な分断化を生みます。また目的のハードウェア用に再コンパイルが必要というのは柔軟性に欠けます。MLコンパイラーは非常に強力なツールなので、機械学習エコシステムにおけるその重要な役割を無視できません。

このソフトウェア抽象化がTinyMLaaSの基礎です。それは幅広いMLコンパイラーを提供するようにデザインされたクラウドもしくはエッジサービスです。デバイス上で実行できるように特定のML推論モデルを適当なフォーマットに変換するのがMLコンパイラーの仕事です。

私たちのTinyMLコンセプトに基づいたエコシステムが必要だと思います。このエコシステムで開発者はハードウェア・プラットフォームに関わらずML推論モデルをコンパイルすることができます。

ML推論モデルを特定デバイス向けにカスタマイズするためにTinyMLaaSは次のようなデバイス自体の情報を収集する必要があります。CPUタイプ、RAM/ROMサイズ、利用可能なペリフェラル・デバイス、基本ソフトウェア、実行する推論モデル。

上記のパラメータに基づいてTinyMLaaSバックエンドは最適なMLコンパイラーを選択してML推論モジュールを生成します。

私たちの実装では、エンド・デバイスとのコミュニケーションにLwM2Mデバイス・マネージメント・プロトコルが使われています。IoTと組み込みシステムのコンテキストでLwM2Mが選ばれるにはいくつかの理由があります。この理由を知るためには、2014年、2015年、2017年の以前の記事を参照してください。

TinyMLaaSはLwM2Mを使うのはFirmware-Over-The-Air(FOTA)とSoftware-Over-The-Air(SOTA)アップデートを利用するためでもあります。エンド・デバイスとTinyMLaaSがデバイス情報を交換するときに標準モデルを利用したいためにLwM2MとIPSOが一緒に統合されています。

TiyMLaaSエコシステムの構築

TinyMLaaSのアプローチは様々な製造業者からの様々なデバイス間のML相互運用性を強化するにも役立ちます。そのおかげで中小規模事業者は大企業とともにゲームに容易に参加できます。できるだけ多くのデバイスにサービスを提供して様々なAIチップとそのコンパイラー間にある既存の相互運用の壁を壊すことです。この相互運用を可能にするためには、TinyMLaaSを構成する三つの必要不可欠な構成要素「コンパイラ・プラグイン」、「オーケストレーション・プロトコル」、「推論モジュール・フォーマット」があります

図 1:TinyMLaaS エコシステムのため三つの構成要素の定義

図 1:TinyMLaaS エコシステムのため三つの構成要素の定義

この三つの構成要素をサポートすることがハードウェア・プラットフォームをTinyMLaaSエコシステムに参加させるために必要です。この三つの構成要素を定義することでそれぞれの構成用をが独立して実装することができ、後でAIビジネスのために統合することができます。以下の図で三つの構成要素の目的を図示しています。

最初の構成要素のコンパイラー・プラグイン・インターフェースは、TinyMLaaSバックエンド(MLコンパイラー)に渡すパラメーターと、その戻り値の出力フォーマットです。TinyMLaaSはリクエストを受け付けるフロントエンドようなもので複数のMLコンパイラーのバックエンドを持ちます。リクエストは適当なバックエンドへと送られコンパイルの出力が返されます。様々なベンダーからの複数のMLコンパイラーを持つために使用するデバイスへのパラメーターを修正するよりも標準化されたパラメーターを定義することが望ましいです。

図2:コンパイラー・プラグイン・インターフェースの目的

図2:コンパイラー・プラグイン・インターフェースの目的

第2の構成要素のオーケストレーション・プロトコルは、まずデバイスの機能を収集します。そして次に生成されたイメージをデバイスにインストールします。この構成要素のおかげでデバイスとTinyMLaaSは洗練されたAPIを用いてインタラクションすることができます。この点においてLwM2Mは標準のプロトコルを用いているので最適の特性を持ちます。また、特に組み込みIoTに適しています。

図3:LwM2M経由のオーケストレーション・プロトコールの目的

図3:LwM2M経由のオーケストレーション・プロトコールの目的

第3の構成要素の推論モジュール・フォーマットはSOTAで必要となります。SOTAは部分的ソフトウェア・アップデートです。これは複数のリアルタイムOSを単一のフォーマットでサポートするためです。これは基本的にMLコンパイラーに処理された出力と同様にML推論アプリケーションそのものです。大多数の異種デバイスが一貫性のある推論モデルのフォーマットをもたないためここでのプロセスは統一されていません。この点からデバイス間のMLソフトウェアの移植性を容易にするために推論モジュール・フォーマットを標準化することを待ち望んでいます。

図4:インターフェース・モジュール・フォーマットの目的

図4:インターフェース・モジュール・フォーマットの目的

TinyMLaaS エコシステムのライフサイクルのプロセスをあてはめる

TinyMLaaSエコシステムのライフサイクルのプロセスをあてはめると以下の図5において典型的なクラウド~エッジ~デバイあスのシナリオのなかでこれらのインターフェースが使用されるかを示しています。青い矢印は構成要素がエコシステム内でどのように働くかを示しています。

図5:TinyMLaaS エコシステム内の構成要素のインタラクション

図5:TinyMLaaS エコシステム内の構成要素のインタラクション


TinyMLaaS から MLCaaSへ

TinyMLaaSで使用された原理はMLエコシステムを特徴づける高異種性に挑む重要な要素を示しています。このシリーズの最初の二つの記事で解説したように様々な実行環境(クラウド、エッジ、IoTデバイス)向けにMLフレームワークやML向けハードウェアはこれからもっと出てくるでしょう。

様々な異質の構成要素からなるML-IoTシステムを利用する可能性を非常に待ち望んでいますが現在のソリューションでは同じくらい達成が難しいものです。TinyMLaaSの狙いはこのギャップを埋めることです。

更にこのコンセプトはIoTから切り離して同様かつより高い次元でML as-a-Service(MLCaaS)として再構成されます。実際、MLフレームワークが標準の計算グラフを生成する限りMLコンパイラーは容易に目標のハードウェア向けのML推論モジュールを生成します。

これは基本的に私たちの活動の論理的根拠となります。私たちはGPUを持つクラウドコンピューティング環境、FPGAを持つエッジコンピューティング、もしくはAIチップを持つIoTデバイス間におけるMLアプリケーションのスムーズな移行を提供できるサービスプラットフォームの構築に励んでいます。

結論

TinyMLaaSシリーズを楽しんでもらえたら幸いです。TinyMLコミュニティは去年一年間で大躍進しました。チップベンダー、コンパイラー業者、サービス提供者などのエコシステム参加者はこのエコシステムの発展に関わり影響を及ぼすことができます。私たちエリクソンは産業の垣根を超えたコラボレーションを促進しかつ待ち望んでいます。

もっと読む

TinyML as-a-Serviceとは? IoT Edgeに対してどのような意味を持つのか?

TinyML as-a-Service、エッジ機械学習の課題

将来のIoTエコシステムについてはこちら こちら

The Ericsson Blog

Like what you’re reading? Please sign up for email updates on your favorite topics.

Subscribe now

At the Ericsson Blog, we provide insight to make complex ideas on technology, innovation and business simple.