把大模型塞进蓝牙耳机:1.46MB 的 Whisper-Lite 落地全记录

最近研学过程中发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击链接跳转到网站人工智能及编程语言学习教程。读者们可以通过里面的文章详细了解一下人工智能及其编程等教程和学习方法。下面开始对正文内容的介绍。

一、需求:耳机里“藏”一个语音转写模型

某 TWS 耳机代工厂要做「离线会议速记」:

  • 芯片:BES 2800,Cortex-M55 + ARM-Helium,SRAM 512KB,外挂 8MB Flash
  • 场景:长按触控 3 秒→实时转写 10 分钟→回手机 TXT 文件
  • 指标:功耗 < 8mA(45mAh 电池续航 5h),WER ≤ 5%,模型体积 ≤ 1.5MB,首包延迟 < 200ms

开源 Whisper Tiny 39MB → 直接劝退。
目标:39MB → 1.46MB,26× 压缩,WER 4.8%,功耗 7.3mA,已量产 12K。


二、技术总览:三层漏斗压缩

层级方法体积WER↑说明
① 结构CTC-Only/单层1/4+0.9%去掉整个 Decoder
② 参数量化INT4 + Group-wise1/2+0.4%128 组共享 scale
③ 知识蒸馏Seq-KD + SpecAug1/3+0.2%教师 Whisper-Large
总体:39MB → 1.46MB,26× 压缩,总 WER 仅涨 1.5%。

三、结构裁剪:把 Encoder-Decoder 砍成“单塔”

  1. 去掉整个 Decoder,改用 CTC Loss 直接输出字母表
  2. Encoder 层数 6 → 2,d_model 512 → 192,head 8 → 4
  3. 卷积降采样 2×2×2×2 → 2×2×1×1,减少 SRAM 峰值 4×

代码片段(PyTorch)

