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

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

    关注

    1820

    文章

    50313

    浏览量

    266866
  • 深度学习
    +关注

    关注

    73

    文章

    5604

    浏览量

    124615
  • Transformer
    +关注

    关注

    0

    文章

    156

    浏览量

    6961

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    电子工程师视角下的SAFETY ISOLATING TRANSFORMER

    电子工程师视角下的SAFETY ISOLATING TRANSFORMER 一、产品概述 在电子设备的设计,安全始终是重中之重。今天要介绍的这款SAFETY ISOLATING
    的头像 发表于 04-08 16:20 93次阅读

    FT 5000 Smart Transceiver与FT - X3 Communications Transformer:智能网络新选择

    FT 5000 Smart Transceiver与FT - X3 Communications Transformer:智能网络新选择 在智能网络的发展进程,设备的性能、成本和兼容性是工程师们
    的头像 发表于 03-31 09:10 128次阅读

    能变流器PCS ATE测试系统——从并网合规到高效验证的全栈解决方案

    随着储能电站大规模并网以及电力现货市场对储能调频性能要求的提升,储能变流器(PCS) 作为电网与电池的接口,其性能直接决定了储能系统的并网合规性与运行效率。对于PCS研发和生产企业的工程师而言
    的头像 发表于 03-19 14:01 223次阅读
    储<b class='flag-5'>能变</b>流器PCS ATE测试系统——从并网合规到高效验证的全栈解决方案

    Transformer 入门:从零理解 AI 大模型的核心原理

    │ │ 456 │→ │ 25 │ └─────────┘│ 36 │ (2×3) └─────────┘ (3×2) 记忆技巧:想象沿着对角线折叠纸张。 在 Transformer 的应用:计算注意力分数
    发表于 02-10 16:33

    Transformer如何让自动驾驶大模型获得思考能力?

    在谈及自动驾驶时,Transformer一直是非常关键的技术,为何Transformer在自动驾驶行业一直被提及?
    的头像 发表于 02-01 09:15 4384次阅读

    真不敢信,PCB板上就挪动了一个电阻,DDR3竟神奇变好了

    DDRx调试的问题我们经常会碰到,但PCB板上这个问题却很初级,调了一周都没有解决,没想到最后挪动了一个电阻就好了,不信大家来看看怎么回事!
    的头像 发表于 01-05 15:40 421次阅读
    真不敢信,PCB板上就挪动了一个电阻,DDR3竟神奇<b class='flag-5'>变好了</b>

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

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

    一文读懂储能变流器PCS

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

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

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

    Transformer在端到端自动驾驶架构是何定位?

    典型的Transformer架构已被用于构建“感知-规划-控制统一建模”的方案。如Waymo和小马智行正在研发的多模态大模型(MultimodalLargeModels,MLLMs),将来自摄像头
    的头像 发表于 08-03 11:03 1525次阅读

    如何实现高效双向电能变

    随着电动汽车、家庭和工商业储能产品快速普及,双向电能变换系统的热度也在不断攀升。作为电网与电池的功率桥梁,双向电能变换系统基于一套硬件电路就能控制电池充放电,实现能量双向流动,相比传统单向变换器可大幅降低硬件成本,减小设备体积。
    的头像 发表于 07-23 11:40 1692次阅读

    能变流器的静电与浪涌防护技术解析

    讲解一、储能变流器(PCS)储能变流器(PowerConversionSystem,PCS)又称功率转换系统,是储能系统实现能量双向转换的核心环节,完整的电化学储能系统主要由电池组、电池管理系统(BMS)、能量管理系统(EMS
    的头像 发表于 06-12 18:28 1540次阅读
    储<b class='flag-5'>能变</b>流器的静电与浪涌防护技术解析

    Transformer架构编码器的工作流程

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

    Transformer架构概述

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

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

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