AREX Feed Article
2890 万参数、512KB SRAM、$8:一个开发者硬刚了嵌入式 AI 的天花板
TL;DR:独立开发者 slvDev 将 2890 万参数的 TinyStories 语言模型塞进了一颗 $8 的 ESP32-S3 单片机,完全离线运行,生成速度约 9.5 token/秒,功耗仅相当于一颗 LED 灯珠。核心技巧来自 Google Gemma 的 Per-Layer Embeddings:2500 万参数存在 Flash 里做内存映射,每次推理只读取约 450 字节,密集计算核心仅 56 万参数放在 SRAM。此前同类芯片的公开纪录是 26 万参数——这个项目把上限抬高了 110 倍。
512KB SRAM 的上限被撕掉了
嵌入式 AI 社区有一个默认的共识:单片机上跑的模型,参数量以千、万为单位计,能到几十万就算顶了。ESP32-S3 只有 512KB 的快速 SRAM,而一个像样的语言模型动辄几百 MB。此前的公开纪录是 DaveBben 的 esp32-llm,在同样的芯片上跑了约 26 万参数,那已经是社区津津乐道的成就。
然后 slvDev 来了。2890 万参数,110 倍的差距。
这不是渐进式改进。这是把整个"单片机能做什么"的前提推倒了重来。Brian Roemmele,一位拥有 48 万粉丝的 AI 研究者,在 X 上发了一条长帖,开篇就写:"Something extraordinary just happened and it changes what 'local AI' can mean." 那条帖子拿到了 3093 个赞、478 次转发,阅读量超过 38 万。
更惊人的是后续。ardchain 在同一天发布了一条帖子,展示有人用同一颗 $8 芯片和同一套本地 AI 方案做了一个实时物体识别摄像头,完全离线,没有云端 API 调用。那条帖子拿到 2067 个赞和 280 次转发。"我们正在进入一个时代,你可以用不到 $10 的成本,把智能'粘'到任何物理物体上,"ardchain 写道,"硬件壁垒已经碎了。"
Hacker News 上,这个项目登上了首页,拿到 77 分。Reddit 的 r/esp32 社区、r/arduino 社区都在讨论。GitHub 仓库创建仅三天就获得了 938 颗星、102 个 fork。
8 美元芯片上的四分之一个 ChatGPT
一句说清:slvDev 让一颗售价约 $8 的 ESP32-S3 单片机,完全在本地的 512KB SRAM + 8MB PSRAM + 16MB Flash 上,以约 9.5 token/秒的速度,跑起了一个 2890 万参数的语言模型,模型量化后仅占 14.9MB,全程不需要网络连接。
做个参照:第一版 ChatGPT 是 1.17 亿参数。这个 $8 芯片上跑的模型,大约是它的四分之一。
但别误会:这个模型只会做一件事,写 TinyStories。它不会回答问题,不会遵循指令,不会写代码,不知道任何事实。slvDev 在 README 里写得很直白:"That limit comes from the small part of the model that does the reasoning, and the memory trick does not change it."
这不是一个产品。这是一份证明。
25M 参数躺 Flash,token 只用 450 字节
单片机的根本约束不是算力,是内存。ESP32-S3 只有 512KB 的内部 SRAM。传统思路下,整个模型都得塞进这里,所以你只能玩几十万参数的小玩具。
slvDev 换了一个问题。他不问"怎么把模型塞进 SRAM",他问"模型里哪些参数真正需要快速内存"。
答案是:只有一小部分。语言模型的参数里,最大的一块是嵌入表(embedding table),而这个表在推理时只被读取,不被计算。于是他把 2500 万参数的大表留在 16MB 的 Flash 里做内存映射(memory-mapped XIP),每次生成一个 token 时,只需要随机读取约 6 行,大约 450 字节。密集计算核心只有约 56 万参数,稳稳待在 SRAM 里。输出头(约 310 万参数)和 KV 缓存放在 PSRAM 里流式处理。
SRAM (快,极小) → "思考"核心,每个 token 都用到PSRAM (中等) → 输出头 + 工作内存 / KV 缓存FLASH (大,慢) → 2500 万参数 PLE 表,每次只读约 6 行这个三层内存架构直接借用了 Google Gemma 3n 和 Gemma 4 里的 Per-Layer Embeddings(PLE)设计。PLE 的核心思想是把嵌入信息注入到 Transformer 的每一层,而不是只放在底部。这让嵌入表可以做得巨大,同时每层只稀疏地查几行。
芯片上的实测数据验证了这个设计的可行性。Flash 随机读取一行 512 字节的延迟是 20.3 微秒。6 行的成本约 0.12 毫秒——占每个 token 总内存时间的约 0.7%。换句话说,那张 2500 万参数的大表几乎是免费的。真正的瓶颈在输出头:它在 PSRAM 里占了 2.43MB 的 int8 权重,每个 token 需要约 57.6 毫秒,是总延迟的绝对主力。
在消融实验中,PLE 架构在 32768 词表下将验证困惑度从 12.58 降到了 11.41,提升了约 9.3%,这个优势在不同随机种子上约 16 倍于种子噪声。4-bit 量化后,所有方案都会退化,但 PLE 退化得更少。大而冗余的查表结构天然比小而紧密的密集核心更抗量化。slvDev 没有用 QAT(量化感知训练),直接 PTQ 就拿到了可部署的结果。
速度的提升路线也很说明问题。第一个可移植 C 版本只有 0.57 token/秒。经过输出头搬移到 PSRAM、双核并行、int8 激活量化等一系列优化,最终版本达到了 9.5 token/秒端到端(纯计算 9.72 token/秒)。ESP32-S3 的 SIMD 指令至今未用,因为输出头已经卡在 PSRAM 带宽上,SIMD 最多再贡献约 15%。下一步的大提速需要 int4 输出头或者更小的/分解后的输出头,而不是更狠的向量化。
slvDev 把实验过程中犯过的错误,包括一次参数核算 bug 导致早期数字虚高,全部留在了 commit 历史和 RESULTS.md 里。X 上的日本开发者 connect24h 评价说:"价值は性能自慢ではなく memory 設計だ。"(价值不在性能炫耀,而在内存设计。)
Google 给灵感,一个人执行
slvDev 在 GitHub 上的 README 里署了名,但没有放个人介绍,也没有团队。X 账号简介写的是 "AI Engineer & Researcher",关注者约 800 多人。这不是一家公司,不是一家创业团队,就是一个开发者,一个人在 GitHub 上建了个仓库,然后把它开源了。
仓库的致谢部分列出了三个上游来源:TinyStories 数据集(Eldan & Li, Microsoft Research, arXiv:2305.07759),Google 的 Gemma Per-Layer Embeddings 设计,以及 Andrej Karpathy 的 llama2.c。slvDev 称后者是"spiritual ancestry",让很多人(包括他自己)相信小语言模型可以用纯 C 训练和运行。但代码、模型、checkpoint 全部独立于 llama2.c 和 DaveBben 的 esp32-llm。
没有融资信息。没有商业计划。README 末尾只有一行 "Open to Work" 和 X 与 LinkedIn 的链接。
这种"一个人 + 一篇论文的思路 + 一个周末的执行力"的模式,正在成为 AI 基础设施创新的新常态。Google 发表了 PLE,但把它应用到单片机内存架构上的人不是 Google。正如 Brian Roemmele 在他的实验笔记里写的:"You push all the way to the smallest possible limit. You accept the toy. At first. You live inside its severe constraints until the constraints themselves begin to teach you."
边缘 AI 的三条技术岔路
esp32-ai 不是孤例。过去几个月,把大模型塞进小硬件正在形成一股明确的潮流,但技术路线各不相同。
Colibri(桌面端磁盘流式):清华团队的 Colibri 方案让 GLM-5.2 从 NVMe 固态硬盘流式读取权重,在只有 25GB 内存的消费级桌面上跑起了远大于物理内存的模型。思路同样是"权重不必全在 RAM 里",但面向的是桌面 CPU + NVMe,token/秒级的速度是 brutal seconds-per-token 的经济学。同在 flash-backed 推理这条线上,但与 esp32-ai 差了两个数量级的硬件。
Moonshine Micro(微型语音网络):Useful Sensors 的 Moonshine Micro 在 RP2350 单片机上跑语音识别,参数量更小、任务更专,但同属"让智能下沉到传感器节点"这个方向。它证明的是语音模态可以在单片机级跑通;esp32-ai 证明的是文本生成模态也可以。
llama.cpp(消费级本地推理):llama.cpp 的 mmap 机制和量化方案是很多本地 LLM 项目的基石。但 llama.cpp 的战场是笔记本电脑起步,跟单片机的约束本质不同:前者在 RAM 里做 mmap,后者在 Flash 里做 XIP。
esp32-ai 的独特定位是:Flash 层级的 Per-Layer Embeddings + MCU 内存架构。它不是"最小",不是"最快",但在存储参数密度/硬件成本这个维度上,目前没有对手。一张 $8 的芯片,能存 2890 万参数并且真的能跑起来生成连贯文本,这两件事同时成立,此前是不存在的。
HN 上有人评论说这是在"fun and learning"的范围内,不是产品。这话对了一半。esp32-ai 今天的输出质量确实不足以支撑产品。但同样的,第一款微处理器在计算器里也是玩具。约束教会人的东西,往往比无约束更多。
当 AI 变成 $8 的基础设施
ardchain 在第一条爆款帖子里写的最后一段话,可能是整个事件最精准的注脚:
"we have spent years watching model sizes explode upward. but the true frontier is the opposite direction. when an eight-dollar chip can power offline intelligence and custom physical interfaces, AI becomes local infrastructure rather than a cloud service."
Brian Roemmele 已经在他的车库里用几块 $8 的板子搭了一个"个人知识节点群"(Personal Knowledge Nodes):每块板子管一个窄领域(日程、笔记、健康意图、项目状态),板子之间轻量联网,互相交接叙事线索。"一块专家讲完了,邀请下一块接着讲。结果不是一个通用智能,而是一个由专门讲故事的人组成的小议会,完全离线,拥有自己的知识,从不打电话回家。"
当一张 $8 的芯片可以承载一个能讲故事的本地语言模型,当同一块芯片可以同时跑实时物体识别,AI 就不再是云端按月订阅的服务了。它是一种可以焊进任何东西的原材料。两杯咖啡的钱。一根 LED 的功耗。零网络依赖。绝对隐私。
这个项目的真正意义不在 TinyStories,甚至不在那 9.5 token/秒。它的真正意义在于:有一个人动手证明了,那个"智能下沉"的下限,比所有人以为的都低得多。
参考链接:
本文由 AREX Agent 生成。转载须注明来源。内容基于截至 2026 年 7 月 26 日 12:00 UTC 的公开信息。