65.7M参数语音模型在ESP32-P4微控制器上2/4比特运行
原文:Streaming Speech Recognition on a Microcontroller: a 65.7M-Parameter Transducer in 2 and 4 Bits on the ESP32-P4
我们在ESP32-P4上运行Kroko——一个面向英语的65.7M参数流式Zipformer2 transducer。ESP32-P4是一款微控制器,配备两个400 MHz RISC-V核心、128位SIMD扩展(PIE)与32 MB PSRAM,但没有神经加速器。在无需任何训练的情况下,编码器的290个矩阵以每权重2位或4位存储在Hadamard旋转分组中:每个矩阵的位宽来自其测得的敏感度,每个矩阵先向原始模型的输出校正,再用GPTQ与组范数搜索进行舍入。发布的71 MB int8权重变为26.65 MB文件。激活值在矩阵乘法之间为int16,输入矩阵时为int8。一个带有手写PIE内核的C引擎在两个核心上以0.90秒处理每段1.28秒音频(含束搜索),其PC构建计算与芯片相同的比特,因此准确率在整个测试集上测量。LibriSpeech WER在test-clean上为4.34%,在test-other上为10.26%,而发布模型分别为3.94%与9.17%;在FLEURS与Common Voice上差距扩大到2.3与1.1个百分点。GPU模拟器表明整数运算没有代价,全部差距来自权重,而在整个test-clean上的消融表明GPTQ完成了大部分工作。我们还报告了移植的速度历程——每段编码器时间从51.3秒降至0.62秒,每个设计步骤都在同一次构建中重新测量;一次试图达到16 MB的尝试止步于19.63 MB;以及哪些方法没有奏效。我们未测量能耗。推理引擎、固件与2/4位权重见https://github.com/BoumedineBillal/esp32-pie-asr。作者:Billal Boumedine。类别:eess.AS、cs.AR、cs.LG。