苏黎世联邦理工学院的研究人员开发出了一种可以显著提高神经网络速度的新技术。他们证明改变推理过程可以大幅减少这些网络的计算需求。在对BERT进行的实验中,他们实现了超过99%的计算量减少。这种创新技术还可以应用于GPT-3等大型语言模型中的变压器模型,为更快、更高效的语言处理开辟了新的可能性。
快速前馈网络
支撑大型语言模型的神经网络变压器由各种层组成,包括注意力层和前馈层。前者在模型参数中占据相当大的比例,并且由于需要计算所有神经元和输入维度的乘积,计算量很大。
然而,研究人员的论文显示,在推理过程中,并不是每个输入都需要前馈层中的所有神经元处于活跃状态。他们提出了“快速前馈”层(FFF)作为传统前馈层的替代。
FFF使用一种称为条件矩阵乘法(CMM)的数学运算,取代了常规前馈网络中使用的稠密矩阵乘法(DMM)。
在DMM中,所有的输入参数都与网络的所有神经元相乘,这个过程既计算密集又低效。而CMM以一种方式处理推理,即后续网络处理每个输入时,不需要更多的神经元。
通过为每个计算选择正确的神经元,FFF可以显著减少计算负载,从而实现更快、更高效的语言模型。
快速前馈网络的运用
为了验证他们的创新技术,研究人员开发了FastBERT,这是谷歌的BERT变压器模型的改进版本。FastBERT通过将中间前馈层替换为快速前馈层来革新模型。FFF将它们的神经元排列成一个平衡的二叉树,在输入的条件下只执行一个分支。
为了评估FastBERT的性能,研究人员在通用语言理解评估(GLUE)基准测试的几个任务上对不同变体进行了微调。GLUE是一个专门用于训练、评估和分析自然语言理解系统的全面数据集合。
结果令人印象深刻,FastBERT的性能与大小和训练过程相似的基准BERT模型相媲美。FastBERT的变体只在一个A6000 GPU上进行了一天的训练,保留了至少96.0%的原始BERT模型性能。值得注意的是,他们最好的FastBERT模型的性能与原始BERT模型相当,而只使用了0.3%的前馈神经元。
研究人员认为,在大型语言模型中加入快速前馈网络具有巨大的加速潜力。例如,在GPT-3中,每个变压器层的前馈网络由49,152个神经元组成。
研究人员指出:“如果可训练的话,这个网络可以用最大深度为15的快速前馈网络来替换,其中包含65,536个神经元,但推理只使用16个。这相当于GPT-3神经元的约0.03%。”
仍有改善的空间
对于传统前馈神经网络中使用的数学运算——稠密矩阵乘法,已经进行了显著的硬件和软件优化。
研究人员写道:“稠密矩阵乘法是计算历史上最优化的数学运算,已经付出了巨大的努力来设计能尽可能快速执行的存储器、芯片、指令集和软件例程。其中的许多进展由于复杂性或竞争优势而保密,并且仅通过功能强大但限制性的编程接口向终端用户公开。”
相反,目前还没有针对快速前馈网络中使用的条件矩阵乘法的高效、本地实现。目前没有流行的深度学习框架提供可以用于实施CMM的接口,除了高级模拟以外。
研究人员开发了自己的基于CPU和GPU指令的CMM运算实现方式,这导致推理过程中的速度提高了78倍。
然而,研究人员认为,通过改进硬件和算法的底层实现,推理速度可能会有超过300倍的提升潜力。这可以极大地解决语言模型面临的一个主要挑战——每秒生成的标记数目。
研究人员写道:“在BERT-base模型的规模上,理论上的加速承诺是341倍,我们希望我们的工作能激发设备编程接口中实现条件神经执行原语的努力。”
这项研究是解决大型语言模型的内存和计算瓶颈的努力的一部分,为更高效和强大的人工智能系统铺平了道路。