ConvBERT:通过基于跨度的动态卷积改进BERT

打印 上一主题 下一主题

主题 862|帖子 862|积分 2586

摘要

像BERT及其变体如许的预训练语言模子近来在各种自然语言理解使命中取得了令人印象深刻的性能。然而,BERT严肃依赖于全局自留意力机制,因此存在较大的内存占用和计算成本。尽管全部的留意力头都从全局角度查询整个输入序列以天生留意力图,但我们观察到一些头只必要学习局部依赖关系,这意味着存在计算冗余。因此,我们提出了一种新奇的基于跨度的动态卷积来替换这些自留意力头,以直接建模局部依赖关系。这种新奇的卷积头与其余的自留意力头一起,形成了一个新的混合留意力块,在全局和局部上下文学习中更加高效。我们为BERT配备了这种混合留意力设计,并构建了一个ConvBERT模子。实验表明,ConvBERT在各种下游使命中显着优于BERT及其变体,同时训练成本和模子参数更少。值得留意的是,ConvBERTBASE模子在GLUE基准测试中取得了86.4分,比ELECTRABASE高0.7分,而训练成本不到其四分之一。
1 弁言

语言模子预训练已经显示出提高许多自然语言处置处罚使命能力的巨大气力。大多数预训练模子,尽管种类繁多,但都遵照BERT架构,严肃依赖多头自留意力来学习全面的表现。已经发现:1)尽管BERT中的自留意力模块是一个高度非局部的操作符,但由于自然语言的固有特性,很大一部分留意力头实际上学习的是局部依赖关系;2)在下游使命的微调过程中移除一些留意力头并不会低落性能。这两个发现表明,在当前模子设计中存在大量的计算冗余。在这项工作中,我们旨在解决这一内涵冗余题目,并进一步提高BERT的服从和下游使命性能。我们考虑如许一个题目:我们能否通过利用一种自然的局部操作来替换一些留意力头,从而减少留意力头的冗余?我们留意到卷积在提取局部特征方面非常成功,因此提出利用卷积层作为自留意力的更高效补充,以解决自然语言中的局部依赖关系。
详细来说,我们提出将卷积集成到自留意力中,形成一种混合留意力机制,联合了两种操作的优点。自留意力利用全部输入标记来天生留意力权重以捕捉全局依赖关系,而我们盼望执行局部“自留意力”,即接收当前标记的局部跨度来天生该跨度的“留意力权重”以捕捉局部依赖关系。

为了实现这一点,而不是摆设标准卷积(全部输入标记共享固定参数),动态卷积[66]是一个很好的选择,它在捕捉差别标记的局部依赖关系方面提供了更高的灵活性。如图1b所示,动态卷积利用一个核天生器为差别的输入标记天生差别的核。然而,这种动态卷积无法区分差别上下文中的相同标记并天生相同的核(比方,图1b中的三个“can”)。
因此,我们开辟了基于跨度的动态卷积,这是一种新奇的卷积,通过接收输入跨度而不是单个标记来天生更自适应的卷积核,这使得天生的核可以或许区分差别上下文中的相同标记。比方,如图1c所示,所提出的基于跨度的动态卷积为差别的“can”标记天生差别的核。通过基于跨度的动态卷积,我们构建了混合留意力以改进传统的自留意力,这为预训练带来了更高的服从,并在捕捉全局和局部信息方面提供了更好的性能。
为了进一步提高性能和服从,我们还在BERT中添加了以下新的架构设计。起首,设计了一个瓶颈结构,通过将输入标记嵌入到低维空间进行自留意力来减少留意力头的数量。这也缓解了留意力头中的冗余并提高了服从。其次,BERT中的前馈模块由两个全毗连线性层和一个中心的激活函数构成,但内层的维度设置得比输入和输出的维度高得多(比方,4倍),这包管了精良的性能,但带来了大量的参数和计算。因此,我们为前馈模块设计了一个分组线性操作符,它在不侵害表现能力的情况下减少了参数。将这些创新联合起来,使我们提出的模子,称为ConvBERT,变得小巧而高效。
我们的贡献总结如下。1)我们提出了一种新的混合留意力来替换BERT中的自留意力模块,它利用卷积的优点更好地捕捉局部依赖关系。据我们所知,我们是第一个探索卷积以提高BERT服从的。2)我们引入了一种新奇的基于跨度的动态卷积操作,利用多个输入标记动态天生卷积核。3)基于所提出的基于跨度的动态卷积和混合留意力,我们构建了ConvBERT模子。在GLUE基准测试中,ConvBERTBASE取得了86.4分的GLUE分数,比BERTBASE高5.5分,比ELECTRABASE高0.7分,同时必要更少的训练成本和参数。4)ConvBERT还包含一些新的模子设计,包括瓶颈留意力和分组线性操作符,这些设计对其他NLP模子开辟具有独立的意义。
2 相干工作

