0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

删掉Transformer中的这几层性能变好了?

深度学习自然语言处理 来源:夕小瑶的卖萌屋 作者:chaos 2021-03-08 10:27 次阅读

基于Transformer结构的各类语言模型(Bert基于其encoder,Gpt-2基于其decoder)早已经在各类NLP任务上大放异彩,面对让人眼花缭乱的transformer堆叠方式,你是否也会感到迷茫?没关系,现在让我们回到最初,再次看看transformer 本来的模样——Rethinking the Value of Transformer Components。该文收录已于COLING 2020。

众所周知,一个完整的transformer结构可以切分成Encoder-self attention(“E:SA”), Encoder-Feed Forward(“E:FF”), Decoder-Self Attention(“D:SA”), Decoder-Encoder Attention(“D:EA”) 和 Decoder-Feed Forward(“D:FF”) 5个sub-layer结构。文中作者采用了两种度量方式确认这些sub-layer的重要程度。

方法稍后再谈,先上干货,实验结果表明:

Decoder self-attention layers是最不重要的,而Decoder feed-forward layers是最重要的;

离模型的输入和输出越近的sub-layer要比其他的重要些;

在decoder里越靠后的encoder-attention layer要比之前的重要。

这些结果对不同的度量方法,数据集,初始化种子以及模型容量都能保持一致性。

▲Transformer结构图

模块重要性分析

所谓的重要性究竟是什么呢?论文认为,这主要包括两个方面:

Contribution in information Flow,对于模型信息流的贡献程度

Criticality in Representation Generalization,模型的模块对参数的扰动表现出不同的鲁棒性

Contribution in Information Flow

Transformer 最初是用来做机器翻译任务的。所谓的information flow就是指数据如何从源语言经过Transformer的encoder和decoder最终成为目标语言的。如何衡量模型的每个部分对information flow做出的贡献呢? 最直观的想法就是去掉那个部分看看同样条件下模型的效果如何。如果去掉那个部分,模型效果没什么变化,那就说明该部分没做什么贡献,反之,如果删掉该部分,模型效果显著降低则说明它贡献卓著,没它不行。作者采用了如下的量化方法:

公式中指的是去除第n个部分后模型整体的BLEU得分降。为了避免出现重要性指数出现负值和爆炸性下跌,作者将的值设定在[0,C]之间(真的会出现负重要性指数吗?那样倒挺好——模型变小,效果更好)。然后通过除以最大的得分降将的值进行了归一化,这里作者设置的上限C值为基线模型的BLEU得分的1/10.

Criticality in Representation Generalization

这里说的criticality指的是模型的模块对参数的扰动表现出不同的鲁棒性。比方说,如果将某个模块的参数重置为初始化参数,模型的表现变差,那么这个模块就是critical的,否则就是non-critical的。有人在理论上将这个criticality给公式化了,而且他们表明这个criticality可以反映神经网络的泛化能力。

作者便是参考了这个工作,对网络的第n个模块,定义

即初始权重和最终权重的一个凸组合。

那么第n个部分的criticality score就可以表示为

这个式子定量的说明了criticality是最小的能使模型在阈值的情况下保持性能。这个值越小说明该模块越不重要,这里取的是 0.5 BLEU分。

两种度量方法虽然都是基于模块对模型表现的影响的,但是又有不同之处。Contribution score可以看成是 hard metric(完全删除模块),而 Criticality score可以看成是一种soft metric,它衡量的是在保证模型表现的前提下模块参数能多大程度的回卷。

实验

实验是在WMT2014 English-German(En-De)和English-French(En-Fr)两个机器翻译数据集上进行的,作者使用的Transformer模型和Transformer的那篇原始文献(Vaswani et al.,2017)是一样的。Transformer model 一共6层编码器和解码器,layer size是512,feed-forward sub-layer的size是2048,attention head的数值是8,dropout是0.1,initialization seed设置为1。

观察模块的重要性

