找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

4079

积分

0

好友

537

主题
发表于 1 小时前 | 查看: 3| 回复: 0

第一部分:痛点与破局

说起跑大语言模型(LLM),大家的第一反应是什么?动辄几千块的显卡、几十上百 GB 的显存,还有那令人抓狂的环境配置和漫长的等待。

如果把目光转向物联网和嵌入式设备,局面就更加惨烈。单片机的 RAM 通常以 KB 为单位计量。之前有人在类似芯片上跑过 LLM,极限不过是 26 万参数。想在一个不到 10 美元的微型芯片上跑几十兆参数的大模型?听起来就像推着自行车上高速——异想天开。

但今天要介绍的这个开源硬核项目,直接打破了这一天花板。它在 8 美元的 ESP32‑S3 微控制器上,成功跑起了一个 28.9M 参数的语言模型(参数量足足是之前的 100 倍!),并在一块外接小屏幕上以接近每秒 10 个词的速度离线生成文本。它用巧妙的架构告诉你:没有庞大的算力,也能优雅地拥抱大模型。

第二部分:核心功能深挖

为了弄清楚它是怎么把大象装进冰箱的,我们得先看看它交出的硬核成绩单。

1. 令人发指的硬件利用率

它完全没有依赖网络,所有计算都在设备本地完成。核心参数如下:

  • Parameters(参数量):存储了 28.9M 参数(其中 25M 参数位于 flash 查找表中)
  • Chip(硬件):ESP32‑S3(约 8 美元),仅配备 512KB SRAM、8MB PSRAM 和 16MB Flash
  • Speed(速度):端到端约 9.5 tok/s(纯计算耗时对应 9.7 tok/s)
  • Connectivity(网络):无需联网,完全本地离线运行
  • Model size(模型大小):经过 4‑bit 量化后仅为 14.9MB

相机核心魔法:Per‑Layer Embeddings(逐层嵌入)

微控制器最大的瓶颈在于缺乏快速内存。ESP32‑S3 只有 512KB 的 SRAM,如果按常规思路把整个模型塞进内存,模型只能做得非常小。

本项目的破局思路是:坚决不把大模型放进快速内存! 大模型的大部分参数其实都待在 Embedding 表里,模型在推理时主要是去“读取”这些参数,而不是对它们进行复杂的“计算”。

作者借鉴了 Google Gemma 3n 和 Gemma 4 模型中的 Per‑Layer Embeddings 技术。它将那庞大的 2500 万行查找表直接扔进速度最慢但容量巨大的 Flash 中。模型每次生成 token 时,只需要从 Flash 中精准抽取需要的几行(大约 450 字节),而留在 SRAM 里负责真正“思考和计算”的核心结构其实非常小。

其内存分配架构极其精妙:

  SRAM  (fast, tiny)   the "thinking" core, used on every token
  PSRAM (medium)       the output head and working memory
  FLASH (huge, slow)   the 25M-param table, about 6 rows read per token (~450 B)

3. 清醒的认知:它能做什么,不能做什么?

受限于模型本体较小的推理层,这个模型并不是来帮你写代码或回答百科问题的。

该模型使用 TinyStories 数据集训练,因此它主要用来写一些短小、简单且连贯的故事。它无法回答问题、遵循指令、编写代码或提供事实性知识

本项目最大的看点在于架构上的创新(如何将大模型塞进微型芯片),而不是一个不到 3000 万参数的模型能讲出多么深奥的道理。

第三部分:实战演示

如果你想亲自上手把玩,项目提供了非常清晰的路径。固件、接线方式和烧录步骤都在仓库的 firmware/esp32_llm/README.md 文件中;而模型的训练、消融实验和量化代码则放在 src/experiments/ 目录下。

最核心的运行指引如下(直接操作硬件):

# 准备好你的 ESP32-S3 开发板及外接屏幕
# 根据仓库 firmware 目录下的 README.md 进行接线
# 按照说明进行固件 Flash 烧录
# 烧录完成后,模型将直接在芯片上以 ~9.5 tok/s 的速度离线生成故事,并显示在屏幕上。

第四部分:避坑指南与总结

避坑与说明:

  1. 别被早期的数据忽悠了:作者非常坦诚地在仓库里保留了“肮脏的”提交历史。他曾在参数统计中发现了一个 Bug,导致早期的数据虚高,目前文档中的 28.9M 是修复后的精确结果。详细的消融实验和测量数据可以查阅 RESULTS.md
  2. 致谢与灵感来源:该方法离不开微软研究院提出的 TinyStories 数据集,以及 Karpathy 大神的 llama2.c(证明了用纯 C 语言跑极小模型是可行的)。

适用人群:

如果你是嵌入式开发极客、端侧 AI 探索者,或者单纯想体验一下“在 8 美元芯片上跑大模型”的赛博朋克感,这个项目绝对值得你 fork 并亲手烧录一块属于自己的 AI 硬件!

GitHub 开源地址:https://github.com/slvDev/esp32-ai




上一篇:12K Star开源项目claude-seo:免费SEO审计能替代哪些付费工具?
下一篇:陶哲轩ICM演讲:AI如何推动数学进入“证明过剩”时代
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-7-28 02:41 , Processed in 0.765760 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表