在一塊 8 美元的微控制器開發板上執行擁有 2,890 萬個參數的大型語言模型(LLM) (★ 103 分)
這個 GitHub 專案展示了一個能在約 8 美元的 ESP32-S3 微控制器(microcontroller)上執行的 28.9 百萬參數大型語言模型(LLM,Large Language Model)。模型完全在晶片本身運作,不需連線至伺服器,並能以每秒約 9.5 個 token(文字片段)的速度,把文字逐字寫到外接的小型顯示器上。模型採 4 位元量化後約 14.9MB;相較於過去在同類晶片上執行的 26 萬參數模型,規模約大了一百倍。
關鍵做法是把模型中約 2,500 萬個參數放進快閃記憶體(flash)的查詢表,而不是全部塞進 ESP32-S3 僅 512KB 的 SRAM。每次處理一個 token 時,只需從快閃記憶體取出約 6 列、約 450 位元組的資料,真正需要頻繁運算的部分則留在快速的 SRAM,輸出層與工作記憶體放在 8MB 的 PSRAM。這套 Per-Layer Embeddings(逐層嵌入)概念源自 Google 的 Gemma 3n 與 Gemma 4,專案則將它改用於微控制器的記憶體配置;整體硬體另有 16MB 快閃記憶體。
模型以 TinyStories 訓練,因此只能寫出簡短、簡單且大致連貫的故事,不能回答問題、遵循指令、撰寫程式或掌握事實。專案作者強調,這項成果的重點不在模型能力,而在於如何把較大的模型安置到極小的硬體上。儲存庫也提供韌體、接線、燒錄步驟,以及訓練、消融實驗與量化程式;作者並保留修正參數計算錯誤的提交歷史,讓讀者能追蹤數字如何更正。
Hacker News(HN,科技新聞討論網站)的留言多半對每秒約 9.7 個 token 的速度感到驚喜,並認為這種架構可能延伸至約 2,000 萬至 3,000 萬參數的文字轉語音(TTS,Text-to-Speech)模型,讓完全離線的 ESP32 裝置接近即時朗讀;這仍屬留言者提出的可能應用,並非本專案已展示的功能。也有人提出,若把不同模型層分配給多枚微控制器,再以專用線路和 PIO(可程式化輸入/輸出)互連,或許能探索更大的模型,但低速記憶體的頻寬會成為主要瓶頸;在更強的硬體上,快閃記憶體與 SRAM 的速度差距及運算需求通常更大,未必能直接放大這套方法。
討論也延伸到硬體價格:留言者指出,約 8 美元通常是包含 PSRAM、快閃記憶體與兩個 USB-C 連接埠的開發板價格,不等同於單買晶片;另一派則比較了約 1 美元的 RP2350,以及能以約數美元提供 Linux、最高 256MB 記憶體和 1 TOPS INT8 張量處理器的 Milk-V Duo。整體意見認為,這類裝置未必適合一般人工智慧應用,但它證明了在成本極低、完全離線的硬體上執行語言模型,已從概念展示逐漸變成可實驗的工程方向。
👥 22 則討論、評論 💬
https://news.ycombinator.com/item?id=49050512