当前位置: 首页 > 科技观察

推理速度提高了22.3倍,北航和字节跳动提出了二元关键词识别模型

时间:2023-03-17 14:11:59 科技观察

近年来,以FSMN为代表的语音关键词识别(KWS)模型被广泛应用于各种边缘场景。然而,语音唤醒应用的实时响应要求与边缘设备有限的计算和能源消耗资源之间的矛盾一直存在,阻碍了KWS模型在现实世界硬件设备上的部署。近日,人工智能顶级会议IJCAI2022的录用论文结果正式揭晓。北京航空航天大学刘相龙教授团队与字节跳动人工智能实验室智能语音团队共同提出了第一个用于KWS任务的二元神经网络BiFSMN,并在ARM设备上实现。推理加速和存储节省高达22.3倍和15.5倍。论文地址:https://arxiv.org/pdf/2202.06483.pdf1。简介1.1背景目前深度神经网络的优异性能主要依赖于高端图形处理单元进行计算训练。训练好的模型通常体积和参数都很大,因此需要大量的存储空间,并且有足够的计算单元来提高模型的效率。这使得模型很难部署在手机等一些计算能力有限、存储空间有限的边缘设备上,也限制了神经网络的适用场景和部署平台。1.2问题尽管目前在模型二值化方面取得了进展,但现有方法对KWS网络的二值化仍然远非理想。大多数量化方法在推理过程中使用浮点运算,直接量化会带来严重的性能下降。首先,由于使用1位参数,二值化网络的表示空间极其有限且难以优化。其次,现有的KWS架构具有固定的模型大小和拓扑结构,无法在运行时自适应地平衡资源预算。此外,在现实世界的硬件上实施时,现有的部署框架远未达到二值化网络的理论加速限制。1.3结果提出了一种用于KWS的精确且极其高效的二元神经网络BiFSMN。我们构建了HED,一种强调高频信息的方案,以优化二值化网络的训练。TBA被提议在运行时实现即时和自适应的精度-效率权衡。BiFSMN优于现有的二值化方法,具有令人信服的精度改进,甚至可与全精度对应方法相媲美。此外,该研究在ARMv8真实设备上使用BiFSMN实现了22.3倍的加速和15.5倍的存储节省。2.方法概述2.1HED——高频增强蒸馏本研究发现信息趋于边缘的本质是基本二进制表示倾向于集中在高频分量上。本研究使用2DHaar小波变换(WT)[Meyer,1992],它通常用作分离水平和垂直边缘的可分离变换,将表示分解为低频和高频分量。输入到特定层的隐藏状态H可以表示为一族小波函数的加权和,其中是具有特定时间参数的母小波函数,是分辨率级别,K决定波形的平移,顺序测量表示的各个组成部分所传达的信息量,使用相对小波能量定义[Rosso等人,2001年]。第一层的小波能量首先计算为:当分解得到低频和高频系数时,它们的相对小波能量可以表示为:相对小波能量越大,表明该层收集的信息越多成分。如图所示,与全精度表示相比,二值化表示的高频分量的相对小波能量显着增加,这意味着二值化表示偏向高频分量。基于以上分析,本研究提出了一种用于二值化感知训练的高频增强蒸馏方法。该方案利用预训练的全精度D-FSMN作为教师,并在蒸馏过程中增强其隐藏层特征的高频分量。具体来说,该研究将小波变换应用于原始特征,去除低频成分,然后将逆小波变换(IWT)函数应用于高频成分以恢复所选特征。该过程可以表述如下:然后将强调的高频表示添加到原始表示中:其中是标准偏差。受[Martinezetal.,2020]的启发,本研究最小化了来自教师和直接来自学生的隐藏层特征之间的注意力蒸馏损失,表示为:其中表示第th个块,是L2范数。上述HED方案使二元化学学生网络更容易利用强调的全精度表示中的基本信息并提高准确性。2.2TBA-ThinnableBinarizationArchitecture本研究为KWS提出了ThinnableBinarizationArchitecture(TBA),它可以在运行时选择层数更少的更薄模型,从而直接减少计算消耗。该研究将由N个块组成的基本二值化架构的整个主干网络表示为:其中二值化网络和二值化D-FSMN块分别是网络的输入。由此产生的TBA结构可以定义为:其中是所选层的间隔,限制为只能被N整除的值。每个可优化块可以定义为:可优化网络架构将通过替换跳过每一层的中间块具有恒等函数的中间块,下图显示了本研究变化的可细化二进制体系结构的形式。此外,该研究还提供了示例,如图所示。为了优化所提出的TBA的二值化感知训练,本研究采用统一的层映射策略来更好地对齐和学习HED中的表示:来自不同分支的梯度在反向传播期间累积以共同更新权重。根据可细化架构中的压缩比,加权损失可以计算为:其中表示的交叉熵损失是控制蒸馏效果的超参数。2.3FBCK-FastBitwiseComputingKernelforEfficientHardwareDeployment为了在计算资源有限的边缘设备上高效部署,本研究通过新的指令和寄存器分配策略进一步优化1位计算,以加速在边缘设备上的广泛使用ARMv8-A推理建筑学。这项研究被称为快速按位计算内核(FBCK)。基于ARMv8架构上的寄存器数量,该研究首先将内核中的寄存器重新分配为五个分区,以提高寄存器利用率并减少内存占用:分区A有四个寄存器(寄存器v0除外)用于一个输入(权重/激活),B另一个输入有2个,C有8个EOR和CNT中间结果,D有8个循环输出,E有8个最终结果。每个输入都打包为INT16。A中的每个寄存器存储一个输入并重复8次,而B中的每个寄存器存储8个不同的输入。研究先对A和B的一个寄存器进行EOR和CNT得到32个INT8结果到中间分区C,然后进行ADD将INT8累加到D,对B的另一个寄存器同样如此,经过16次循环,最后,本研究使用长指令ADALP将D中存储的INT8数据累加到一个INT16寄存器(E中),将INT8数据扩展为双倍宽度。FBCK在计算过程中充分利用了寄存器,几乎没有空闲位。3.实验本章研究从推理精度、理论计算、部署性能等方面对BiFSMN进行了综合评价。实验证明,BiFSMN在各个方面都明显领先于现有的二进制神经网络,在实际部署场景中展现出突出的潜力。3.1比较验证本研究首先进行了一项消融研究,以研究所提出的高频增强蒸馏(HED)和Tinable二值化架构(TBA)在D-FSMN上的语音命令V1-12和语音命令V2-12上的性能。对KWS任务的影响,包括高频增强蒸馏(HED)和Tinable二值化架构(TBA)。表1中的结果表明,常见的二值化基线方法在两个数据集中都出现了显着的性能下降。朴素蒸馏方案Distill有助于提高基本D-FSMN架构的准确性,而HED的应用提高了基于蒸馏的性能。一起使用HED和TBA进一步缩小了二值化模型和全精度模型之间的精度差距,导致两个数据集的精度均低于3%。其次,将BiFSMN与现有的结构无关二值化方法进行比较,包括BNN[Courbariauxetal.,2016]、DoReFa[Zhouetal.,2016]、XNOR[Rastegarietal.,2016]、Bi-Real[Liuetal.,2016]al.,2018]、IR-Net[Qinetal.,2020]和RAD[Dingetal.,2019]。表2中的结果表明,本研究的1位BiFSMN完全优于其他SOTA二值化方法。值得注意的是,BiFSMN在这两个数据集上的平均精度下降仅为4%,远远优于其他二值化方法。其次,为了从架构的角度验证TBA的优势,该研究还将其与KWS中广泛使用的各种网络进行了比较,包括FSMN[Zhangetal.,2015]、VGG190[SimonyanandZisserman,2014]、BCResNet[Kimetal.,2021]和Audiomer[Sahual.,2021]。该研究使用XNOR和IR-Net将这些架构二值化。表3显示HED普遍适用于基于FSMN的架构并且对二值化模型性能有影响。此外,配备TBA的BiFSMN可以在运行时进一步在准确性和效率之间取得平衡。例如,具有4个块的较薄版本BiFSMN0.5×和具有2个块的BiFSMN0.25×甚至在语音命令V1-12任务上实现了23.8×和28.8×FLOPs节省,而不会牺牲准确性(仅下降0.16%和0.13%).该研究进一步修剪了模型宽度并提供了一个极小的BiFSMNS(具有32个主干内存大小和64个隐藏大小),只有0.05M参数和9.16MFLOPs,证明该研究的方法在微型网络上也能很好地工作。3.2部署效率除了推理精度和理论计算性能外,KWS任务在现实世界的边缘设备上运行时,对低内存占用和快速实时响应有着迫切的要求。为了验证BiFSMN的实际部署效率,本研究在RaspberryPi3B+和1.2GHz64位ARMv8CPUCortex-A53上测试了BiFSMN的实际部署速度。如图5所示,由于建议优化的1位快速按位计算内核,BiFSMN与其全精度对应物相比提供了10.9倍的加速。它也比现有的开源高性能二值化框架(如daBNN和Bolt)快得多。此外,得益于细粒度的架构,BiFSMN可以根据设备上的资源自适应地平衡运行时的准确性和效率,切换分别带来15.5倍和22.3倍的加速。这表明BiFSMN在实际推理中可以满足不同的资源约束。