ESP32-S3 マイクロコントローラーで 28.9M パラメータ LLM を実行する
ESP32-S3 マイクロコントローラーで 28.9M パラメータ LLM を実行する
$8 マイクロコントローラーでのローカル LLM 実行
研究者は、ESP32-S3 マイクロコントローラーに 2890 万パラメータの言語モデルを正常にデプロイし、約 9.5 トークン/秒の生成速度を達成しました。これは、同様のチップで以前のモデルが約 26 万パラメータに制限されていたことに比べ、このハードウェアクラスにおけるモデル容量の大幅な向上を示しています。
Per-Layer Embeddings を用いたメモリ制約の克服
マイクロコントローラーで LLM を実行する際の主な障壁は、高速メモリ(SRAM)の深刻な制限です。ESP32-S3 はわずか 512KB の SRAM を提供し、通常は実行のためにモデル全体を高速メモリにロードする必要があります。
これを回避するため、プロジェクトは Google の Gemma モデルから派生した Per-Layer Embeddings 手法を利用します。SRAM にモデル全体をロードする代わりに、システムはパラメータの大部分—具体的には 2500 万行の埋め込みテーブル—を遅いフラッシュメモリに格納します。モデルはトークンごとに数行(約 450 バイト)しか読み込む必要がないため、フルテーブルを RAM にロードすることなく、フラッシュメモリからオン・ザ・フライでサンプリングできます。
メモリアーキテクチャのレイアウト
- SRAM (高速, 小容量): 各トークンに使用される「思考」コアを収容します。
- PSRAM (中容量): 出力ヘッドと作業メモリに使用されます。
- FLASH (巨大, 遅い): 2500 万パラメータのテーブルを格納し、トークンごとに約 6 行しか読み込まれません。
モデルのパフォーマンスと機能
このモデルは 4-bit 量子化時にサイズが 14.9MB で、サーバー接続なしでデバイス上で完全に実行されます。
技術仕様
| 指標 | 値 |
|---|---|
| パラメータ | 28.9M (フラッシュルックアップテーブルに 25M) |
| ハードウェア | ESP32-S3 (512KB SRAM, 8MB PSRAM, 16MB フラッシュ) |
| 速度 | ~9.5 トークン/秒 エンドツーエンド |
| モデルサイズ | 14.9MB (4-bit) |
機能的制限
モデルの「推論」部分が小さいため、その有用性は制限されます。このモデルは TinyStories データセットで訓練されており、短くて一貫性のあるシンプルなストーリーを生成できます。次のタスクは実行できません:
- 事実の質問に答える
- 複雑な指示に従う
- コードを書く
コミュニティの洞察と潜在的な応用
開発者間の議論から、このアーキテクチャはテキスト生成を超えてその他の小規模な AI タスクにも拡張できることが示唆されています。
"また、約 20-30M パラメータの実行可能な TTS モデルがあることにも言及しておきます。これにより、ネットワークアクセスのない ESP32 がほぼリアルタイムで情報を読み上げることができるかもしれません。"
他のコミュニティメンバーは、歯の衛生デバイスなどの日常的なオブジェクトにこうしたモデルを組み込む可能性を指摘しました。また、他のメンバーは、Milk-V Duo のようなさらに強力な低コストボードが利用可能であることを指摘しました。このボードは最大 256MB のメモリと TPU を同様の価格帯で提供します。