深度学习模型之BERT的24个小模型源码与预训练紧凑模型的重要性

原始信息

  • 论文: Well-Read Students Learn Better: On the Importance of Pre-training Compact Models
  • 作者:Iulia Turc, Ming-Wei Chang, Kenton Lee, Kristina Toutanova
  • 地址:arxiv.org/pdf/1908.08...
  • 中文:阅读良好的学生学得更好:关于预训练紧凑模型的重要性
  • 源码:见微小BERT模型的源码地址章节

目前24个较小的BERT模型的发布版本,现在只有英语版,使用WordPiece掩码进行训练。

笔者翻译水平有限,有误之处请指正,万分感激。

摘要

自然语言表征模型的最新发展伴随着庞大而昂贵的模型,这些模型通过自监督的预训练的方式来利于通用领域文本。 由于应用此模型的下任务的成本,关于预训练的语言表征模型的几个压缩技术已经被提及(Sun等.,2019a;Sanh,2019) 。 然而,令人惊讶的是仅预先训练和微调紧凑型模型的简单基线已经被忽视。 在文本中,我们首先展示了较小体系架构中保留预训练的重要性,而且微调预先训练的紧凑模型可以与并行工作中提出的更精细的方法相竞争。 从预训练凑型模型开始,我们将探索通过标准知识提取从大的微调模型中转移任务知识,由此产生的简单、有效且通用的算,将给预训练提取带来更多的提升。通过广泛的实验,我们更加普遍的探索了在两个研究不足的变量(模型大小与未标记任务的数据属性)下在预训练与提取之间的相互作用。我们有一个让人吃惊的发现,即使是按序给相同的数据,他们仍然会产生复合效应。为了加快未来的研究,我们公开了24个预训练的微小BERT模型.

介绍

在通用领域文本语料库上的自监督学习,最终任务学习是实现基于深度和广度Transforme网络的两阶段训练方法(Vaswani等.,2017)来促进语言理解(Devlin等,2018;Sun等,019b;Sun等,2019b;Liu等,2019)。然而,最先进的模型有数亿个参数,计算成本很高。我们的目标是在有限的内存和延迟预算下有收获。我们寻求一个性能良好,通用且简单的训练方法,能够利用额外的资源,例如未标记的任务数据。

在考虑压缩技术之前,我们先从以下问题开始:我们能使用同样的两阶段方法训练较小模型么?换一句话说,我们探索了将语言模型预训练和任务微调直接应用于紧凑模型的想法。到目前为止,这个简单的基线一直被NLP社区所忽视,这可能潜在于这样的一个假设,当焦点集中在最终任务而不是通用语言模型的目标时有限能力的紧凑模型会得到更好的资本化。与我们一起提出了标准预训练+微调程序的变体的也有,但通用性有限(Sun等人,2019a;Sanh,2019)。我们惊喜的发现,在最初的公式中进行预训练+微调是构建紧凑模型的一种有竞争力的方法。

从这里开始,我们把它称为预训练提取(PD) 如上图。PD优于预训练+微调(PF)基线,尤其是在存在用于蒸馏的大转移集的情况下。特别是在提取大型转移设置的情况下。 在一项对照研究中,遵循并行工作中的数据和模型架构设置,我们展示了预训练蒸馏优于或具有更精细方法的竞争力,这些方法使用更复杂的任务知识提取(Sun等,2019a)或从未标记文本中进行更复杂的预训练(Sanh,2019)时。前者从中级教师激活中提取任务知识,从启发式初始化的学生开始。后者在更大的LM教师的帮助下,对在未标记文本上预先训练的紧凑模型进行微调。

本论文中最值得注意的贡献之一是:就预训练提取及其基线在各种条件下的表现 进行了广泛的实验。我们调查先前工作中研究不足的两个要点:模型大小和未标记数据的数量/质量。在对24个不同尺寸(4m至110m参数)的模型进行实验时深度/宽度的权衡,我们观察到,经过预训练的学生更好地利用深度而非宽度,这个属性对于随机初始化的模型是不可见的。对于第二点,我们改变了未标记数据的数量,以及它与标记集的相似性。有趣的是,预训练的取比标准提取对传递集中的这些变化更具鲁棒性。