上图是采用两种度量方式在两个数据集上的实验结果,其中X轴代表的是模块类型,Y轴表示的是layer id。其中颜色越深就越重要。可以看出两种度量方式的结果很大程度上是一致的,比方说:

the decoder self-attention(D:SA)是最不重要的,而the decoder feed-forward layers(D:FF)是最重要的。

编码器里越靠前(E:SA和E:FF)和解码器里越靠后(D:EA和D:FF)是更重要的。这个其实很直观,因为这些模块离数据的输入和输出更近,所以对输入句子的理解和输出句子的生成要更加重要些。

在解码器里越靠后的encoder-attention(D:EA)layers要比之前的encoder-attention layers重要。

分析不重要的模块

更低的dropout比例和更多的训练数据会让不重要的模块变得更少(dropout是一种常见的用来防止过拟合的手段)。为了保证模型的效果,当我们使用dropout的时候其实说明模型本身有一定程度上的冗余。在不降低模型效果的前提下,小的dropout比例刚好说明模型的冗余越少,也就是不重要的模块更少。大规模的训练数据本身就自带更多的patterns。需要充分发挥transformer的各个模块才能有效地学习到。

从上面两张图可以明显的看出:当使用更小的dropout和更大的数据集时,颜色深的版块明显变得更多。此外之前所得到的结论这里依然成立。

区分和利用一批不重要的模块

之前的结果都是只删除一个模块得到,那我们一次性删除多个模块呢?

上图显示当我们删除3到4个不重要的模块时,模型效果并没有明显降低。但是当删的更多了之后,模型的效果会受到较大的影响。那么我们是否可以利用这些不怎么重要的模块去对模型进行优化呢?作者采用了两种方式:一个是模块剪枝,另一个是模块回卷。

模块剪枝就是将不重要的模块直接删掉,因为删掉了相应模块使得模型的参数变小,作为对比作者在相同参数量下使用了一个浅层的decoder模型结果如表:

ad644d5a-7f2a-11eb-8b86-12bb97331649.png

可以看出剪枝后的模型要比同样参数下的浅层模型结果要好,而且也能达到和原始模型相应的效果,有的甚至更好(还真有)。

模块回卷就是将不重要的模块参数回卷到初始化状态,再和其他模块一起微调一下得到的训练结果要比原始模型好一点。

总结

我们可以利用contribution score和criticality score评价模型中各个模块的重要性,知晓了模块的重要性程度后我们可以对不重要的模块进行剪枝或者参数回卷都能在一定程度上让原有模型得到优化。

原文标题:我删掉了Transformer中的这几层…性能反而变好了?

文章出处:【微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 人工智能
    +关注

    关注

    1791

    文章

    46838

    浏览量

    237496
  • 深度学习
    +关注

    关注

    73

    文章

    5492

    浏览量

    120962
  • Transformer
    +关注

    关注

    0

    文章

    141

    浏览量

    5980

