|| 基准测试情况
MLPerf™ Tiny Benchmark是针对IoT领域机器学习任务软硬件性能和算法优化能力的测试,自2018年由图灵奖得主David Patterson发起后,得到了各大云计算厂商、科研机构和高校的支持和参与。有别于Datacenter等大规模、高算力场景,Tiny方向聚焦于低功耗、高性价比的AIoT应用,包含语音唤醒等4个典型AI推理任务。目前 MLPerf™ Tiny 已经开展了两期(v0.5、v0.7)。
官方链接:
https://mlcommons.org/en/inference-tiny-07/
阿里方案结果代码:
https://github.com/mlcommons/tiny_results_v0.7/tree/main/open/Alibaba/code
(注:达摩院语音实验室本次以RISC-V芯片为硬件载体参与了语音唤醒推理任务)
|| 参赛情况统计
MLPerf™ Tiny 包含了四个不同的基准,提交者可以自行选择提交全部或部分基准的性能。以下是根据厂商、硬件及基准分类的结果统计。
上表中“厂商”代表提交机构,“系统”是指一套硬件和软件共同组成的推理和部署系统。每个“系统”可以包含4个基准的部分或全部结果数据。本次 v0.7 结果与 v0.5 相比,参与厂商数量、系统多样性和数据点数目均有明显增加。
|| 语音唤醒推理加速方案
语音交互前端信号处理技术和方案研发是达摩院语音实验室核心技术方向之一,主要采用数理建模和数据驱动等方法论,具体包含基于空间滤波的多通道语音分离/增强(麦克风阵列技术)、基于深度学习的语音增强/回声抵消(AI降噪)、信号处理和统计建模(唤醒/识别)的端到端联合优化和音视频融合多模态信号处理等技术。
在此次基准测试中,达摩院语音实验室结合多年来在语音AI技术的全面积累,贡献了在语音唤醒KWS推理任务上「芯片-编译器-算法」全链路嵌入式AI技术的全栈工程实践。
首先,找到合适嵌入式应用的深度神经网络模型规模。借助阿里云震旦SinianML模型压缩技术进行多方位的优化,通过对模型施加动态的约束和诱导,调整模型的权重分布,促使模型的表达能力紧密汇聚在部分重要的参数之中,同时结合蒸馏、弹性伸缩等手段,实现在无损或极小精度损失的情况下,较大程度减小模型的计算量,挖掘模型的极限表达能力,从源头减少模型的计算复杂度。经过此轮优化,准确率保持不变,参数量下降了69.8%,为计算量优化打下扎实的基础。模型参数压缩结果如下:
其次,通过图优化等编译技术优化模型推理静态图。通过平头哥模型部署工具集HHB(Heterogeneous Honey Badger)将模型生成C代码形式的图结构,HHB 基于 TVM 开源框架,支持 Caffe, TensorFlow,ONNX和 TFLite 等框架导出的网络模型,将其统一转换为统一的中间表达式,并在此基础上完成神经网络模型的图优化工作。具体细节可以参考:https://gitee.com/hhb-tools。
最后,结合语音唤醒推理优化的算法领域知识,采用达摩院语音实验室自研嵌入式信号处理和神经网络加速框架和平头哥CSI-NN2汇编函数库,进一步提升模型推理过程中的存储访问效率和RISC-V处理器向量计算能力。硬件依赖的图优化和指令集加速等优化技术逐步接近硬件底层,优化结果依赖于处理器本身的设计、开发者对算法和芯片架构的深入理解。经过细致的调优,我们取得的最终加速结果如下:
|| 技术应用场景
在语音AI场景,达摩院语音实验室联合平头哥等部门,打造基于RISC-V玄铁C906核的语音交互AIoT模组,服务于天猫精灵等内外部客户,为音箱、售票机、扫地机、车载和面板等品类产品插上智能化的翅膀,让用户实现「动口不动手」的便捷生活。
本次测试中,达摩院语音实验室的软硬一体联合优化技术,让回声消除、盲源分离、语音降噪和语音唤醒等高复杂度端侧语音AI前沿算法,在资源极致严苛的嵌入式芯片上得以实现,算法内存开销低至1M字节,运行功耗低于100mW,从而可以为客户整机降低一半以上的模组成本,并依然保持高性能的算法体验。
语音交互 AIoT 模组作为AI技术「被集成」的典型案例,结合开放的玄铁RISCV处理器生态,面向自然人机交互和沉浸式人人通信应用,将为更多的智能设备带来低功耗和高性价比的AI能力。
参考资料:
MLPerf Tiny Benchmark
https://doi.org/10.48550/arXiv.2106.07597
https://mlcommons.org/en/news/mlperf-tiny-v05/
https://www.163.com/dy/article/GQ9VV29O0511DSSR.html
https://blogs.nvidia.com/blog/2019/11/06/ai-inference-mlperf-benchmarks/