WebFPGAでブラウザ上のTinyMLを加速させる

新しいオープンソースフレームワークであるWebFPGAを使用すると、開発者はWebページから直接、10ミリ秒未満でTinyMLの推論を実行できます。これは、わずか数十ミリワットしか消費せず、すべてのデータバイトをデバイス内に保持するUSB接続のFPGAを使用します。

マイクロコントローラ上で動作する小さなニューラルネットワークであるTinyMLモデルは、現在、オンデバイスAIの主流となっています。しかし、推論をブラウザに移行する場合、開発者は依然として速度、電力、プライバシーのバランスに苦慮しています。従来の手段は、グラフィックスプロセッサ上で動作するWebGPUに依存するか、データをデバイス外に送信するクラウドサービスに依存するかのどちらかです。その両方がレイテンシを増大させ、より多くのエネルギーを消費し、生の入力をリモートサーバーにさらすことになります。

WebFPGAはこれらの問題を解消します。ブラウザはWebUSB APIを介してFPGAと直接通信します。このAPIはFTDIのUSB-シリアルコントローラと通信し、それがLattice iCE40-UP5Kチップにプログラムを書き込みます。ビットストリームがロードされると、FPGAはTinyMLランタイムを実行し、モデル全体をハードウェアアクセラレータ上で実行します。開発者の視点では、単一のJavaScriptコールで*.bit*ファイルをロードし、入力テンソルをストリーミングするだけです。

数値の比較

  • WebFPGA: レイテンシ4ms、消費電力約30mW、ホストからデータが外部へ出ることはありません。
  • WebGPU: レイテンシ12ms、消費電力約200mW、CPU/GPUがデータパスの一部を依然として処理するため、一部のデータ露出が残ります。
  • クラウド推論: レイテンシ80ms、ネットワークスタック動作時に約500mW、すべてのサンプルがリモートサーバーへ送信されます。

これらの数値は、1ミリ秒を争うシナリオやバッテリー駆動時間が限られている場合に、WebFPGAが極めて有効であることを明確に示しています。

実世界の活用シナリオ

  1. 音声アシスタント: 6ms未満で反応し、音声をデバイス外に送信することはありません。
  2. 産業用センサーモニタリング: インターネットのない隔離されたマシンであっても、異常が発生した瞬間に検知します。
  3. オンザフライの画像フィルター: 10ms未満で適用され、CPUをUIレンダリングのために解放します。

はじめに

  1. オープンソースのツールチェーンをインストールします:Yosys(論理合成)、nextpnr-ice40(配置配線)、icepack(ビットストリーム生成)。
  2. tinyml-convユーティリティを使用して、TensorFlow Liteモデル (.tflite) をVerilogに変換します。
  3. 論理合成を実行し、iCE40-UP5K用の*.bit*ファイルを生成します。
  4. Webページに webfpga.js を含めます。単一のJavaScriptコールでWebUSB経由でビットストリームをロードし、推論データをストリーミングします。

このワークフローは既存のFPGA開発パイプラインを反映していますが、最終ステップには標準的なWebブラウザとUSBケーブルさえあれば十分であり、独自のドライバーや重量級のSDKは必要ありません。

なぜ一部の開発者が依然としてWebGPUやクラウドを選択するのか

WebGPUはノートPCやデスクトップPCでより広範なハードウェアサポートを受けており、そのエコシステムにはすでに成熟したグラフィックスドライバーやツールが揃っています。

WebFPGAは、ブラウザが単なるUIレイヤー以上のものになれることを示しています。つまり、超低レイテンシでプライバシーを保護するAIハードウェアへのポータルになり得るのです。1ミリ秒を争い、データをローカルに保持しなければならないアプリケーションにとって、このフレームワークはGPU中心またはクラウド中心の推論パイプラインに代わる、強力な選択肢となります。