DEBERTA:具有解耦注意力机制的解码增强型BERT

摘要

近年来,预训练神经语言模型的进展显著提升了许多自然语言处理(NLP)任务的性能。本文提出了一种新的模型架构DeBERTa(具有解耦注意力机制的解码增强型BERT),通过两种新技术改进了BERT和RoBERTa模型。第一种是解耦注意力机制 ,其中每个词用两个向量表示,分别编码其内容和位置,词之间的注意力权重通过分别基于内容和相对位置的解耦矩阵计算。第二种是增强的掩码解码器 ,在解码层引入绝对位置信息以预测预训练中的掩码词。此外,我们提出了一种新的虚拟对抗训练方法用于微调,以提升模型的泛化能力。实验表明,这些技术显著提高了模型预训练的效率和下游自然语言理解(NLU)与生成(NLG)任务的性能。与RoBERTa-Large相比,DeBERTa在仅使用一半训练数据的情况下,在多个NLP任务上表现更优,例如在MNLI任务上提升+0.9%(90.2% vs. 91.1%),在SQuAD v2.0上提升+2.3%(88.4% vs. 90.7%),在RACE上提升+3.6%(83.2% vs. 86.8%)。值得注意的是,我们通过训练一个包含48层Transformer和15亿参数的更大版本DeBERTa,进一步扩展了模型规模。这一显著性能提升使得单个DeBERTa模型首次在SuperGLUE基准测试(Wang et al., 2019a)上以宏观平均分(89.9 vs. 89.8)超越人类表现,而集成DeBERTa模型截至2021年1月6日位居SuperGLUE排行榜榜首,显著超越人类基线(90.3 vs. 89.8)。预训练的DeBERTa模型和源代码已发布在:https://github.com/microsoft/DeBERTa

1 引言

Transformer已成为神经语言建模中最有效的神经网络架构。与按顺序处理文本的循环神经网络(RNN)不同,Transformer通过自注意力机制并行计算输入文本中每个词的注意力权重,从而衡量每个词对其他词的影响,这使得大规模模型训练的并行化能力远超RNN(Vaswani et al., 2017)。自2018年以来,一系列基于Transformer的大规模预训练语言模型(PLM)崛起,例如GPT(Radford et al., 2019; Brown et al., 2020)、BERT(Devlin et al., 2019)、RoBERTa(Liu et al., 2019c)、XLNet(Yang et al., 2019)、UniLM(Dong et al., 2019)、ELECTRA(Clark et al., 2020)、T5(Raffel et al., 2020)、ALUM(Liu et al., 2020)、StructBERT(Wang et al., 2019c)和ERINE(Sun et al., 2019)。这些PLM通过任务特定标签进行微调,在许多下游NLP任务中创造了新的技术标杆(Liu et al., 2019b; Minaee et al., 2020; Jiang et al., 2020; He et al., 2019a;b; Shen et al., 2020)。本文提出了一种新的基于Transformer的神经语言模型DeBERTa(具有解耦注意力机制的解码增强型BERT),通过两种新技术改进了现有最先进的PLM:解耦注意力机制增强的掩码解码器

解耦注意力机制:与BERT中每个词通过词(内容)嵌入和位置嵌入的向量和表示不同,DeBERTa中每个词用两个向量分别表示其内容和位置,词之间的注意力权重通过分别基于内容和相对位置的解耦矩阵计算。这一设计的动机是观察到词对的注意力权重不仅取决于其内容,还取决于它们的相对位置。例如,当"deep"和"learning"相邻时,它们之间的依赖关系比出现在不同句子中时更强。

增强的掩码解码器:与BERT类似,DeBERTa通过掩码语言建模(MLM)进行预训练。MLM是一种填空任务,模型通过学习掩码词周围的上下文来预测被掩码的词。DeBERTa利用上下文词的内容和位置信息进行MLM。解耦注意力机制已经考虑了上下文词的内容和相对位置,但未考虑这些词的绝对位置,而这在许多情况下对预测至关重要。例如,在句子"a new store opened beside the new mall"中,斜体词"store"和"mall"被掩码以进行预测。尽管这两个词的局部上下文相似,但它们在句子中扮演不同的句法角色(例如,主语是"store"而非"mall")。这些句法细微差别在很大程度上取决于词在句子中的绝对位置,因此在语言建模过程中考虑词的绝对位置非常重要。DeBERTa在softmax层之前引入绝对位置嵌入,模型基于词内容和位置的聚合上下文嵌入解码掩码词。

此外,我们提出了一种新的虚拟对抗训练方法,用于将PLM微调至下游NLP任务。该方法在提升模型泛化能力方面效果显著。

通过全面的实验研究,我们展示了这些技术显著提高了预训练效率和下游任务性能。在NLU任务中,与RoBERTa-Large相比,DeBERTa在仅使用一半训练数据的情况下,在多个NLP任务上表现更优,例如在MNLI任务上提升+0.9%(90.2% vs. 91.1%),在SQuAD v2.0上提升+2.3%(88.4% vs. 90.7%),在RACE上提升+3.6%(83.2% vs. 86.8%)。在NLG任务中,DeBERTa将Wikitext-103数据集的困惑度从21.6降至19.5。我们进一步扩展了DeBERTa,预训练了一个包含48层Transformer和15亿参数的更大模型。单个15亿参数的DeBERTa模型在SuperGLUE基准测试(Wang et al., 2019a)上显著优于110亿参数的T5模型(89.3% vs. 89.9%),并首次超越人类基线(89.9 vs. 89.8)。截至2021年1月6日,集成DeBERTa模型位居SuperGLUE排行榜榜首,显著超越人类基线(90.3 vs. 89.8)。

2 背景

2.1 Transformer

