近年来,随着深度学习在自然语言处理领域的应用,涌现出了大量的预训练语言模型,它们在情感分类、自然语言推理、机器翻译等多个任务上取得了巨大的成功。以BERT为代表的预训练语言模型能够高效地学习语言的表示,为各种下游任务提供了强大的特征表达能力。然而,这些预训练语言模型往往具有庞大的参数规模,参数量可以达到百万甚至数亿级别,这使得它们在资源受限环境下的应用受到了限制,尤其是在移动设备和边缘计算环境中。因此,对BERT进行高效的模型压缩变得尤为迫切。知识蒸馏作为一种模型压缩技术,通过教师模型向学生模型传递知识,使得学生模型在参数量较少的情况下能够保持较好的性能。然而,传统的知识蒸馏方法存在一些问题,如层映射困难和学生模型参数量过大等。为了解决这些问题,本文基于模型压缩中的知识蒸馏方法对BERT进行了压缩,主要的研究内容如下:
(1)提出了一种基于随机注意力图映射的BERT知识蒸馏方法(Random Attention Map Projection for Knowledge Distillation,RA-KD),旨在解决传统知识蒸馏方法中层映射关系选择困难和层搜索时间复杂度高的问题,并有效提升知识蒸馏后学生模型的性能。RA-KD在训练过程中随机选择与学生模型相同层数的教师层,将选取的教师模型的中间层按序排列,以便进行教师模型和学生模型中间层特征的知识蒸馏。将中间层的注意力图作为知识蒸馏的目标,通过对注意力图的蒸馏,学生模型能够更好地获得教师模型的语义关注能力,从而提高学生模型在语义理解和表征学习任务上的性能。当选取BERT-Base作为教师模型时,该方法得到的学生模型参数量仅为教师模型参数量的61.1%,在GLUE基准数据集上的平均性能只下降了2.0个百分点,验证了所提出的RA-KD模型压缩方法的有效性。
(2)为了解决现有BERT知识蒸馏方法中学生模型参数量过大问题,提出了一种基于参数共享的BERT知识蒸馏方法(Knowledge Distillation with Parameter Sharing for BERT,KDPS-BERT)。该方法通过使BERT学生模型中的多层Transformer编码器共享一层的参数来实现参数共享,从而大幅减少学生模型的参数量,提高了泛化能力。KDPS-BERT通过对参数共享模块与教师模型的中间层进行知识蒸馏,提升参数共享学生模型的性能。此外,KDPS-BERT还对学生模型的词向量进行了压缩,通过知识蒸馏方法鼓励学生模型的词向量“对齐”教师模型的词向量,进一步提升学生模型词向量的表示能力。KDPS-BERT方法能将学生模型的参数量减少至教师模型的30.0%,在GLUE基准数据集的平均性能可以达到82.6%,低于教师模型BERT-Base平均性能0.2个百分点。
(3)为进一步压缩模型参数量,提出了一种联合剪枝和知识蒸馏的BERT模型压缩方法(Joint Prune and Knowledge Distillation on BERT,Joint-PKD)。首先,对参数共享助教模型进行结构化剪枝,去除冗余的注意力头,压缩前馈神经网络的特征维度。随后,对助教模型与剪枝后的轻量级学生模型进行知识蒸馏,以提升轻量级学生模型的泛化性能。Joint-PKD方法得到的轻量级BERT模型的参数量仅有教师模型BERT-Base参数量的21.5%,在GLUE基准数据集上仅低于教师模型BERT-Base平均性能4.2%。Joint-PKD有效地压缩了BERT模型的参数,高效地结合了剪枝和知识蒸馏的策略。
暂无评论