大规模语言模型:DeBERTa – 带有解编增强注意力的BERT
大规模语言模型进化:DeBERTa - 利用解读增强注意力的BERT
探索Transformer中进阶版的注意力机制
介绍
近年来,BERT已成为许多自然语言处理任务中的首选工具。它出色的处理、理解信息以及构建高准确性的词嵌入的能力达到了最先进的性能。
众所周知,BERT基于Transformer架构中的注意力机制。现今的大型语言模型的关键组成部分就是注意力。
大型语言模型:BERT – 双向编码器表示来自Transformer
了解BERT如何构建最先进的嵌入
towardsdatascience.com
然而,机器学习领域定期涌现出新的想法和方法。类似BERT的模型中最具创新性的技术之一于2021年出现,引入了一种增强的注意力版本称为”分解注意力“。这个概念的实现使得 – 集成了分解注意力的模型的改进在NLP基准中相对于其他大型模型而言更为突出。
在本文中,我们将参考原始的DeBERTa论文,涵盖所有必要的细节,以了解它的工作原理。
1. 分解注意力
在原始的Transformer块中,每个标记由一个单独的向量表示,该向量包含关于标记内容和位置的信息,通过元素级嵌入求和的形式。这种方法的缺点是可能存在信息损失:模型可能无法区分一个词本身和它的位置,哪个对于某个嵌入向量的分量更重要。

DeBERTa提出了一种新颖的机制,其中相同的信息存储在两个不同的向量中。此外,注意力计算的算法也被修改为明确考虑标记内容和位置之间的关系。例如,当“research”和“paper”接近时,它们之间的依赖性要比在不同的文本部分中出现时要高得多。这个例子清楚地证明了为什么需要考虑内容到位置关系。
分解注意力的引入需要修改注意力得分的计算。事实证明,这个过程非常简单。计算由两个由两个向量组成的嵌入之间的交叉注意力得分可以轻松分解成它们子向量的四个成对乘积的总和:

这个方法可以以矩阵形式进行泛化。从图表中,我们可以观察到四种不同类型的矩阵(向量),每个矩阵表示一定组合的内容和位置信息:
- 内容到内容矩阵;
- 内容到位置矩阵;
- 位置到内容矩阵;
- 位置到位置矩阵。
可以观察到位置到位置矩阵不存储任何有价值的信息,因为它没有任何关于单词内容的详细信息。这就是为什么这个术语在分解注意力中被舍弃的原因。
对于剩下的三个术语,最终输出的注意力矩阵的计算方式与原始的Transformer类似。

尽管计算过程看起来类似,但需要考虑到一对微妙的因素。
从上面的图表中,我们可以注意到,用于查询内容Qc和键-位置Krᵀ矩阵之间的乘法的乘法符号*与用于键-内容Kc和查询位置Qrᵀ矩阵之间的乘法x有所不同。实际上,这并非偶然,因为DeBERTa中提到的这对矩阵是以稍微不同的方式相乘,以考虑到令牌的相对位置。
- 根据常规矩阵乘法规则,如果C = A x B,则元素C[i][j]通过A的第i行与B的第j列的逐元素乘法进行计算。
- 在DeBERTa的特殊情况下,如果C = A * B,则C[i][j]的计算为A的第i行乘以B的δ(i, j)列,其中δ表示索引i和j之间的相对距离函数,由下式定义:

k可以被视为一个超参数,用于控制索引i和j之间的最大可能相对距离。在DeBERTa中,k被设定为512。为了更好地理解公式,让我们绘制一个热力图,以可视化不同的索引i和j之间的相对距离(k=6)。
例如,如果k=6,i=15,j=13,那么索引i和j之间的相对距离δ等于8。为了获得索引i=15和j=13的内容-位置分数,在查询内容Qc和键-位置Kr矩阵相乘时,应将Qc的第15行乘以Krᵀ的第8列。

然而,对于位置-内容分数,算法的工作方式略有不同:算法不再使用δ(i, j)作为相对距离,而是使用矩阵乘法中δ(j, i)的值。正如论文的作者解释的:“这是因为对于给定的位置i,位置-内容计算了关键内容在j处相对于查询位置i的注意权重,因此相对距离是δ(j, i)”。

