用于在通用和专用硬件中进行节能关键词识别的硬件感知训练

Applied Brain Research 公司的 Peter Blouw、Gurshaant Malik、Benjamin Morcos 和 Aaron R. Voelker,以及滑铁卢大学的 Chris Eliasmith

关键词识别 (KWS) 为许多移动和边缘应用(包括电话、可穿戴设备和汽车)提供关键的用户界面。KWS 系统通常处于“始终开启”状态,因此最大限度地提高准确度和功率效率是保证其实用性的核心所在。Applied Brain Research 公司使用硬件感知训练 (HAT) 来建立基于勒让德记忆单元 (LMU) 的新型 KWS 神经网络,以实现最先进的 (SotA) 准确度并减少参数数量。使用 HAT 可使神经网络在标准硬件上高效运行 (212 𝜇W)。我们还对定制设计型加速器硬件的功耗要求进行了表征,加速硬件可实现 8.79 𝜇W 的 SotA 功耗效率,比通用低功耗硬件(微控制器)高 24 倍,比专用 ASIC 高 16 倍,取得完胜。我们使用 Synopsys 提供的数据(包括 DesignWare® 基础内核 IP 和 DesignWare SRAM Compiler 规格)验证了我们的功耗估计值。

简介

研究人员和高校编写了各种关键词用于识别深度神经网络,包括基于 CNN、LSTM、GRU 及其诸多变体的关键词。然而,以研究为核心的工作,常常会忽略商业上适用型网络所面临的几种约束条件。商业上可行的神经网络必须符合四个标准:

(1)  状态化:网络无法假定知道何时会出现关键词。因此,(关键词的)网络起源无法提前预知,取决于最近发生的任何处理操作,而无法通过重置为已知的“零点”状态来确定。

(2)   线上化(或“流化”):响应最迅速、延迟最低的网络,在音频数据可用后会立即执行实时处理。对许多方法进行测试时,通常都会假设大型数据窗口同时全部可用。然而在部署时,等待大量数据会导致不必要的延迟。还是像 RNN 那样操作为好,重复利用先前处理的数据可以提升效率。

(3)   量化:量化至 8 位的权重和活动成为移动或“边缘”应用的标准操作。量化可在低功耗边缘硬件上进行更高效的部署。

(4)   功耗高效化:虽然量化有助于提高功耗效率,但并不是网络所需功耗的唯一决定因素。诸如执行计算的数量和类型,也是很重要的因素。专门关注网络的功耗效率及其在可用硬件上的部署可行性,对于商业应用至关重要。

在本文中,我们采用 HAT 方法直接训练网络进行高效硬件部署,期间会考虑模型开发过程中的硬件假设。本文提供了满足这些约束条件的实用方法。

因此,我们会着重将该成果与近期涉及此类约束条件的 SotA 结果进行比较。我们报告的所有新成果也满足这些约束条件。因此,我们关注的主要指标将是:准确度;模型大小(以数位为单位;参数的个数乘以每个参数的数位);以及实时环境中的功耗。利用新的优化、算法和硬件技术,我们开发出高功效的 KWS 算法和硬件平台。重要的是,这些方法同样能够面向不同的硬件平台(通用和专用平台均可)。据我们所知,上述每个指标和每个平台的结果都优于现有 SotA 结果。

勒让德记忆单元

位于我们算法核心的递归神经网络 (RNN) 称为勒让德记忆单元 (LMU) [13].[1] LMU 由反复自行耦合和互相耦合的线性“存储层”和非线性“输出层”组成。LMU 的一个显著特征是线性存储层最适合用于压缩随时间变化的输入时间序列。这一层的输出代表勒让德型权重,LMU 便是因此得名。

和以往的 RNN(包括 LSTM、GRU 等)不同,LMU 因具备这种可信的最优适用性,所以在线性层拥有固定的递归和输入权重。此外,LMU 的理论表征支持对过渡层表示进行解码,支持对网络运行情况进行一定程度的解释。

