AI News HubLIVE
站內改寫2 分鐘閱讀

在8美元的微控制器上執行2890萬引數的LLM

一位開發者成功在成本約8美元的ESP32-S3微控制器上執行了一個2890萬引數的語言模型,利用谷歌Gemma模型中的逐層嵌入技術將大部分引數儲存在快閃記憶體中。文本生成完全在裝置上執行,速度約9.5個token/秒,相比此前26萬引數的模型取得了巨大飛躍。

來源Hacker News AI作者: boveyking

近日,一名開發者成功在售價約8美元的ESP32-S3微控制器上執行了一個擁有2890萬引數的語言模型。該模型完全在晶片本地執行,無需連線伺服器,並以每秒約9.5個token的速度將生成的文本輸出到連線的小螢幕上。這是微控制器上執行語言模型的一次重大突破——此前同類模型的最大引數規模僅為26萬,而新模型的大小是其100倍以上。

關鍵數字:引數總量2890萬(其中2500萬儲存在快閃記憶體查詢表中);晶片為ESP32-S3,配備512KB SRAM、8MB PSRAM和16MB快閃記憶體;生成速度約9.5 token/秒;模型大小在4位量化後僅為14.9MB。

微控制器的SRAM非常有限(僅512KB),傳統上整個模型必須常駐SRAM,因此只能容納極小的模型。解決方案來自谷歌Gemma模型中的逐層嵌入(Per-Layer Embeddings)技術:將語言模型中龐大的嵌入表(2500萬行)儲存在慢速快閃記憶體中,每次只需讀取每個token所需的約450位元組資料,而負責實際計算的小型核心部分則留在快速SRAM中。這樣一來,大部分模型幾乎不會佔用執行資源,只是靜靜地留在快閃記憶體中,每次被少量取樣。據專案作者稱,此前似乎沒有人嘗試過在如此小的晶片上實現這一設計。

該模型基於TinyStories資料集訓練,因此擅長編寫簡短、連貫的故事。它無法回答問題、遵循指令、編寫程式碼或提供事實資訊——這種侷限性源於模型負責推理的小型核心部分,而快閃記憶體技巧並未改變這一點。專案的意義在於展示了將大模型塞進極小晶片的架構可能性,而非模型本身的強大能力。

專案已在GitHub上開源,包含完整的韌體、接線說明、訓練和量化程式碼。開發者還特意保留了混亂的提交歷史,包括一次由於引數計算錯誤導致數字膨脹的bug及其修正過程,供他人參考。該專案還引用了Andrej Karpathy的llama2.c專案,證明了即使在受限的硬體上,透過巧妙的記憶體管理,也能執行相對複雜的語言模型。程式碼倉庫中包含了詳細的說明文件(RESULTS.md),記錄了實驗方法、消融實驗和片上測量資料,為後續研究提供了寶貴的參考。