午夜国产:那些触动灵魂的深夜故事
最近研学过程中发现了一个巨牛的人工智能学习网站通俗易懂风趣幽默忍不住分享一下给大家。
点击链接跳转到网站人工智能及编程语言学习教程。
读者们可以通过里面的文章详细了解一下人工智能及其编程等教程和学习方法。
下面开始对正文内容的介绍。
需求耳机里“藏”一个语音转写模型某 TWS 耳机代工厂要做「离线会议速记」芯片BES 2800Cortex-M55 ARM-HeliumSRAM 512KB外挂 8MB Flash场景长按触控 3 秒→实时转写 10 分钟→回手机 TXT 文件指标功耗 8mA45mAh 电池续航 5hWER ≤ 5%模型体积 ≤
5MB首包延迟 200ms开源 Whisper Tiny 39MB → 直接劝退。
目标39MB →
46MB26× 压缩WER
8%功耗
3mA已量产 12K。
技术总览三层漏斗压缩层级方法体积WER↑说明① 结构CTC-Only/单层1/
4
9%去掉整个 Decoder② 参数量化INT4 Group-wise1/
2
4%128 组共享 scale③ 知识蒸馏Seq-KD SpecAug1/
3
2%教师 Whisper-Large总体39MB →
46MB26× 压缩总 WER 仅涨
5%。
结构裁剪把 Encoder-Decoder 砍成“单塔”去掉整个 Decoder改用CTC Loss直接输出字母表Encoder 层数 6 → 2d_model 512 → 192head 8 → 4卷积降采样 2×2×2×2 → 2×2×1×1减少 SRAM 峰值 4×代码片段PyTorchclass EncoderLite(nn.Module): def __init__(self): super().__init__() self.conv_sub nn.Sequential( nn.Conv1d(80, 192, 7, 2,
, # 2×降采样 nn.GELU(), nn.Conv1d(192, 192, 7, 2,
, # 再 2× ) self.layers nn.ModuleList([ ConformerBlock(192, 4,
for _ in range(
]) self.ctc_head nn.Linear(192,
# a-z space blank
INT4 量化让 512KB SRAM 也够放
1 权重 INT4 Group-wise组大小128共享一个 scale/zero存储格式uint4_packed→ 2 元素/byte汇编解包HeliumVLD1一条指令展开 32 组零开销
2 激活 INT8 Block-wise块大小32per-token 动态范围利用 M55UDOT指令1 周期 32 MAC
3 量化感知训练QATclass QuantConv1d(nn.Module): def forward(self, x): x_q quantize(x, n_bits8, block_size
w_q quantize(self.weight, n_bits4, group_size
return F.conv1d(x_q, w_q, self.bias, strideself.stride)前向模拟 INT4/INT8反向 STE20 epoch 后收敛。
知识蒸馏让“大 Whisper”教“小”模型教师Whisper-Large V3学生本文 EncoderLite损失L
7*L_ctc
3*L_kd L_kd KL(softmax(Teacher_logits/
, softmax(Student_logits/
)数据开源 65kh 英文 自采 8kh 中文会议SpecAugmentF27, T100
1×Speed Perturb蒸馏 30 epochWER 从
2% →
8%。
SRAM 峰值优化双缓冲 分段 FFT模块原峰值优化后技巧ConvSub320KB80KB2×降采样先Conformer180KB45KB分段 FFT 256 点CTC Head12KB6KB延迟 softmax总峰值512KB →128KB给音频环形缓冲留 64KB 安全余量。
M55 Helium 汇编加速核心算子; INT4 解包 → INT8 vdupb.q r0, #0x0F vldrb.u q0, [r1]! ; 加载 32 byte64 INT4 vand.q q1, q0, r0 ; 低 4 位 vshr.q q2, q0, #4 ; 高 4 位 vsubb.q q1, q1, #8 ; 减 8 得符号 vsubb.q q2, q2, #8 vstrb.u q1, [r2]! vstrb.u q2, [r2]!32 个 INT4 权重 → 64 个 INT8 只需24 周期对比 C 实现提速
3×。
关键词唤醒共用同一套声学编码器把「Hey, Note」做成 1-stage 唤醒直接复用 EncoderLite 降采样特征唤醒词数据集
2k hCTC 训练输出 3 类{Hey, Note, Other}误唤醒 1/24h功耗增加
3mA逻辑唤醒 → 立即打开 USB 音频通道 → 10 分钟转写 → 自动生成 txt → 回手机
实测结果指标目标实测模型体积≤
5MB
46MBWERLibriSpeech-test≤5%
8%首字延迟≤200ms168ms平均功耗≤8mA
3mA5h 续航OK
1h连续 10 分钟转写
2k 中文字误差仅 28 字用户侧「零感知」掉电。
污app网址-污app网址应用