[论文阅读]Sequence-Level Knowledge Distillation


前言

论文名:Sequence-Level Knowledge Distillation
论文作者:Yoon Kim et.al.
期刊/会议名:EMNLP 2016
本文作者:XMU_MIAO
日期:2020/11/28

摘要

  本文考虑应用知识蒸馏方法(这些方法已被证明能够成功地减小神经模型在其他领域的大小)解决NMT问题。
我们证明了应用于单词级别的的标准知识蒸馏对于NMT是有效的,并且还介绍了两个新的序列级别知识蒸馏方法,这两个方法进一步提高了性能。并且令人惊讶的是,似乎消除了对于 b e a m   s e a r c h beam\,search beamsearch的需要(即使应用于原始的 t e a c h e r teacher teacher模型)。
  我们最好的 s t u d e n t student student模型比最先进的 t e a c h e r teacher teacher模型运行速度快10倍,而且几乎没有任何损失。它也明显优于没有经过知识蒸馏训练的基线模型:通过贪婪解码/波束搜索的4.2/1.7 BLEU。在知识蒸馏的基础上应用权重修剪, s t u d e n t student student模型的参数比原来的 t e a c h e r teacher teacher模型少13倍,比原来的 t e a c h e r teacher teacher模型减少0.4个BLEU。

一、Introduction

暂略

二、Distillation

2.1 Knowledge Distillation

  知识蒸馏描述了一类通过向更大的 t e a c h e r teacher teacher模型学习(除了从训练数据集学习之外)来训练更小的 s t u d e n t student student网络以使其表现更好的方法。知识蒸馏通过将 s t u d e n t student student模型与 t e a c h e r teacher teacher模型的预测结果进行匹配训练。对于分类任务,这一般意味着通过对数 L 2 L_2 L2或交叉熵( c r o s s − e n t r o p y cross{-}entropy crossentropy)匹配分类概率。
  具体地,假设我们要在 ( x , y ) (x,y) (x,y)形式的数据集上学习一个类别为 V V V的多类别分类器。通常的训练准则是最小化训练集中每个样本的 NLL \textbf{NLL} NLL £ N L L ( θ ) = − ∑ k = 1 ∣ V ∣ i { y = k } l o g   p ( y = k ∣ x ; θ ) \pounds_{NLL}(\theta)=-\sum_{k=1}^{|V|}i\{y=k\}log\,p(y=k|x;\theta) £NLL(θ)=k=1Vi{ y=k}logp(y=kx;θ)其中 i { ∗ } i\{*\} i{ }表示一个指示器,当花括号式子成立时值为1,否则为0。 p p p是模型通过参数化 θ \theta θ得到的概率分布。
  在知识蒸馏中,假设已得到 t e a c h e r teacher teacher模型的训练(可能是相同的数据集)得到的概率分布 q ( y ∣ x ; θ T ) q(y|x;\theta_T) q(yx;θT),不同于最小化与可观测数据( s t u d e n t student student模型的训练集)的交叉熵,知识蒸馏最小化 s t u d e n t student student模型与 t e a c h e r teacher teacher模型的交叉熵: £ K D ( θ ; θ T ) = − ∑ k = 1 ∣ V ∣ q ( y = k ∣ x ; θ T ) l o g   p ( y = k ∣ x ; θ ) \pounds_{KD}(\theta;\theta_T)=-\sum_{k=1}^{|V|}q(y=k|x;\theta_T)log\,p(y=k|x;\theta) £KD(θ;θT)=k=1Vq(y=kx;θT)logp(y=kx;θ)其中 θ T \theta_T θT参数化了 t e a c h e r teacher teacher模型的概率分布,并在其训练结束后固定不变。该交叉熵的两个概率分布的设置是相同的(如蒸馏温度相同等)。在 q ( y ∣ x ; θ T ) q(y|x;\theta_T) q(yx;θT)上进行训练能够提供更多对 s t u d e n t student student模型有用的信息。但是这还不够,由于上述目标函数未在训练集上进行训练,因而通常的做法是在以下两个损失函数之间进行插值: £ ( θ ; θ T ) = ( 1 − α ) £ N L L ( θ ) + α £ K D ( θ ; θ T ) \pounds(\theta;\theta_T)=(1-\alpha)\pounds_{NLL}(\theta)+\alpha\pounds_{KD}(\theta;\theta_T) £(θ;θT)=(1α)£NLL(θ)+α£KD(θ;θT)其中 α \alpha α是一个混合参数。

2.2 Knowledge Distillation for NMT

在这里插入图片描述

2.2.1 Word-Level Knowledge Distillation

  机器翻译系统是直接最小化每一个位置单词的 NLL \textbf{NLL} NLL, £ W O R D − N L L \pounds_{WORD-NLL} £WORDNLL。定义对于一个句子上单词级别的知识蒸馏的损失函数为: £ W O R D − K D = − ∑ j = 1 J ∑ k = 1 ∣ V ∣ q ( t j = k ∣ s , t < j ) l o g   p ( t j = k ∣ s , t < j ) \pounds_{WORD-KD}=-\sum_{j=1}^{J}\sum_{k=1}^{|V|}q(t_j=k|s,t_{<j})log\,p(t_j=k|s,t_{<j}) £WORDKD=j=1Jk=1Vq(tj=ks,t<j)logp(t

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值