语言模子预训练 语言模子预训练起首在大规模未标注文本语料库上预训练模子,然后在下游使命上微调模子。最初提出的是学习独立的词表现。随后,基于LSTM的CoVe和ELMo被开辟出来以天生上下文相干的词表现。近来,由于包含多头自留意力和前馈模块的Transformer架构在许多NLP使命中显示出比LSTM更好的效果,GPT接纳Transformer作为其天生式预训练的骨干,并在下游使命上取得了显着的性能提升。为了进一步提高预训练模子的效果,开辟了更有用的预训练目的,包括BERT中的掩码语言建模和下一句预测,XLNet中的广义自回归预训练,SpanBERT中的跨度边界目的,以及ELECTRA中的替换标记检测。其他一些工作通过权重剪枝、权重共享、知识蒸馏和量化来压缩预训练模子。我们的方法与上述方法是正交的。尚有一些工作通过融入知识、多语言和多模态来扩展预训练。然而,据我们所知,自GPT以来,没有研究在骨干架构设计方面改进预训练模子。这项工作是少数继承致力于设计更好的骨干架构以提高预训练模子性能和服从的工作之一。
NLP模子中的卷积 卷积块已被用于NLP模子中以编码上下文的局部信息和依赖关系,但在预训练领域尚未探索。比方,1D卷积被应用于特定的序列到序列学习使命,如机器翻译和摘要天生。深度可分离卷积被摆设在翻译使命的文本编码器息争码器中,以减少参数和计算成本。近来的一项工作利用轻量级和动态卷积进一步加强卷积的表达能力。然而,全部这些模子在捕捉长句子的整个上下文的能力上都有限。为了加强这一点,一些工作以顺序或多分支的方式将卷积与Transformer联合。据我们所知,我们的工作是第一个探索将卷积应用于预训练模子的工作。
3 方法

我们起首详细论述怎样通过重新审阅自留意力和动态卷积来辨认自留意力头在学习局部依赖关系时的冗余。然后我们表明建模局部依赖关系的新奇的基于跨度的动态卷积,最后是我们提出的由混合留意力块构建的ConvBERT模子。
3.1 动机

自留意力 自留意力块是BERT的根本构建模块,它有用地建模了输入标记序列中的全局依赖关系。如图3a所示,给定输入                                   X                         ∈                                   R                                       (                               n                               ×                               d                               )                                                 X ∈ R^{(n×d)}                  X∈R(n×d),其中d是隐藏维度,n是标记的数量,自留意力模块对输入X应用三个线性变更,并将它们分别嵌入到键K、查询Q和值V中,其中                                   K                         ,                         Q                         ,                         V                         ∈                                   R                                       (                               n                               ×                               d                               )                                                 K, Q, V ∈ R^{(n×d)}                  K,Q,V∈R(n×d)。假设有H个自留意力头。键、查询和值嵌入被均匀分割成                                             d                            k                                  =                         d                         /                         H                              d_k = d/H                  dk​=d/H维的段。自留意力模块以以下情势给出输出:
                                              S                            e                            l                            f                            −                            A                            t                            t                            n                                  (                         Q                         ,                         K                         ,                         V                         )                         =                                   s                            o                            f                            t                            m                            a                            x                                            (                                                                Q                                     ⊤                                              K                                                                   d                                     k                                                             )                                  V                         .                              \mathrm{Self-Attn}(Q,K,V)=\mathrm{softmax}\left(\frac{Q^\top K}{\sqrt{d_k}}\right)V.                  Self−Attn(Q,K,V)=softmax(dk​                     ​Q⊤K​)V. (1)

