邊緣 AI/推論系統
28.9Mパラメータの言語モデルをESP32-S3に搭載、階層型Embeddingで512KB SRAMの制約を回避
開発者が約8米ドルのESP32-S3に、4-bit量子化した28.9Mパラメータの言語モデルをデプロイし、実測で約9.5 token/sの生成速度を達成した。ネットワーク接続は一切不要だ。鍵となるのはモデル全体をメモリにロードするのではなく、パラメータの大半を占めるPer-Layer Embeddingsをflashに保持し、各tokenで実際に必要な行だけを読み出す仕組みにある。

開発者コミュニティで最近注目を集めている実験では、28.9Mパラメータの言語モデルをESP32-S3マイクロコントローラーにデプロイしている。テスト用ハードウェアは512KB SRAM、8MB PSRAM、16MB flashのみ。量子化後のモデルサイズは約14.9MBで、エンドツーエンドの生成速度は実測で9.5 token/sに達し、推論、サンプリング、テキスト出力のすべてがデバイス上で完結する。
この設計では、Gemmaシリーズに由来するPer-Layer Embeddingsを利用している。モデルの約2,500万パラメータはEmbedding Lookup Tableに格納されており、tokenごとに行列演算へ参加する必要がないため、低速だが大容量のflashに保持される。各推論ステップで取得するのは約6行、合計約450 bytesにすぎない。繰り返し使用される演算コアはSRAMに配置し、出力ヘッドとワークスペースにはPSRAMを使用する。このメモリ階層化により、全weightを高速メモリへ移す必要がなくなり、大規模なLookup Tableの容量がそのまま同規模の計算コストに直結することも避けられる。
モデルはTinyStoriesの合成データで学習されており、主な能力は短く単純な英語の物語を生成することに限られる。信頼できるQuestion Answering、Instruction Following、Code Generation、Fact Knowledgeの能力は備えていない。したがって、28.9Mパラメータという数字を一般的なLLMの実効容量と直接比較することはできない。パラメータの大半は疎に読み出されるEmbeddingデータであり、tokenごとに実際に動作するコアは依然として小さい。
プロジェクトはC firmware、学習、ablation、量子化用のコードを公開しており、検証可能な再現手順を提供している。エンジニアリング面でより注目すべき点は、flashのランダム読み出しレイテンシ、消費電力、耐久性に加え、同じ手法をセンサー分類、音声コマンド、小型Tool Modelへ拡張できるかどうかだ。現時点の単一ボードでの結果だけでは、長時間稼働、リアルタイム処理、またはバッテリー駆動製品への適性を証明するには不十分である。