把“思考”塞进 1 KB:我用纯 C 语言给单片机手搓了一个微型 Transformer 推理引擎

用纯 C 语言为单片机打造微型 Transformer 引擎

标签: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
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值