没有合适的资源?快使用搜索试试~ 我知道了~
简化BERT预训练模型的"令牌丢弃"方法及其性能影响
+v:mala2277获取更多论文用于高效BERT预训练的乐侯1张理查德·庞远哲12§周天翼13§吴悦欣1宋欣颖1宋晓丹1周丹尼11谷歌2纽约大学3马里兰大学帕克分校lehou@google.com,yzpang@nyu.edu摘要基于变换器的模型通常为给定序列中的每个token分配相同的计算量。我们开发了一种简单但有效的“令牌丢弃”方法来加速Transformer模型(如BERT)的预训练,而不会降低其对下游任务的性能。简而言之,我们从模型中的中间层开始丢弃不重要的标记我们利用已经内置的掩码语言建模(MLM)损失来识别不重要的令牌,实际上没有计算开销。在我们的实验中,这种简单的方法将BERT的预训练成本降低了25%,同时在标准下游任务上实现了类似的整体微调性能。1介绍如今,神经网络在各种NLP任务中的成功在很大程度上依赖于包含数百万到数十亿参数的BERT类型语言模型然而,这些模型的预训练过程在计算上是昂贵的,产生显著的排放(Strubell等人,2011)。,2019; Patterson etal. ,2021年)。在实践中,需要为各种应用程序执行大规模语言模型预训练(Lee et al. ,2020; Chalkalineet al. ,2020; Zou et al. ,2021;Rogers et al. ,2020)在不同的语言(Antounet al. ,2020; Sun et al. ,2021年)。在本文中,我们开发了一种技术,可以显着降低BERT模型的预训练成本(Devlin et al. ,2019年),而不会影响他们在各种微调任务上的测试性能。平等贡献。§在Google Brain完成的工作。最 近 有 效 训 练 的努力涉 及 混 合 精 度 训 练(Shoeybi et al. ,2019),分布式训练(Youet al. ,2020年),更好的建模罕见的单词和短语(吴等。,2021),设计更有效和数据高效的预训练对象(Lan et al. ,2020; Clark等人,2020; Raf-fel et al. ,2020)、渐进叠加(Gong et al. 虽然这些方法有助于以降低的计算成本进行有效的训练,但它们中的大多数都集中在模型架构或优化过程上。在本文中,我们专注于一个简单但有效的BERT预训练策略,该策略尚未得到充分探索,即,“令牌丢弃”,其去除每个序列中对训练信息较少的冗余令牌。由于并非所有令牌对输出或训练目标的贡献相等,并且基于变换器的模型的计算复杂度至少相对于序列长度线性增长,因此缩短输入序列可以有效地加速训练。在现有的研究中,深度自适应变换器方法旨在通过在易于预测的令牌上分配较少的计算来减 少 自 回 归 推 理 时 间 ( Elbayad et al. ,2020 ) 。 为 了 提 高 训 练 效 率 , Dai et al.(2020)对邻近to-kens的嵌入进行池化。然而,直到最近在更快的深度自适应Transformer中才研究了在预训练期间直接丢弃令牌(Liuet al. ,2021),其中通过(1)令牌和预定义标签之间的基于互信息的估计或者通过(2)单独的BERT模型来识别重要令牌,该BERT模型详尽地计算每个令牌的掩蔽语言模型(MLM)损失。相反,我们专注于加速与任务无关的预训练阶段,而不需要任何标签或单独的语言模型的任何计算。具体来说,我们将重要的代币确定为模型难以预测的代币arXiv:2203.13240v1 [cs.CL] 2022年3月+v:mala2277获取更多论文√我.(QW)(KW)T通过其在训练期间的损失,其本身是自适应的,以适应其训练过程,并导致实际上没有计算开销。我们在图1中展示了丢弃的令牌的示例。最 近 的方 法 ,如 RoBERTa ( Liu et al. ,2019)建议打包输入序列。通过这种方式,没有[PAD]标记,这使得识别不重要的标记成为一项重要的任务。我们识别每个序列中具有最小历史MLM损失的不重要令牌(通过在整个预训练过程中获取每个令牌的MLM损失的运行平均值通过在训练过程中将它们从BERT模型的中间层中移除,我们节省了大量的计算和内存。我们将它们保留在前几层以及最后一层中,以便它们仍然存在于模型中。因此,BERT模型的输入和输出与传统的全令牌训练过程保持一致。在不修改原始BERT架构或训练设置的情况下,这个简单的令牌丢弃策略主要在几个重要令牌上训练中间层正如我们的实验所证明的那样,以这种方式预训练的模型在具有完整序列的各种下游任务上具有良好的泛化能力。总结起来,我们的贡献如下。 (1)我们证明了BERT模型可以预先训练,只需要一部分层专注于重要的令牌。 尽管该模型仅在重要令牌的子序列上进行训练,但在下游任务的微调期间,它可以很好地推广到完整序列。(2)我们通过探索训练动态来识别预训练过程中的重要令牌,具有最小的计算开销,并且无需修改模型架构。(3)我们表明,我们的令牌丢弃策略可以节省25%的预训练时间,同时在下游任务上实现类似的性能。代码可以在https://github.com/tensorflow/models/tree/master/official/projects/token_dropping上找到。2先决条件2.1序列包装回想一下,BERT中的序列由两个句子以及“分类”标记[CLS]组成。(1.1)(0.3)实验(3.2)看起来(1.3)好吗(2.10)?(0.6)他们(1.0)闻到(2.1)一些(1.8)可怕的(5.4)错误(2.3)。(0.2)土星(2.9)是(0.4)第六(3.0)行星(2.4)从(1.0)(0.3)太阳(1.9)和(0.6)(0.3)第二(1.8)-(0.8)最大(1.4)在(0.5)(0.3)太阳系(2.3)(2.2),(0.4)在(1.5)木星(3.3)之后。(0.2)它(0.7)是(0.4)一个(0.5)气体(2.2)巨星(4.0),(0.9)一个(0.8)平均(1.2)半径(3.3)为(0.3)约(1.3)九(3.5)和(0.6)a(0.5)是(0.3)地球(2.4)的(0.8)的(2.0)倍(1.6)。(0.2)图1:从我们的模型中随机选择的具有实际重要性分数(累积损失,将在3.3节中讨论)的例句。为了有效的预训练,粗体标记被保留在每个BERT编码器层中,而其他标记被丢弃用于某些层。正好512个代币长我 们 决 定 使 用 序 列 包 装 ( Liu et al. ,2019),这样就不会有[PAD]符号,在整个文件。我们还删除了下一句预测训练标准。使用序列包装的基本原理是双重的。首先,序列打包在预训练效率方面提供了一个有竞争力的基线(So et al. ,2019; Liu et al. ,2019; Kosec etal. ,2021; Zhanget al. ,2021年)。其次,使用序列打包可以在没有填充符号的情况下对我们的算法进行压力测试,看看它是否会带来进一步的改进:没有序列打包,我们的算法可以将[PAD]标记为不重要的标记,这微不足道地提高了预训练效率;然而,使用序列打包,我们的算法必须识别并丢弃真正的标记作为不重要的标记,以提高效率。2.2多头注意定义T为输入序列长度,dk、dv分别为每个单独的键向量和值向量的大小。具有h个注意头的多头MultiHeadAttention(Q,K,V)=concat(H1,. . . ,H h)W O,哪里Hi=注意力(QWQ,KWK,V WV)我我我和如果所得令牌的数量小于512,则添加填充令牌以确保每个序列=softmaxQK我我DKV WV.+v:mala2277获取更多论文∈∈∈∈∈∈-∈使用dmodel表示模型的隐藏大小(通常等于hdk)。我们有以下内容:Q,K,V∈RT×d模型,WQ∈Rd模型×dk,WK∈Rd模型×dk,训练前损失我我V∈ Rd模型×dv,WO∈Rhdv×d模型。2.3前馈网络除了注意子层之外,每个BERT编码器层还包含前馈子层(或每个FFN都是一个位置函数:它被同样地应用于输入的每个位置。FFN的输入是矩阵RT×d模型。输入将被一个两层感知器(中间有ReLU激活)转换成一个输出矩阵RT×do。在Vaswani et al.(2017)中,do=d模型和中间层dff=4·d模型的隐藏大小是由于经验估计。3代币掉线假设输入序列包含512个标记。在每个编码器层之后具有512个隐藏状态(对应于512个令牌)可能不是必需的,因为某些单词可能永远不会严重影响句子的含义。3此外,删除中间层中不重要的标记因此,我们决定只将全部计算量分配给重要的令牌。图2给出了在BERT模型中丢弃不重要令牌的示例。3.1第1阶段预培训每个Transformer编码器层中的自注意模块中的查询Q、键K和值V假设Lf=Lfull是其输入覆盖所有标记的层的集合;4Lh=Lhalf是其输入仅覆盖标记的真子集的层的集合。3相关地,Zhang等人(2019)在计算机视觉中使用全连接网络和卷积神经网络表明,某些称为“环境”层的层4在本文中,特征(L半-1)功能(L满-1)图2:令牌丢弃方法的图示。前几层和最后一层处理所有标记(在我们的实现中保留标记的顺序;图中重要标记和不重要标记的分离中间层只处理重要的令牌。根据每个令牌的历史MLM损失来识别重要令牌:我们维护每个令牌的MLM损失的运行平均值。分居。 在阶段1预训练期间,如果层1Lf和下一层1 + 1L h,则我们移除Q中对应于层1 + 1的唯一重要标记的行,但保持K和V不变。移除后,我们有QRM×d模型,其中M是重要令牌的数量。我们也有K,VRT×d模型,其中T是输入序列长度。5假设lJ是第l+1层上面的第一层,使得lJ∈ Lf。 设l +2 ∈ L h. 然后,对于层1+2,. . .,lJ1,我们有Q,K,V RM×d模型,这意味着它们的行只对应于重要的令牌。合并。假设lJ是层l + 1之上的第一层,使得lJ∈L f,在层lJ之前,我们5在实践中,使用TensorFlow,第1阶段预训练中的分离步骤和合并步骤可以使用函数tf.gather()完成。不同序列的重要令牌数量必须相同,以便使用TPU等现代加速器。使用稀疏张量可以解决具有不同数量的重要令牌的问题,但是稀疏张量相关的操作在实践中是缓慢的。输入序列W我重要代币FFW注意不重要的令牌FFW注意事项重要代币重要代币FFW注意不重要的令牌重要代币FFW注意不重要的令牌+v:mala2277获取更多论文−2-∈∈ −- -V∈R∈0 2 4 6 8 10重要性分数图3:根据公式1从预训练过程中得出的重要性分数(累积损失)的分布。如果一个令牌之前没有被屏蔽过,它的默认累积损失为10。将对应于唯一重要标记的隐藏状态(取自层L的输出)与对应于重要标记的隐藏状态(取自层L的输出)合并。我们保持隐藏状态的顺序与输入令牌的顺序一致或者:令牌传递而不是令牌丢弃。在不重要的标记被丢弃的层中,层的输入有效地对应于部分和不连贯的句子。因此,我们尝试令牌传递方法,它可以确保这些层的输入对应于完整和连贯的句子。令牌传递描述如下。在层1 + 1,. . . ,lJ1 L h,我们可以保持K和V的行对应于不重要的标记。更具体地说,K的行,响应来自前一编码器层输出的隐藏状态的重要令牌对应于不重要标记的K行来自层L.这一过程的结果是Q∈RM×d模型和K,VRT×d模型。. .,L1,1。第5节为实证研究。确定l和lJ。我们把确定l和lJ的细节留到后面的章节。根据经验,l=LE1和lJ=L E1始终导致良好的性能,其中L E是编码器层的总数。例如,如果L_E=12,则L_f中的全层(即,其中查询、键和值矩阵都具有T行的层)将是层1到5以及层12。3.2(可选)第二阶段预培训在测试时或我们对下游任务进行微调时,所有编码器层都是完整的层,这意味着-我们不做任何token dropping。考虑到阶段1中的神经网络与用于微调和测试时间的神经网络之间的不匹配,在阶段2期间,我们简单地使用完整模型进行预训练所有令牌通过所有层)。与阶段1预训练相比,阶段2预训练只需要然而,第二阶段的预训练是不必要的,我们将在后面的章节中讨论。3.3识别重要令牌在本小节中,我们详细说明了要丢弃哪些令牌(即,在查询、键和值矩阵中丢弃哪些对应的行)。首先,我们从不丢弃特殊的令牌,包括[MASK]、[CLS]和[SEP]。换句话说,我们总是把这些令牌当作重要的令牌。回想一下,我们在所有的实验中都使用了序列打包,除非另有说明“没有,没有,没有。6我们将在以下小节中介绍两种识别重要令牌的方法在消融研究中(第4.2节),我们将引入更直接的方法作为基线。3.3.1动态方法:基于累积损失的丢弃更新累积损失向量。我们用一个向量m| V|来近似学习词汇表中特定标记的“难度”。向量m在整个预训练期间更新。回想一下,BERT预训练涉及掩码语言建模(MLM)目标,其中要求模型预测被屏蔽的输入标记的标记假设序列中的n个令牌被屏蔽,那么我们将获得n个MLM负对数似然(NLL)损失。对于每个token,我们更新累积损失向量中的相应条目,如下所示:mi←β·mi+(1−β)·li,(1)其中,li是对应于令牌i的NLL损失,并且β(0,1)是接近1的系数。特别是,我们从不更新与上述特殊代币([MASK],[CLS]和[SEP])对应的累积损失这些代币的损失被设置为一个很大的数字,例如104.如果序列中有填充标记,则我们将损失设置为ivenumber-104处的n e g6如果我们不使用序列打包,我们总是会丢弃[PAD]令牌。令牌计数+v:mala2277获取更多论文V−从而我们可以确保填充令牌具有最小的损失-假定NLL损失对于所有其他令牌总是非负的。决定哪些标记不重要。我 们 删除查询、键和值矩阵中对应于不重要标记的行。为了决定哪些令牌将被视为不重要的令牌,给定512个令牌的序列,我们只需使用m查找512个对应的累积损失,并将对应于最小累积损失的令牌标记为不重要令牌。换句话说,假设我们有一个序列x =(x1,x2,. . . 其中T是序列长度。 用[T]表示{1,2,. . . ,T}。设σ:[T] → [T]是一个函数,使得x σ(1),x σ(2),. . . ,x σ(T)是按照上述累积损失的降序排序的令牌。然 后 ,我们处理x σ(1),. . . ,x σ(M)作为重要令牌(即,要保持的令牌),其中M是正整数(例如, M = int(T/2)),我们处理x σ(M +1),. . . ,x σ(T)作为不重要的标记。可选:添加随机性。我们可以选择性地将每个具有非零概率的标记分配为重要的token,这可能使模型在全序列上具有良好的泛化能力。例如,令J= int(0. 05T),给定令牌x σ(1),x σ(2),. . . .,x σ(T),如在第一段中所描述的,我们替换最后J个重要令牌x σ(M-J+1),. . . ,x σ( M ) , 其 中 J 个 令 牌 随 机 选 自 x σ ( M-J+1),. . . ,x σ(T). 然后,J个随机选择的令牌将被视为重要令牌。在后面的章节中,我们将实证研究随机性是否有帮助。3.3.2静态方法:基于频率的丢弃在开始预训练之前,一个简单的程序计算词汇表中每个标记的出现次数。在预训练期间,给定一个序列,假设有s个特殊的标记。该方法将特殊令牌以及对应于最低频率的Ms个令牌分配为重要令牌,其中M是序列中重要令牌它将其余的标记视为不重要的标记。4实验细节4.1数据集预训练。对于预训练,我们使用与BERT相同的数据集:BooksCorpus数据集(Zhuet al. ,2015)和英文维基百科数据集。我们使用序列打包版本的数据集(第2.1节),以确保我们必须丢弃有意义的令牌,而不是[PAD]令牌。下游任务。BERT模型在GLUE任务上进行微调(Wang et al. ,2018),其数据集位于较大的一端。 我们只使用6个最大的GLUE数据集:MNLI,其中我们使用MNLI-m表示MNLI匹配,MNLI-mm表示MNLI不匹配(Williamset al. , 2018 ) , QNLI ( Rajpurkar et al. ,2016),QQP 7,SST(Socher et al. ,2013)和GLUE诊断集AX(Wang et al. ,2018)。此外,我们还在问答数据集上进行了实验:SQuAD v1.1 ( Rajpurkar et al. , 2016 ) 和SQuAD v2.0(Rajpurkar et al. ,2018)。每个任务的评估指标见表1。4.2检测方法默认情况下,每个模型的总训练步数为100万,使用第4.4节中的设置。我们尝试以下模型。首先,我们有基准模型。• baseline( no sequence packing ) : 原始BERT,输入为非序列打包。• baseline:原始BERT和序列打包输入。• baseline(75% steps):原始BERT,使用序列打包输入,但只训练了75%的步骤。该基线使用与我们提出的令牌丢弃方法类似的计算量进行接下来,我们有以下方法来节省预训练时间。 对于令牌丢弃方法,我们丢弃50%的令牌(除非另有说明),以便与平均池化方法(Dai et al. ,2020),其将序列长度减少一半。• token drop:我们使用1 M步的累积损失token-dropping执行阶段1预训练。7https://quoradata.quora.com/First-Quora-Dataset-发布问题对+v:mala2277获取更多论文−{− −}联系我们{−}--∈{−}联系我们∈{}∈{− −}∈∈• token drop(rand):类似于像[CLS]和[SEP]这样的特殊令牌不会被丢弃。• token drop(half-rand):它类似于这种半随 机 方 法 可 以 被 看 作 是 “token drop” 和“token drop(rand)”的组合• token drop(重新排列层):它类似于“token drop”方法,除了将处理所有token的最后一层移动到模型的开始。换句话说,图2中的层被重新排列,使得全序列层仅在底部。• 令牌丢弃(freq):类似于• token avg:类似于假设层lLf和紧接着的下一层lJLh,如第3节所述。而不是删除查询,键和值矩阵的行,我们应用平均池,窗口大小为2,步幅为2。换句话说,假设q1,. . . ,qT是查询向量的行。然后,T/2个新 的 查 询 向 量 是 ( q1+q2 ) /2 ,(q3+q4)/2,. . . ,(qT−1,qT)/2,假设T是偶数。在漏斗Transformer(Dai etal. ,2020)。• token传递:如第3节所述,我们删除查询中的某些行,但不删除键和值矩阵中的任何行我们还尝试在上述方法中添加可选的第二阶段预训练阶段在这种情况下,我们首先执行90万步的第一阶段预训练,然后执行10万步的第二阶段为了区分stage-1方法,我们在方法描述的末尾添加+ stage-24.3模型架构BERT架构与Devlin等人的架构相同。 (2019年)。我们在BERT-base和BERT-large上进行了实验对于每个BERT架构,我们使用两种不同的输入序列长度进行训练除非另有说明,否则我们使用序列打包的输入数据。4.4超参数和其他细节我们使用TPUv3来预训练BERT模型。每个预训练步骤的批量大小为512。我们训练每个BERT模型100万步。我们使用AdamW优化器(Loshchilov和Hutter,2019)。我们采用1e4的峰值学习率,并使用线性衰减调度器的学习率。我们对下游任务进行了广泛的超参数调整。对于所有GLUE任务,我们测试了不同数量的训练epoch。2、3、4、5、6、8、10和峰值学习速率值η5e6、1e5、2e 5、3e 5、4e 5。η3,6和η1e5,2e5给出了最佳的总体结果。因此,对于每个预训练模型,我们都可以-使用两个最佳的α和η值的组合(总共四个设置)调整每个单独的GLUE任务,对于SQuAD任务,我们测试了η1,2,3,4,5,6,8和η 5e5,6e 5,8e 5,1e4,1。2e4使用基线预训练BERT模型,并发现η4,8和η2e5,4e 5总体上产生最佳结果。因此,我们使用这些设置微调每个模型,并报告最佳验证结果。我们对所有实验应用以零结束的线性衰减学习率对于每种方法,我们用不同的随机种子预训练两个模型然后,这两个模型分别在各个下游任务上进行微调。然后,我们将平均结果报告为每个任务的最终结果5结果表1显示了消融研究。如上所述,表中的每个数字对应于两个预训练模型(使用不同的随机种子)的平均性能,然后分别进行微调。5.1意见对 是否 阶段-2 预训练 很有用神经网络和神经网络之间存在不匹配+v:mala2277获取更多论文方法(corr.)(acc.)(acc.)(acc.)(F1)(acc.)-v1(F1)-v2(F1)- 平均值基线(无序列包装)76.3684.6184.2891.56 90.94 95.7387.2590.1178.8984.50基线76.5284.4784.4490.58 90.97 96.1887.1989.7179.0084.35基线(75%)76.3884.4384.3690.21 90.82 96.0087.0489.3378.1483.73提议的令牌丢弃令牌丢弃+阶段2令牌丢弃(半随机)令牌丢弃(半随机)+阶段2令牌丢弃(随机)+阶段2令牌丢弃(频率)+阶段2令牌平均值+阶段2令牌通行证+阶段2令牌丢弃(重新排列层)+阶段277.7777.7077.0877.2576.8876.1976.9277.0476.6185.2884.9184.9285.1984.5684.3584.8384.5884.5285.2085.0484.8184.8984.5684.2784.6984.8684.3791.2591.4091.3691.5291.2791.0590.9491.3690.7891.0091.0090.9490.6790.7890.8090.8990.8990.7695.5495.9896.8094.9495.6596.4897.0395.6796.6587.6787.6787.6587.4187.2887.1987.5587.4087.2890.4481.0985.7790.3279.9085.1190.3480.3885.3690.4779.8185.1489.6578.6184.1389.3877.3283.3590.2379.3584.7989.9879.8584.9290.0578.3884.21表1:通过对下游任务的预训练模型进行微调来评估不同的预训练方法。我们在512个令牌的打包序列上预训练BERT基础模型。每个数字对应于两个不同的预训练和微调运行(使用不同的随机种子)的平均值。在阶段1预训练和神经网络用于微调和测试时间。因此,我们提出第2阶段预训练,其中没有令牌丢弃,以解决训练测试不匹配。将表1中的“token drop”与“token drop + stage- 2”进行比较我们假设训练测试不匹配可以很容易地解决在下游任务微调。决定 哪些 标志 是重 要的 。图1 使用我们的“token drop”模型中的三个示例显示了哪些token被标记为重要此外,在第3.3节中,我们建议可选地将具有最低累积损失的重要令牌替换为不重要的令牌。将表1中的“token drop”与“token drop ( half-rand ) ” 和 “token drop(rand)”进行比较最后,我们看到基于累积损耗的丢弃比基于频率的丢弃和随机丢弃表现得更好。扔多少代币。 我们在表4中报告了训练基于BERT的模型时具有不同令牌丢弃百分比的结果。我们看到,丢弃超过62.5%的代币会产生更糟糕的结果。默认情况下,我们的实验会丢弃50%的token。决定要丢弃哪些图层。比较将一个完整的序列层放在模型的末尾会产生更好的结果。关于令牌丢弃与令牌传递。比较“token drop +stage-2”和“token pass + stage-2”,我们发现将不重要的token传递给- kens而不是丢弃它们不会影响性能。回想一下,对于其中丢弃了唯一重要的标记的层,标记丢弃将使到这样的层的输入对应于不连贯的句子,这可能影响BERT的学习能力。然而,我们发现,这样做- ken传递使预训练的效率略低关于令牌下降与令牌平均。将“token drop +stage-2”与“token avg + stage-2”进行比较这意味着我们的重要性驱动的令牌选择比直接平均嵌入每个附近的令牌对更有效5.2不同BERT模型和序列表的结果我们在BERT-base和BERT-large上测试了我们的方法我们在表2中报告了结果。总的来说,我们提出的方法与基线方法相似如表3所示,当取所有GLUE和SQuAD分数的平均值以及所有四个设置(两个BERT模型乘以两个序列长度)和两个具有不同随机种子的预训练运行时,我们提出的令牌丢弃Bert-baseAXMNLI-mm QQPSST GLUE-avg SQuAD SQuAD SQuAD+v:mala2277获取更多论文方法AX MNLI-mm MNLI-m QNLI QQPSST 葡萄糖平均值 SQuAD SQuAD SQuAD-avg(corr.) (acc.)(acc.)(acc.)(F1)(acc.)v1(F1)v2(F1)BERT-large,序列长度128基线提议的令牌丢弃令牌丢弃+阶段2令牌丢弃(半随机)令牌丢弃(半随机)+阶段-278.6978.6178.5977.9078.5185.6485.4285.4185.2085.4985.8285.4685.5585.3485.5690.8691.3991.0890.1791.3391.0590.6490.5990.6090.6796.4297.9897.0396.9597.2188.0888.2588.0487.7088.1381.6975.3178.5082.9175.1879.0582.1975.4878.8483.2075.3479.2882.9174.7678.84BERT-large,序列长度512基线提议的令牌丢弃令牌丢弃+阶段2令牌丢弃(半随机)令牌丢弃(半随机)+阶段-281.9481.4881.1880.7380.8687.5687.0087.3487.1987.0387.9787.2387.5387.2287.5693.7892.9193.4693.5292.7591.3691.2491.4691.2191.0596.8997.7597.7597.6997.4889.9289.6089.7989.5989.4593.3085.8989.5992.8085.9289.3692.8885.6989.2892.6785.1988.9392.4885.1188.80BERT-碱基,序列长度128基线提议的令牌丢弃令牌丢弃+阶段2令牌丢弃(半随机)令牌丢弃(半随机)+阶段-275.8975.2575.0374.1474.6183.9683.6483.6483.2383.6983.9483.2783.4782.7783.2089.3690.0090.3988.4789.0990.6990.6690.5890.4090.3596.3295.2096.2396.3095.3386.6986.3486.5585.8886.0481.5472.0976.8283.3371.8377.5881.0373.6477.3382.6471.3076.9782.9872.4277.70表2:使用不同输入序列长度预训练的BERT-base和BERT-large模型的下游任务性能。使用BERT基和512个令牌的序列长度的结果在表1中。表中的每个数字对应于两个不同的预训练和微调运行的平均值(使用不同的随机种子)。方法各型号的代币掉线率葡萄糖平均值SQuAD-avg下游任务下降0%(基线)87.1984.35基线85.16下降25%87.5985.23建议的令牌丢弃85.45下降50%(建议)87.6785.77token drop +第2阶段85.33下降62.5%87.0184.50令牌丢弃(半随机)85.17下降75%86.5683.71令牌丢弃(半随机)+第2阶段85.19表3:所有微调实验的平均结果。对于每种方法,我们预训练八个BERT模型(BERT-base和BERT-large,序列长度分别为128和512,具有不同的随机种子),在单个GLUE和SQuAD任务上对它们进行微调,并对所有微调结果进行平均。我们提出的令牌丢弃方法除了减少25%的预训练时间外,还略优于基线方法。方 法 优 于 基 线 方 法 0.3% ( 85.16% 到85.45%),除了25%的预训练时间减少之外。6相关工作在语言模型预训练期间提高数据效率的一种策略是通过设计更好的预训练目标(Lan et al. ,2020; Clark 等 人 , 2020; Raffel et al. ,2020)。同时,研究人员也一直在探索某些硬件属性来提高预训练效率,例如,混合精度训练(Shoeybi et al. ,2019年)表4:基于BERT的模型对具有不同令牌丢弃率的512个令牌的打包序列的结果。我们看到,丢弃超过62.5%的token会产生更差的结果,而丢弃大约50%的token会产生稍好的结果。和大批量分布式训练(You et al. ,2020)。最近,Wu et al. (2021)提出通过罕见单词或短语来解决有效的预训练问题,他们为罕见单词提供了更快的深度自适应Transformer方法被应用于文本分类任务(Liu et al. ,2021年)。它通过计算每个标记和给定序列标签之间的互信息来识别重要标记,或者使用单独的BERT模型来详尽地评估每个标记的掩蔽语言模型损失 存在关于序列生成问题的更快推断的大量文献,诸如在翻译期间的早期层退出(Elbayad etal. ,2020; Han等人、+v:mala2277获取更多论文2021),非自回归机器翻译(Guet al. ,2018;Tu et al. ,2020b),以及摊销复杂解码目标的成本(Chen et al. ,2018; Tu et al. ,2020a;Pang et al. ,2021a)。有几个想法与token-wise层丢弃特别相关:Zhang和He(2020)提出在预训练期间使用固定概率丢弃整个层;在这里,我们使用更细粒度的动态停止算法(Dehghani et al. ,2019年),由于发现transformers无法推广到许多简单的任务,如果其表示足够好,则停止通过上层处理然而,实施并没有改善培训时间,因为其目标是提高绩效。7结论我们提出了一种简单而有效的方法来节省BERT预训练时间。我们的方法识别不重要的令牌,几乎没有计算开销,并削减了不必要的计算,这些不重要的令牌的训练。实验表明,以这种方式预训练的BERT模型节省了25%的预训练时间,同时在下游任务上也具有类似的泛化能力。我们表明,我们的令牌下降的方法比平均池沿序列维度。未来的工作将涉及将token dropping扩展到可以处理更长上下文的预训练Transformer模型,以及将该算法扩展到更广泛的基于transformer的任务,包括翻译和文本生成。致谢作者感谢匿名评论者提供的有用反馈。引用维萨 姆·安图 ,法 迪 ·巴利 和哈 齐姆 ·哈吉 2020.AraBERT:基于转换器的阿拉伯语理解模型。在第四届开源阿拉伯语语料库和处理工具研讨会的会议记录中,有一个关于攻击性语言检测的,第9-15页,法国马赛。欧洲语言资源协会.德米特里·巴赫达瑙2022.语言模型训练的FLOPs演算。Iz Beltagy ,Matthew E Peters,and Arman Cohan.2020. Longformer:长文档Transformer。arXiv预印本arXiv:2004.05150。Tom Brown , Benjamin Mann , Nick Ryder ,Melanie Subbiah , Jared D Kaplan , PrafullaDhariwal,Arvind Neelakantan,Pranav Shyam,Girish Sastry,Amanda Askell,et al. 2020.语言模型是少数成功的学习者。神经信息处理系统的进展,33:1877Ilias Chalkalos , Manos Fergadiotis , ProdromosMalaka- siotis , Nikolaos Aletras , and IonAndroutsopoulos.2020. 法律-伯特:木偶直接走出 法 学 院 。 计 算 语 言 学 协 会 的 调 查 结 果 :EMNLP 2020,第2898- 2904页,在线。计算语言学协会。Yun Chen , Victor O.K. Li , Kyunhyun Cho , andSamuel Bowman.2018年一种稳定有效的可训练贪婪译码学习策略。在2018年自然语言处理经验方法会议上,第380- 390页,比利时布鲁塞尔。计算语言学协会。Kevin Clark,Minh-Thang Luong,Quoc V. Le,andChristopher D.曼宁2020. 预训练文本编码器作为鉴别器而不是生成器.在国际学术代表上。戴梓航,赖国坤,杨一鸣,郭乐。2020.漏斗转换器:过滤掉顺序冗余,以实现高效的语言处理。神经信息处理系统的。MostafaDehghani , StephanGouws , OriolVinyals , Jakob Uszkoreit , and Lukasz Kaiser.2019. 通用变压器。在国际学习代表上。Jacob Devlin,Ming-Wei Chang,Wendon Lee,andKristina Toutanova. 2019. BERT:语言理解的深度双向转换器的预训练。 在计算语言学协会北美分会2019年会议论文集:人类语言技术,第1卷(长论文和短论文),第4171-4186页,明尼阿波利斯,明尼苏达州。计算语言学协会。Maha Elbayad , Jiatao Gu , Edouard Grave , andMichael Auli.2020. 深度自适应Transformer。在学习表征上。林渊公、狄和、李卓翰、秦涛、王立伟、刘铁岩。2019. 通过逐步堆叠来有效训练BERT。第36届国际机器学习会议论文集,机器学习研究论文集第97卷,第2337-2346页。PMLR。Gu Jiatao,James Bradbury,Xiong Caiming,Vic-tor O.K. Li,and Richard Socher. 2018. 非自回归神经机器翻译。在国际学习表征上。+v:mala2277获取更多论文Yizeng Han,Gao Huang,Shiji Song,Le Yang,Honghui Wang,and Yulin Wang. 2021. DynamicNeural Networks : A Survey. IEEE Transactionson Pattern Analysis and Machine Intelligence.Matej Kosec,Sheng Fu,and Mario Michael Krell.2021.打包:接近2倍nlp bert加速度。arXiv预印本arXiv:2107.02027。ZhenzhongLan , MingdaChen , SebastianGoodman,Kev
下载后可阅读完整内容,剩余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直接复制
信息提交成功