BERT 及其变体成功应用了自留意力机制并取得了高性能。然而,尽管自留意力操作符具有非局部特性,但由于自然语言的固有属性,BERT中的一些留意力头确实学习了输入序列的局部依赖性 。如图2a所示,

BERT的平均留意力图显着显示出类似于[31]分析的对角线模式,这意味着很大一部分留意力头学习了局部依赖性。由于自留意力计算了全部标记对之间的留意力权重,如公式1所示,许多超出捕获的局部上下文的留意力权重是不须要计算的,因为它们与局部权重相比贡献较小。这导致了不须要的计算开销和模子冗余。受此开导,我们接纳卷积操作来捕捉局部依赖性,考虑到它比自留意力更适合学习局部依赖性。
轻量级和动态卷积 轻量级卷积 可以有用地建模局部依赖性。设卷积核为                                    W                         ∈                                   R                                       d                               ×                               k                                                 W\in\mathbb{R}^{d\times k}                  W∈Rd×k。位置i和通道c的深度卷积输出可以表现为                                              D                            W                            C                            o                            n                            v                                  (                         X                         ,                                   W                                       c                               ,                               :                                            ,                         i                         ,                         c                         )                         =                                   ∑                                       j                               =                               1                                      k                                            W                                       c                               ,                               j                                                 \mathrm{DWConv}(X,W_{c,:},i,c)=\sum_{j=1}^{k}W_{c,j}                  DWConv(X,Wc,:​,i,c)=∑j=1k​Wc,j​。通过在通道维度上绑定权重,我们可以将卷积核简化为                                   W                         ∈                                   R                            k                                       W\in\mathbb{R}^k                  W∈Rk,得到以下轻量级卷积:
                                              L                            C                            o                            n                            v                                  (                         X                         ,                         W                         ,                         i                         )                         =                                   ∑                                       j                               =                               1                                      k                                            W                            j                                  ⋅                                   X                                       (                               i                               +                               j                               −                               ⌈                                                        k                                     +                                     1                                              2                                          ⌉                               )                                                 \mathrm{LConv}(X,W,i)=\sum_{j=1}^{k}W_{j}\cdot X_{(i+j-\lceil\frac{k+1}{2}\rceil)}                  LConv(X,W,i)=∑j=1k​Wj​⋅X(i+j−⌈2k+1​⌉)​ (2)
与传统的深度卷积相比,这大大减少了参数巨细(实际中为256或768)。然而,训练后,卷积核参数将对任何输入标记固定,不利于捕捉输入标记的多样性。因此,我们进一步考虑动态卷积,它根据特定输入标记天生卷积核参数。如图3b所示,经过线性投影和门控线性单位(GLU)后,从当前输入标记天生动态卷积核,并应用于与附近标记卷积以天生新的表现嵌入。与训练后固定的标准卷积核相比,动态卷积可以更好地利用输入信息并天生基于输入标记的卷积核。详细来说,利用位置i的位置依赖卷积核                                   W                         =                         f                         (                                   X                            i                                  )                              \mathrm{W}{=}f(X_i)                  W=f(Xi​),其中f是具有可学习权重                                             W                            f                                  ∈                                   R                                       k                               ×                                           d                                  k                                                            W_f\in\mathbb{R}^{k\times d_k}                  Wf​∈Rk×dk​的线性模子,后接softmax。我们将动态卷积表现为:
                                              D                            C                            o                            n                            v                                  (                         X                         ,                                   W                            f                                  ,                         i                         )                         =                                   L                            C                            o                            n                            v                                  (                         X                         ,                                   s                            o                            f                            t                            m                            a                            x                                  (                                   W                            f                                            X                            i                                  )                         ,                         i                         )                              \mathrm{DConv}(X,W_f,i)=\mathrm{LConv}(X,\mathrm{softmax}(W_fX_i),i)                  DConv(X,Wf​,i)=LConv(X,softmax(Wf​Xi​),i) (3)
