硬體
esp32-ai、2,890万パラメータのモデルをESP32-S3に搭載し、オフライン生成で9.88 token/sを達成
オープンソースプロジェクトのesp32-aiは、4-bit量子化と階層型メモリ配置を採用し、約2,500万の埋め込みパラメータをflashに保持して、tokenごとに必要な行だけを読み出す。10米ドル未満のマイクロコントローラ上でオフラインのテキスト生成が可能だが、その能力は依然として短い物語や単一分野の質問応答に限られる。

開発者のslvDevはesp32-aiを公開し、2,890万パラメータの言語モデルがESP32-S3マイクロコントローラ上で、ネットワークやサーバーを必要とせず直接テキストを生成するデモを披露した。プロジェクトが報告するエンドツーエンド速度は毎秒9.88 token。対象ハードウェアの構成は512KB SRAM、8MB PSRAM、16MB flashのみで、4-bitモデルファイルのサイズは14.9MBだ。コード、ファームウェア、学習および量子化のワークフローはMIT Licenseの下でGitHubに公開され、最近では約3,800 starsを獲得しており、コミュニティでの採用が進んでいることを明確に示している。
中核となる工夫は、モデル全体を繰り返しRAMへ移すのではなく、アクセス頻度に応じてパラメータを階層的に配置することだ。各tokenで複数回使用されるactivationと正規化の重みは最速のSRAMに配置し、各位置につき1回走査されるdense coreと出力ヘッドはPSRAMに置く。一方、約2,500万パラメータで構成されるlookup tableは、より低速なflashに保持する。推論時にtokenごとに読み出すのは約6行、約450 bytesにすぎないため、大部分の重みをワーキングメモリへロードする必要がない。この手法はGemma 3nのPer-Layer Embeddingsを応用し、スマートフォン向けのメモリ設計思想をマイクロコントローラ規模まで縮小したものだ。
プロジェクトでは、TinyStoriesの物語生成モデルとBaristaのコーヒー質問応答モデルも提供している。ダウンロードスクリプトは、固定されたSHA-256ハッシュとファイルサイズを使ってモデルアセットを検証する。続いてデプロイスクリプトがヘッダーファイルを生成し、ビルドと書き込みを実行する。研究用ディレクトリにはablationと量子化のコードも含まれており、ハードウェア開発者はデモ動画を見るだけでなく、公開されている数値を検証できる。
制約も明確だ。実際にsequence modelingを担うdense coreは約400万パラメータにすぎず、残りの大部分はlookup tableである。TinyStories版は、指示への確実な追従、事実に関する質問への回答、コード生成には対応できない。また、9.88 token/sはプロジェクト作者が特定のボードとモデルで測定した値であり、チップ間の比較、消費電力、長時間動作時の熱安定性に関する検証はまだ不足している。このプロジェクトが証明したのは、メモリ配置の工夫によってMCUに収容できるモデルを拡大できるということであり、マイクロコントローラが汎用LLMを代替できるようになったということではない。今後は、PLEがセンサー分類や音声コマンドなど実用的な組み込みタスクをサポートできるか、またflashへのランダムアクセスが消費電力と寿命に及ぼす影響が注目される。