最后,为了深入了解LM预训练和任务特定提取之间的相互作用,我们在同一数据集上依次进行了这些操作。在这个实验中,尽管单个操作数据集用于这两个步骤,这种复合效应令人惊讶,表明预训练和蒸馏是学习数据的互补方面。在这个实验中,尽管两个步骤都使用了单个数据集,但这两个操作链接起来的性能比单独应用的任何一个都要好。这种复合效应令人惊讶,表明预训练和提取是学习数据的互补方面。

结论

我们进行了大量的实验,以了解知识提炼和预训练+微调算法是如何单独工作的,以及它们如何交互。我们发现他们好处的复合,并且揭示训练训提取的力量。 这是一种简单且有效的方法,可以最大限度的利于可用:一个强大的老师,复合数据源(他们的好处是复合的,并揭示了预训练蒸馏的力量,这是一种简单而有效的方法,可以最大限度地利用所有可用的资源:一个强大的老师,以及多个数据源(标记集、未标记转移集和未标记LM集)。

章节说明

  1. INTRODUCTION:介绍(已译)
  2. PROBLEM STATEMENT:问题描述
  3. PRE-TRAINED DISTILLATION:预训练提取
  4. COMPARISON TO CONCURRENT WORK:与并行工作的比较
  5. ANALYSIS SETTINGS:配置分析
  6. ANALYSIS:实验分析
  7. RELATED WORK: 相关工作
  8. CONCLUSION:结论(已译)

微小BERT模型的源码地址

H=128 H=256 H=512 H=768
L=2 2/128 (BERT-Tiny) 2/256 2/512 2/768
L=4 4/128 4/256 (BERT-Mini) 4/512 (BERT-Small) 4/768
L=6 6/128 6/512 2/512 6/768
L=8 8/128 8/256 8/512 (BERT-Medium) 8/768
L=10 10/128 10/256 10/512 10/768
L=12 12/128 12/256 12/512 -

GLUE分数

相关阅读

深度学习经典模型之BERT(上)
深度学习经典模型之BERT(下)

**参考**

相关推荐
草莓熊Lotso1 小时前
Linux 文件描述符与重定向实战:从原理到 minishell 实现
android·linux·运维·服务器·数据库·c++·人工智能
Coder_Boy_2 小时前
技术发展的核心规律是「加法打底,减法优化,重构平衡」
人工智能·spring boot·spring·重构
会飞的老朱4 小时前
医药集团数智化转型,智能综合管理平台激活集团管理新效能
大数据·人工智能·oa协同办公
聆风吟º6 小时前
CANN runtime 实战指南:异构计算场景中运行时组件的部署、调优与扩展技巧
人工智能·神经网络·cann·异构计算
Codebee8 小时前
能力中心 (Agent SkillCenter):开启AI技能管理新时代
人工智能
聆风吟º9 小时前
CANN runtime 全链路拆解:AI 异构计算运行时的任务管理与功能适配技术路径
人工智能·深度学习·神经网络·cann
uesowys9 小时前
Apache Spark算法开发指导-One-vs-Rest classifier
人工智能·算法·spark
AI_56789 小时前
AWS EC2新手入门:6步带你从零启动实例
大数据·数据库·人工智能·机器学习·aws
User_芊芊君子9 小时前
CANN大模型推理加速引擎ascend-transformer-boost深度解析:毫秒级响应的Transformer优化方案
人工智能·深度学习·transformer
智驱力人工智能9 小时前
小区高空抛物AI实时预警方案 筑牢社区头顶安全的实践 高空抛物检测 高空抛物监控安装教程 高空抛物误报率优化方案 高空抛物监控案例分享
人工智能·深度学习·opencv·算法·安全·yolo·边缘计算