与自留意力相比,自留意力对输入序列长度的计算复杂度为二次方,而线性复杂度的动态卷积更高效,更适合建模局部依赖性,并在机器翻译、语言建模和抽象摘要使命中显示出有用性。然而,我们观察到其卷积核仅依赖于输入的单个标记,忽略了局部上下文。在差别上下文中对具有差别寄义和关系的相同标记利用相同的卷积核会侵害模子性能。因此,我们提出以下基于跨度的动态卷积。
3.2 基于跨度的动态卷积

基于跨度的动态卷积起首利用深度可分离卷积来收集一定跨度内标记的信息,如图3c所示,然后动态天生卷积核。这有助于卷积核通过基于局部上下文(而非单个标记)天生输入标记的局部关系,从而更有用地捕捉局部依赖性。

此外,为了使基于跨度的动态卷积与自留意力兼容,我们对输入X应用线性变更以天生查询Q和值V,并利用深度可分离卷积天生跨度感知的Ks。从输入X转换而来的查询Q和跨度感知键Ks对的逐点乘法结果随后用于天生动态卷积核。详细来说,以查询和键对Q; Ks作为输入,卷积核通过以下方式天生:
                                    f                         (                         Q                         ,                                   K                            s                                  )                         =                                   s                            o                            f                            t                            m                            a                            x                                  (                                   W                            f                                  (                         Q                         ⊙                                   K                            s                                  )                         )                              f(Q,K_s)=\mathrm{softmax}(W_f(Q\odot K_s))                  f(Q,Ks​)=softmax(Wf​(Q⊙Ks​)) (4)
其中⊙表现逐点乘法。如图3c所示,我们称这种新操作为基于跨度的动态卷积。输出可以表现为:
                                              S                            D                            C                            o                            n                            v                                  (                         Q                         ,                                   K                            s                                  ,                         V                         ;                                   W                            f                                  ,                         i                         )                         =                                   L                            C                            o                            n                            v                                  (                         V                         ,                                   s                            o                            f                            t                            m                            a                            x                                  (                                   W                            f                                  (                         Q                         ⊙                                   K                            s                                  )                         )                         ,                         i                         )                              \mathrm{SDConv}(Q,K_s,V;W_f,i)=\mathrm{LConv}(V,\mathrm{softmax}(W_f(Q\odot K_s)),i)                  SDConv(Q,Ks​,V;Wf​,i)=LConv(V,softmax(Wf​(Q⊙Ks​)),i) (5)
然后应用线性层进行进一步处置处罚。除非尚有说明,我们始终为深度可分离卷积和基于跨度的动态卷积保持相同的核巨细。
3.3 ConvBERT架构

基于上述的跨度动态卷积,我们开辟了新奇的混合留意力块和高效的ConvBERT模子。
混合留意力
混合留意力块集成了基于跨度的动态卷积和自留意力机制,以更好地建模全局和局部依赖关系,同时减少冗余,如图4所示。自留意力和基于跨度的动态卷积共享相同的查询,但利用差别的键作为参考来天生留意力图和卷积核。用Cat( , )表现毗连操作,我们将混合留意力公式化为:
                                    Mixed-Attn                         (                         K                         ,                         Q                         ,                                   K                            s                                  ,                         V                         ;                                   W                            f                                  )                         =                                   C                            a                            t                                  (                                   S                            e                            l                            f                            −                            A                            t                            t                            n                                  (                         Q                         ,                         K                         ,                         V                         )                         ,                                   S                            D                            C                            o                            n                            v                                  (                         Q                         ,                                   K                            s                                  ,                         V                         ;                                   W                            f                                  )                         )                              \text{Mixed-Attn}(K,Q,K_s,V;W_f)=\mathrm{Cat}(\mathrm{Self-Attn}(Q,K,V),\mathrm{SDConv}(Q,K_s,V;W_f))                  Mixed-Attn(K,Q,Ks​,V;Wf​)=Cat(Self−Attn(Q,K,V),SDConv(Q,Ks​,V;Wf​)) (6)
