邊緣 AI/推論系統
28.9M 參數語言模型塞進 ESP32-S3,以分層嵌入避開 512KB SRAM 限制
開發者在約 8 美元的 ESP32-S3 上部署 4-bit、28.9M 參數語言模型,實測生成速度約 9.5 token/s,全程不需網路連線。關鍵不是把完整模型載入記憶體,而是把佔多數參數的分層嵌入留在快閃記憶體,逐 token 只讀取實際需要的列。

一項近期在開發者社群受到關注的實驗,把 28.9M 參數語言模型部署到 ESP32-S3 微控制器。測試硬體只有 512KB SRAM、8MB PSRAM 與 16MB flash;量化後模型大小約 14.9MB,實測端到端生成速度為每秒 9.5 個 token,而且推論、採樣與文字輸出全部在裝置上完成。
這套設計利用源自 Gemma 系列的 Per-Layer Embeddings。模型約 2,500 萬個參數位於嵌入查找表,不必在每個 token 都參與矩陣運算,因此被保留在較慢但容量較大的 flash。每一步推論只抓取約六列、合計約 450 bytes;反覆使用的運算核心放在 SRAM,輸出頭與工作區則使用 PSRAM。這種記憶體分層避免將完整權重搬入高速記憶體,也讓大型查找表的容量不直接轉化為同等規模的運算成本。
模型以 TinyStories 合成資料訓練,能力主要是產生短篇、簡單英文故事;它不具備可靠的問答、指令遵循、程式生成或事實知識能力。因此,28.9M 參數不能直接與一般 LLM 的有效容量相比:其中大部分是稀疏讀取的嵌入資料,真正逐 token 運作的核心仍很小。
專案已公開 C 韌體、訓練、消融與量化程式,提供可檢查的重現路徑。工程上更值得觀察的是 flash 的隨機讀取延遲、耗電與耐用度,以及相同方法能否延伸至感測器分類、語音命令或小型工具模型;目前的單板結果仍不足以證明它適合長時間、即時或電池供電產品。