[论文阅读]TinyBERT: Distilling BERT for Natural Language Understanding

TinyBERT通过知识蒸馏技术有效压缩BERT,实现了在保持高精度的同时减小模型大小和加快推理速度。文章介绍了Transformer Distillation方法以及TinyBERT的两阶段学习框架,包括预训练和特定任务学习阶段的蒸馏。实验证明,TinyBERT4在GLUE Benchmark上的性能接近BERTBASE的96.8%,模型大小仅为BERT的1/7.5,推理速度提升9.4倍。
摘要由CSDN通过智能技术生成


前言

论文名:TinyBERT: Distilling BERT for Natural Language Understanding
论文作者:Xiaoqi Jiao et al.
机构:
	1)Key Laboratory of Information Storage System, Huazhong University of Science and Technology, Wuhan National Laboratory for Optoelectronics
	(华中科技大学信息存储系统重点实验室,武汉光电国家实验室)
	2)Huawei Noah’s Ark Lab
	(华为诺亚方舟实验室)
	3)Huawei Technologies Co., Ltd.
	(华为技术有限公司)
期刊/会议名:EMNLP 2020
本文作者:XMU_MIAO
日期:2021/1/23

摘要

  预训练语言模型如BERT大大提升了许多自然语言处理任务的性能。但预训练语言模型一般都是计算昂贵的,因而在资源受限的设备上难以有效地运行。 为了在加速推理速度和减少模型大小的同时保持精度,我们首先提出一种针对transformer-based模型的知识蒸馏(KD)方法,通过利用这种新的KD方法,"Teacher"模型(BERT)中的大量知识能够有效地迁移到“Student”模型中(TinyBERT),然后我们为TinyBERT介绍了一种新的two-stage学习框架,其在预训练(pre-training)阶段和特定任务学习(specific-task learning)阶段都使用KD方法。这种框架能够保证TinyBERT能够在BERT中捕捉一般领域(general-domain)和特定任务的知识(task-specific)
  有4个层的 T i n y B E R T 4 TinyBERT_4 TinyBERT4在实验上证实是有效的,在GLUE Benchmark达到了其teacher模型( B E R T B A S E BERT_{BASE} BERTBASE)的96.8%以上的性能,并且比后者小了7.5倍,推理速度快了9.4倍。 有6个层的 T i n y B E R T 6 TinyBERT_6 TinyBERT6与其Teacher模型( B E R T B A S E BERT_{BASE} BERTBASE)性能相当。

1、Introduction & Motivation

  这篇文章的工作是从知识蒸馏的角度对预训练模型BERT进行压缩,提出新的压缩模型 T i n y B E R T TinyBERT TinyBERT。在运用知识蒸馏技术时,关键在于如何设计损失函数以及如何学习teacher模型的知识。本文提出的蒸馏方法是针对transformer编码器的每一层的,模型预训练一般遵循这样的范式: p r e − t r a i n − t h e n − f i n e − t u n i n g pre{-}train{-}then{-}fine{-}tuning pretrainthenfinetuning,即两个阶段:在大型语料上预训练,针对特定任务进行微调。 TinyBERT将知识蒸馏是在这两个阶段分别进行的。
  BERT采用Transformer编码器部分作为其主要结构,Transformer编码器部分的每一层包含两个子层: M u t i l − H e a d    A t t e n t i o n Mutil{-}Head\,\,Attention MutilHeadAttention F F N FFN FFN ,TinyBERT对这两个子层以及分类器(softmax)分别设计了知识蒸馏的损失函数,第2部分会进行详细介绍。

2、How to do ?

本文针对Transformer-Layer的知识蒸馏方法为: T r a n s f o r m e r    D i s t i l l a t i o n Transformer\,\,Distillation TransformerDistillation,并将这种蒸馏方法运用在预训练模型的两个阶段中,在微调阶段,除了使用本文提出的知识蒸馏技术,还使用了数据增强的技术。TinyBERT的总体学习过程如下:
在这里插入图片描述
总结一下TinyBERT的思路,其实际上就是一个两阶段蒸馏:
  预训练阶段->知识蒸馏
  微调阶段->数据增强+知识蒸馏

2.1 Transformer Distillation

N N N层的BERT模型(teacher)中的知识迁移到 M M M层的TinyBERT模型(student)中( N > M N>M N>M),整个模型蒸馏时的损失函数如下:
L m o d e l = ∑ x ∈ X ∑ m = 0 M + 1 λ m L l a y e r ( f m S ( x ) , f g ( m ) T ( x ) ) L_{model}=\sum_{x\in X}\sum_{m=0}^{M+1}\lambda_mL_{layer}(f_m^S(x),f_{g(m)}^T(x)) Lmodel=xXm=0M+1λmLl

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值