\u200E
AI Studio 精品项目合集 | Transformer在模型优化领域的实践
发布日期:2021-10-09T11:59:00.000+0000 浏览量:36次

随着神经网络模型不断加深,训练结构日趋复杂,其对现实问题的表达能力也越来越强。随之而来的代价是训练成本和模型大小的增加。因此如何能够高效的训练模型成为一个亟待解决的问题。其中的一个方法就是通过对模型进行调整,使其结构更加高效,在保证效果的同时减小参数量以此来提升模型训练速度。

 

同时,高精度的大模型在部署时需要更好的硬件支撑,并且预测速度较低。但随着深度学习越来越多的参与到产业中,很多情况下需要将模型在手机端、IoT端部署。这种部署环境受到能耗和设备体积的限制,端侧硬件的计算能力和存储能力相对较弱。突出的诉求主要体现在以下三点:


  • 首先是速度,比如人脸闸机、人脸解锁手机等应用,对响应速度比较敏感,需要做到实时响应。

  • 其次是存储,比如电网周边环境监测这个应用场景中,要图像目标检测模型部署在可用内存只有200M的监控设备上,且当监控程序运行后,剩余内存会小于30M。

  • 最后是耗能,离线翻译这种移动设备内置AI模型的能耗直接决定了它的续航能力

 


以上三点诉求都需要我们根据终端环境对现有模型进行优化,在不损失精度的情况下,让模型的体积更小、速度更快,能耗更低。

 

本期我们将展现Transformer类模型实现的2款模型优化案例实践,包括预训练模型的高校结构优化和蒸馏。如果你对这些内容感兴趣,快来一起来学习吧。

 


掩码语言模型(maskedlangauge model, MLM),类似BERT通过预训练方法使用[MASK]来替换文本中一些字符,破坏了文本的原始输入,然后训练模型来重建原始文本。尽管它们在下游NLP任务中产生了良好的结果,但是它们通常需要大量计算才有效。ELECTRA (Efficiently Learning an Encoder that Classifies Token Replacements Accurately)最大的贡献是提出了新的预训练任务和框架,将生成式的MLM预训练任务改成了判别式的RTD(replaced token detection)任务,RTD方法不是掩盖输入,而是通过使用生成网络来生成一些合理替换字符来达到破坏输入的目的。在模型大小,数据和计算力相同的情况下,RTD方法所学习的上下文表示远远优于BERT所学习的上下文表示。


本项目先带领大家解读ELECTRA的基本原理,然后剖析ELECTRA在文本的标点符号恢复上的应用,最后讲解基于ELECTRA的标点符号恢复的代码实践,即在数据集IWSLT12上训练一个模型给缺失标点符号的文本打上合适的标点,恢复句子的语义信息。


项目维护者:PaddleEdu

主要框架/工具组件:飞桨PaddlePaddle核心框架,PaddleNLP套件

 

项目链接:

https://aistudio.baidu.com/aistudio/projectdetail/2311092



宽度自适应

策略蒸馏TinyBERT




知识蒸馏(Knowledge distillation)是模型压缩的主要方法之一。其过程可以看作是“老师教学生”,也即使用一个效果好的大模型来指导一个小模型训练。大模型可以为小模型提供更多的软分类信息量,所以训练出的小模型会与大模型效果接近,以此在保证模型效果的同时,减小模型体积。



本项目会先对预训练模型蒸馏中几个比较经典的模型进行介绍,比如:Patient-KD、DistilBERT、TinyBERT和DynaBERT。从原理和结构上对以上几个模型进行详解。然后再通过一个实验案例,带领大家使用DynaBERT训练策略中宽度自适应部分来对TinyBERT在GLUE基准数据集的QQP任务中进行蒸馏,以此进行实际效果验证。

 

项目维护者:PaddleEdu

主要框架/工具组件:飞桨PaddlePaddle核心框架,PaddleSlim套件,PaddleNLP套件

 

项目链接:

https://aistudio.baidu.com/aistudio/projectdetail/2420779




了解更多


更多Transformer类模型在NLP领域的理论及实践内容,欢迎访问下方链接查看。上述案例使用过程中如有任何问题,可以点击阅读原文提issue,或者扫描下方二维码加入QQ群交流,目前已有2200+同学一起学习。


合集地址:

https://aistudio.baidu.com/aistudio/projectdetail/2277159


    




长按下方二维码立即

Star

更多信息:

  1. 飞桨官方QQ群:793866180

  2. 飞桨官网网址:

    www.paddlepaddle.org.cn/

  3. 飞桨开源框架项目地址:

    GitHub:

    github.com/PaddlePaddle/Paddle 
    Gitee:

    gitee.com/paddlepaddle/Paddle

  4. 欢迎在飞桨论坛讨论交流~~

    http://discuss.paddlepaddle.org.cn