δ(i, j) ≠ δ(j, i),即δ不是对称函数,意味着i和j之间的距离与j和i之间的距离不同。
在应用softmax转换之前,注意力分数使用常数√(3d)进行除法,以提高训练的稳定性。这个缩放因子与原始Transformer中使用的缩放因子√d不同。这√3倍的差异是由DeBERTa注意力机制中3个矩阵的求和产生的更大幅度的结果(而不是Transformer中的单个矩阵)来证明的。
2. 增强的掩码解码器
分离的注意力只考虑内容和相对位置。然而,绝对位置信息并未被考虑,而实际上在最终预测中可能起着重要作用。DeBERTa论文的作者给出了一个具体的例子:一个句子“新商店在新购物中心旁边开业”,将该句子中的“商店”和“购物中心”掩码给BERT进行预测。尽管这两个掩码词有着相似的含义和局部语境(形容词“新”),但它们在语言上具有不同的上下文,这是分离的注意力所无法捕捉到的。在语言中可能存在许多类似的情况,这就是为什么将绝对位置结合到模型中至关重要的原因。
在BERT中,绝对位置考虑在输入嵌入中。而对于DeBERTa,绝对位置则是在所有Transformer层之后但在应用softmax层之前结合进来。实验证明,在捕捉所有Transformer层的相对位置之后,引入绝对位置可以提高模型的性能。研究人员表示,相反地进行这个过程可能会阻止模型学习关于相对位置的足够信息。
架构
根据该论文,增强的掩码解码器(EMD)具有两个输入块:
- H — 来自上一个Transformer层的隐藏状态。
- I — 用于解码的任何必要信息(例如隐藏状态H、绝对位置嵌入或来自上一个EMD层的输出)。

通常情况下,模型中可以有多个EMD块。如果是这样,它们将按照以下规则构建:
- 每个EMD层的输出将作为下一个EMD层的输入I;
- 最后一个EMD层的输出将被送入语言模型头部。
在DeBERTa的情况下,EMD层数被设置为n = 2,且在第一个EMD层中使用位置嵌入作为I。
NLP中另一个经常使用的技术是将权重共享到不同层中,以降低模型的复杂性(例如ALBERT)。这个想法也被应用在DeBERTa的EMD块中。
大型语言模型,ALBERT-一种轻量级的自监督学习BERT模型
理解BERT架构选择背后的关键技术,以产生紧凑高效的模型
towardsdatascience.com
当I = H,且n = 1时,EMD成为BERT解码器层的等效层。
DeBERTa设置
消融研究
实验证明,DeBERTa中引入的所有组件(位置到内容的注意力,内容到位置的注意力和增强的掩码解码器)都提升了性能。如果移除其中任何一个组件都会导致性能下降。
尺度不变微调
此外,作者提出了一种新的对抗性算法“尺度不变微调”来提高模型的泛化性能。其思想是对输入序列应用微小扰动,使模型对抗性示例更具弹性。在DeBERTa中,扰动被应用于归一化的输入词嵌入。这种技术对于更大的微调DeBERTa模型效果更好。
DeBERTa变体
DeBERTa的论文介绍了三个模型。它们之间的比较如下图所示。

数据
对于预训练,DeBERTa的基础和大型版本使用以下数据集的组合:
- 英文维基百科+BookCorpus(16 GB)
- OpenWebText(公开的Reddit内容:38 GB)
- 故事集(31 GB)
在数据去重之后,最终的数据集大小缩减为78 GB。对于DeBERTa 1.5B,作者使用了两倍的数据(160 GB),并具有128K的令人印象深刻的词汇量。
相比之下,RoBERTa、XLNet和ELECTRA等其他大型模型是在160 GB的数据上进行预训练的。与此同时,DeBERTa在各种自然语言处理任务中展现出了可比或更好的性能。
在训练方面,DeBERTa进行了一百万步的预训练,每一步使用了2K个样本。
结论
我们已经了解了DeBERTa架构的主要方面。由于内部具有分离关注和增强掩码编码算法,DeBERTa已成为许多数据科学家在自然语言处理流程中极受欢迎的选择,并且也是许多Kaggle竞赛中的必胜要素。关于DeBERTa的另一个惊人事实是,它是第一个在SuperGLUE基准测试上超越人类的自然语言处理模型之一。这一事实已足够证明DeBERTa将在LLM的历史中长期存在。
资源
除非另有说明,所有图片均为作者所创作