ホームへ戻る

邊緣 AI/推論系統

ESP32-S3、階層型埋め込みにより16MB Flash上で2,890万パラメータモデルを実行、生成速度は毎秒約9.5 token

オープンソースプロジェクト「esp32-ai」は、パラメータの大部分をメモリマップドFlashへ移し、小型のTransformerコアだけを高速メモリに配置することで、約8ドルのマイクロコントローラーによる完全オフラインのテキスト生成を実現した。この成果は階層型モデルをファームウェアに組み込めることを示す一方、TinyStoriesレベルの出力を汎用的な言語理解やデバイス制御能力と同一視することはできない。

Popolon · CC BY-SA 4.0 · Image source
zh-Hant

オープンソースプロジェクト「esp32-ai」が、最近技術コミュニティで注目を集めている。開発者は、2,890万パラメータを持ち、4-bit量子化後のサイズが約14.9MBとなる言語モデルをESP32-S3にデプロイした。テスト用ハードウェアは、デュアルコア240MHz LX7、512KB SRAM、8MB PSRAM、16MB Flashのみだが、それでも毎秒約9~9.5 tokenの速度で短編物語を生成できる。推論処理はネットワーク、スマートフォン、外部サーバーのいずれにも依存しない。また、事前収録されたデモだけではなく、学習、エクスポート、量子化、ホスト側での数値検証、書き込みまでの一連のフローも提供している。

鍵となるのは、より高速な行列演算コアではなく、パラメータを配置するメモリ階層の再設計だ。約2,500万個のパラメータは階層型埋め込みテーブルに属し、メモリマップ可能なFlashに格納される。各tokenの生成時には、関連する少数の行だけを読み出す。実際のTransformer演算を担う密なコアは約56万パラメータで、ワークバッファーとともに、より高速なSRAMまたはPSRAMに配置される。これは、GoogleがGemma 3nで採用したper-layer embeddingsの考え方に近い。容量の大きなルックアップデータを安価で低速なメモリに保持し、ステップごとにモデル全体を転送することを避ける。メモリ帯域幅に制約のあるMCUでは、単に重みを小さくすること以上に重要な工夫だ。

エンジニアリング上の価値は、生成モデルをファームウェアの一部にできることを実証した点にある。オフラインのテキストインターフェース、限定領域での分類、センサーデータの要約、ネットワーク切断時のフォールバック処理などの研究に適している。データをデバイス外へ送る必要がなく、クラウドのレイテンシーや継続的なコストも削減できる。ただし、現行モデルの主要なデータソースはTinyStoriesであり、実証されているのは単純な物語生成とパターン学習であって、信頼できる質問応答、推論、コントローラーとしての能力ではない。パラメータ数も大規模な埋め込みテーブルによって押し上げられているため、同規模の密なモデルと直接比較することはできない。今後は、実際の指示データに対する精度、ピーク時のメモリ使用量と消費電力の測定、さらに誤った出力を決定論的なファームウェアルールで安全に制限できるかどうかに注目すべきだ。

出典

  1. slvDev/esp32-ai
  2. Gemma 3n model overview
  3. Running a 28.9M-Parameter LLM on an $8 Microcontroller