跳到主要内容
AI News HubLIVE
站内改写2 分钟阅读

在8美元的微控制器上运行2890万参数的LLM

文章摘要

一位开发者成功在成本约8美元的ESP32-S3微控制器上运行了一个2890万参数的语言模型,利用谷歌Gemma模型中的逐层嵌入技术将大部分参数存储在闪存中。文本生成完全在设备上运行,速度约9.5个token/秒,相比此前26万参数的模型取得了巨大飞跃。

来源Hacker News AI作者: boveyking
在8美元的微控制器上运行2890万参数的LLM
报告错误

纠错通道尚未开通,可先复制下方文章信息留存。

查看更正说明
直接读正文

近日,一名开发者成功在售价约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),记录了实验方法、消融实验和片上测量数据,为后续研究提供了宝贵的参考。

展开要点与分析

文章情报

工程师进阶

要点

  • 2890万参数的LLM在8美元的ESP32-S3微控制器上运行,该芯片仅512KB SRAM和16MB闪存
  • 采用谷歌的逐层嵌入技术,将2500万参数存储在闪存中,每个token仅读取约450字节
  • 基于TinyStories数据集训练,可生成短故事,生成速度约9.5 token/秒
  • 开源项目,包含固件、训练和评估代码

要点与分析由自动化流程生成,可能有误,请结合原始来源核实。