哈工大讯飞联合实验室来源李照鹏本期编辑丁 效本期责任编辑

哈工大讯飞联合实验室发布知识蒸馏工具TextBrewer

哈工大讯飞联合实验室(HFL)在前期发布了多个中文预训练系列模型,目前已成为最受欢迎的中文预训练资源之一。然而,众多预训练模型体积庞大,难以满足运行时要求,为技术落地提出了新的挑战。为此,我们很高兴地向大家推出基于PyTorch框架的知识蒸馏工具包TextBrewer,提供更加方便快捷的知识蒸馏框架。我们欢迎各位读者积极试用并反馈宝贵意见。

工具地址:http://textbrewer.hfl-rc.com

论文地址:https://arxiv.org/abs/2002.12620

特点

TextBrewer为NLP中的知识蒸馏任务设计,提供方便快捷的知识蒸馏框架,主要特点包括:

  • 模型无关:适用于多种模型结构(主要面向Transfomer结构)
  • 方便灵活:可自由组合多种蒸馏方法,支持增加自定义损失等模块
  • 非侵入式:无需对教师与学生模型本身结构进行修改
  • 适用面广:支持典型NLP任务,如文本分类、阅读理解、序列标注等

TextBrewer目前支持的主要知识蒸馏技术有:

  • 软标签与硬标签混合训练
  • 动态损失权重调整与蒸馏温度调整
  • 多种蒸馏损失函数
  • 任意构建中间层特征匹配方案
  • 多教师知识蒸馏
  • ...

工作流程

TextBrewer工具中的一个完整工作流程如下图所示。

TextBrewer整体工作流程

△ 第一步:在开始蒸馏之前的准备工作

  • 训练教师模型
  • 定义并初始化学生模型(随机初始化或载入预训练权重
  • 构造蒸馏用数据集的DataLoader,训练学生模型用的Optimizer和Learning rate scheduler

△ 第二步 : 知识蒸馏

  • 初始化Distiller,构造训练配置(TrainingConfig)和蒸馏配置(DistillationConfig)
  • 定义adaptors和callback,分别用于适配模型输入输出和训练过程中的回调
  • 调用Distiller的train方法开始蒸馏

用户应先进行第一步准备工作,得到训练好的教师模型。TextBrewer负责第二步的知识蒸馏工作。为了方便用户使用,TextBrewer也提供了BasicTrainer用于训练第一步的教师模型。

知识蒸馏本质上是“老师教学生”的过程。在初始化学生模型时,可以采用随机初始化的形式(即完全不包含任何先验知识),也可以载入已训练好的模型权重。例如,从BERT-base模型蒸馏到3层BERT时,可以预先载入RBT3模型权重,然后进一步进行蒸馏,避免了蒸馏过程的“冷启动”问题。我们建议用户在使用时尽量采用已预训练过的学生模型,以充分利用大规模数据预训练所带来的优势。

实验效果

为了验证工具的效果,我们在多个中英文自然语言处理任务上进行了实验并取得了与业界公开结果相当,甚至是超过相关公开工作的效果。我们对如下几种基于Transformer的模型结构进行了知识蒸馏

知识蒸馏实验中使用的模型结构和参数在中文实验中,我们选取了4个经典数据集,其中包括XNLI(自然语言推断)、LCQMC(句对分类)、CMRC 2018(阅读理解)、DRCD(繁体阅读理解)。其中教师模型为哈工大讯飞联合实验室发布的RoBERTa-wwm-ext模型

中文任务上的知识蒸馏效果在英文实验中,我们选取了3个经典数据集,其中包括MNLI(自然语言推断)、SQuAD(阅读理解)、CoNLL-2003 NER(命名实体识别)。我们也列出了一些公开论文中的知识蒸馏效果,方便大家进行比较。教师模型为谷歌发布的BERT-base-cased模型。

6层Transformer级别上的效果对比

3层Transformer级别上的效果对比

与TinyBERT的效果对比

相关资源地址

  • TextBrewer知识蒸馏工具
    • http://textbrewer.hfl-rc.com
  • 中文BERT、RoBERTa、RBT系列模型
    • http://bert.hfl-rc.com
  • 中文XLNet系列模型
    • http://xlnet.hfl-rc.com
哈工大SCIR
哈工大SCIR

哈尔滨工业大学社会计算与信息检索研究中心

工程哈工大TextBrewer知识蒸馏
相关数据
权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

文本分类技术

该技术可被用于理解、组织和分类结构化或非结构化文本文档。文本挖掘所使用的模型有词袋(BOW)模型、语言模型(ngram)和主题模型。隐马尔可夫模型通常用于词性标注(POS)。其涵盖的主要任务有句法分析、情绪分析和垃圾信息检测。

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

命名实体识别技术

命名实体识别(NER)是信息提取(Information Extraction)的一个子任务,主要涉及如何从文本中提取命名实体并将其分类至事先划定好的类别,如在招聘信息中提取具体招聘公司、岗位和工作地点的信息,并将其分别归纳至公司、岗位和地点的类别下。命名实体识别往往先将整句拆解为词语并对每个词语进行此行标注,根据习得的规则对词语进行判别。这项任务的关键在于对未知实体的识别。基于此,命名实体识别的主要思想在于根据现有实例的特征总结识别和分类规则。这些方法可以被分为有监督(supervised)、半监督(semi-supervised)和无监督(unsupervised)三类。有监督学习包括隐形马科夫模型(HMM)、决策树、最大熵模型(ME)、支持向量机(SVM)和条件随机场(CRF)。这些方法主要是读取注释语料库,记忆实例并进行学习,根据这些例子的特征生成针对某一种实例的识别规则。

先验知识技术

先验(apriori ;也译作 先天)在拉丁文中指“来自先前的东西”,或稍稍引申指“在经验之前”。近代西方传统中,认为先验指无需经验或先于经验获得的知识。先验知识不依赖于经验,比如,数学式子2+2=4;恒真命题“所有的单身汉一定没有结婚”;以及来自纯粹理性的推断“本体论证明”

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

知识蒸馏技术

Hinton 的工作引入了知识蒸馏压缩框架,即通过遵循“学生-教师”的范式减少深度网络的训练量,这种“学生-教师”的范式,即通过软化“教师”的输出而惩罚“学生”。为了完成这一点,学生学要训练以预测教师的输出,即真实的分类标签。这种方法十分简单,但它同样在各种图像分类任务中表现出较好的结果。

命名实体识技术

命名实体识别(英语:Named Entity Recognition,简称NER),又称作专名识别、命名实体,是指识别文本中具有特定意义的实体,主要包括人名、地名、机构名、专有名词等,以及时间、数量、货币、比例数值等文字。指的是可以用专有名词(名称)标识的事物,一个命名实体一般代表唯一一个具体事物个体,包括人名、地名等。

推荐文章
暂无评论
暂无评论~