利用知识蒸馏缩小模型规模
1. 知识蒸馏简介
在模型推理过程中,不同的硬件会导致平均延迟有所不同。例如,在GPU上运行推理通常能获得更好的性能,因为GPU支持批量处理。而在模型优化中,更关注的是不同模型之间延迟的相对差异,确定最佳模型后,若有需要,可探索不同后端来降低绝对延迟。
知识蒸馏是一种通用方法,用于训练较小的学生模型来模仿较大、较慢但性能更好的教师模型的行为。它最早在2006年的集成模型中被提出,后来在2015年的一篇著名论文中得到推广,将该方法应用于深度神经网络,并用于图像分类和自动语音识别任务。随着预训练语言模型的参数数量不断增加(撰写本文时最大的模型参数已超过一万亿),知识蒸馏成为压缩这些大型模型、使其更适合构建实际应用的流行策略。
2. 微调中的知识蒸馏
在微调等监督任务中,知识从教师模型“蒸馏”或转移到学生模型的主要思路是,用教师模型的“软概率”分布来增强真实标签,为学生模型提供额外的学习信息。例如,如果BERT-base分类器对多个意图分配了高概率,这可能表明这些意图在特征空间中彼此接近。通过训练学生模型模仿这些概率,目标是提取教师模型学到的“暗知识”,即仅从标签中无法获得的知识。
从数学角度来看,假设将输入序列x输入教师模型生成对数几率向量$z_x = [z_{1x}, …, z_{Nx}]$,可通过softmax函数将这些对数几率转换为概率:
[p_i(x) = \frac{\exp(z_{ix})}{\sum_j \exp(z_{jx})}]
但在很多情况下,教师模型会将高概率分配给一个类别,其他类别概率接近零,这样教师模型提供的额外信息不多。因此,在应用softmax之前,使用温度超参数T
超级会员免费看
订阅专栏 解锁全文
1296

被折叠的 条评论
为什么被折叠?