基于Transformer的语言模型由堆叠的Transformer块组成(Vaswani et al., 2017)。每个块包含一个多头自注意力层和一个全连接的位置前馈网络。标准的自注意力机制缺乏自然编码词位置信息的方式。因此,现有方法为每个输入词嵌入添加位置偏置,使得每个输入词通过一个依赖于其内容和位置的向量表示。位置偏置可以通过绝对位置嵌入(Vaswani et al., 2017; Radford et al., 2019; Devlin et al., 2019)或相对位置嵌入(Huang et al., 2018; Yang et al., 2019)实现。研究表明,相对位置表示在自然语言理解和生成任务中更为有效(Dai et al., 2019; Shaw et al., 2018)。本文提出的解耦注意力机制与现有方法的不同之处在于,我们通过两个独立的向量分别表示输入词的内容和位置,词之间的注意力权重通过分别基于内容和相对位置的解耦矩阵计算。

2.2 掩码语言模型(Masked Language Model, MLM)

基于Transformer的大规模预训练语言模型(PLM)通常通过自监督目标在大规模文本上进行预训练,以学习上下文词表示,这一目标被称为掩码语言模型(MLM) (Devlin et al., 2019)。具体来说,给定一个序列 X = { x i } X=\{x_i\} X={xi},我们通过随机掩码15%的令牌将其破坏为 X ~ \tilde{X} X~,然后训练一个由参数 θ \theta θ参数化的语言模型,通过基于 X ~ \tilde{X} X~预测被掩码的令牌 x ~ \tilde{x} x~来重建 X X X:

max ⁡ θ log ⁡ p θ ( X ∣ X ~ ) = max ⁡ θ ∑ i ∈ C log ⁡ p θ ( x ~ i = x i ∣ X ~ ) \max_{\theta}\log p_{\theta}(X|\tilde{X})=\max_{\theta}\sum_{i\in\mathcal{C}}\log p_{\theta}(\tilde{x}{i}=x{i}|\tilde{X}) θmaxlogpθ(X∣X~)=θmaxi∈C∑logpθ(x~i=xi∣X~)

其中, C \mathcal{C} C是序列中被掩码令牌的索引集。BERT的作者提出,保留10%的被掩码令牌不变,另外10%替换为随机选择的令牌,其余部分替换为[MASK]令牌。


3 DEBERTA架构

3.1 解耦注意力机制:内容与位置的双向量嵌入方法

对于序列中位置 i i i的令牌,我们使用两个向量 { H i } \{H_i\} {Hi}和 { P i ∣ j } \{P_{i|j}\} {Pi∣j}来表示它,分别表示其内容和与位置 j j j的令牌的相对位置。令牌 i i i和 j j j之间的交叉注意力得分可以分解为四个部分:

A i , j = { H i , P i ∣ j } × { H j , P j ∣ i } ⊺ = H i H j ⊺ + H i P j ∣ i ⊺ + P i ∣ j H j ⊺ + P i ∣ j P j ∣ i ⊺ \begin{aligned} A_{i,j}&=\{H_{i},P_{i|j}\}\times\{H_{j},P_{j|i}\}^{\intercal}\\ &=H_{i}H_{j}^{\intercal}+H_{i}P_{j|i}^{\intercal}+P_{i|j}H_{j}^{\intercal}+P_{i|j}P_{j|i}^{\intercal} \end{aligned} Ai,j={Hi,Pi∣j}×{Hj,Pj∣i}⊺=HiHj⊺+HiPj∣i⊺+Pi∣jHj⊺+Pi∣jPj∣i⊺

也就是说,词对的注意力权重可以计算为四个注意力得分的和,分别基于内容和位置的解耦矩阵:内容到内容内容到位置位置到内容位置到位置

现有的相对位置编码方法使用单独的嵌入矩阵来计算注意力权重中的相对位置偏置(Shaw et al., 2018; Huang et al., 2018)。这相当于仅使用公式[2]中的内容到内容内容到位置 项来计算注意力权重。我们认为位置到内容 项也很重要,因为词对的注意力权重不仅取决于它们的内容,还取决于它们的相对位置,而只有同时使用内容到位置位置到内容 项才能完全建模这种依赖关系。由于我们使用相对位置嵌入,位置到位置项并未提供太多额外信息,因此在我们的实现中从公式[2]中移除了该项。

以单头注意力为例,标准的自注意力操作(Vaswani et al., 2017)可以表示为:

Q = H W q , K = H W k , V = H W v , A = Q K ⊺ d Q=HW_{q},\quad K=HW_{k},\quad V=HW_{v},\quad A=\frac{QK^{\intercal}}{\sqrt{d}} Q=HWq,K=HWk,V=HWv,A=d QK⊺

H o = s o f t m a x ( A ) V H_{o}=\mathrm{softmax}(A)V Ho=softmax(A)V

其中, H ∈ R N × d H\in R^{N\times d} H∈RN×d表示输入的隐藏向量, H o ∈ R N × d H_o\in R^{N\times d} Ho∈RN×d表示自注意力的输出, W q , W k , W v ∈ R d × d W_{q},W_{k},W_{v}\in R^{d\times d} Wq,Wk,Wv∈Rd×d表示投影矩阵, A ∈ R N × N A\in R^{N\times N} A∈RN×N表示注意力矩阵, N N N表示输入序列的长度, d d d表示隐藏状态的维度。

设 k k k为最大相对距离, δ ( i , j ) ∈ [ 0 , 2 k ) \delta(i,j)\in[0,2k) δ(i,j)∈[0,2k)表示从令牌 i i i到令牌 j j j的相对距离,其定义为:

