3 ポイント 投稿者 GN⁺ 2024-01-17 | 1件のコメント | WhatsAppで共有

TinyMLとは何か

  • TinyMLマイクロコントローラで機械学習を使うこと を意味する。
  • 従来のMLで使われるシステムとは異なり、CPUとRAMが非常に少なく、消費電力がミリワットまたはマイクロワット級のシステムで使われる。
  • 大きなモデルを縮小し、リソースが極めて限られた機器やマイクロコントローラで使えるようにする作業を行う。
  • TinyML財団の公式Webサイトは https://www.tinyml.org/
  • ハーバード大学が無料で提供する3つの講座シリーズがある:
    1. TinyMLの基礎(何を作るのか、なぜ作るのか、どのような問題があるのか)
    2. TinyMLの応用(データ駆動、バイアスなど)
    3. TinyMLのデプロイ(モデルをどこに配置するか、セキュリティとプライバシー)

TinyMLの基本原理

  • マイクロコントローラを使う組み込みシステムは、最大256kBのメモリしか持たないため、大きなモデルは動かせない。
  • マイクロコントローラと一緒に使えるオペレーティングシステムの例:
    • FreeRTOS
    • Mbed OS
  • 機械学習は、データからパターンを見つけるアルゴリズムで構成される。
  • TinyMLでは、こうしたアルゴリズムを圧縮して、データから効率よくパターンを見つけられるようにする。
  • IoTで1日に生成されるデータは500京バイトで、このうち分析されるのは1%未満にすぎない。

アルゴリズム圧縮手法

  • 枝刈り(Pruning)

    • シナプス枝刈り: モデルからネットワーク接続を削除する。場合によっては精度が低下することがある。
    • ニューロン枝刈り: モデルからニューロン全体を削除し、ネットワークの計算要求を減らす。
  • 量子化(Quantization)

    • 値を小さな範囲内で離散化する。たとえば、浮動小数点を -128 から 127 の範囲内に離散化すれば、256個の値だけを探索すればよい。
    • 4バイトで保存される浮動小数点値を1バイトで保存される整数値に変えると、サイズは4分の1になる。
    • リソースが限られているため、TinyMLでは量子化が非常に重要である。
  • 知識蒸留(Knowledge distillation)

    • 知識やノウハウを適用してモデルを小さくする。

ツール

  • TensorFlow Lite を使用。
  • TensorFlowはML研究者に焦点を当てている一方、TensorFlow Liteはアプリケーション開発者向けである。

TinyMLの利用

  • DIY、メイカー、ハッカーの世界に特化したTinyMLのユースケースを、このWebサイトで見つけることができる。

産業におけるTinyMLの利用

  • 産業分野では保守に使われ、振動が発生したときに故障の可能性を警告することで効率を高め、コストを削減する。
  • 精度の問題により誤警報が発生する可能性があり、誤警報の責任はオペレーターまたはシステムにある。

環境におけるTinyML

  • データを収集してから処理する代わりに、TinyMLを使えば環境変化に対するリアルタイムの応答を得られる。たとえば、野生動物の生活の変化をリアルタイムで把握できる。

人のためのTinyML

  • 障害のある人が手を使わなくてもより多くの作業を行えるよう支援する。
  • アプリケーションのUIとUXを改善し、使いやすくする。
  • 技術は人間の体験を向上させるために作られる。技術は人を助けるべきである。

リスクと欠点

  • あらゆる人口集団でうまく機能するのか?
  • データのプライバシーは保証されるのか?
  • このデータを保護できるのか?
  • 人間中心のAIに基づいて技術を作るべきであり、設計、開発、デプロイの過程でこれを考慮しなければならない。

GN⁺の意見

  • TinyMLは、リソースが制約された環境でも機械学習を可能にする革新的な技術であり、IoT機器の効率性と知能を大きく向上させることができる。
  • 枝刈り、量子化、知識蒸留のようなアルゴリズム圧縮手法は、機械学習モデルを小型化し、低消費電力デバイスでも実行可能にする中核的要素である。
  • TinyMLの応用は、産業保守、環境モニタリング、障害者支援など多様な分野で人々の生活改善に貢献でき、技術が社会に与える前向きな影響の好例である。

1件のコメント

 
GN⁺ 2024-01-17
Hacker Newsの意見
  • Rust TinyMLコンパイラの開発

    • 修士論文プロジェクトとして、RustベースのTinyMLコンパイラを開発した。
    • Rustのプロシージャルマクロを用いて、コンパイル時にモデルを評価し、与えられたモデルに対して推論を実行する predict() 関数を生成した。
    • TensorFlow Lite for Microcontrollersやその他のエンジンよりもはるかに小さいバイナリサイズを達成した。
    • 8ビットATmega328(Arduino Uno)で音声コマンド認識器(TinyConv)の実行に成功した。
  • TinyML分野の魅力

    • TinyMLは、非常に小さなハードウェアでも多くのことができる魅力的な分野だ。
    • たとえば、esp32-s3を使ってリアルタイムのコンピュータビジョンシステムを構築できる(価格は約2ドル)。
    • AutoMLのようなソリューションを通じて、TinyML分野に手軽にアクセスできる。
    • ハードウェア企業は、消費電力を最小化するためにNPUを搭載したMCUの提供を始めている。
    • TinyMLは今後さらに注目を集める可能性が高い。
  • LLMを利用したインフラ標的ウイルス

    • LLM(Large Language Models)を使って、インフラを標的にするウイルスを想像する。
    • 小型デバイスを電力網に潜ませてネットワークトラフィックを収集し、システムを破壊しようとすることができるかもしれない。
    • こうしたデバイスはネットワーク機器に隠され、外部トラフィックを必要としないため、検知が難しい。
  • Edge ImpulseによるTinyML / Edge MLの説明

    • Edge Impulseは、MLモデルを構築してエッジデバイスにデプロイできるプラットフォームを構築している。
    • ユーザーはアカウントを作成し、キーワードスポッティングモデルを構築した後、WASM上で直接実行できる。
    • 組み込み向けアクセラレータASICs/NPUsの登場が、Edge MLの採用を後押ししている。
  • Hacker BoxのESP32、Tensor Flow Lite、Edge Impulseの使用例

    • 最近のHacker Boxでは、ESP32とTensor Flow Lite、Edge Impulseを使用した詳細な例が提供されている。
  • TinyMLの現在と未来

    • TinyMLは、低消費電力の組み込みデバイスで機械学習を実行することを意味する。
    • すべての携帯電話には、"Hey Google" や "Hey Siri" のようなキーワードを検知する低消費電力DSPチップが搭載されている。
    • TinyMLはエッジAIのサブセットであり、ネットワークの末端に位置するあらゆる種類のデバイスを含む。
    • この分野は非常に興味深く、多様な問題を解決し、ほぼあらゆる空間に適用できる技術だ。
  • TinyMLに関するさまざまな意見

    • TinyML分野では、制約のあるソリューションを作ることが重要なインパクトを持つという意見がある。
    • TinyMLはIoTと同様に、将来の重要技術と見なされているが、実際にはゆっくりと発展している。
    • TinyML分野の追加コンテンツを探している人のために、Asia 2023カンファレンスの動画が提供されている。