标签:TinyML、Transformer、单片机、Cortex-M、量化、KV-Cache、裸机编程
----
1. 为什么要在 64 KB SRAM 的 MCU 上跑 Transformer?
2024 年以前,TinyML ≈ CNN + CMSIS-NN,做语音唤醒或简单分类就到头了。
但产品同事突然拍脑袋:
“客户想让 20 元的温控器用自然语言调温——‘帮我调到 26 度,别太吵’,离线响应 200 ms 以内。”
云端?断网就 GG。
大模型?STM32H743 只有 64 KB SRAM,放不下 8-bit 1B 模型。
于是我把目标锁在 完全离线、<200 ms、Flash ≤256 KB、RAM ≤64 KB 的 NLU(自然语言理解)任务上:
意图识别 + 槽位提取,词汇量 400,输出 JSON。
----
2. 模型侧:把 6 层 Transformer 压成 1 层
2.1 结构手术
• 层数:6 → 1(保留最后一层)
• 隐藏维度:512 → 128
• Head 数:8 → 4
• 序列长度:128 → 32
2.2 量化四连击
方法 压缩比 精度掉点 备注
INT8 权重量化 4× 1.2 % per-channel scale
4-bit KV-Cache 2× 0.8 % 动态查表
8-bit 激活 2× 0.3 % Power-of-two scaling
合计 8× 2.3 % &nbs
把“思考”塞进 1 KB:我用纯 C 语言给单片机手搓了一个微型 Transformer 推理引擎
用纯 C 语言为单片机打造微型 Transformer 引擎

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