class EncoderLite(nn.Module): def __init__(self): super().__init__() self.conv_sub = nn.Sequential( nn.Conv1d(80, 192, 7, 2, 3), # 2×降采样 nn.GELU(), nn.Conv1d(192, 192, 7, 2, 3), # 再 2× ) self.layers = nn.ModuleList([ ConformerBlock(192, 4, 1024) for _ in range(2) ]) self.ctc_head = nn.Linear(192, 29) # a-z + space + blank

四、INT4 量化:让 512KB SRAM 也够放

4.1 权重 INT4 Group-wise

  • 组大小:128,共享一个 scale/zero
  • 存储格式:uint4_packed → 2 元素/byte
  • 汇编解包:Helium VLD1 一条指令展开 32 组,零开销

4.2 激活 INT8 Block-wise

  • 块大小:32,per-token 动态范围
  • 利用 M55 UDOT 指令,1 周期 32 MAC

4.3 量化感知训练(QAT)

class QuantConv1d(nn.Module): def forward(self, x): x_q = quantize(x, n_bits=8, block_size=32) w_q = quantize(self.weight, n_bits=4, group_size=128) return F.conv1d(x_q, w_q, self.bias, stride=self.stride)

前向模拟 INT4/INT8,反向 STE,20 epoch 后收敛。


五、知识蒸馏:让“大 Whisper”教“小”模型

教师:Whisper-Large V3
学生:本文 EncoderLite
损失

L = 0.7*L_ctc + 0.3*L_kd L_kd = KL(softmax(Teacher_logits/4), softmax(Student_logits/4))

数据

  • 开源 65kh 英文 + 自采 8kh 中文会议
  • SpecAugment(F=27, T=100)+ 0.1×Speed Perturb
    蒸馏 30 epoch,WER 从 6.2% → 4.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 byte(64 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 实现提速 5.3×。


八、关键词唤醒:共用同一套声学编码器

把「Hey, Note」做成 1-stage 唤醒,直接复用 EncoderLite 降采样特征:

  • 唤醒词数据集 1.2k h,CTC 训练
  • 输出 3 类:{Hey, Note, Other}
  • 误唤醒 < 1/24h,功耗增加 0.3mA

逻辑

唤醒 → 立即打开 USB 音频通道 → 10 分钟转写 → 自动生成 txt → 回手机


九、实测结果

指标目标实测
模型体积≤1.5MB1.46MB
WER(LibriSpeech-test)≤5%4.8%
首字延迟≤200ms168ms
平均功耗≤8mA7.3mA
5h 续航OK5.1h

连续 10 分钟转写 1.2k 中文字,误差仅 28 字,用户侧「零感知」掉电。

Read more

Qwen vs Stable Diffusion:儿童风格图片生成部署对比评测

Qwen vs Stable Diffusion:儿童风格图片生成部署对比评测 1. 为什么儿童向图片生成需要专门优化? 给小朋友看的图片,不是随便画得可爱就行。它得安全、温和、色彩明亮、造型圆润,不能有尖锐线条、复杂背景或任何可能引发不安的元素。很多通用模型生成的动物图,要么太写实吓人,要么细节混乱——比如长了三只眼睛的兔子、背景里突然冒出的模糊人影,或者颜色阴沉的森林场景。这些在成人内容里可能只是小瑕疵,在儿童场景里却是硬性红线。 Qwen_Image_Cute_Animal_For_Kids 这个镜像,不是简单套了个“儿童”标签。它背后是通义千问多模态能力的定向蒸馏与风格对齐:训练数据全部来自经过人工筛选的低龄向插画资源库,提示词模板固化为“soft lighting, rounded shapes, pastel colors, friendly expression, no text, no complex background”,连采样步数和CFG值都预设为对萌系特征最友好的区间。

安卓端 AI 绘画新突破:local-dream 项目让 Stable Diffusion 在手机端高效运行,骁龙 NPU 加速加持

安卓端AI绘画新突破:local-dream项目让Stable Diffusion在手机端高效运行,骁龙NPU加速加持 在AI绘画技术飞速发展的当下,Stable Diffusion作为主流模型,凭借出色的图像生成能力备受青睐。然而,其对硬件性能的较高要求,使得多数用户只能在电脑端体验。不过,随着“local-dream”项目的出现,这一局面被彻底打破。该项目专注于让安卓设备流畅运行Stable Diffusion模型,不仅支持高通骁龙NPU加速,还兼容CPU/GPU推理,为移动设备AI绘画开辟了全新路径。 项目核心目标与基础信息 “local-dream”项目的核心目标清晰明确,就是打破硬件限制,让安卓用户无需依赖高性能电脑,在手机或平板上就能轻松体验Stable Diffusion模型的强大图像生成功能。无论是日常创作、创意设计,还是简单的图像生成需求,用户都能随时随地通过安卓设备完成。 对于想要了解和使用该项目的用户,关键信息必不可少。项目的GitHub地址为https://github.com/xororz/local-dream,用户可以在这里获取项目的源代码、详细

LLaMAFactory、ModelScope 大模型微调实战(下)

LLaMAFactory、ModelScope 大模型微调实战(下)

一、前言 上次简单介绍了下 LLaMAFactory、ModelScope的微调,今天再来总结下如何部署已经微调好的大模型。 直通车→→→ https://blog.ZEEKLOG.net/tadexinnian/article/details/159154443 本次演示基于魔搭社区(https://www.modelscope.cn/my/mynotebook) 二、将模型转换为gguf 2.1 克隆llama.cpp 并安装环境依赖 -- 进入根目录 cd /mnt/workspace -- 需要用 llama.cpp 仓库的 convert_hf_to_gguf.py 脚本来转换 git clone https://github.com/

【微科普】AIGC:从技术原理到开发落地的全解析

目录 一、AIGC是什么?核心定义与本质 二、AIGC的技术演进之路:从机械模仿到智能创造 1. 早期萌芽阶段(20世纪50年代-90年代中期):规则驱动的初步探索 2. 沉淀积累阶段(20世纪90年代中期-21世纪10年代中期):深度学习的技术奠基 3. 快速发展阶段(21世纪10年代中期至今):大模型驱动的爆发式增长 三、AIGC的核心技术支撑:大模型与三大关键技术 1. 核心载体:大模型的“涌现能力” 2. 三大关键技术支撑 四、AIGC的典型应用场景:从B端到C端的全行业渗透 1. 内容创作领域:效率与创意的双重提升 2. 技术开发领域:开发者的“智能助手” 3. 垂直行业领域:定制化解决方案落地 五、开发者视角:AIGC的开发落地要点 1. 提示词工程(Prompt Engineering):高效驱动模型的关键 2.