最终输出被送入前馈层进行进一步处置处罚。
自留意力的瓶颈设计
由于部分留意力头存在冗余,我们提出在引入基于跨度的动态卷积模块的同时减少留意力头的数量。我们称之为瓶颈结构,因为输入嵌入起首被投影到一个低维空间,然后通过自留意力模块,如图4所示。详细来说,在原始BERT中,维度为d的嵌入特征通过线性变更投影到原始Transformer架构中具有相同维度d的查询、键和值。相反,我们将嵌入特征投影到一个更小的维度                                   d                         /                         γ                              d/\gamma                  d/γ空间进行进一步处置处罚,其中                                   γ                         >                         1                              \gamma>1                  γ>1是缩减比例。同时,我们将留意力头的数量按比例                                   γ                              \gamma                  γ减少。这大大节省了自留意力内的计算成本,并迫使留意力头天生更紧凑和有用的留意力信息。
分组前馈模块
Transformer模子中大量的参数实际上来自前馈模块。为了在减少参数和计算成本的同时保持表现能力,我们提出以分组方式对前馈模块应用分组线性(GL)操作符,其定义如下:
                                    M                         =                                   Π                                       i                               =                               0                                      g                                            [                                       f                                                        d                                     g                                              →                                               m                                     g                                                      i                                                 (                                           H                                               [                                     :                                     ,                                     i                                     −                                     1                                     :                                     i                                     ×                                                   d                                        g                                                  ]                                                      )                                      ]                                  ,                                   M                            ′                                  =                                   G                            e                            L                            U                                  (                         M                         )                         ,                                   H                            ′                                  =                                   Π                                       i                               =                               0                                      g                                            [                                       f                                                        m                                     g                                              →                                               d                                     g                                                      i                                                 (                                           M                                               [                                     :                                     ,                                     i                                     −                                     1                                     :                                     i                                     ×                                                   m                                        g                                                  ]                                              ′                                          )                                      ]                                       M=\Pi_{i=0}^{g}\left[f_{\frac{d}{g}\to\frac{m}{g}}^{i}\left(H_{[:,i-1:i\times\frac{d}{g}]}\right)\right],M^{\prime}=\mathrm{GeLU}(M),H^{\prime}=\Pi_{i=0}^{g}\left[f_{\frac{m}{g}\to\frac{d}{g}}^{i}\left(M_{[:,i-1:i\times\frac{m}{g}]}^{\prime}\right)\right]                  M=Πi=0g​[fgd​→gm​i​(H[:,i−1:i×gd​]​)],M′=GeLU(M),H′=Πi=0g​[fgm​→gd​i​(M[:,i−1:i×gm​]′​)](7)
其中,                                   H                         ;                                   H                            0                                  ∈                                   R                                       n                               ×                               d                                            ,                         M                         ;                                   M                            0                                  ∈                                   R                                       n                               ×                               m                                            ,                                   f                                                   d                                  1                                          →                                           d                                  2                                                       (                         ⋅                         )                              H;H_0\in\mathbb{R}^{n\times d},M;M_0\in\mathbb{R}^{n\times m},f_{d_1\to d_2}(\cdot)                  H;H0​∈Rn×d,M;M0​∈Rn×m,fd1​→d2​​(⋅)表现将维度从                                             d                            1                                       d_{1}                  d1​转换到                                             d                            2                                       d_{2}                  d2​的全毗连层,g 是分组数量,                                   I                         I                              \mathrm{II}                  II表现拼接操作。这与原始的多头留意力机制划一,其中输入特征在嵌入维度上被分成多个组并独立处置处罚,全部处置处罚后的特征在嵌入维度上再次拼接。这比全毗连层更高效,而且性能下降可以忽略不计。
通过以迭代方式堆叠混合留意力模块和分组前馈模块,我们构建了ConvBERT模子。正如第4节实验所证明的那样,ConvBERT在捕捉全局和局部上下文方面更轻量、更高效,而且性能更好。
4 实验

4.1 实现