原文标题:我删掉了Transformer中的这几层…性能反而变好了?

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Transformer模型的具体应用

    如果想在 AI 领域引领一轮新浪潮,就需要使用到 Transformer
    的头像 发表于 11-20 09:28 215次阅读
    <b class='flag-5'>Transformer</b>模型的具体应用

    Transformer模型能够做什么

    尽管名为 Transformer,但它们不是电视银幕上的变形金刚,也不是电线杆上垃圾桶大小的变压器。
    的头像 发表于 11-20 09:27 192次阅读
    <b class='flag-5'>Transformer</b>模型能够做什么

    ADS1258使用内部16M时钟时动态性能变差,是什么原因导致的?

    使用1258的评估板测试1KHz满幅输入的正弦信号时,发现动态性能很差,和手册上给的频谱图相差较多,但是用外灌时钟时,动态性能明显变好,请问这个原因是什么呢?
    发表于 11-19 06:29

    EasyGo实时仿真丨PCS储能变流器控制仿真应用

    ,主要差别在于实际控制效果比仿真效果的电流纹波稍大。通过在电路运行不断在上位机界面实时调试改进控制参数,仿真表现比实验测试更好,实现了变流器性能的不断优化。实验达到了理论验证的预期,再次验证了利用
    发表于 09-20 10:17

    Transformer语言模型简介与实现过程

    在自然语言处理(NLP)领域,Transformer模型以其卓越的性能和广泛的应用前景,成为了近年来最引人注目的技术之一。Transformer模型由谷歌在2017年提出,并首次应用于神经机器翻译
    的头像 发表于 07-10 11:48 1293次阅读

    Transformer架构在自然语言处理的应用

    随着人工智能技术的飞速发展,自然语言处理(NLP)领域取得了显著的进步。其中,Transformer架构的提出,为NLP领域带来了革命性的变革。本文将深入探讨Transformer架构的核心思想、组成部分以及在自然语言处理领域的应用,旨在帮助读者全面理解并应用这一革命性的
    的头像 发表于 07-09 11:42 691次阅读

    Transformer模型在语音识别和语音生成的应用优势

    自然语言处理、语音识别、语音生成等多个领域展现出强大的潜力和广泛的应用前景。本文将从Transformer模型的基本原理出发,深入探讨其在语音识别和语音生成的应用优势,并展望其未来发展趋势。
    的头像 发表于 07-03 18:24 953次阅读

    使用PyTorch搭建Transformer模型

    Transformer模型自其问世以来,在自然语言处理(NLP)领域取得了巨大的成功,并成为了许多先进模型(如BERT、GPT等)的基础。本文将深入解读如何使用PyTorch框架搭建Transformer模型,包括模型的结构、训练过程、关键组件以及实现细节。
    的头像 发表于 07-02 11:41 1460次阅读

    能变流器的拓扑结构介绍

    随着能源存储技术的不断发展,储能变流器(Power Conversion System,简称PCS)作为储能系统的核心设备,其性能对整个系统的稳定运行和能量转换效率起着至关重要的作用。而储能变
    的头像 发表于 05-17 16:08 1873次阅读

    能变流器的工作原理是什么

    工作原理和性能直接影响到整个储能系统的运行效率、安全性和稳定性。本文将详细介绍储能变流器的工作原理,并探讨其在电力系统的重要作用。
    的头像 发表于 05-17 16:02 1637次阅读

    能变流器模块作用是什么

    能变流器模块(PCM)是储能变流器系统的一个关键组成部分,它负责执行储能系统的电能转换任务。
    的头像 发表于 04-24 15:30 1248次阅读

    能变流器拓扑结构有哪些种类

    能变流器(PCS)的拓扑结构是其设计和性能的核心部分,它决定了变流器的效率、可靠性和成本。
    的头像 发表于 04-22 14:52 2163次阅读

    Transformer压缩部署的前沿技术:RPTQ与PB-LLM

    随着人工智能技术的迅速发展,Transformer在自然语言处理、机器翻译、问答系统等领域取得了显著的性能提升。
    的头像 发表于 01-24 14:05 1123次阅读
    <b class='flag-5'>Transformer</b>压缩部署的前沿技术:RPTQ与PB-LLM

    能变流器的特点有哪些

    双极晶体管)或MOSFET(金属氧化物半导体场效应晶体管),具有高频率、高效率、高电压等优点,可以实现电能的快速、高效转换。 稳定可靠:储能变流器内部设有输入滤波器、输出滤波器和保护电路等,可以有效地抑制电网的谐波和瞬时电压波动,提高系统
    的头像 发表于 01-09 14:56 1342次阅读

    更深层的理解视觉Transformer, 对视觉Transformer的剖析

    最后是在ADE20K val上的LeaderBoard,通过榜单也可以看出,在榜单的前几名Transformer结构依旧占据是当前的主力军。
    的头像 发表于 12-07 09:39 734次阅读
    更深层的理解视觉<b class='flag-5'>Transformer</b>, 对视觉<b class='flag-5'>Transformer</b>的剖析