在 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,價格相近。

Sources