我们在[9]提出的替换标记检测预训练使命上评估了我们提出的架构的有用性。关于使命和实现的更多细节列在附录中。我们评估了差别模子巨细的ConvBERT。根据[9],对于小型模子,隐藏维度为256,而词嵌入维度减少到128。与原始Transformer架构一样,前馈模块的中心层巨细为1024(隐藏维度的4倍),而且我们保持层数为12。对于留意力头的数量,小型模子保持为4。此外,我们还利用了一个中等巨细的模子,嵌入维度为384,留意力头数为8。通过插入基于跨度的动态卷积并应用分组线性操作,模子可以减小到与小型模子相称的尺寸,同时具有更强的表现能力。对于底子巨细的模子,我们接纳了常用的BERT-base配置,隐藏维度为768,层数为12。对于留意力头的数量,底子模子利用12个作为基线。当应用瓶颈结构(即减少自留意力的隐藏空间维度)时,我们还将留意力头数减少γ=2倍,以保持每个头的巨细不变。
在预训练期间,小型模子和底子模子的批量巨细分别设置为128和256。利用长度为128的输入序列更新模子。我们展示了这些模子在预训练1M次更新后的结果,以及预训练更长时间(4M次更新)后的结果。更多关于预训练和微调的详细超参数列在附录中。
4.2 预训练与评估

预训练数据集
预训练使命主要依赖于大规模的文本数据。最初用于训练BERT的WikiBooks数据集是英文维基百科和BooksCorpus的组合。RoBERTa、XLNet[69]和ELECTRA[9]进一步提出利用更大的语料库,包括OpenWebText、STORIES、CCNEWS、ClueWeb和Gigaword以提高整体性能。然而,像BooksCorpus如许的数据集不再公开可用。在本文中,除非尚有说明,我们在开源数据集OpenWebText(32G)上训练模子以方便复现,该数据集的巨细与用于BERT训练的英文维基百科和BooksCorpus的组合相称。我们还在附录中展示了在BERT相同数据(即WikiBooks)上训练的模子结果。更多关于语料库信息以及怎样收集和过滤文本数据的细节可以在[48]中找到。
评估
我们在通用语言理解评估(GLUE)基准以及问答使命SQuAD上评估我们的模子。GLUE基准包括各种使命,这些使命被格式化为单句或句子对分类。有关全部使命的更多细节请参见附录。SQuAD是一个问答数据集,其中每个示例由一个上下文、一个题目和一个来自上下文的答案构成。目的是根据给定的上下文和题目定位答案。在SQuAD V1.1中,答案始终包含在上下文中,而在V2.0中,某些答案不包含在上下文中。
我们测量MNLI、QNLI、QQP、RTE、SST的准确率,STS的Spearman相干性以及CoLA的Matthews相干性。GLUE分数是全部8个使命的平均值。由于SQuAD排行榜上险些没有单一模子提交,我们仅在开辟集上与其他模子进行比较。我们陈诉了v1.1和v2.0开辟集上的精确匹配(Exact Match)和F1分数。为了公平比较,除非尚有说明,我们保持与ELECTRA相同的配置。除了BERT和ELECTRA,我们还比较了基于知识蒸馏的方法,包括TinyBERT、MobileBERT和DistillBERT。全部结果均通过单使命微调获得。
4.3 消融研究

为了更好地研究每个组件,我们渐渐向原始BERT架构中添加瓶颈结构、基于跨度的动态卷积和分组线性操作。此外,我们还增长了隐藏维度,以展示通过增长参数巨细带来的性能提升。详细配置和结果如表1所示。

瓶颈结构和分组线性操作
一个有趣的发现是,引入瓶颈结构和分组线性操作可以在不显着影响性能的情况下减少参数数量和计算成本。在小型模子设置中,它甚至可能带来利益。这可能是因为剩余的留意力头被迫学习更紧凑的表现,从而具有更好的泛化能力。
卷积核巨细
我们研究的另一个因素是动态卷积的卷积核巨细。图5展示了在小型ConvBERT模子上应用差别卷积核巨细的结果。

可以观察到,只要感受野没有覆盖整个输入句子,较大的卷积核会带来更好的结果。然而,当卷积核巨细足够大且感受野覆盖全部输入标记时,利用大卷积核的利益会减弱。在后续实验中,除非尚有说明,我们将全部动态卷积的卷积核巨细设置为9,因为它提供了最佳结果。
卷积集成方式
我们在此测试了将卷积集成到自留意力机制中的差别方式。如表2所示,直接添加传统的深度可分离卷积与自留意力模块并行会侵害性能,而插入动态卷积对基线BERT架构的平均GLUE分数险些没有改进。通过进一步增长基于跨度的动态卷积的局部依赖性,性能可以显着提高。

