BERT 压缩60倍
1、teacher model和student model有不同的词汇表和相同序列的不相容词法,因此输入序列为teacher vocabulary-tokenized words和student vocabulary-tokenized words的混合序列,通过masked language modeling task,使得teacher和student的WordPiece embeddings更加对齐,因为student vocabulary embeddings可能被作为上下文来预测words tokenized by the teacher vocabulary。
2、为了最小化降低hidden state维度所带来的信息损失,引入separate loss来对齐teacher和student的trainable variables。
流程图右边是预训练的原始BERT(30K vocab,768 hidden state dimension)
左边是train from scratch的student BERT(5K vocab,48 hidden state dimension)
在蒸馏的过程中,teacher model随机选择一个字典(teacher or student voca)来分割每个输入word。
transformer层旁边的矩阵代表teacher和student model的参数,U,V是变换矩阵,将高维参数变为student的低维参数,对于所有维度相同的层是共享的。
本文的蒸馏重点在于reducing the number of WordPiece tokens in the model vocabulary,称之为优化单词的Embeddings,student model与teacher model(BERT_BASE)有相同的层数,但是hidden state变小了,vocabulary变小了。
由于寻求训练通用的student语言模型,因此在进行任何微调之前,选择重用teacher model的原始训练目标来优化student模型,即MLM和NSP。但是由于学生词汇表不是教师词汇表的完整子集,这两个词汇表可能对同一单词的标记不同的现象。结果,用于MLM任务的教师和学生模型的输出可能无法对齐,即使两个词汇表之间的重叠程度很高,也需要从头开始训练学生的embeddings,并且embeddings尺寸的变化会排除现有的KD技术,因为它们要求两个模型的输出空间对齐。
Dual traing:
对于给定的输入到teacher model中的训练序列,通过使用学生词汇表从序列中随机选择tokens进行分段,使用教师词汇表对其他tokens进行分段,来混合教师词汇和学生词汇表,希望借此从teacher embeddings以及模型参数中有效地学习student embeddings。该模型对老师和学生的词汇使用不同的softmax层。
Shared Variable Projections:
希望最小化teacher model的参数与student model参数(lower dimension)之间的信息差,因此将它们映射到相同的空间,具体来说将teacher model的参数映射到与student model的参数维度一致,降维损失:
MSE LOSSU,V对于所有维度相同的teacher model层都是一致的,同理,升维损失:
MSE LOSS 损失函数 结果
网友评论