
开发者Slava S(GitHub用户名slvDev)发布了一个名为ESP32-AI的项目:他在一块ESP32-S3微控制器上,完全离线地运行了一个2890万参数的语言模型。
ESP32-S3是目前整个计算领域中性价比最高的芯片之一。在美国,带保护壳的板子不到20美元就能买到;裸板在全球大部分地区低于10美元。但便宜归便宜,性能极为有限。S3变体配备512KB SRAM、8MB PSRAM和16MB Flash存储。
正常运行LLM时,整个模型需要驻留在快速内存中,因为处理器在生成每个token时都需要对所有参数进行矩阵运算。如果按常规方式在ESP32上跑一个2900万参数的模型,SRAM瞬间就会被撑爆。Slava本人指出,此前同类型芯片上的参数量纪录约为26万,由开发者Dave Bennett创造。
Slava的方案借鉴了Google在Gemini服务器上用于提升内存效率的同一种架构技巧——Per-Layer Embeddings(逐层嵌入)。
具体做法分两步:
第一步,4-bit量化。 模型被压缩到4-bit精度,总文件大小降至14.9MB。
第二步,重新分配数据存储位置。 Slava没有试图把整个模型塞进512KB SRAM或8MB PSRAM,而是把2500万参数的嵌入表(embedding table)转存到相对慢速的16MB Flash中。由于这种模型架构在生成每个token时只需要从嵌入表中读取少量行,Flash的读取速度并不会成为瓶颈。512KB的高速SRAM因此得以全部留给"思考核心"——即实际参与推理计算的权重参数。
需要冷静的是,这个模型基于TinyStories数据集训练,本质上是一个"微型语言模型"(micro LM)。它能写出简短的虚构故事,但不会回答问题、不会遵循指令、不会写代码,对现实世界没有任何事实性知识。
这个概念验证的核心成就在于:在一个几乎没有资源的计算机上,跑通了一个结构上相当大的神经网络。它证明了——凭借巧妙的架构设计,廉价嵌入式硬件完全可以运行真正的神经网络,而且这个规模的模型有其实用场景。
Slava设想了一台"真正懂咖啡的咖啡机":每种豆子、研磨度、粉水比、水温,全部离线运行,不需要App。
谈论本地AI需要多少硬件,不先明确工作负载,就像问"你需要什么交通工具"却不说明目的。自行车、轿车、皮卡、半挂车和火车都能"从A到B",但它们为完全不同的任务而设计。AI也是一样——是你用它做什么,决定了你需要多少硬件。
另一个案例可以佐证这一点。去年,开发者Emanuele Rodolà把一个AI语言模型(二元名字生成器)塞进了NES(任天堂红白机)上的《勇者斗恶龙》和《最终幻想》初代游戏ROM中。整个模型权重表729字节,推理代码约140字节手写汇编,运行在一颗1975年的MOS 6502处理器上,用于实时生成角色名字。那也是真正的AI。
ESP32不会替代GPU,但将嵌入表等低频访问数据下沉到慢速存储层,把快速内存留给核心计算权重可以让AI在整个硬件频谱上变得更加实用,从几美元的嵌入式设备一直到数据中心加速器。
本文转自媒体报道或网络平台,系作者个人立场或观点。我方转载仅为分享,不代表我方赞成或认同。若来源标注错误或侵犯了您的合法权益,请及时联系客服,我们作为中立的平台服务者将及时更正、删除或依法处理。
