DeBERTa:用解耦注意力机制增强解码的BERT模型

📖阅读时长:19分钟

🕙发布时间:2025-02-13

近日热文:全网最全的神经网络数学原理(代码和公式)直观解释
欢迎关注知乎和公众号的专栏内容
LLM架构专栏
知乎LLM专栏
知乎【柏企
公众号【柏企科技说】【柏企阅文

DeBERTa(Decoding-enhanced BERT with disentangled attention,用解耦注意力机制增强解码的BERT模型)通过两项新技术改进了BERT和RoBERTa模型。

第一项技术是解耦注意力机制。在这种机制下,每个单词由两个向量分别进行编码表示,一个向量编码单词内容,另一个编码单词位置。并且,单词之间的注意力权重分别通过基于它们的内容和相对位置的解耦矩阵来计算。

第二项技术是增强掩码解码器。在模型预训练过程中,增强掩码解码器用于在解码层融入绝对位置信息,以此来预测被掩码的标记。

此外,一种新的虚拟对抗训练方法被用于微调,以提升模型的泛化能力。

解耦注意力机制

在BERT的输入层,每个单词是通过一个向量来表示的,这个向量是单词(内容)嵌入和位置嵌入的总和。与BERT不同,DeBERTa中的每个单词由两个向量分别编码其内容和位置,单词之间的注意力权重则分别基于它们的内容和相对位置,通过解耦矩阵来计算。之所以采用这种方式,是因为人们观察到一对单词的注意力权重不仅取决于它们的内容,还取决于它们的相对位置。

对于序列中位置为 $i$ 的一个标记,我们用两个向量 $\{H_i\}$ 和 $\{P_{i,j}\}$ 来表示它,其中 $\{H_i\}$ 表示其内容,$\{P_{i,j}\}$ 表示它与位置为 $j$ 的标记的相对位置。标记 $i$ 和 $j$ 之间的交叉注意力分数的计算可以分解为四个部分:

也就是说,一对单词的注意力权重可以通过基于它们的内容和位置的解耦矩阵,计算四个注意力分数的总和来得到,这四个分数分别是内容对内容、内容对位置、位置对内容以及位置对位置的注意力分数。

以单头注意力为例,标准的自注意力操作可以表示为:

这里,记 $k$ 为最大相对距离,$\delta$ 为从标记 $i$ 到标记 $j$ 的相对距离,其定义为:

带有相对位置偏差的解耦自注意力可以表示为:

其中 $B_{\delta}$ 是相对位置偏差矩阵。

增强掩码解码器

DeBERTa在softmax层之前融入了绝对单词位置嵌入。在softmax层,模型会基于单词内容和位置的聚合上下文嵌入来解码被掩码的单词。

融入绝对位置有两种方法。BERT模型是在输入层融入绝对位置信息。而在DeBERTa中,绝对位置信息是在所有Transformer层之后、softmax层之前融入,用于预测被掩码的标记。通过这种方式,DeBERTa在所有Transformer层中捕捉相对位置信息,并且仅在解码被掩码单词时,将绝对位置信息作为补充信息使用。因此,我们将DeBERTa的解码组件称为增强掩码解码器(EMD)。

尺度不变微调(Scale Invariant Fine Tuning,SiFT)

SiFT是一种新的虚拟对抗训练算法,它通过对归一化的单词嵌入应用扰动来提高训练的稳定性。

具体来说,在实验中对DeBERTa进行微调以适应下游自然语言处理(NLP)任务时,SiFT首先将单词嵌入向量归一化为随机向量,然后对归一化后的嵌入向量应用扰动。研究发现,这种归一化操作显著提升了微调模型的性能。对于更大的DeBERTa模型,这种提升更为显著。

DeBERTa v2

  • 词汇表:在v2版本中,分词器发生了变化,开始使用从训练数据构建的、大小为128K的新词汇表。分词器不再基于GPT2,而是基于sentencepiece。
  • nGiE(nGram Induced Input Encoding,n元语法诱导输入编码):DeBERTa-v2模型除了第一个Transformer层外,还使用了一个额外的卷积层,以便更好地学习输入标记的局部依赖关系。
  • 在注意力层共享位置投影矩阵和内容投影矩阵:基于之前的实验,这种做法可以在不影响性能的前提下节省参数。
  • 应用桶编码相对位置:DeBERTa-v2模型采用类似T5的对数桶(log bucket)来编码相对位置。
  • 900M模型和1.5B模型:新增了两种模型规模,分别为900M和1.5B,这显著提升了下游任务的性能。

来源https://huggingface.co/docs/transformers/model_doc/deberta-v2
论文DeBERTa: Decoding-enhanced BERT with Disentangled Attention 2006.03654

本文由mdnice多平台发布


柏企科技圈
15 声望5 粉丝