在 ESP32-S3 微控制器上運行 28.9M 參數的 LLM
在 ESP32-S3 微控制器上運行 28.9M 參數的 LLM
在 8 美元的微控制器上執行本地 LLM
研究人員成功地在 ESP32-S3 微控制器上部署了一個具有 2890 萬參數的語言模型,達到每秒約 9.5 個 token 的生成速度。這代表了此硬體類別的模型容量顯著提升,因為先前在類似晶片上運行的模型僅限於約 26 萬個參數。
透過 Per-Layer Embeddings 克服記憶體限制
在微控制器上運行 LLM 的主要障礙是快速記憶體(SRAM)的嚴重限制。ESP32-S3 僅提供 512KB 的 SRAM,這通常需要將整個模型載入快速記憶體以進行執行。
為了繞過此限制,該專案利用 Per-Layer Embeddings,這是一種源自 Google Gemma 模型的技術。系統不是將整個模型載入 SRAM,而是將參數的大部分——具體來說是一個 2500 萬行的嵌入表——存儲在慢速 flash 記憶體中。由於模型每個 token 只需讀取少數幾行(約 450 個位元組),系統可以即時從 flash 記憶體採樣,而無需將完整表載入 RAM。
記憶體架構佈局
- SRAM (Fast, Tiny): 存放每個 token 使用的「思考」核心。
- PSRAM (Medium): 用於輸出頭和工作記憶體。
- FLASH (Huge, Slow): 儲存 25M 參數表,每個 token 僅讀取約 6 行。
模型效能與功能
該模型在量化為 4-bit 時大小為 14.9MB,且完全在設備上運行,無需伺服器連線。
技術規格
| 指標 | 值 |
|---|---|
| 參數 | 28.9M (25M 在 flash 查詢表中) |
| 硬體 | ESP32-S3 (512KB SRAM, 8MB PSRAM, 16MB Flash) |
| 速度 | ~9.5 tokens/sec 端到端 |
| 模型大小 | 14.9MB (4-bit) |
功能限制
因為模型的「推理」部分很小,模型的實用性受到限制。該模型是在 TinyStories 資料集上訓練的,這意味著它可以生成短小、連貫、簡單的故事。它無法執行以下任務:
- 回答事實問題
- 執行複雜指令
- 編寫程式碼
社群見解與潛在應用
開發者間的討論表明,此架構可擴展至文字生成以外的其他小規模 AI 任務。
"此外,值得一提的是,存在可行的 TTS 模型,參數量約為 20-30M,這意味著您可以擁有一個無網路存取的 ESP32,能夠近乎即時地為您朗讀內容。"
其他社群成員強調將此類模型融入日常物品的潛力,例如牙科衛生設備;而其他成員則指出,存在更強大且低成本的開發板,例如 Milk-V Duo,其提供高達 256MB 的記憶體和一個 TPU,價格相近。