没有合适的资源?快使用搜索试试~ 我知道了~
+v:mala2277获取更多论文在多语言预训练模型上探索结构化剪枝:设置、算法和效率李彦阳1李彦,罗馥丽2徐润新3黄松芳2黄飞2王立伟11香港中文大学计算机科学与工程系2阿里巴巴集团3北京大学计算语言学重点实验室,MoE,中国{yyli21,lwwang}@cse.cuhk.edu.hk,runxinxu@gmail.com{lfl259702,songfang. hsf,f. huang}@alibaba-inc.com摘要结构化修剪已经在单语预训练语言模型上得到了广泛的研究,但还没有在多语模型上得到充分的评估本文研究了多语言预训练语言模型的结构化剪枝的三个方面:设置、算法和效率。对九个下游任务的实验显示了几个反直觉的现象:对于设置,单独修剪每种语言并没有产生更好的结果;对于算法,最简单的方法表现最好;对于效率,快速模型并不意味着它也很小。为了便于在所有稀疏性水平上进行比较,我们提出了动态稀疏化,这是一种简单的方法,允许一次训练模型并在推理时适应不同的模型大小。我们希望这项工作填补了多语言预训练模型的结构化修剪研究的空白,并为未来的研究提供指导1介绍大 规 模 预 训 练 的 单 语 语 言 模 型 , 如 BERT(Devlin et al. ,2019)和RoBERTa(Liu etal. ,2019年)在各种NLP任务中显示出了有希望的结果,同时受到其大模型大小和高延迟的影响结构化修剪已被证明是压缩和加速这些大型 单语 语言模 型的有 效方 法( Michel etal. , 2019; Wang et al. , 2020c; Prasanna etal. ,2020; Liang et al. ,2021年),使其实用于现实世界的应用。类似地,多语言预训练模型(Conneau和Lample,2019; Conneau et al. ,2020; Xue等人,2021; Luo等人,2021年)也很强大,甚至有更多的参数。然而,很少有人关注这些多语言模型上的结构化剪枝的有效性评估。将修剪应用于多语言预训练在阿里巴巴达摩院实习期间合作工作。模型是不平凡的,因为它通常涉及许多语言,并需要仔细设计网络中模块的角色例如,大多数注意力头部对单语预训练模型的性能几乎没有影响(Michel et al. ,2019; Voita et al. ,2019年),而对于多语言预训练模型则相反(见第5.3节和Budhraja et al. (2021))。这项工作旨在研究如何结构化修剪多语言的预训练模型。我们采用最具代表性的多语言预训练模型家族XLM-R(Conneau et al. ,2020;Goyal等人,2021),并评估XTREME中九个跨语 言理解 任务的修 剪性能 (Hu et al. ,2020)。我们调查三个方面的结构化修剪:设置,算法和效率。设置传统的修剪会产生一个单一的小模型,它是跨语言共享的(共享设置)。多语言翻译的最新工作(Li et al. ,2020; Lin等人,2021;Xieet al. ,2021; Gong et al. ,2021)表明将修剪调整到一种语言可以实现更好的结果(非共享设置)。然而,我们的综合实验表明,这两种设置都不能始终优于另一种设置(见第5.2节)。存 在 广 泛 的 修 剪 算 法 ( Hoefler et al. ,2021),并且考虑到预训练的成本,不可能测试所有这些。我们专注于在单语预训练模型中研究最多的两种修剪算法:基于正则化的修剪(Louizos et al. ,2018; Wang et al. ,2020 c)(以及我们的改进版本)和基于梯度的修剪(Michel et al. ,2019; Prasanna et al. ,2020;Lianget al. ,2021)(见第4节)。我们通过实验发现,最简单的基于梯度的修剪对XLM-R更有效(见第5.2节)。效率一个有意义的方法来衡量prun- ing算法是研究如何的性能和arXiv:2204.02601v1 [cs.CL] 2022年4+v:mala2277获取更多论文修剪模型的速度随稀疏度而变化(Hoefler etal. ,2021年)。然而,大多数修剪算法,包括我们在这项工作中研究的算法,都需要为每个特定的稀疏度训练模型由于训练成本过高,这种限制使得与一系列稀疏水平的比较为了解决 这 个 问 题 , 我 们 提 出 了 动 态 稀 疏 化(Dynamic Sparsification,简称DS),这是一种简单的方法,可以在任何稀疏级别上参数化子网络,然后共享它们的权重(见6.1节)。DS只训练模型一次,但可以在推理过程中获得任何稀疏级别的模型XNLI实验(Conneau etal. ,2018年)表明,DS不会降低性能,同时大大降低了训练成本。有趣的是,我们观察到模型大小和推断速度在XLM-R中没有强相关性。这一观察表明,通过简单地使用vanilla修剪算法使模型变小,无法获得快速模型(见6.2节)。2相关工作最近的多语言翻译研究表明,为每种语言或语言对而不是所有语言调整子网络会带来更好的结果。其中,Li等人(2020)训练了一个共享的多语言模型,然后为每个语言对选择 Lin等人 (2021)还为每个语言对修剪共享的多语言模型,尽管是在权重矩阵中的条目级别上。相反,Gong等人(2021)为每种语言修剪了注意力头和前馈网络。Xie等人(2021)首先在共享的多语言网络中识别出一般和语言特异性神经元,然后仅使用其相应语言的数据来调整这些神经元这些发现启发我们从多语言翻译扩展到非共享修剪设置如何在多语言预训练中工作算法最近有许多针对单语预训练语言模型的Michel等人 (2019)提出了一个简单的基于梯度的重要性分数来修剪注意力头部。 Prasanna等人 (2020); Lianget al. (2021)扩展到修剪 其 他 组 件 , 如 Transformer 的 前 馈 网 络( Vaswani et al. , 2017 年 ) 。 Wang 等 人(2020 c)分解预训练的模型权重并应用L0正则化(Louizos et al. ,2018年),以调节分解权重的等级。Sajjad等人。(2020)研究了层修剪,并表明直接下降N×图1:左边是Transformer编码器,右边是将在每一层修剪的组件。顶层在微调方面表现最好 Peer等人(2021)进一步表明,通过仔细选择要删除的层,结构化修剪可以实现接近通过知识蒸馏训练的性能(Hinton等人)。,2015)。效率上面提到的修剪算法需要为推理时使用的每 个 稀 疏 级 别 训 练 一 个 网 络 。 Hou et al.(2020)提出了一种基于Michel et al.(2019)的动态结构化剪枝方法,该方法允许对模型进行一次训练,并对任何大小的模型进行推理与我 们 的 动 态 Sparsification 相 比 , Hou 等 人(2020)为每种语言创建一个新的级联方法(Schwartzet al. ,2020; Xin et al. ,2020)甚至可以针对每个实例调整网络大小。由于级联方法不能执行批量推理,并且仅适用于句子分类任务,因此我们在这项工作中不考虑它们。3背景在本节中,我们简要回顾了XLM-R的结构(Conneau et al. ,2020)、Transformer编码器(Vaswani et al. ,2017)通过掩蔽语言建模任务(Devlin et al. ,2019)。我们还通过引入额外的门控变量并为其设置适当的值,重新审视了如何将传统的结构化修剪算法应用于Transformer ( 参 见 图 1 以 及 Prasanna 等 人(2020);Liang等人(2021))。XLM-R模型由N层组成。每一层由多头注意和前馈添加规范前馈网络隐藏单元添加规范多头注意他是一个12岁的孩子HHHeeedad34注意头单词嵌入一个嵌入等级+v:mala2277获取更多论文Σ∈Ⓢ∈∈∈∈L∈--网络,然后是剩余连接和层归一化。注意力根据Michel等人(2019)的公式HMHA(X)= Gh,iheadi(1)i=1其中H是头的数量,头i是第i个头的输出,Gh,i是门控变量GhRH的第i个条目。Gh,i表示头i是否将被修剪。Gh,i被设置为1以保持头部,并且如果丢弃头部则被设置为0不同的剪枝算法会有不同的方法来确定第一种是跨语言共享修剪后的网络的设置(所有修剪算法都可以在其上运行的默认设置),第二种是为每种语言修剪一个子网的非共享设置 ( Xie et al. , 2021; Gong et al. , 2021年)。4.1基于一致性的剪枝基于约束的修剪(Michel et al. ,2019)计算每个组件的重要性分数,例如,在Eq. 1.一、然后设置组件的门控变量,例如,Gh,i在等式中1,如果其重要性分数大于阈值则为1,否则为0。以注意力头部i为例,其重要性得分定义为:Gh值。I=E. 主管传销(X)。(四)前馈网络前馈网络头iXX.伊 赫黑德 岛工 作 包 含 两 个 线 性 投 影 , 其 中 GeLU 激 活(Hendrycks和Gimpel,2016)在中间:FFN(X)=(GeLU(XW1+b1)Gf)W2+b2(二更)其中W1∈Rd×df,b1∈Rdf,W2∈Rdf×d和b2∈Rd是前馈 网 络 的 边 数 , df 是 隐 层 规 模 。表 示Hadamard乘积,G fRdf 是一个门控向量,在[0,1]范围内的值Gf的功能类似于Gh在多头注意,除了Gf控制隐藏单位的激活。嵌入为了修剪大的嵌入质量(占据所有参数的69%),我们通过Lan等人的低秩近似来分解它。 (2020年):E=Ediag(Ge)P(3)其中,ERv×d和PRd×d是E. v是词汇量。控制E的秩的GeRd是类似于Gh和Gf的门控向量。diag(Ge)将Ge转换为对角矩阵。图1的右边部分是将被修剪的组件(例如隐藏单元、注意力头和嵌入)的图示4将剪枝算法扩展到剪枝设置本节将首先介绍我们研究的修剪算法,然后描述如何使它们适应两种修剪设置。首先是共享其中X是数据分布,我们在实践中选择验证集作为X,MLM是掩码语言建模损失(Devlin etal. ,2019)。门控变量的值在预训练后设置并冻结。在此基础上,通过一个额外的预训练阶段来更新网络参数,以恢复修剪带来的性能损失。将基于梯度的修剪扩展到非共享设置是简单的:为了针对一种语言进行修剪,我们使用该语言的数据来计算一组唯一的门控变量G={Gh,Gf,Ge}为它。4.2基于正则化的剪枝L0范数已广泛用于许多领域,包括信号处理(Zhang,2010; Xuet al. ,2011)以诱导稀疏性。 在神经网络中,基于正则化的修剪,也称为L0正则化(Louizos et al. ,2018)定义了门控变量G=Gh,Gf,Ge上的可微L0范数.它通过在预训练期间学习G的值来以门控变量g G为例,其被建模为:u∼U(0,1)(5)s=sigmoid((logu/(1−u)+α)/β)(6)s=s×(r−l)+l(7)g=min(1,max(0,s))(8)其中U是均匀分布,l0和r>1是两个固定常数,β是温度,α是g的可学习参数。在训练过程中,对于每个g分别对u进行采样。在推+v:mala2277获取更多论文理中,+v:mala2277获取更多论文.Σ−∈- 是的.当量6变成s=sigmoid(α)。与基于梯度的修剪相比,L 0正则化中的重要性得分是学习的α,阈值为固定为sigmoid−1L.r−lg的L0正则化项为:||0 = sigmoid(α − lo g(− l / r))(9),整个L 0正则化项为1:||0=sigmoid(α−log(−l/r))(9)and the overall L0regularization term is 1:Σ其中1是一个矩阵,I是单位矩阵。PRl×l用于引入语言先验,并且默认为1的矩阵。当量12将对每一对语言进行同等处罚。直觉上,两种语言的子网络是接近的,例如,英语和西班牙语,不应该受到惩罚。因此,当第i种和第j种语言属于同一语系时,我们添加语言先验Pij=0(见附录C),否则添加1最后,我们在预训练中使用的损失L是:L L0=||G||0=g∈G||0(10)||0 (10)L=LMLM+λ1LL0+λ2Ldiag(13)LL0将乘以超参数λ1并添加到预训练损失LMLM。4.2.1改进的L0正则化在实际应用中,原有的L0正则化方法存在两个问题:1)超参数λ1与模型的稀疏性无关 它需要几个昂贵的尝试训练运行,以找到一个适当的设置,可以达到所需的稀疏(王等人。,2020c)。2)如果我们将L0正则化扩展到非共享设置,就像在基于梯度的修剪中所做的那样,它很容易收敛到每个语言共享网络的最佳值(Gonget al. ,2021年)。这将返回到共享设置。因此,我们提出了两个相应的解决方案,如下所示:1) 稀疏约束为了解决第一个问题,我们将稀疏约束添加到等式2。10点整:L注意,门控变量α的参数是随机初始化的。我们发现,在前几个时期只调整α是获得更好性能的关键。如果没有进一步的通知,我们将使用这种改进的L0正则化的实验与非共享设置和本地L0正则化的共享设置。5多语种剪枝算法与设置的实证研究5.1实验装置预训练我们的修剪模型在CC-100语料库上进行训练(Wenzek et al. ,2020)。我们选择了100种语言进行训练,总大小为2.2TB,这与XLM-R中使用的语言一致(Conneau et al. ,2020)。我们用来诱导重要性分数的开发集是从CC-100语料库中每种语言随机选择的3 K个样本我们的模型是一个12层的Transformer,LL0 =||Gi||0−t(11)i=1嵌入大小和3072隐藏大小。它是修剪和不断训练的基础上,公开利用-其中l是语言的数量,Gi表示语言i的门控变量集。这个损失项将使每种语言的子网大小接近目标大小t。22) 多样性子网为了解决第二个问题,我们引入了多样性损失项,以鼓励模型为每种语言找到一个不同的子网它是通过对角化的克矩阵G<$=[G1;···;Gl]:L 直径g=||PG<$G<$T ( 1−I ) ||1(十二)[1]在实践中,我们对选通变量的L0正则化项进行加权(参见附录B)。2添加拉格朗日乘数(Wang et al. ,2020 c)也是可行的,但我们发现这种简单的L1类损失同样有效且易于实现。+v:mala2277获取更多论文一 个 15 万 步 的 XLM-R 模 型 , 批 量 大 小 为2048,学习率为0.0002。其他超参数保持与原始论文相同(Conneau et al. ,2020)。我们在32个Nvidia Tesla V100 32GB GPU上训练我们的模型,并进行混合精度训练。预训练一个模型大约需要7-10天。为了推断,我们使用1个Nvidia Tesla V100 32 GB GPU和Intel( R ) Xeon ( R ) Platinum 8269 CYCPU@2.50GHz 来 估 计 GPU 和 CPU 吞 吐 量( GPU 的 批 大 小 为 128 , CPU 的 批 大 小 为1)。微调我们评估修剪模型的9个下游任务从XTREME(胡等。,2020)。这些任务可以分为四个不同的类别:(1)配对分类:XNLI ( Conneau et al. , 2018) , PAWS-X(Yang+v:mala2277获取更多论文任务指征稀疏性XNLI PAWS-X POSNER XQuAD MLQA TyDiQA BUCC Tatoeba Acc.Acc.F1 F1 F1/EM F1/EM F1/EM F1 Acc.Avg语言15 7 33 40 11 7 9 5 33跨语言迁移:对英语训练集和所有语言测试进行微调。XLM-R0%74.885.474.061.969.2/53.051.3/32.463.353.460.2DistilBERT百分之五十70.382.972.1 56.160.5/44.352.4/37.439.4/23.044.245.352.3L0(非共享)百分之五十68.683.368.3 五十三点四59.8/43.249.6/34.635.2/19.852.543.851.0L0(共享)百分之二十65.380.968.4 52.054.8/38.745.7/30.726.8/13.534.241.146.0毕业生(非共享) 百分之五十68.683.968.3 五十三点九60.6/44.252.3/36.740.5/22.657.548.653.1Grad(shared)百分之五十70.484.772.4 五十七点四64.2/48.356.1/40.545.2/28.046.640.554.5翻译-培训-全部:XLM-R对英语训练数据和其他语言的翻译数据进行微调0%79.189.289.588.072.7/58.258.2/42.8-70.7DistilBERT百分之五十75.887.388.987.169.0/54.355.0/39.6 68.6/53.7- -67.9L0(非共享)百分之五十76.387.887.986.869.3/54.257.8/52.5- -67.7L0(共享)百分之二十73.486.087.585.165.1/50.151.2/35.6- -64.1毕业生(非共享) 百分之五十76.688.287.386.668.9/53.655.2/39.5- -67.8Grad(shared)百分之五十76.888.488.488.070.1/55.056.7/40.7 69.5/54.6- -68.8表1:XTREME结果(稀疏性是Transformer编码器中丢弃的参数的部分,以及因此更高的稀疏性表示更小的尺寸)。我们比较了一种代表性的蒸馏方法(表示为DistilBERT,Sanh等人(2019))和两种代表性的结构化修剪方法:基于梯度的修剪(表示为Grad)和基于正则化的修剪(表示为L0),在两种设置下(第4节中描述:共享和非共享)。粗体表示50%稀疏度中的最佳结果。请注意,由于BUCC和Tatoeba没有翻译的训练数据,因此我们不报告它们的全部训练结果。等 人 , 2019 ) ; ( 2 ) 结 构 化 预 测 : POS(Nivreet al. ,2018),Wikiann NER(Pan etal. ,2017年);(3) 问 题 回 答 : XQuAD ( Artetxe et al. ,2020 ) 、 MLQA ( Lewis et al. , 2020 ) 、TyDiQA(Clarket al. ,2020);(4)句子检索 : BUCC 2018 ( Zweigenbaum et al. ,2017 ) , Tatoeba ( Artetxe andSchwenk ,2019).微调的超参数设置可参见附录A。根据以前的工作(Hu et al. ,2020),我们在两个微调设置中研究修剪模型:跨语言迁移(又名,zero-shot)和Translate-Train-All(也称为,多任务)。请注意,对于两个序列标签任务POS和NER,翻译不能给我们正确的训练标签。因此,我们使用人类注释的数据来对它们进行训练。5.2结果表1显示了使用不同方法将XLM-R修剪到50%稀疏度的微调结果(也是等式1中的t值11)。我们遵循Prasanna等人的惯例。计算(2020)以计算编码器的稀疏性,其在计算中排除嵌入。对于DistilBERT,我们像Sanh等人(2019)那样删除了XLM-R原始层的一半。注意,在表1中(“L 0(shared)”的行方法稀疏性XNLI POS NER TyDiQA平均值L020% 73.4 87.5 85.1 61.2/45.9 74.9进口L050% 76.387.9 86.8 67.8/52.5 77.8进口L0+蒸馏50%76.4 87.5 86.769.5/54.678.2表2:改进的L0(Impv.L0)基于正则化的修剪(参见第4.2.1节)。基于正则化的剪枝比基于正则化的剪枝性能更好。表1示出了共享设置中的vanillaL0尽管我们提出的改进的L0工作得更好(非共享设置),它仍然不如基于梯度的修剪对应。这是因为基于正则化的修剪在权重更新时会不断修改子网络结构,这可能会在训练过程中引入太多的噪声。另一方面,基于一致性的修剪保持修剪后的网络不变,仅调整权重尽管如此,一些作品(Hoefler et al. ,2021)建议基于正则化的修剪应该是优选的,但对于XLM-R可能不是相同的结论。这两种修剪设置都没有更好的一致性。以前在多语种方面的共享设置的稀疏度较低(20%)。3+v:mala2277获取更多论文≥≤DistilBERT)使用vanillaL0,但产生的稀疏性为3我们尝试了各种超参数设置,以预先过高(70%)或过低(20%)。这是线性训练模型,稀疏度为50%(为了与第4.2节中指出的L 0的可训练性问题进行公平比较)。+v:mala2277获取更多论文864228 30 32 34 36log2(大小)(KB)8060402002 4 6 810 12层Grad(共享)头L0(非共享)头Grad(shared)隐藏L0(非共享)隐藏图2:XNLI每种语言的准确性损失与其预训练语料库大小的对数。翻译表明,非共享集提供一致的增益,因为这种方 式允 许修 剪模 型适 应每 种语 言( Lietal. ,2020; Lin等人,2021; Xie et al. ,2021;Gonget al. ,2021年)。然而,XLM的情况并非如此R. 如表1所示,基于正则化的修剪(L0)在非共享设置4下效果最好,但对于基于梯度的修剪,它是共享设置。我们分析,这是因为XLM-R涵盖了更多的低资源语言(XLM-R中有100种语言,而大多数多语言翻译研究中只有24种),这使得共享子语言成为可能。网络的普遍代表性更优选(Aharoni et al. ,2019)。简单蒸馏的效果不如修剪。对于大多数任务来说,蒸馏不如修剪有效。5这可能是蒸馏修剪整个层,而在结构化修剪中修剪更多细粒度的组件但是,如表2所示,将蒸馏与修剪相结合可以提供一些增益。我们改进的L0正则化的基础上prun- ing可以进一步提高性能。 在第4.2.1节中,我们提出了一种改进的L0正则化方法来解决标准L0正则 化 方法 的 不 足. 表2显示了结果。 通过稀疏性约束,我们可以将模型稀疏性控制为期望值t=50% 而 不 是 20% ( 使 用 vanilla L0 时 最 接近)。 随着子网络的多样性,改进的L0甚至可以明显改善微调结果。 附录E可视化了应用多样性损失项后两种语言之间的子网络差异。4.非共享模型中参数丢失较多(稀疏度为50%)时的性能优于共享模型中参数丢失较少(稀疏度为20%)时的性能。5虽然采用先进的蒸馏技术可能会改善结果,但这里的剪枝算法也很简单图3:通过两种修剪算法修剪的每一层的稀疏度此外,与蒸馏(表2的最后一行)结合可以进一步改善结果。5.3分析为什么基于正则化的修剪表现不佳?由于基于正则化的prun- ing从头开始学习子网络,我们认为其性能不佳是由低资源语言造成的。我们选择具有translate-train-all设置的XNLI进行经验验证。一方面,所有语言都有相同的数据集进行微调(NER和POS除外)。这种方式消除了微调的差异另一方面,在除NER和POS之外的所有任务中,XNLI涵盖了更多的语言。图2支持我们的假设。它显示了基于正则化和基于梯度的修剪中每种语言的准确率损失和语料库大小。我们观察到,对于基于正则化的修 剪 , 准 确 性 损 失 与 预 训 练 数 据 集 大 小(Pearsonτ的值为0.83修剪方法在哪些方面表现不同?在图3中,我们比较了不同的修剪算法在哪个方面表现不同。图3显示了每一层中每个组件(注意力头和隐藏单元)的稀疏性。有趣的是,我们看到基于梯度的修剪保留了所有的注意力头部和少量的隐藏单元,而基于正则化的修剪更均匀地修剪了头部和隐藏单元。虽然以前的作品(米歇尔等人。,2019; Voitaet al. ,2019)表明,大多数注意力头对单语模型的最终表现几乎没有影响,我们的结果表明,XLM-R的情况并非如此。此外,这两种修剪方法往往下降更多的中间层。SWGrad(shared)L0(非共享)ur斯沃hitrbgfr嗨 日deruenar 日维伦公司准确度损失[%]稀疏度[%]+v:mala2277获取更多论文..Σ−Grad(shared)L0(non-shared)XLM-R8075706510 30 50 70 90稀疏度[%]300200100010 30 50 70 90稀疏度[%]604010 30 50 70 90稀疏度[%]1 .一、31 .一、210 30 50 70 90稀疏度[%]图4:XNLI上的精度与所有的设置和动态稀疏化,参数的数量(#Params),CPU和GPU吞吐量(每秒的句子数量)与稀疏度。6走向高效修剪6.1动态稀疏化在实践中,我们可能需要具有不同稀疏度的模型来适应各种资源约束或兼容一组方法。然而,现有的prun- ing技术必须为每个稀疏水平独立地训练模型,这对于大型模型是禁止的在这里,我们提出了动态稀疏化(简称DS),这种方法只训练模型一次,但允许任何稀疏程度的推理。方法XNLI POS NER TyDiQA平均值毕业生(共享) 76.888.4 88.0 69.5/54.6 78.8+ DS 74.687.6 87.1 64.0/48.3 76.4L 0(非共享)76.387.986.8 67.8/52+ DS 76.287.9 86.7 67.9/52.4表3:具有或不具有动态稀疏化(稀疏度=50%)的基于梯度和基于正则化的修剪的结果。两个条件形成两个未知数α和θ的线性方程组:第4节显示,基于梯度和基于正则化的修剪遵循相同的过程:我们首先确定阈值,然后得到fα+tθ=1F.α+。t−δθ=0(十五)每个组件的重要性得分,并设置如果其分数大于该阈值,则门控变量为1,否则为0通过调整阈值,可以得到任意稀疏度的网络.基于此,我们将门控变量g建模为:g=f(α+tθ)(14)其中δ是一个分量贡献的网络大小,t是边界网络大小,其中对应的门控变量g应该是1,如果t > t <0,如果t <0,则为0<。t=排名除以组件总数。当量15具有α和θ的封闭形式解:6.α=. 1−t/δf−1(1)+(t/δ)f−1(0)其中α是如在基于正则化的修剪中的可训练重要性分数,t是目标网络。θ=. f−1(1)−f−1(0)/δ(十六)工作大小(1减去稀疏度),tθ是具有可学习θ的阈值,f是输出范围在0和1之间的函数。我们选择f为等式。6-8 ,因为它使我们能够通过L0正则化优化α和θ如果α和θ被适当地设置14将自动确定是否应激活在目标网络大小T下。然后是如何用剪枝算法求α和θ我们知道修剪算法可以根据重要性分数对不同的组件进行排序。基于此排名,我们确定了特定组件将被激活(表示为t)和不会被激活的边界网络大小。这些在训练之前,我们使用基于梯度的修剪通过等式来初始化α和θ。十六岁如果仅采用基于梯度的修剪,则α和θ被钳制,并且仅保留的网络参数将被更新,否则它们可以通过基于正则化的修剪来联合优化。在训练过程中,我们对不同的t进行采样,以训练不同大小的子网络。在推理时,t被设置为目标网络大小以修剪模型。如果想将DS扩展到非共享设置,他可以为每种语言修剪一次,并为每种语言计算一个唯一的α和θ·104准确度[%]#参数CPU吞吐量(已发送。/GPU缓存(已发送。/(第+v:mala2277获取更多论文6当量16具有数值稳定性问题,并对不同组件进行同等加权(解决方案见附录D+v:mala2277获取更多论文≤≥×10050010305070研究生排名L0等级格拉德角L0头部格拉德隐藏L0隐藏901005001030507090层1层3层5层7层9层11网络稀疏度[%]图5:两种剪枝算法修剪的不同组件的稀疏度与稀疏度。6.2主要结果表3(+ DS行)示出了在其最佳执行修剪设置(根据表1)下将DS应用于两种修剪算法之后的50%稀疏性结果。令人惊讶的是,我们观察到,基于梯度的修剪与共享设置遭受了显着的损失,而正则化的修剪与非共享设置几乎没有损失。这是因为DS在不同稀疏度的子网络之间共享权重损害了模型容量,而非共享设置通过解开不同语言的权重来扩大子网络容量由于没有DS的训练模型成本昂贵,我们只测试了DS对50%稀疏性的影响,但我们将其与其他较小规模的系统进行了比较(见附录F)。图4的最左边部分显示了两种修剪方法如何在不同稀疏度下以效率换取准确性的更多信息。从图4的左边起的第二子图示出了参数的数量与稀疏性之间的非线性关系,因为嵌入不包括在稀疏性计算中(Prasanna et al. ,2020)。由于嵌入比模型的大多数部分更重要,并且非常大(占总参数的69%),因此即使编码器非常稀疏(稀疏性),参数的数量也会保持很高50%)。 修剪算法仅在编码器非常稀疏(稀疏度>50%)时才开始修剪这些大嵌入,并导致参数数量大幅下降,如图5所示。图4最右边的两个面板描述了CPU和GPU吞吐量如何随着稀疏度的变化而变化。当稀疏度为50%时,我们观察到CPU吞吐量和稀疏度之间有很强的相关性。然而,当稀疏度为50%时,没有观察到这种趋势。<这可能是网络稀疏度[%]图6:通过基于正则化的修剪修剪的不同层的稀疏度与稀疏度。由于不规则存储器访问的时间消耗超过了由小张量计算带来的加速。有趣的是,我们看到稀疏模型在GPU上没有加速,即使稀疏度很高(例如,90%)。尽管这里的修剪算法优化了模型大小而不是推理效率,但预期得到的稀疏模型仍然具有加速,如CPU 和 其 他 工 作 中 所 示 ( Wang et al. ,2020c)。在图6中,我们发现所有层的最高稀疏度接近但不完全是100%。这意味着,修剪倾向于产生一个深而窄的模型。先前的研究(Sanh et al. ,2019; Wang et al. ,2020a; Li etal. ,2021)表明GPU吞吐量对模型高度而不是其宽度更敏感。这就解释了为什么我们没有观察到任何加速度,即使是原始尺寸的1/10尽管表1和图4中没有显示,但仍然可以在GPU中获得稀疏模型的实际加速比。先前对GPU吞吐量的观察仅适用于具有相同批量大小的推理。实际上,稀疏模型占用的内存更小,我们可以使用更大的批处理大小来实现更高的并行性。对于表1中的修剪模型,当我们将推理批量大小加倍总之,图4表明,模型大小和吞吐量之间的关系对于XLM-R来说非常微弱:对于模型大小,减少嵌入大小很重要,但它对吞吐量几乎没有影响(O(1)复杂度表查找);对于吞吐量,压缩嵌入以外的部分更有效,如图4所示,但它们的参数比嵌入少得多(嵌入的193M参数与其他的86 M这主张特别稀疏度[%]层稀疏度[%]+v:mala2277获取更多论文如果想要同时压缩和加速XLM-R,则需要小心。6.3分析在这里,我们研究什么DS将修剪下各种稀疏。图5显示了在修剪过程中哪个组件(嵌入、注意头和隐藏单元)是首选。一般来说,基于梯度的修剪行为类似于基于正则化的修剪:它们首先修剪隐藏单元,并且仅在稀疏度高时修剪注意力头和嵌入。它们之间的主要区别是基于梯度的修剪比基于正则化的修剪更早地开始修剪嵌入(在70%稀疏度时)这解释了为什么我们观察到基于梯度的修剪在70%稀疏度下的性能显著下降(参见图4的左侧):模型在开始时已经丢失了很多信息,并且没有办法恢复。图6显示了基于正则化的修剪如何使用DS修剪每一层。虽然我们没有画出基于梯度的剪枝的曲线,但它的现象与基于正则化的剪枝相似我们发现,基于正则化的修剪行为不同,在低和高稀疏。当稀疏度较低时,它首先修剪底层,然后随着稀疏度的增加逐渐转移到高层。最后,它在底层而不是顶层保留了更多的参数。这为未来的模型设计提供了见解:当模型尺寸非常小时,金字塔结构更好。7结论在这项工作中,我们研究了多语言预训练模型的结构化修剪的三个方面:设置,算法和效率。实验显示了有趣的现象:最佳剪枝设置取决于算法的选择;最简单的剪枝算法表现最好;快速模型并不意味着它应该很小。我们希望这项工作将为未来的研究提供见解。引用Roee Aharoni,Melvin Johnson,Orhan Firat。2019年。大规模多语言神经机器翻译。在计算语言学协会北美分会2019年会议论文集:人类语言技术,第1卷(长论文和短论文),第3874-3884页,明尼阿波利斯,明尼苏达州。计算语言学协会。Mikel Artetxe Sebastian Ruder和Dani Yogatama 2020.论单语表征的跨语言迁移性。在计算语言学协会第58届年会的会议记录中,第4623-4637页,在线。计算语言学协会。Mikel Artetxe和Holger Schwenk 2019. 大规模的多语言句子嵌入,用于零镜头跨语言传输和超越。TransactionsoftheAssociationforComputational Linguistics,7(0):597AakritiBudhraja , MadhuraPande , PratyushKumar , and Mitesh M. 卡 普 拉 2021.多 语 言BERT 中 注 意 头 的 可 修 剪 性 。 CoRR ,abs/2109.12683。乔纳森·H Clark,Eunsol Choi,Michael Collins,DanGarrette , TomKwiatkowski , VitalyNikolaev , and Jennimaria Palomaki. 2020. TyDiQA:一个在不同类型语言。Transactions of theAssociation for Computational Linguistics , 8 :454- 470.Alexis Conneau 、 Kartikay Khandelwal 、 NamanGoyal、VishravChaudhary、GuillaumeWenzek 、 Francisco Guzmán 、 Edouard Grave 、MyleOtt 、 LukeZettle-moyer 和 VeselinStoyanov。2020. 大规模无监督跨语言表征学习。第58届计算语言学协会年会论文集,第8440- 8451页,在线。计算语言学协会。亚历克西斯·康诺和纪尧姆·兰普尔。2019. 跨语言语言模型预训练. 神经信息处理系统进展32:神经信息处理系统年度会议2019,NeurIPS 2019,2019年12月8日至14日,加拿大不列颠哥伦比亚省温哥华,第7057Alexis Conneau,Ruty Rinott,Guillaume Lample,Adina Williams , Samuel Bowman , HolgerSchwenk,and Veselin Stoyanov. 2018. XNLI:评估跨语言句子表示。2018年自然语言处理经验方法会议论文集,第2475-2485页,比利时布鲁塞尔。计算语言学协会。Jacob Devlin,Ming-Wei Chang,Wendon Lee,andKristina Toutanova. 2019. BERT:语言理解的深度双向转换器的预训练。 在计算语言学协会北美分会2019年会议论文集:人类语言技术,NAACL-HLT 2019 , 明 尼 阿 波 利 斯 , MN , 美国,2019年6月2日至7日,第1卷(长和短纸张),第4171-4186页。计算语言学协会。龚红玉,李贤,德米特里·根泽尔。2021. 用于多语言 翻
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功