4.4 对比结果

我们将ConvBERT模子与BERT、ELECTRA以及最先进的方法在GLUE和SQuAD上进行比较,以验证我们方法的优势。
GLUE上的结果
我们评估了全部方法在GLUE开辟集和测试集上差别下游使命的性能。参见表3。由于篇幅限定,我们仅展示测试集的详细结果,并将开辟集的结果放在附录中。从表3可以看出,我们的小型和底子模子在相似模子巨细的情况下优于其他基线模子,同时必要更少的预训练成本。比方,与强基线ELECTRABASE相比,我们的ConvBERTBASE以不到1/4的训练成本实现了更好的性能。必要留意的是,TinyBERT [25]和MobileBERT [60]依赖于预训练的大型教师网络。我们的模子实际上是一个新的骨干网络,因此与这些压缩技术是正交的。由于计算资源限定,我们将大型模子的比较留待将来工作。

SQuAD上的结果
我们还在问答使命基准SQuAD 上评估了我们的模子。表4展示了我们提出的ConvBERT以及其他方法在相似模子巨细下的结果。对于小型模子,我们的ConvBERTSMALL和ConvBERTMEDIUM-SMALL优于基线ELECTRASMALL,并取得了与BERTBASE相称的结果。MobileBERT的结果更高,因为它们利用了知识蒸馏,并基于SQuAD的开辟集搜刮模子架构和超参数。以更少的预训练成本,我们的底子模子在相似巨细的模子中表现优于全部其他模子。

5 结论

我们提出了一种新奇的基于跨度的动态卷积操作符,并将其集成到自留意力机制中,形成了用于语言预训练的混合留意力块。我们还设计了一种应用于自留意力模块的瓶颈结构以及用于前馈模块的分组线性操作。实验结果表明,集成了上述创新的ConvBERT模子在显着减少预训练计算成本的同时,实现了性能的持续提升。
更广泛的影响
积极影响
预训练方案已在自然语言处置处罚领域广泛摆设。它提出起首通过在大规模语料库上进行自监督学习来训练一个大型模子,然后在下游使命上快速微调模子。这种预训练方案已经产生了一系列强大的语言模子,而BERT是最受接待的之一。在这项工作中,我们开辟了一种新的基于预训练的语言理解模子——ConvBERT。与BERT模子相比,它具有更小的模子规模、更低的训练成本和更好的性能。ConvBERT具有多重积极影响。与进一步增长模子复杂性以提高性能的趋势相反,ConvBERT致力于使模子更高效并节省训练成本。这将使计算资源有限的应用受益。在方法论上,它着眼于模子骨干设计,而不是利用类似蒸馏的算法(这些算法仍然必要事先训练一个大型教师模子)来提高模子服从。我们鼓励研究人员基于ConvBERT构建NLP模子,用于我们预期特别有益的使命,比方基于文本的咨询。
消极影响
与BERT相比,ConvBERT更高效且节省训练成本,这可能被用于检测和理解社交平台上的个人文本帖子,从而带来隐私威胁。
6 附录

6.1 数据集

6.1.1 GLUE数据集

