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

ICLR2022|唯快不破!FullyBinaryBiBERT

时间:2023-03-14 16:06:24 科技观察

forExtremeCompression近年来,预训练语言模型在自然语言处理方面表现良好,但其庞大的参数量阻碍了其在现实世界硬件设备上的部署。近日,机器学习顶级会议ICLR2022的录用论文结果正式公布,至少有9篇作品展示了神经网络量化方向的相关进展。本文将介绍第一个用于自然语言任务的全二进制量化BERT模型——BiBERT,具有高达56.3倍和31.2倍的FLOPs和模型大小节省。该研究工作由北航刘相龙教授团队、南洋理工大学和百度共同完成。预训练语言模型在自然语言处理方面表现良好,但其庞大的参数量阻碍了其在现实世界硬件设备上的部署。现有的模型压缩方法包括参数量化、蒸馏、剪枝、参数共享等。其中,参数量化方法通过将浮点参数转换为定点数表示,有效地使模型紧凑。研究人员提出了Q-BERT[1]、Q8BERT[2]、GOBO[3]等多种解决方案,但量化模型仍然面临着表达能力有限、优化困难等严重问题。幸运的是,知识蒸馏作为一种常用的辅助优化手段,使量化模型模仿了全精度教师模型的特征表达,从而更好地解决了精度损失的问题。在这篇论文中,来自北航、南大和百度的研究人员提出了BiBERT,它将权重、激活和嵌入量化到1位(而不是仅仅将权重量化到1位,同时将激活保持在4位或更高)。这使得模型在推理时可以使用按位运算,大大加快了模型部署到真实硬件时的推理速度。我们研究了BERT模型在二值化过程中的性能损失。作者引入了一种基于信息论的高效Bi-Attention(二元注意)机制来解决前向传播中二值化后的attention。机制的信息退化问题;Direction-MatchingDistillation方法被提出来解决反向传播中蒸馏的优化方向不匹配问题。△图1BiBERT整体框架BiBERT首次证明了BERT模型全二值化的可行性,其在GLUE数据集上的准确率大大超越了现有的BERT模型二值化算法,甚至超过了更高位表示的模型.在模型计算和体积方面,BiBERT理论上可以将FLOPs和模型大小降低56.3倍和31.2倍。MethodBi-Attention:BinarizedAttentionMechanism我们的研究表明,在BERT模型的attention机制中,将softmax函数得到的归一化attention权重看做服从一个概率分布,直接对binaryvaluedNormalization会导致completeloss的信息,其信息熵退化为0(见图2)。△图2直接对softmax函数应用二值化导致信息完全丢失。缓解这种信息退化的常用措施是在应用符号函数之前对输入张量的分布进行平移,可以表示为:其中,shift参数也被认为是二值化的阈值,希望二值化后的熵最大化.我们注意到softmax函数是保序的,这意味着有一个固定的阈值来最大化二进制表示的信息熵。受HardAttention[4]的启发,作者使用bool函数对attention权重进行二值化A:通过应用bool函数,将attention权重中值较低的元素二值化为0,因此熵值最大的attention得到的权重可以过滤掉元素的关键部分。最终的二元注意力机制可以表示为:其中BV是符号函数二值化得到的值,BA是二元注意力权重,它是一个精心设计的位仿射矩阵乘法(BAMM)运算,由求和和shifts,用于对齐训练和推理表示并执行比特有效计算。DMD:DirectionMatchingDistillation作者发现,由于注意力权重直接乘以两个二值化激活。因此,决策边缘的值很容易二值化到相反的一侧,从而直接优化注意力权重在训练时往往会遇到优化方向不匹配的问题。(见图3)△图3优化方向不匹配因此,作者设计了一种新的蒸馏方案,即针对上游的Query、Key和Value矩阵,构造相似度矩阵进行激活蒸馏:其中||·||表示L2正则化。以往的研究工作表明,这样构建的矩阵被认为反映了网络对特定模式的语义理解,忽略了规模和价值的影响,能够更稳定地表示特征之间的内生相关性,更适用于两个价值网络和全精度网络之间的知识传递。因此,蒸馏损失可以表示为隐藏层上的损失、预测结果和上述激活相似度矩阵的总和:其中L表示transformer的层数,作者的实验证明,所提出的BiBERT可以很好地解决二值化BERT模型在GLUE基准数据集的某些任务上的精度崩溃问题,使模型能够稳定优化。表1表明,所提出的Bi-Attention和DMD都可以显着提高二值化后模型的性能。△Table1AblationexperimentsTable2和Table3,作者表明BiBERT优于其他BERT二值化方法,甚至优于更高比特的量化方案:△Table2ComparisonofBERT-basedbinarizationmethods(nodataenhancement)△表3基于BERT的二值化方法比较(带数据增强)其中,50%是指要求二值化后一半attention权重为0,表中没有特别说明。使用12层BERT模型。量化。另外,作者在训练过程中测量了信息熵(见图4),作者提出的方法有效恢复了注意力机制中完全丢失的信息熵。△图4训练过程中的信息熵同时,作者绘制了训练过程中的loss下降曲线和准确率。与baseline相比,BiBERT收敛速度明显更快,精度更高。△图5SummaryofLossandaccuracycurvesduringtrainingBiBERT作者提出的作为第一个BERT模型的全二值化方法,为后续的BERT二值化研究奠定了理论基础,并分析了其性能下降的原因。具体提出了Bi-Attention和DMD方法,有效提升了模型的性能。BiBERT超越了现有的BERT模型二值化方法,甚至优于使用更多比特的量化方案。理论上,BiBERT可以带来56.3倍的FLOPs减少和31.2倍的模型存储节省。希望这项工作能为今后的研究打下坚实的基础。BiBERT即将开源基于百度飞桨的开源深度学习模型压缩工具PaddleSlim,敬请期待。PaddleSlim:https://github.com/PaddlePaddle/PaddleSlim传送门大会论文:https://openreview.net/forum?id=5xEgrl_5FAJ