2019 年的原创 LMU 论文表明,在需要存储时变信号的任务上,LMU 的性能优于 LSTM,错误减少 106 倍,同时多编码了 102 个时间步长,并且使用的参数也从 41,000 个减少为 500 个。从某些方面来看,这并不令人惊讶,因为 LMU 已针对这项任务进行了优化。尽管如此,LMU 在标准 psMNIST 基准任务方面也优于之前所有的 RNN,其测试准确度达到 97.15%,而位居第二的网络(扩张型 RNN)仅达到 96.1%,LSTM 则仅达到 89.86%。而且,LMU 使用的参数要少得多:约为 102,000 个,相较于常见的 165,000 个左右的数量减少了 38%。

由于 LMU 最适合在接收流输入的同时存储窗口中的信息,而且在获得高准确度的同时使用的参数较少,所以非常符合实际 KWS 任务的约束条件。

模型架构

我们通过多种方式修改了最初提出的 LMU(见图 1)。具体而言,我们去掉了非线性层到线性层、线性层到过渡层输入的连接,以及非线性层到其自身的递归连接。此外,我们还在架构中加入多个线性存储层。我们发现这对于提高 KWS 任务的性能很重要。

图 1:该成果中使用的 LMU 架构。该架构不同于初始 LMU [13],它有多个线性层,而且连接更少。

因此,图 1 中描绘的架构可用以下等式描述:

其中,各个变量的定义如图 1 所示,并且我们在该应用中使用的非线性元素是修正线性单元 (ReLU)。

我们将此架构称为单 LMU 层。我们测试的最终网络包括多个 LMU 层和一个前馈输出层。

结果

数据集、方法和指标

我们的方法和指标遵循 SpeechCommands 数据集的标准实践(例如,参见 Rybakov 等人 [11],Warden [15])。如 Warden [15] 所述,我们将数据分为训练、验证和测试集,配备频率为 16 kHz 的一秒钟的言语样本。网络经过十二个标签的训练:十个关键词,再加上静音和未知令牌。所有准确度结果仅针对测试数据(参见表 1 和图 2)。

图 2:表 1 中模型大小和准确度数据的散点图。模型大小以反向对数刻度显示(右侧显示更好)。LMU 模型显示在右上方,它在模型空间上始终较小且更精确。注意:TinySpeech 模型不是状态化的(在推理间隙重置状态)且不可流化,因此不适合实时部署。

表 1:近期 KWS 准确度结果与模型大小

我们用于构建 LMU 模型的方法都利用了硬件感知训练 (HAT)。这样可以扩展标准量化感知训练,以精确匹配将要部署模型的硬件。这意味着所有模型元素都与整个设计中假设的位精度相匹配。量化感知训练常常作出硬件无法满足的假设。[2] 因此,所报告的 LMU 模型准确度都是预期的真实部署准确度。

所有 LMU 模型和 Rybakov 等人 [11] 得出的结果均适用于状态化、量化和线上 KWS 应用。Wong 等人 [17] 得出的是量化结果,但并未报告其延迟和状态化结果。由于不同模型间的量化程度不同,因此我们测量了以千位 (kbit) 计算(而不是参数的数量)的模型大小。kbit 是参数的数量乘以每个参数的位数,用于提供一致的模型大小指标。

表 1 显示了四种不同 LMU 模型的结果。第一个模型 (LMU-1) 使用 8 位权重,其余三个模型使用 4 位权重。所有 LMU 模型均使用 7 位激活值。LMU-1 和 LMU-2 未经修剪。LMU-3 执行了 80% 的修剪,而 LMU-4 有 91% 的权重经过修剪。

对比其他成果

我们将结果与 Google 最新的 KWS 论文 [11](2020 年 7 月更新)、Arm 的最新结果 [2] 和 DarwinAI 从 2020 年 8 月 [17] 到 2020 年 10 月的公告结果 [18] 进行比较。如表 1 所示,LMU 模型在准确度和大小方面优于 Google 结果和 Darwin 的首次公告结果。例如,LMU-1 与最优 Google 模型的准确度相同,而使用的数位却减少了 41%。此外,LMU-2 在准确度方面与 CNN [11] 相当,但其最终模型使用的数位却减少了 11.7 倍。与 Wong 等人 [17] 得出的总体较小的模型相比,LMU 显示准确度有显著的改善。具体而言,与 TinySpeech-A 相比,LMU-3 将错误降低了 14%,同时使用的数位也减少了 17%。同样,LMU-4 相对于 TinySpeech-B 减少了 19% 的错误,同时减少了 8% 的数位。同样,与 Arm [2] 的最新作品相比,LMU-2 的性能优于所有接受测试的网络,而其大小足够适合最小的测试处理器(Arm M4F 处理器)。