由引入的GLUE基准测试是九个自然语言理解使命的集合。作者隐藏了测试集的标签,研究人员必要将预测结果提交到评估服务器5以获得测试集的结果。为了公平比较,我们仅展示单使命设置的结果。GLUE基准测试包括以下数据集。
MNLI
多文体自然语言推理语料库是一个带有文本蕴含解释的句子对数据集。给定一个条件句子和一个假设句子,使命是预测它们的关系,包括ENTENTAILMENT(蕴含)、CONTRADICTION(矛盾)和NEUTRAL(中立)。数据来自十种差别的书面和口语英语文体。
QNLI
题目自然语言推理是从斯坦福问答数据集转换而来的二元句子对分类使命,这是一个问答数据集。QNLI的一个示例包含一个上下文句子和一个题目,使命是确定上下文句子是否包含题目的答案。
QQP
Quora题目对数据集是来自Quora(一个社区问答网站)的题目对集合,使命是确定一对题目在语义上是否等价。
RTE
辨认文本蕴含(RTE)数据集与MNLI类似,但只有两类,即蕴含和不蕴含。它来自一系列年度文本蕴含挑战赛,包括RTE1、RTE2、RTE3和RTE5。
SST-2
斯坦福情感树库是一个由影戏评论句子及其情感人工解释构成的数据集。GLUE利用双向(正面/负面)分类划分。
MRPC
微软研究释义语料库是一个来自在线新闻的数据集,包含句子对及其人工解释,用于判断句子对中的句子在语义上是否等价。
CoLA
语言可担当性语料库是一个二元单句分类数据集,包含标注为是否符合英语语法的句子示例。
SST-B
语义文本相似性基准是一个句子对集合,人工标注了1到5的相似性分数,模子必要预测这些分数。
WNLI
Winograd NLI是一个小型自然语言推理数据集,但正如GLUE网页6所指出的,其构建存在题目。因此,像之前的工作一样,我们清除该数据集以进行公平比较。
6.1.2 SQuAD数据集

斯坦福问答数据集(SQuAD v1.1)是一个问答(阅读理解)数据集,包含凌驾10万个题目。每个题目的答案是对应上下文段落中的一段文本,这意味着每个题目都可以答复。随后的版本SQuAD v2.0将现有数据与凌驾5万个无法答复的题目联合在一起。
6.2 预训练细节

我们起首简要介绍用于预训练的替换标记检测使命,该使命由提出。它通过预测序列中的标记是否被替换来以鉴别方式训练模子。同时,为了天生带有替换标记的句子作为训练示例,他们提出利用一个小型天生器,该天生器通过掩码语言建模进行训练。完整的输入序列起首被掩码,然后输入天生器以获取被掩码标记的预测。目的模子随后作为鉴别器,用于区分天生器错误预测的标记。天生器和鉴别器通过掩码语言建模损失和替换标记检测损失联合训练。
对于预训练配置,我们主要利用与ELECTRA相同的超参数。更多细节见表5。固然利用128序列长度的示例进行预训练可以节省大量计算,但我们还发现利用更长序列长度的示例有助于提高具有较长上下文的下游使命的性能。我们在微调之前,利用长度为512的输入序列对模子进行10%的额外更新,以用于像SQuAD如许具有较长上下文的使命。这有助于位置嵌入更好地泛化到下游使命。

6.3 微调细节

根据之前的工作[9, 14],我们在{5e-5, 1e-4, 2e-4, 3e-4}中搜刮学习率,并在{0.01, 0.1}中搜刮权重衰减。对于训练轮数,我们在{10, 3}中搜刮最佳值。见表6。
6.4 更多结果

我们在表7中展示了差别模子巨细和预训练设置下GLUE开辟集的更多结果。可以看出,无论预训练使命和数据集巨细怎样,我们的方法始终优于原始BERT 架构。
6.5 更多示例和留意力图分析

我们在图6中提供了更多留意力图的示例。我们还计算了留意力图M的对角线会合度作为定量指标。它定义为                                   C                         =                                                          ∑                                               ∣                                     i                                     −                                     j                                     ∣                                     ≤                                     4                                                                  M                                               i                                     ,                                     j                                                                                    ∑                                               ∣                                     i                                     −                                     j                                     ∣                                     >                                     4                                                                  M                                               i                                     ,                                     j                                                                        C=\frac{\sum_{|i-j|\leq4}M_{i,j}}{\sum_{|i-j|>4}M_{i,j}}                  C=∑∣i−j∣>4​Mi,j​∑∣i−j∣≤4​Mi,j​​。这表明留意力图捕捉了多少局部依赖性。


表8中的结果显示,BERT中的留意力更会合于局部依赖性。

6.6 推理速度

我们在Intel CPU(i7-6900K@3.20GHz)上测试了底子模子巨细的混合留意力块和自留意力基线。如表9所示,混合留意力的浮点运算量(Flops)更低,且比自留意力更快。另一方面,我们在GPU和TPU上对混合留意力的实现尚未针对服从进行充分优化。

因此,当输入序列长度较短时,其加速效果可能不显着。我们将在底层实现上进一步改进。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

千千梦丶琪

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表