δ ( i , j ) = { 0 当 i − j ⩽ − k 2 k − 1 当 i − j ⩾ k i − j + k 其他情况。 \delta(i,j)=\left\{ \begin{array}{cc} 0 & \text{当}\quad i-j\leqslant -k \\ 2k-1 & \text{当}\quad i-j\geqslant k \\ i-j+k & \text{其他情况。} \end{array} \right. δ(i,j)=⎩ ⎨ ⎧02k−1i−j+k当i−j⩽−k当i−j⩾k其他情况。

我们可以将带有相对位置偏置的解耦自注意力表示为公式 A \mathbb{A} A,其中 Q c , K ^ c Q_c, \hat{K}c Qc,K^c和 V c V_c Vc分别是使用投影矩阵 W q , c , W k , c , W v , c ∈ R ˉ d × d W{q, c}, W_{k, c}, W_{v, c}\in \bar{R} ^{d\times d} Wq,c,Wk,c,Wv,c∈Rˉd×d生成的内容向量, P ∈ R 2 k × d \boldsymbol{P}\in R^{2k\times d} P∈R2k×d表示在所有层之间共享的相对位置嵌入向量(即在正向传播过程中保持不变), Q r Q_{r} Qr和 K r K_{r} Kr分别是使用投影矩阵 W q , r , W k , r ∈ R d × d W_{q,r}, W_{k,r}\in R^{d\times d} Wq,r,Wk,r∈Rd×d生成的相对位置向量。

公式(4)如下:

Q c = H W q , c , K c = H W k , c , V c = H W v , c , Q r = P W q , r , K r = P W k , r A ~ i , j = Q i c K j c ⊤ ⏟ ( a ) 内容到内容 + Q i c K δ ( j , i ) r ⊤ ⏟ ( b ) 内容到位置 + Q δ ( i , j ) r K j c ⊤ ⏟ ( c ) 位置到内容 H o = s o f t m a x ( A ~ 3 d ) V c \begin{aligned} Q_{c}=HW_{q,c},\quad K_{c}&=HW_{k,c},\quad V_{c}=HW_{v,c},\quad Q_{r}=PW_{q,r},\quad K_{r}=PW_{k,r}\\ \tilde{A}{i,j}&=\underbrace{Q{i}^{c}K_{j}^{c\top}}{\mathrm{(a)~内容到内容}} + \underbrace{Q{i}^{c}K_{\delta(j,i)}^{r\top}}{\mathrm{(b)~内容到位置}} + \underbrace{Q{\delta(i,j)}^{r}K_{j}^{c\top}}{\mathrm{(c)~位置到内容}}\\ H{o}&=\mathrm{softmax}\left(\frac{\tilde{A}}{\sqrt{3d}}\right)V_{c} \end{aligned} Qc=HWq,c,KcA~i,jHo=HWk,c,Vc=HWv,c,Qr=PWq,r,Kr=PWk,r=(a) 内容到内容 QicKjc⊤+(b) 内容到位置 QicKδ(j,i)r⊤+(c) 位置到内容 Qδ(i,j)rKjc⊤=softmax(3d A~)Vc

其中, A ~ i , j \tilde{A}{i,j} A~i,j是注意力矩阵 A ~ \tilde{A} A~的元素,表示从令牌 i i i到令牌 j j j的注意力得分。 Q i c Q{i}^{c} Qic是 Q c Q_{c} Qc的第 i i i行, K j c K_{j}^{c} Kjc是 K c K_{c} Kc的第 j j j行, K δ ( i , j ) r K_{\delta(i,j)}^{r} Kδ(i,j)r是 K r K_{r} Kr的第 δ ( i , j ) \delta(i,j) δ(i,j)行(与相对距离 δ ( i , j ) \delta(i,j) δ(i,j)相关), Q δ ( j , i ) r Q_{\delta(j,i)}^{r} Qδ(j,i)r是 Q r Q_{r} Qr的第 δ ( j , i ) \delta(j,i) δ(j,i)行(与相对距离 δ ( j , i ) \delta(j,i) δ(j,i)相关)。需要注意的是,这里我们使用 δ ( j , i ) \delta(j,i) δ(j,i)而不是 δ ( i , j ) \delta(i,j) δ(i,j),这是因为对于给定位置 i i i,位置到内容 项计算的是键内容在 j j j处相对于查询位置在 i i i处的注意力权重,因此相对距离是 δ ( j , i ) \delta(j,i) δ(j,i)。位置到内容 项的计算公式为 K j c Q δ ( j , i ) r ⊤ K_{j}^{c}Q_{\delta(j,i)}^{r\top} KjcQδ(j,i)r⊤,内容到位置项的计算方式类似。

最后,我们对 A ~ \tilde{A} A~应用缩放因子 1 3 d \frac{1}{\sqrt{3d}} 3d 1。该因子对于稳定模型训练(Vaswani et al., 2017)非常重要,尤其是对于大规模预训练语言模型(PLM)。

3.1.1 高效实现

对于一个长度为 N N N的输入序列,存储每个令牌的相对位置嵌入需要 O ( N 2 d ) O(N^2d) O(N2d)的空间复杂度(Shaw et al., 2018; Huang et al., 2018; Dai et al., 2019)。然而,以内容到位置 为例,我们注意到由于 δ ( i , j ) ∈ [ 0 , 2 k ) \delta(i,j)\in[0,2k) δ(i,j)∈[0,2k),且所有可能的相对位置嵌入始终是 K r ∈ R 2 k × d K_r\in R^{2k\times d} Kr∈R2k×d的子集,因此我们可以在所有查询的注意力计算中重用 K r K_r Kr。

在我们的实验中,预训练时设置最大相对距离 k k k为512。解耦注意力权重可以通过算法 Π \Pi Π高效计算。设 δ \delta δ为根据公式B计算的相对位置矩阵,即 δ [ i , j ] = δ ( i , j ) \delta[i,j]=\delta(i,j) δ[i,j]=δ(i,j)。我们不再为每个查询分配不同的相对位置嵌入矩阵,而是将每个查询向量 Q c [ i ~ , : ] Q_{c}[\tilde{i},:] Qc[i~,:]与 K r ⊺ ∈ R d × 2 k K_{r}^{\intercal}\in R^{d\times2k} Kr⊺∈Rd×2k相乘,如第3-5行所示。然后,使用相对位置矩阵 δ \delta δ作为索引提取注意力权重,如第6-10行所示。为了计算位置到内容 的注意力得分,我们计算 A ~ p → c [ : , j ] \tilde{A}{p\to c}[:,j] A~p→c[:,j],即注意力矩阵 A ~ p → c \tilde{A}{p\to c} A~p→c的列向量,通过将每个键向量 K c [ j , : ] K_{c}[j,:] Kc[j,:]与 Q r ⊺ Q_{r}^{\intercal} Qr⊺相乘,如第11-13行所示。最后,通过相对位置矩阵 δ \delta δ作为索引提取相应的注意力得分,如第14-18行所示。通过这种方式,我们无需为每个查询分配内存来存储相对位置嵌入,从而将空间复杂度降低到 O ( k d ) O(kd) O(kd)(用于存储 K r K_{r} Kr和 Q r Q_{r} Qr)。


3.2 增强的掩码解码器:考虑绝对词位置

DeBERTa通过掩码语言建模(MLM)进行预训练,模型通过学习掩码词周围的上下文来预测被掩码的词。DeBERTa利用上下文词的内容和位置信息进行MLM。解耦注意力机制已经考虑了上下文词的内容和相对位置,但未考虑这些词的绝对位置,而这在许多情况下对预测至关重要。

以句子"a new store opened beside the new mall"为例,其中"store"和"mall"被掩码以进行预测。仅使用局部上下文(例如相对位置和周围词)不足以让模型区分句子中的"store"和"mall",因为两者都以相同的相对位置跟在"new"之后。为了解决这一限制,模型需要将绝对位置作为相对位置的补充信息。例如,句子的主语是"store"而不是"mall"。这些句法细微差别在很大程度上取决于词在句子中的绝对位置。

有两种方法可以引入绝对位置:BERT模型在输入层引入绝对位置,而在DeBERTa中,我们在所有Transformer层之后、但在用于掩码词预测的softmax层之前引入绝对位置,如图[2]所示。通过这种方式,DeBERTa在所有Transformer层中捕获相对位置,仅在解码掩码词时将绝对位置作为补充信息。因此,我们将DeBERTa的解码组件称为增强的掩码解码器(EMD)。在实证研究中,我们比较了这两种引入绝对位置的方法,发现EMD效果更好。我们推测,BERT早期引入绝对位置可能会阻碍模型学习足够的相对位置信息。此外,EMD还使我们能够在预训练中引入除位置之外的其他有用信息。我们将此留待未来研究。


4 尺度不变的微调

本节介绍了一种新的虚拟对抗训练算法------尺度不变的微调(SiFT),它是Miyato et al. (2018)和Jiang et al. (2020)中描述的算法的变体,用于微调。

虚拟对抗训练是一种正则化方法,用于提高模型的泛化能力。它通过提高模型对对抗样本的鲁棒性来实现这一点,对抗样本是通过对输入进行微小扰动生成的。模型被正则化,使得在给定任务特定样本时,模型生成的输出分布与在该样本的对抗扰动上生成的输出分布相同。

对于NLP任务,扰动应用于词嵌入而不是原始词序列。然而,嵌入向量的值范围(范数)在不同词和模型之间有所不同。对于具有数十亿参数的大型模型,这种差异会更大,导致对抗训练的不稳定性。

受层归一化(Ba et al., 2016)的启发,我们提出了尺度不变的微调(SiFT)算法 ,通过将扰动应用于归一化的词嵌入来提高训练稳定性。具体来说,在我们的实验中,当将DeBERTa微调至下游NLP任务时,SiFT首先将词嵌入向量归一化为随机向量,然后将扰动应用于归一化后的嵌入向量。我们发现,归一化显著提高了微调模型的性能,且对于更大的DeBERTa模型,改进更为显著。需要注意的是,在我们的实验中,我们仅将SiFT应用于SuperGLUE任务中的DeBERTa 1.5 B _{1.5B} 1.5B,未来我们将对SiFT进行更全面的研究。


5 实验

本节报告了DeBERTa在各种自然语言理解(NLU)任务上的结果。

5.1 NLU任务的主要结果

遵循之前关于预训练语言模型(PLM)的研究,我们报告了使用大模型(large)和基础模型(base)的结果。

5.1.1 大模型的性能

我们按照BERT(Devlin et al., 2019)的设置预训练我们的大模型,不同之处在于我们使用了Radford et al. (2019) 和 Liu et al. (2019c) 的BPE词汇表。对于训练数据,我们使用了以下数据集:

  • Wikipedia(英文维基百科数据,12GB)
  • BookCorpus(Zhu et al., 2015,6GB)
  • OpenWebText(公开的Reddit内容,Gokaslan & Cohen, 2019,38GB)
  • Stories(CommonCrawl的子集,Trinh & Le, 2018,31GB)。

经过数据去重(Shoeybi et al., 2019)后,总数据量约为78GB。预训练数据集的详细描述请参见附录A.2。

我们使用6台DGX-2机器(96块V100 GPU)训练模型。单个模型以2K的批量大小和1M的训练步数进行训练,耗时约20天。详细的超参数请参见附录A。我们在表[T]中总结了DeBERTa在GLUE(Wang et al., 2019b)的八个NLU任务上的结果,并将其与结构相似的基于Transformer的预训练语言模型(PLM)进行了比较,包括BERT、RoBERTa、XLNet、ALBERT和ELECTRA。需要注意的是,RoBERTa、XLNet和ELECTRA是在160G训练数据上预训练的,而DeBERTa是在78G训练数据上预训练的。RoBERTa和XLNet以8K样本每步预训练了500K步,总计40亿训练样本;而DeBERTa以2K样本每步预训练了1M步,总计20亿训练样本,约为RoBERTa或XLNet的一半。

表 Π \Pi Π显示,与BERT和RoBERTa相比,DeBERTa在所有任务中表现一致更优。同时,DeBERTa在八个任务中的六个任务上优于XLNet。特别是在MRPC(比XLNet高1.1%,比RoBERTa高1.0%)、RTE(比XLNet高2.4%,比RoBERTa高1.7%)和CoLA(比XLNet高1.5%,比RoBERTa高2.5%)任务上,改进显著。DeBERTa在平均GLUE得分上也优于其他最先进的PLM,如ELECTRA l a r g e _\mathrm{large} large和XLNet l a r g e _\mathrm{large} large。

在GLUE的所有任务中,MNLI最常被用作监测PLM研究进展的指示性任务。DeBERTa在MNLI上显著优于所有现有相似规模的PLM,并创造了新的技术标杆。

除了GLUE任务外,DeBERTa还在以下三类自然语言理解(NLU)基准上进行了评估:

  1. 问答任务:SQuAD v1.1(Rajpurkar et al., 2016)、SQuAD v2.0(Rajpurkar et al., 2018)、RACE(Lai et al., 2017)、ReCoRD(Zhang et al., 2018)和SWAG(Zellers et al., 2018);
  2. 自然语言推理任务:MNLI(Williams et al., 2018);
  3. 命名实体识别任务:CoNLL-2003。

为了进行比较,我们纳入了ALBERT xxlarge _\text{xxlarge} xxlarge(Lan et al., 2019)和Megatron(Shoeybi et al., 2019)的三种不同模型规模,分别表示为Megatron 336 M _{336\text{M}} 336M、Megatron 1.3 B _{1.3\text{B}} 1.3B和Megatron 3.9 B _{3.9\text{B}} 3.9B,这些模型使用与RoBERTa相同的数据集进行训练。需要注意的是,Megatron 336 M _{336\text{M}} 336M的模型规模与上述其他模型相似。

我们在表2中总结了结果。与模型规模相似的现有最先进PLM(即BERT、RoBERTa、XLNet、ALBERT large _\text{large} large和Megatron 336 M _{336\text{M}} 336M)相比,DeBERTa在所有七个任务中均表现出更优的性能。以RACE基准为例,DeBERTa显著优于XLNet,提升了+1.4%(86.8% vs. 85.4%)。尽管Megatron 1.3 B _{1.3\text{B}} 1.3B的规模是DeBERTa的三倍,但DeBERTa在四个基准中的三个上表现更优。我们还在附录A.4中报告了DeBERTa在文本生成任务上的表现。


5.1.2 基础模型的性能

我们对基础模型的预训练设置与大模型类似。基础模型的结构遵循BERT基础模型,即 L = 12 L=12 L=12(层数)、 H = 768 H=768 H=768(隐藏层维度)、 A = 12 A=12 A=12(注意力头数)。我们使用4台DGX-2机器(64块V100 GPU)训练基础模型。以批量大小2048进行1M训练步数的单次预训练耗时约10天。我们使用相同的78G数据集训练DeBERTa,并将其与在160G文本数据上训练的RoBERTa和XLNet进行比较。

我们在表B中总结了基础模型的结果。在所有三个任务中,DeBERTa一致优于RoBERTa和XLNet,且改进幅度大于大模型。例如,在MNLI-m任务上,DeBERTa b a s e _\mathrm{base} base比RoBERTa b a s e _\mathrm{base} base提升了+1.2%(88.8% vs. 87.6%),比XLNet b a s e _\mathrm{base} base提升了+2%(88.8% vs. 86.8%)。

5.2 模型分析

在本节中,我们首先通过消融实验量化DeBERTa中引入的不同组件的相对贡献。然后,我们研究模型的收敛特性以表征训练效率。我们使用基础模型设置进行分析实验:模型在Wikipedia + BookCorpus数据集上进行预训练,训练步数为1M,批量大小为256,使用一台配备16块V100 GPU的DGX-2机器,耗时7天。由于篇幅限制,我们在附录A.7中可视化了DeBERTa和RoBERTa的不同注意力模式。


5.2.1 消融实验

为了验证我们的实验设置,我们从零开始预训练了RoBERTa基础模型。重新预训练的RoBERTa模型记为RoBERTa-ReImp b a s e _\mathrm{base} base。为了研究DeBERTa中不同组件的相对贡献,我们开发了三种变体:

  • -EMD:不包含增强掩码解码器(EMD)的DeBERTa基础模型。

  • -C2P :不包含内容到位置项(公式(4)中的©项)的DeBERTa基础模型。

  • -P2C :不包含位置到内容项(公式(4)中的(b)项)的DeBERTa基础模型。由于XLNet也使用相对位置偏置,该模型接近于XLNet加上EMD。

表 A ‾ \overline{A} A总结了四个基准数据集上的结果。首先,RoBERTa-ReImp在所有基准数据集上的表现与RoBERTa相似,验证了我们的实验设置是合理的。其次,我们发现移除DeBERTa中的任何一个组件都会导致性能显著下降。例如,移除增强掩码解码器(-EMD)会导致RACE任务上1.4%的性能损失(71.7% vs. 70.3%),SQuAD v1.1任务上0.3%的损失(92.1% vs. 91.8%),SQuAD v2.0任务上1.2%的损失(82.5% vs. 81.3%),以及MNLI-m/mm任务上0.2%(86.3% vs. 86.1%)和0.1%(86.2% vs. 86.1%)的损失。同样,移除内容到位置位置到内容项都会导致所有基准任务的性能下降。正如预期的那样,移除两个组件会导致更显著的性能损失。


5.3 扩展到15亿参数

更大的预训练模型已显示出更好的泛化效果(Raffel et al., 2020; Brown et al., 2020; Shoeybi et al., 2019)。因此,我们构建了一个包含15亿参数的更大版本DeBERTa,记为DeBERTa 1.5 B _{1.5B} 1.5B。该模型由48层组成,隐藏层维度为1,536。DeBERTa 1.5 B _{1.5B} 1.5B在160G的预训练数据集上进行训练,类似于Liu et al. (2019c)的设置,并使用该数据集构建了一个包含128K词汇的新词表。为了训练DeBERTa 1.5 B _{1.5B} 1.5B,我们对模型架构进行了如下优化:

  1. 共享投影矩阵 :在所有注意力层中,将相对位置嵌入的投影矩阵 W k , r W_{k,r} Wk,r和 W q , r W_{q,r} Wq,r分别与 W k , c W_{k,c} Wk,c和 W q , c W_{q,c} Wq,c共享,以减少模型参数数量。我们在基础模型上的消融实验(表I3)表明,投影矩阵共享在减少模型规模的同时保持了模型性能。
  2. 引入卷积层:在第一个Transformer层旁添加一个卷积层,以引入子词编码的n-gram知识,并将其输出与Transformer层的输出相加后输入到下一层。

表[5]报告了SuperGLUE(Wang et al., 2019a)的测试结果,这是最受欢迎的NLU基准之一。SuperGLUE包含多种NLU任务,包括问答任务(Clark et al., 2019; Khashabi et al., 2018; Zhang et al., 2018)、自然语言推理任务(Dagan et al., 2006; Bar-Haim et al., 2006; Giampiccolo et al., 2007; Bentivogli et al., 2009)、词义消歧任务(Pilehvar & Camacho-Collados, 2019)和推理任务(Levesque et al., 2011; Roemmele et al., 2011)。自2019年发布以来,全球顶级研究团队一直在开发大规模PLM,推动了SuperGLUE性能的显著提升。通过将DeBERTa扩展到更大规模,其性能显著提升,使得单个DeBERTa 1.5 B _{1.5B} 1.5B模型在2020年12月29日首次以宏观平均分(89.9 vs. 89.8)超越人类表现,而集成DeBERTa模型(DeBERTa E n s e m b l e _{Ensemble} Ensemble)在2021年1月6日位居SuperGLUE基准排行榜榜首,显著超越人类基线(90.3 vs. 89.8)。与包含110亿参数的T5相比,15亿参数的DeBERTa在训练和维护上更加节能,且更容易压缩并部署到各种应用场景中。

6 结论

本文提出了一种新的模型架构DeBERTa(具有解耦注意力机制的解码增强型BERT),通过两种新技术改进了BERT和RoBERTa模型。第一种是解耦注意力机制 ,其中每个词用两个向量分别表示其内容和位置,词之间的注意力权重通过分别基于内容和相对位置的解耦矩阵计算。第二种是增强的掩码解码器,它在解码层中引入绝对位置信息以预测预训练中的掩码词。此外,我们提出了一种新的虚拟对抗训练方法用于微调,以提高模型在下游任务中的泛化能力。

通过全面的实验研究,我们展示了这些技术显著提高了模型预训练的效率和下游任务的性能。具有15亿参数的DeBERTa模型首次在SuperGLUE基准测试中以宏观平均分超越了人类表现。

DeBERTa在SuperGLUE上超越人类表现标志着通用人工智能的一个重要里程碑。尽管在SuperGLUE上取得了令人瞩目的成果,但该模型远未达到人类水平的自然语言理解智能。人类非常擅长利用从不同任务中学到的知识来解决新任务,而无需或只需极少任务特定的示范。这种能力被称为组合泛化,即能够泛化到由熟悉组件(子任务或基本问题解决技能)组成的新组合(新任务)。未来,值得探索如何使DeBERTa以更显式的方式融入组合结构,从而实现类似于人类的自然语言神经与符号计算的结合。

A 附录

A.1 数据集

  • GLUE:通用语言理解评估(GLUE)基准是一个包含九项自然语言理解(NLU)任务的集合。如表6所示,它包括问答任务(Rajpurkar et al., 2016)、语言可接受性任务(Warstadt et al., 2018)、情感分析任务(Socher et al., 2013)、文本相似性任务(Cer et al., 2017)、释义检测任务(Dolan & Brockett, 2005)以及自然语言推理任务(NLI)(Dagan et al., 2006; Bar-Haim et al., 2006; Giampiccolo et al., 2007; Bentivogli et al., 2009; Levesque et al., 2012; Williams et al., 2018)。任务的多样性使GLUE非常适合评估NLU模型的泛化能力和鲁棒性。

  • SuperGLUE:SuperGLUE是GLUE基准的扩展,但难度更大,包含八项NLU任务。它涵盖了多种任务,包括问答任务(Zhang et al., 2018; Clark et al., 2019; Khashabi et al., 2018)、自然语言推理任务(Dagan et al., 2006; Bar-Haim et al., 2006; Giampiccolo et al., 2007; Bentivogli et al., 2009; De Marneffe et al., 2019)、共指消解任务(Levesque et al., 2012)和词义消歧任务(Pilehvar & Camacho-Collados, 2019)。

  • RACE:RACE是一个大规模机器阅读理解数据集,收集自中国的中学和高中英语考试(Lai et al., 2017)。

  • SQuAD v1.1/v2.0:斯坦福问答数据集(SQuAD)v1.1和v2.0(Rajpurkar et al., 2016; 2018)是流行的机器阅读理解基准。其段落来自大约500篇维基百科文章,问题和答案通过众包获得。SQuAD v2.0数据集包含关于相同段落的不可回答问题。

  • SWAG:SWAG是一个用于基于常识推理任务的大规模对抗性数据集,它统一了自然语言推理和物理基础推理(Zellers et al., 2018)。SWAG包含113k个关于实际情境的多项选择题。

  • CoNLL 2003:CoNLL 2003是一个包含来自多种来源文本的英语数据集,包含4种命名实体类型。

A.2 预训练数据集

对于DeBERTa的预训练,我们使用了以下数据集:

  • Wikipedia(英文维基百科数据,12GB)
  • BookCorpus(Zhu et al., 2015,6GB)
  • OpenWebText(公开的Reddit内容,Gokaslan & Cohen, 2019,38GB)
  • Stories(CommonCrawl的子集,Trinh & Le, 2018,31GB)。

经过数据去重(Shoeybi et al., 2019)后,总数据量约为78GB。在预训练过程中,我们还从训练数据中采样5%作为验证集以监控训练过程。表7比较了不同预训练模型使用的数据集。

A.3 实现细节

我们遵循RoBERTa(Liu et al., 2019c)的设置,采用动态数据批处理。此外,我们还引入了跨度掩码(Joshi et al., 2020)作为额外的掩码策略,最大跨度为3。表[8]中列出了预训练的详细超参数。在预训练中,我们使用Adam优化器(Kingma & Ba, 2014)并加入权重衰减(Loshchilov & Hutter, 2018)。在微调阶段,尽管在某些任务(如CoLA、RTE和RACE)上使用RAdam(Liu et al., 2019a)可以获得更好且更稳定的结果,但为了公平比较,我们仍使用Adam优化器(Kingma & Ba, 2014)。在微调过程中,我们通过超参数搜索程序训练每个任务,每次运行在DGX-2节点上耗时约1-2小时。所有超参数列于表9中。模型选择基于任务特定开发集上的表现。

我们的代码基于Huggingface Transformers [ m ] ^{[\mathrm{m}]} [m]、FairSeq [ z ] ^{[\mathrm{z}]} [z]和Megatron(Shoeybi et al., 2019)实现。


A.3.1 预训练效率

为了研究模型预训练的效率,我们绘制了微调模型在下游任务上的性能随预训练步数的变化曲线。如图[1]所示,对于RoBERTa-ReImp base _\text{base} base和DeBERTa base _\text{base} base,我们每150K预训练步数保存一个检查点,然后在两个代表性的下游任务(MNLI和SQuAD v2.0)上微调该检查点,并分别报告准确率和F1分数。作为参考,我们还报告了原始RoBERTa base _\text{base} base(Liu et al., 2019c)和XLNet base _\text{base} base(Yang et al., 2019)的最终模型性能。结果表明,在预训练过程中,DeBERTa base _\text{base} base始终优于RoBERTa-ReImp base _\text{base} base。

A.4 生成任务的主要结果

除了自然语言理解(NLU)任务外,DeBERTa还可以扩展到处理自然语言生成(NLG)任务。为了使DeBERTa能够像自回归模型一样用于文本生成,我们使用三角矩阵进行自注意力计算,并将自注意力掩码的上三角部分设置为 − p -p −p,遵循Dong et al. (2019)的方法。

我们在Wikitext-103(Merity et al., 2016)数据集上评估DeBERTa的自回归语言模型(ARLM)任务。为此,我们训练了一个新版本的DeBERTa,记为DeBERTa-MT。它像UniLM(Dong et al., 2019)一样,联合使用MLM和ARLM任务进行预训练。预训练的超参数与DeBERTa base _\text{base} base相同,只是训练步数较少(200k)。为了进行比较,我们使用RoBERTa作为基线,并加入GPT-2和Transformer-XL作为额外参考。DeBERTa-AP是DeBERTa的一个变体,其中绝对位置嵌入像RoBERTa一样被引入输入层。为了公平比较,所有这些模型都是在类似设置下预训练的基础模型。

表10总结了Wikitext-103上的结果。我们可以看到,DeBERTa base _\text{base} base在开发集和测试集上均获得了更低的困惑度(perplexity),而联合使用MLM和ARLM任务进行训练进一步降低了困惑度。DeBERTa-AP的表现不如DeBERTa,这表明将词的绝对位置嵌入引入解码层(如DeBERTa中的EMD)比像RoBERTa那样引入输入层更为有效。

A.5 处理长序列输入

由于采用了相对位置偏置,我们选择将最大相对距离截断为 k k k,如公式3所示。因此,在每一层中,每个令牌最多可以直接关注 2 k − 1 2k - 1 2k−1个令牌及其自身。通过堆叠Transformer层,第 l l l层中的每个令牌最多可以隐式关注 ( 2 k − 1 ) × l (2k - 1) \times l (2k−1)×l个令牌。以DeBERTa large _\text{large} large为例,其中 k = 512 k = 512 k=512, L = 24 L = 24 L=24,理论上可以处理的最大序列长度为24,528。这是我们设计选择的一个附带好处,并且我们发现这对RACE任务有益。表11展示了长序列对RACE任务效果的比较。

长序列处理是一个活跃的研究领域。已有许多研究扩展了Transformer架构以处理长序列(Beltagy et al., 2020; Kitaev et al., 2019; Child et al., 2019; Dai et al., 2019)。我们未来的研究方向之一是扩展DeBERTa以处理极长序列。

A.6 不同模型规模的性能改进

在本小节中,我们研究了不同模型规模对大模型在GLUE任务上的影响。表12总结了结果,表明更大的模型可以获得更好的结果,而SiFT也一致地提升了模型性能。

A.7 模型复杂度

通过引入解耦注意力机制,我们增加了三组额外的参数: W q , r , W k , r ∈ R d × d W_{q,r}, W_{k,r} \in R^{d \times d} Wq,r,Wk,r∈Rd×d 和 P ∈ R 2 k × d P \in R^{2k \times d} P∈R2k×d。模型参数的总增加量为 2 L × d 2 + 2 k × d 2L \times d^2 + 2k \times d 2L×d2+2k×d。对于大模型( d = 1024 , L = 24 , k = 512 d=1024, L=24, k=512 d=1024,L=24,k=512),这大约增加了49M参数,增长了13%。对于基础模型( d = 768 , L = 12 , k = 512 d=768, L=12, k=512 d=768,L=12,k=512),这增加了14M参数,增长了12%。然而,通过共享内容和位置嵌入的投影矩阵(即 W q , r = W q , c , W k , r = W k , c W_{q,r} = W_{q,c}, W_{k,r} = W_{k,c} Wq,r=Wq,c,Wk,r=Wk,c),DeBERTa的参数数量与RoBERTa相同。我们在基础模型上的实验表明,结果几乎相同,如表I3所示。

由于计算额外的位置到内容内容到位置 注意力得分,额外的计算复杂度为 O ( N k d ) O(Nkd) O(Nkd)。与BERT或RoBERTa相比,这增加了30%的计算成本。与同样使用相对位置嵌入的XLNet相比,计算成本的增加约为15%。通过融合注意力计算内核的进一步优化,可以显著减少这一额外成本。对于增强掩码解码器(EMD) ,由于预训练中的解码器仅重建被掩码的令牌,因此不会为未掩码的令牌引入额外的计算成本。在15%的令牌被掩码且仅使用两层解码器的情况下,额外成本为 0.15 × 2 / L 0.15 \times 2 / L 0.15×2/L,这导致基础模型( L = 12 L=12 L=12)的额外计算成本仅为3%,大模型( L = 24 L=24 L=24)的额外计算成本为2%。

A.8 增强掩码解码器的额外细节

EMD的结构如图2b所示。EMD有两个输入(即 I I I和 H H H)。 H H H表示来自前一Transformer层的隐藏状态, I I I可以是解码所需的任何必要信息,例如 H H H、绝对位置嵌入或前一EMD层的输出。 n n n表示堆叠的 n n n层EMD,其中每层EMD的输出将作为下一层EMD的输入 I I I,最后一层EMD的输出将直接输入到语言模型头部。 n n n层可以共享相同的权重。在我们的实验中,我们为 n = 2 n=2 n=2层共享相同的权重以减少参数数量,并使用绝对位置嵌入作为第一层EMD的输入 I I I。当 I = H I=H I=H且 n = 1 n=1 n=1时,EMD与BERT的解码层相同。然而,EMD更通用且灵活,因为它可以接受各种类型的输入信息进行解码。

A.9 注意力模式

为了可视化DeBERTa与RoBERTa的不同操作方式,我们在图3中展示了RoBERTa、DeBERTa以及三个DeBERTa变体在最后一层自注意力层的注意力模式。

我们观察到两个差异。首先,RoBERTa在令牌关注自身时具有明显的对角线效应,但这种效应在DeBERTa中不太明显。这可以归因于EMD的使用,其中绝对位置嵌入被添加到内容的隐藏状态中作为查询向量,这一点在DeBERTa-EMD的注意力模式中得到了验证,其对角线效应比原始DeBERTa更明显。其次,我们观察到RoBERTa的注意力模式中存在垂直条纹,这主要是由高频功能词或令牌(例如"a"、"the"和标点符号)引起的。对于DeBERTa,条纹仅出现在第一列,代表[CLS]令牌。我们推测,对[CLS]的显著关注是必要的,因为[CLS]的特征向量通常在下游任务中用作整个输入序列的上下文表示。我们还观察到,在三个DeBERTa变体的模式中,垂直条纹效应非常明显。

我们在图4和图5中提供了三个额外的示例,以说明DeBERTa和RoBERTa的不同注意力模式。

A.10 微调方差的考虑

为了考虑不同微调运行的方差,在我们的实验中,我们始终遵循(Liu et al., 2019c)的方法,通过使用不同的随机初始化种子进行五次运行并取平均值来报告下游任务的结果,并在比较结果时进行显著性检验。如表[14]所示,DeBERTa base _\text{base} base显著优于RoBERTa base _\text{base} base(p值<0.05)。

A.11 进一步提高模型效率

除了通过数十亿或数万亿参数扩展Transformer模型(Raffel et al., 2020; Brown et al., 2020; Fedus et al., 2021)外,提高模型的参数效率也非常重要(Kanakarajan et al., 2021)。在[A.3.I]中,我们已经展示了DeBERTa比BERT和RoBERTa具有更高的参数效率。在本节中,我们展示了在参数效率方面的进一步改进。

**替换令牌检测(RTD)**是ELECTRA(Clark et al., 2020)引入的一种新的预训练目标。它已被证明比掩码语言模型(MLM)(Devlin et al., 2019; Liu et al., 2019c)更有效。在DeBERTa中,我们用RTD目标替换了MLM目标,并将新变体记为DeBERTa R T D _{RTD} RTD。我们使用与DeBERTa 1.5 B _{1.5B} 1.5B相同的160GB数据,在小型、基础和大型设置下预训练DeBERTa R T D _{RTD} RTD。遵循(Meng et al., 2021),我们将生成器的宽度设置为与判别器相同,但将其深度设置为判别器深度的一半。其他超参数与DeBERTa base _\text{base} base或DeBERTa large _\text{large} large保持一致。对于新成员DeBERTa R T D small {RTD\text{small}} RTDsmall,它有6层,宽度与DeBERTa R T D base {RTD\text{base}} RTDbase相同。

我们在MNLI和SQuAD v2数据集上评估了我们的模型。表[15]总结了结果。我们观察到,DeBERTa R T D base {RTD\text{base}} RTDbase和DeBERTa R T D large {RTD\text{large}} RTDlarge均显著优于其他模型。例如,DeBERTa R T D large {RTD\text{large}} RTDlarge在MNLI和SQuAD v2.0上分别比DeBERTa Large _\text{Large} Large(之前的SOTA模型)提高了0.9个绝对百分点。值得注意的是,DeBERTa R T D large {RTD\text{large}} RTDlarge与DeBERTa 1.5 B _{1.5B} 1.5B表现相当,而其参数数量仅为DeBERTa 1.5 B _{1.5B} 1.5B的1/3。此外,DeBERTa R T D small {RTD\text{small}} RTDsmall甚至大幅优于BERT large _\text{large} large。所有这些都证明了DeBERTa R T D _{RTD} RTD模型的效率,并清楚地展示了未来研究更高参数效率预训练语言模型的巨大潜力。

相关推荐
海云安4 分钟前
海云安开发者安全智能助手D10荣膺 “ AI标杆产品 ” 称号,首席科学家齐大伟博士入选2024年度 “ 十大杰出青年 ”
人工智能·安全
myshare20225 分钟前
AI时代:安全的新挑战与新机遇
人工智能·安全
深图智能16 分钟前
深度学习基础知识
人工智能·深度学习·算法
一叶_障目22 分钟前
机器学习之决策树(DecisionTree)
人工智能·决策树·机器学习
代码骑士23 分钟前
第一章 初识知识图谱
人工智能·知识图谱
uncle_ll30 分钟前
ChatGPT大模型极简应用开发-目录
人工智能·gpt·chatgpt·大模型·llm
最好Tony40 分钟前
python编程-OpenCV(图像读写-图像处理-图像滤波-角点检测-边缘检测)边缘检测
图像处理·python·opencv
小豆豆儿1 小时前
【PyCharm】远程连接Linux服务器
ide·python·pycharm
luyun0202021 小时前
PDF工具箱 PDF24 ,免费下载,非常好用
java·python·pdf
一只爬爬虫1 小时前
pycharm+pyside6+desinger实现查询汉字笔顺GIF动图
ide·python·pycharm·designer·pyside6·gif动图·汉字笔顺