然而,Li 等人 [9] 和 Wong 等人 [18] 近期报告的成果描述了极具竞争力的卷积方法。具体而言,最大的 TENet 模型 (800 kbit) 准确度达到 96.6%,[3]而最小的 (136 kbit) 准确度也达到了 96.0%。同样,在针对较小网络的 [18] 中,TinySpeech-Y (49 kbit) 的准确度达到 93.6%,而 TinySpeech-X (86 kbit) 的准确度达到 94.6%。重要的是,这两种方法都不是状态化的(即在两次推理之间重置网络状态),众所周知这样可以提高准确度。两者都具有最短的 1s 延迟(对整个 1s 样本完成了卷积),并且两者都是不可流化的。因此,这些网络不适合实时部署,且报告的结果也不能反映实际性能。我们在此提及的目的是为了保持比较的完整性,而并非将其作为合适的对比对象。

LMU 模型都是状态化、可流化的,并与 HAT 一起开发(与 Google 和 Arm 模型一样)。因而,所报告的准确度可在实时、现实应用中的硬件上实现。

通用及专用硬件的功耗

功耗建模和结果

虽然在标准硬件上,功耗会随着模型大小而增加,这表明 LMU 模型将非常有效,但使用定制设计的硬件可以获得更有效的实现。所以,我们设计了低功耗数字硬件,以在本机实现 LMU 模型所需的计算。我们在此报告了 LMU-2 架构的电源建模结果,实现了小尺寸和高准确度之间的平衡。设计灵活,支持不同程度的并行操作,具体取决于速度、功耗和面积要求。我们考虑了跨越不同时钟频率的各种设计,同时始终保证所提出的 SpeechCommands 模型的时序约束条件(每隔 20 ms 更新 40 ms 的窗口)得到实时满足。

为了估计设计的功耗,我们使用 ABR 专有的硅感知软硬件联合设计映射工具,为我们的设计建立了周期精确功耗包。可以使用公开的功耗数据 [3、7、19],通过此类包络确定总功耗。乘积累加 (MAC),以及 SRAM 动态和静态功耗是设计中的主要功率消耗因素。我们还加入了乘法器、除法器和其他组件的动态功耗估计值,作为组件中晶体管数量的函数,以及每个 MAC 晶体管功耗成本。所有估计值均适用于 22nm 工艺。

为了估计晶体管的数量,进而估算面积,我们生成了每个相关组件的 RTL 设计,并使用 yosys 开源工具 [16] 和库来估计我们网络中包含的组件总数所需的晶体管数量。

图 3 显示了我们基于 LMU 设计的相应功耗/面积权衡。可以看出,我们得出最低的功耗设计为 8.79 uW(92 kHz 时钟),具有 8,052,298 个晶体管。对于该设计,一个 20 ms 帧的吞吐量为 13.38 ms,40 ms 更新的延迟为 39.59 ms,这意味着设计的确为实时运行。注意,图 3 中描绘的所有设计均为实时运行。

图 3:我们定制硬件设计的不同时钟频率在功耗和面积方面的权衡。蓝点表示在改变组件数量和时钟频率时考虑的特定设计。

为了验证我们的设计功耗建模和面积估计值,我们与 Synopsys 合作,为当前可用的 SRAM 设计确定精确的功耗和时钟扩展,并确定整个设计的面积。我们确定,SRAM 静态功耗估计值比 Synopsys 提供的值高出 5.45%,这与我们对内存的静态功耗假设一致。我们还比较了面积估计值,发现我们的估计值比 Synopsys 组件实现的相同设计高 10-20%。面积和晶体管数量的高度匹配表明动态功耗模型是合理的。总体而言,我们的分析表明,通过 Synopsys 制作模型,比本文报告的模型更具优势且有所改进。此外,Synopsys 已知的许多其他设计优化会应用在硬件中进行探索,而不仅仅是在更大的设计中通过单个实例化组件实现的简单假设。

