人工知能のトレンドの 1 つは、「クラウド」から「エッジ」へと急速に移行していることです。 TinyMLは、多数のIoTデバイスのマイクロコントローラーに実装されている人工知能であり、今後数年間で産業分野における人工知能の重要な新しいアプリケーションになると期待されています。エッジ デバイスはコンピューティング リソースと電力が限られていることが多く、電力消費に非常に敏感です。このようなデバイスに AI モデルを実装すると、新たな課題が生じ、新たなアプリケーションも生まれます。この記事は、TinyML の概念、テクノロジー、将来の可能性を紹介する TinyML に関する一連の記事の最初のものです。 NASA が主導する小型化のトレンドは、家電業界全体に広がっています。ベートーヴェンの作品すべてを1つのピンバッジに収納し、ヘッドフォンで聴くことができるようになりました。 ———ニール・ドグラース・タイソン、天体物理学者、科学評論家 …超低電力組み込みデバイスの普及と、マイクロコントローラ向け TensorFlow Lite などの組み込み機械学習フレームワークの導入により、AI 駆動型 IoT デバイスが広く利用できるようになります。 ———ハーバード大学准教授、ヴィジェイ・ジャナパ・レッディ 図1 デバイスに埋め込まれたTinyMLの概要 モデルは大きいほど良いです。 この記事は TinyML に関する一連の記事の最初のもので、読者に TinyML の概念と将来の可能性を紹介することを目的としています。このシリーズの次の記事では、特定のアプリケーション、実装、チュートリアルについて詳しく説明します。 導入 過去 10 年間、プロセッサ速度の向上とビッグ データの出現により、機械学習アルゴリズムのサイズが急激に増加しました。当初、モデルのサイズは小さく、CPU の 1 つ以上のコアを使用してローカル コンピューター上で実行されていました。 その後すぐに、GPU コンピューティングによって大規模なデータセットを処理できるようになり、Google Colaboratory などの SaaS プラットフォームや Amazon EC2 インスタンスなどの IaaS などのクラウドベースのサービスを通じて GPU テクノロジーがより利用しやすくなりました。同時に、アルゴリズムは単一のマシン上で実行することもできます。 最近では、専用の ASIC と TPU が約 8 個の GPU に相当する処理能力を提供できるようになりました。これらのデバイスの開発により、学習アルゴリズムを複数のシステムに分散する機能が強化され、ますます拡大するモデル サイズのニーズに対応できるようになりました。 2020 年 5 月にリリースされた GPT-3 アルゴリズムは、モデルの規模を前例のないレベルに押し上げました。 GPT-3 のネットワーク アーキテクチャには、驚異的な 1,750 億個のニューロンが含まれています。これは、人間の脳の約 850 億個のニューロンの 2 倍以上、Turing-NLG のニューロン数の 10 倍以上です。 2020 年 2 月にリリースされた Turing-NLG は、約 175 億のパラメータを持つ、これまでに作成された中で 2 番目に大きいニューラル ネットワークです。ある推定によれば、GPT-3モデルのトレーニングには約1,000万ドルの費用がかかり、1時間あたり原子力発電所3基分の電力に相当する約3GWhの電力を消費するという。 GPT-3とTuring-NLGの成果は称賛に値するが、当然ながら、AI業界の二酸化炭素排出量の増大について業界関係者から批判の声が上がっている。一方、よりエネルギー効率の高いコンピューティングを実現する人工知能の分野への関心も高まりました。過去数年間、より効率的なアルゴリズム、データ表現、計算の概念は、一見無関係に思える TinyML (小さな機械学習) の分野の焦点となってきました。 機械学習と組み込み IoT デバイスの交差点である TinyML は、多くの業界に革命を起こす可能性を秘めた新興エンジニアリング分野です。 TinyML の主な受益者は、エッジ コンピューティングとエネルギー効率の高いコンピューティングです。 TinyML は、モノのインターネット (IoT) の概念から生まれました。 IoT に対する従来のアプローチは、ローカル デバイスからクラウドにデータを送信して処理することです。プライバシー、レイテンシー、ストレージ、エネルギー効率の観点から、このアプローチについて懸念する人もいます。
上記の問題がエッジコンピューティングの開発を推進しています。エッジ コンピューティングの考え方は、クラウドの「エッジ」に展開されたデバイス上でデータ処理機能を実装することです。これらのエッジ デバイスは、メモリ、コンピューティング、機能の面で独自のリソースによって大きく制限されているため、より効率的なアルゴリズム、データ構造、コンピューティング方法の開発が必要です。 このような改善は、より大きなモデルにも適用され、モデルの精度を低下させることなく、機械学習モデルの効率を桁違いに向上させます。たとえば、Microsoft が開発した Bonsai アルゴリズムは 2 KB と小さいですが、一般的な 40 MB の kNN アルゴリズムや 4 MB のニューラル ネットワークよりもパフォーマンスが優れています。この結果は印象的ではないかもしれませんが、言い換えれば、10,000 倍小さいモデルで同じ精度を達成したというのは非常に印象的です。このような小さなモデルは、2KB のメモリを搭載した Arduino Uno で実行できます。つまり、5 ドルのマイクロコントローラー上でこのような機械学習モデルを構築することが可能になったのです。 機械学習は、コンピューティング中心のコンピューティングとデータ中心のコンピューティングという 2 つのコンピューティング パラダイムが並行して進歩している岐路に立っています。コンピューティング中心のコンピューティング パラダイムでは、データはデータ センターのインスタンス上に保存され、分析されますが、データ中心のコンピューティング パラダイムでは、処理はデータの元の場所で実行されます。コンピューティング中心のコンピューティング パラダイムはすぐに限界に達しそうですが、データ中心のコンピューティング パラダイムはまだ始まったばかりです。 現在、IoT デバイスと組み込み機械学習モデルの人気が高まっています。 2020 年末までに、アクティブデバイスの数は 200 億台を超えると予測されています。スマートドアベル、スマートサーモスタット、スマートフォンなど、ユーザーが話しかけたり、持ち上げたりすることで「起動」できるデバイスの多くは、人々に知られていないかもしれません。この記事の残りの部分では、TinyML の仕組みと、その現在および将来のアプリケーションについて詳しく説明します。 図 2: クラウド階層図。 TinyMLの例 以前は、デバイスによって実行されるさまざまな操作は、複雑な集積回路に基づいて実行する必要がありました。現在、機械学習のハードウェア「インテリジェンス」は徐々にソフトウェアに抽象化されており、組み込みデバイスはよりシンプルで軽量、そして柔軟になっています。 組み込みデバイスに機械学習を実装することは大きな課題ですが、この分野では大きな進歩が遂げられています。マイクロコントローラにニューラル ネットワークを展開する際の主な課題は、メモリ フットプリントの低さ、電力制約、およびコンピューティング制約です。 スマートフォンは TinyML の最も典型的な例です。携帯電話は、Android スマートフォンの「Hey Google」や iPhone の「Hey Siri」などの「ウェイクワード」を常に積極的に待機しています。音声ウェイクアップサービスをスマートフォンのCPU(主流のiPhoneのCPUはすでに1.85GHz)で実行する場合、わずか数時間でバッテリーが消耗してしまいます。このような電力消費は許容できないため、ほとんどの人は音声ウェイクアップ サービスを 1 日に数回しか使用しません。 この問題に対処するために、開発者は CR2032 コイン型電池などの小型電池で駆動できる特殊な低電力ハードウェアを開発しました。 CPU が動作していないときでも、集積回路はアクティブなままです (通常は画面が点灯していないことで示されます)。 このような集積回路はわずか 1mW の電力しか消費せず、標準の CR2032 電池を使用して最大 1 年間電力を供給できます。 これは大したことではないと考える人もいるかもしれませんが、非常に重要な前進です。多くの電子機器にとってボトルネックとなるのはエネルギーです。主電源を必要とするデバイスは、電源配線の場所によって使用が制限されます。 12 台を超えるデバイスが同じ場所に設置されている場合、電源がすぐに過負荷になる可能性があります。主電源はあまり効率的ではなく、高価です。主電源電圧 (米国で使用されている 120V など) を一般的な回路電圧範囲 (通常は約 5V) に変換する際には、大量のエネルギーが浪費されます。ノートパソコンのユーザーは皆、充電器を抜くときにこのことをよく理解しています。充電器の内部変圧器によって発生する熱は、電圧変換プロセスで無駄になるエネルギーです。 デバイスに独自のバッテリーが付属している場合でも、バッテリー寿命には限りがあり、頻繁に充電する必要があります。多くの民生用電子機器のバッテリーは、丸一日持続するように設計されています。一部の TinyML デバイスはコインサイズのバッテリーで 1 年間動作できるため、電力を節約するために必要なときだけ通信し、リモート環境に展開できます。 ウェイクワード サービスは、スマートフォンにシームレスに組み込まれている唯一の TinyML アプリケーションではありません。加速度計のデータを使用して、ユーザーが電話を手に取ったばかりかどうかを判断して、CPU を起動し、画面を点灯させることができます。 明らかに、TinyML の用途はこれだけではありません。実際、TinyML は、ファンと企業の両方にとって、よりスマートな IoT デバイスを作成するための魅力的なアプリケーションを数多く提供しています。データの重要性がますます高まっている現在、メモリに制約のあるリモートデバイスに機械学習リソースを配布する機能は、農業、天気予報、地震などのデータ集約型産業に大きなチャンスをもたらします。 エッジ デバイスにデータ駆動型処理を実行する機能を持たせることで、産業プロセスにおけるコンピューティングにパラダイム シフトがもたらされることは間違いありません。たとえば、作物を監視し、土壌水分、特定のガス(リンゴが熟すとエタンが放出されるなど)、特定の大気条件(強風、低温、高湿度など)などの特性を検出できれば、作物の成長が大幅に促進され、収穫量も増加します。 もう 1 つの例としては、スマート ドアベルにカメラを設置して、顔認識機能を使用して訪問者を識別するというものがあります。これにより、セキュリティ機能が実現され、誰かが到着するとドアベルカメラの映像が家の中のテレビ画面に出力され、所有者は玄関に訪問者が来たことを知ることができます。 現在、TinyML の主な 2 つの応用分野は次のとおりです。
下の図は、現在の TinyML 機械学習アプリケーションの包括的な概要を示しています。 図 3. TinyML の機械学習の使用例。画像出典: NXP。 TinyMLの仕組み TinyML アルゴリズムは従来の機械学習モデルとほぼ同じように動作し、モデルのトレーニングは通常、ユーザーのコンピューターまたはクラウドで実行されます。トレーニング後の処理は TinyML が真価を発揮する部分であり、しばしば「ディープ圧縮」と呼ばれます。 図4 深圧縮の概略図。出典: [ArXiv論文](https://arxiv.org/pdf/1510.00149.pdf)。 モデルの蒸留 よりコンパクトな表現を作成するには、トレーニング後にモデルを変更する必要があります。このプロセスの主な実装手法には、プルーニングと知識の蒸留が含まれます。 知識蒸留の基本的な考え方は、大規模なネットワーク内に存在するスパース性または冗長性を考慮することです。大規模ネットワークは表現能力が高くなりますが、ネットワーク容量が飽和していない場合は、表現能力の低い小規模なネットワーク(つまり、ニューロンの数が少ないネットワーク)で表現できます。 2015 年に Hinton らが発表した研究では、教師モデルから生徒モデルに転送される埋め込み情報は「ダーク ナレッジ」と呼ばれていました。 次の図は、知識蒸留のプロセスを示しています。 図5. 深圧縮プロセスの概略図。 図の教師モデルは、トレーニング済みの畳み込みニューラル ネットワーク モデルであり、そのタスクは、その「知識」を、生徒モデルと呼ばれる、パラメータの少ない小規模畳み込みネットワーク モデルに転送することです。このプロセスは知識蒸留と呼ばれ、同じ知識をより小さなネットワークに含めるために使用され、これによりネットワークを圧縮する方法が実現され、メモリが制限されたデバイスでも使用できるようになります。 同様に、プルーニングはよりコンパクトなモデル表現の実現に役立ちます。大まかに言えば、剪定は出力を予測するのにあまり役に立たないニューロンを除去することを目的としています。このプロセスでは通常、より小さなニューラル ウェイトが使用され、推論中に重要度が高いため、より大きなウェイトが保持されます。その後、ネットワークはプルーニングされたアーキテクチャ上で再トレーニングされ、出力を微調整できます。 図 6. 蒸留モデルの知識表現の剪定の図解。 量子化 蒸留されたモデルは、組み込みデバイスのアーキテクチャと互換性のある形式を形成するために、後続のトレーニングのために量子化される必要があります。 なぜ定量化する必要があるのでしょうか? Arduino Uno では、8 ビットの数値演算機能を備えた ATmega328P マイクロコントローラが使用されていると仮定します。理想的には、Uno でモデルを実行するには、32 ビットまたは 64 ビットの浮動小数点表現を使用する多くのデスクトップやラップトップとは異なり、モデルの重みを 8 ビットの整数値として保存する必要があります。モデルを量子化すると、重みのストレージ サイズが 1/4、つまり 32 ビットから 8 ビットに削減されますが、精度への影響は通常 1 ~ 3% 程度とわずかです。 図 7 32 ビット浮動小数点数を再構築するために使用される 8 ビットエンコード中の量子化誤差の概略図。画像ソース: [TinyML](https://tinymlbook.com/) ブック。 量子化誤差により、量子化プロセス中に一部の情報が失われる可能性があります。たとえば、整数ベースのプラットフォームでは、値 3.42 の浮動小数点表現は 3 に切り捨てられる可能性があります。この問題を解決するために、いくつかの研究では代替案として量子化を考慮した (QA) トレーニングを提案しています。 QA トレーニングでは基本的に、トレーニング中に量子化されたデバイスで使用可能な値のみを使用するようにネットワークを制限します (詳細については Tensorflow の例を参照してください)。 ハフマン符号化 エンコードはオプションの手順です。エンコーディングにより、データを最も効率的な方法で保存することで、モデルのサイズをさらに削減できます。通常はよく知られているハフマン符号化が使用されます。 コンパイル モデルを量子化してエンコードした後、軽量ネットワークインタープリターが解釈できる形式に変換する必要があります。最も広く使用されているのは、TF Lite(サイズ約500KB)とTF Lite Micro(約20KB)です。モデルは、ほとんどのマイクロコントローラで使用でき、デバイス上のインタープリターで実行できる、メモリ効率の高い C または C++ コードにコンパイルされます。 図 8. TinyML アプリケーションのワークフロー図。出典: Pete Warden と Daniel Situnayake による [TinyML](https://tinymlbook.com/)。 ほとんどの TinyML 技術は、マイクロコントローラによってもたらされる複雑さを処理することを目的としています。 TF Lite と TF Lite Micro が非常に小さいのは、必須でない機能がすべて削除されているためです。残念ながら、デバッグや視覚化などの便利な機能もいくつか削除されました。つまり、展開中に何か問題が発生した場合、その理由を特定するのが困難になる可能性があります。 さらに、モデルはデバイス上にローカルに保存される必要がありますが、推論の実行もサポートする必要があります。つまり、マイクロコントローラには、(1) オペレーティングシステムとソフトウェアライブラリ、(2) TF Lite などのニューラルネットワークインタープリター、(3) 保存されたニューラルネットワークの重みとアーキテクチャ、(4) 推論中の中間結果を実行するのに十分なメモリが必要です。したがって、TinyML に関する研究論文では通常、メモリ使用量、乗算累算ユニット (MAC) の数、精度などの指標に加えて、量子化アルゴリズムのピークメモリ使用量を示す必要があります。 デバイス上でトレーニングしてみませんか? デバイス上でのトレーニングでは、さらに複雑になります。数値精度の低下により、ネットワークトレーニングに十分な精度を確保することは非常に困難です。自動微分法は、標準的なデスクトップ コンピューターの精度の範囲内でほぼ正確です。導関数は 10^{-16} という驚異的な精度で計算できますが、8 ビット値の自動微分では精度の低い結果が得られます。バックプロパゲーション中に、導関数が結合され、最終的にニューラル パラメータを更新するために使用されます。数値精度がこのように低いと、モデルの精度が低くなる可能性があります。 上記の問題にもかかわらず、一部のニューラル ネットワークは 16 ビットおよび 8 ビットの浮動小数点数を使用してトレーニングされてきました。 ディープラーニングにおける数値精度の低減を研究した最初の論文は、2015 年に Suyog Gupta 氏とその同僚が発表した「Deep Learning with Limited Numerical Precision」です。この論文では、32 ビットの浮動小数点表現を精度をほとんど損なわずに 16 ビットの固定小数点表現に縮小できることを示す非常に興味深い結果が示されています。ただし、この結果は、平均に対して偏りのない結果を生成するため、確率的丸めを使用する場合にのみ適用されます。 2018 年に Naigang Wang 氏とその同僚が発表した論文「8 ビット浮動小数点数を使用したディープ ニューラル ネットワークのトレーニング」では、8 ビット浮動小数点数がニューラル ネットワークのトレーニングに使用されました。トレーニング中に 8 ビット値を使用することは、自動微分を行う際に機械の精度を達成できるように、バックプロパゲーション中に勾配計算の忠実度を維持する必要があるため、推論中よりも実装がはるかに困難です。 計算はどれくらい効率的ですか? モデルをカスタマイズすることで、モデルの計算効率を向上させることができます。良い例としては、モバイル デバイスで広く導入されているモデル アーキテクチャである MobileNet V1 と MobileNet V2 が挙げられます。これらは基本的に、再キャストによってより計算効率の高い畳み込み演算を実現する畳み込みニューラル ネットワークです。このより効率的な形式の畳み込みは、深さ方向に分離可能な畳み込みと呼ばれます。アーキテクチャのレイテンシを最適化するには、ハードウェア ベースのプロファイリングやニューラル アーキテクチャ検索などの手法も使用できますが、この記事では詳しく説明しません。 人工知能革命の新たな一幕 リソースが制限されたデバイス上で機械学習モデルを実行すると、多くの新しいアプリケーションへの扉が開かれます。標準的な機械学習のエネルギー効率を高める技術の進歩は、データサイエンスの環境への影響に関する懸念を和らげるのに役立つだろう。さらに、TinyML により、組み込みデバイスはデータ駆動型アルゴリズムに基づく新しいインテリジェンスを持つことができ、予防保守から森林での鳥の鳴き声の検出まで、さまざまなシナリオに適用できます。 モデルのサイズを拡大し続けることは、一部の機械学習実践者にとって確固たる方向性ですが、より高いメモリ、コンピューティング、エネルギー効率を備えた機械学習アルゴリズムの開発も新たなトレンドです。 TinyML はまだ初期段階にあり、この分野の専門家はほとんどいません。この記事の参考文献には TinyML 分野の重要な論文がいくつか記載されているので、興味のある読者はぜひ読んでみてください。この方向は急速に成長しており、今後数年間で産業分野における人工知能の重要な新しい応用分野となるでしょう。どうぞお楽しみに。 |
<<: 今週の土曜日は成都へ行こう! Baidu Wenxin (ERNIE) がエンタープライズレベルの NLP モデルを迅速にカスタマイズする方法の分析
>>: 自国の農業用ドローン産業の発展と成熟を促進するにはどうすればよいでしょうか?
マスク氏の脳コンピューターインターフェース企業 Neuralink が新たな進歩を遂げました。さらに...
AI がまた本を出版しました。今回は専門家向けの教科書です。科学技術系出版社のひとつ、ドイツのシュ...
翻訳者 |陳俊レビュー | Chonglouデジタル時代に入って以来、マルウェアはコンピュータ アプ...
人工知能技術の発展に伴い、人工知能はあらゆる分野で広く利用されるようになり、人類社会に広範かつ深遠な...
[[226531]]人工知能の発展において、人材の確保は間違いなく重要な鍵となります。人工知能は、...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
GPT4 などの現在の大規模言語モデル (LLM) は、画像が与えられた場合にオープンエンドの指示...
1. 自然言語生成自然言語生成は、構造化されたデータをネイティブ言語に変換する流行のテクノロジーです...
[[348486]]従来の掃除ロボットは、何も言わずにただ働くだけの家庭内の「ロールモデル」です。...
[51CTO.com からのオリジナル記事] 人工知能は最近とても人気があります。人々の焦点は、A...