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

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

    关注

    1813

    文章

    49734

    浏览量

    261512
  • 深度学习
    +关注

    关注

    73

    文章

    5590

    浏览量

    123905
  • Transformer
    +关注

    关注

    0

    文章

    154

    浏览量

    6814

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Transformer如何让自动驾驶变得更聪明?

    ]自动驾驶中常提的Transformer本质上是一种神经网络结构,最早在自然语言处理里火起来。与卷积神经网络(CNN)或循环神经网络(RNN)不同,Transformer能够自动审视所有输入信息,并动态判断哪些部分更为关键,同时可以将这些重要信息有效地关联起来。
    的头像 发表于 11-19 18:17 1902次阅读

    一文读懂储能变流器PCS

    性能起着至关重要的作用。一、PCS的定义与核心功能储能变流器(PowerConversionSystem,简称PCS)是储能系统的核心设备,负责实现电能形式的双向
    的头像 发表于 08-14 11:15 2827次阅读
    一文读懂储<b class='flag-5'>能变</b>流器PCS

    自动驾驶Transformer大模型会取代深度学习吗?

    [首发于智驾最前沿微信公众号]近年来,随着ChatGPT、Claude、文心一言等大语言模型在生成文本、对话交互等领域的惊艳表现,“Transformer架构是否正在取代传统深度学习”这一话题一直被
    的头像 发表于 08-13 09:15 3917次阅读
    自动驾驶<b class='flag-5'>中</b><b class='flag-5'>Transformer</b>大模型会取代深度学习吗?

    Transformer架构编码器的工作流程

    编码器是Transformer体系结构的基本组件。编码器的主要功能是将输入标记转换为上下文表示。与早期独立处理token的模型不同,Transformer编码器根据整个序列捕获每个token的上下文。
    的头像 发表于 06-10 14:27 822次阅读
    <b class='flag-5'>Transformer</b>架构<b class='flag-5'>中</b>编码器的工作流程

    Transformer架构概述

    由于Transformer模型的出现和快速发展,深度学习领域正在经历一场翻天覆地的变化。这些突破性的架构不仅重新定义了自然语言处理(NLP)的标准,而且拓宽了视野,彻底改变了AI的许多方面。
    的头像 发表于 06-10 14:24 954次阅读
    <b class='flag-5'>Transformer</b>架构概述

    快手上线鸿蒙应用高性能解决方案:数据反序列化性能提升90%

    了其数据反序列化性能,在典型场景下能够降低约90%的数据转换耗时,为鸿蒙应用带来了更流畅的用户体验和更敏捷的交互响应。 在鸿蒙应用开发过程,“class-transformer”三方库被广泛应用于将
    发表于 05-15 10:01

    探究智能变电站综自系统的设计与选型

    在智能电网相应体系,智能变电站占据着关键性地位,对于智能电网的正常运行和良好发展具有至关重要的影响。文中简述了智能变电站综合自动化系统的概念,并结合相关案例,探究了智能变电站综合自动
    的头像 发表于 03-14 11:05 781次阅读
    探究智<b class='flag-5'>能变</b>电站综自系统的设计与选型

    SiC模块解决储能变流器PCSSiC MOSFET双极性退化失效痛点

    碳化硅(SiC) MOSFET的双极性退化(Bipolar Degradation)是其在实际应用面临的重要可靠性问题,尤其在储能变流器(PCS)等高功率、高频应用场景矛盾尤为突出。在储
    的头像 发表于 03-09 06:44 1351次阅读
    SiC模块解决储<b class='flag-5'>能变</b>流器PCS<b class='flag-5'>中</b>SiC MOSFET双极性退化失效痛点

    allegro 软件整层复制到其他几层的操作

    allegro 做好了一层地,怎么将这层快速复制到其他几层。不需要一层层的复制!
    发表于 02-25 20:16

    【干货】基于储能变流器测试方法与技术的综述

    能变流器作为现代储能系统能量转换的核心设备,目前已经广泛应用在发电侧、电网侧、用户侧、微电网四大领域。然而,随着对储能系统的性能、可靠性和安全性以及系统运行效率的要求不断提高,储能变
    的头像 发表于 02-06 13:52 2411次阅读
    【干货】基于储<b class='flag-5'>能变</b>流器测试方法与技术的综述

    如何使用MATLAB构建Transformer模型

    Transformer 模型在 2017 年由 Vaswani 等人在论文《Attentionis All You Need》首次提出。其设计初衷是为了解决自然语言处理(Nature
    的头像 发表于 02-06 10:21 5724次阅读
    如何使用MATLAB构建<b class='flag-5'>Transformer</b>模型

    产SiC碳化硅MOSFET功率模块在工商业储能变流器PCS的应用

    *附件:国产SiC碳化硅MOSFET功率模块在工商业储能变流器PCS的应用.pdf
    发表于 01-20 14:19

    transformer专用ASIC芯片Sohu说明

    2022年,我们打赌说transformer会统治世界。 我们花了两年时间打造Sohu,这是世界上第一个用于transformer(ChatGPT的“T”)的专用芯片。 将transform
    的头像 发表于 01-06 09:13 1677次阅读
    <b class='flag-5'>transformer</b>专用ASIC芯片Sohu说明

    必看!PCB几层板设计的决定要素全解析

    一站式PCBA智造厂家今天为大家讲讲PCB几层板的决定因素是什么?PCB设计成几层板的决定因素。PCB作为电子产品的关键组成部分,其层数设计是一个复杂而重要的过程。那么,究竟有哪些因素决定了PCB的层数设计呢?本文将对此进行详
    的头像 发表于 12-14 11:38 1143次阅读

    能变流器小功率充电过程功率不稳定是什么原因?

    能变流器小功率充电过程功率不稳定是什么原因?
    发表于 12-13 21:54