总体而言,我们的分析表明,通过 Synopsys 制作模型,比本文报告的模型更具优势且有所改进。"

ABR 公司 P. Blouw、G. Malik、B. Morcos 和 R. Voelker

|

滑铁卢大学 C. Eliasmith

各种硬件实现方案的比较

最近发布了一些结果,提出了用于关键词识别的低功耗专用硬件。我们发现,那些数字相似或较低的网络不具备与我们在此所述网络旗鼓相当的复杂性或准确度。例如,Wang 等人 [14] 宣布达到 300 nW 以下的功耗,但只检测一个关键词。同样,Giraldo 和 Verhelst [4] 宣布低于 5 𝜇W 的功耗,但仅检测到 4 个关键词,而且报告的准确度较低,仅为 90% 左右。相比之下,Giraldo 等人 [5] 使用了 SpeechCommands,但 10.6 𝜇W 功耗的准确度仅为 90.9%。Shan 等人 [12] 报告了相似的结果,在 16.11 𝜇W 功耗时达到 90.8% 的准确度。我们上述结果的一个主要区别特征是高准确度,通常在功耗受限的环境中很难实现。我们结合使用 LMU 和 HAT 以实现 SotA 性能。

因为我们使用了 HAT,所以很容易在不同的硬件上运行 LMU 网络并对其进行比较。在本节中,我们比较了在成品 Arm M4F、“概念化”Arm M4F、我们上一节所述的硬件设计,以及 Syntiant NDP10x 专用关键词识别芯片(见表 2)上进行的实现。

表格 2:SpeechCommands 关键词识别硬件功耗结果汇总

我们在以 120 MHz 时钟频率在 Arm M4F 上实现了 LMU 关键词识别程序,它在 143,678 us (0.14 s) 内处理了 1 s 的音频。这意味着使用了 1724 万次循环来处理一秒钟的音频。Arm M4 数据表 [1] 中 Arm M4 的最低功耗是在 12.26 𝜇W/MHz 时测定的,从而得出该模型功耗为 212 𝜇W 。因此,我们的设计功率效率提高了 24 倍。Racyics 和 GlobalFoundries 报告了近期荣获世界纪录的效率,即 ArmM4F 的 6.88 𝜇W/MHz [8] 功率效率。如果采用上述概念化功率效率,Arm M4F 将耗用的功率为 119 𝜇W。这表明,相比在最先进的低功耗通用硬件上运行,我们的设计功率效率高出 14 倍。

Holleman [6] 报告 Syntiant NDP10x 专用芯片的 SpeechCommands 数据集每帧的能量为 3.4 uJ。对于具有 20ms 步幅的标准窗口的实时计算,网络需要每秒处理 50 帧,完全符合芯片的 10ms 推理时间范围。这种处理速率的功耗为 170 𝜇W。Syntiant 还报告了 140 𝜇W 的功耗 [10]。此外,该网络可实现 94% 的准确度,网络尺寸为 4456 kbit(假设为未报告的 8 位权重)。因此,我们的网络准确率提高至 95.9%,并且使用我们的硬件设计后,比 Syntiant 专用硬件的功率效率高 16-19 倍。

最后我们注意到,由于 LMU 使用的参数更少,参数数量仅为 Syntiant 网络的 1/12,因而有可能消除对专用硬件的需求。具体而言,M4F 上运行的 LMU-2 耗用 (212 𝜇W) 功率,而 Syntiant 的专用硬件则耗用 (170 𝜇W) 功率。这表明 LMU3(其参数数量仅为 LMU-2 三分之一)将以较低的功率运行,同时仍然能够实现更高的准确度。

结语

基于 LMU 的关键词识别网络以硬件感知训练为基础,效率极高,在准确度、大小和功耗效率方面超越 Google、ARM 和 Syntiant 近期实现的最先进结果。这些改进在专用设计硬件中变得更加明显,功耗最低仅为目前最先进产品的 1/24。值得一提的是,这些结论是在关键词识别系统的实时部署环境中得出的。