Press "Enter" to skip to content

大型语言模型,MirrorBERT-将模型转化为通用词汇和句子编码器

了解镜像增强如何生成数据并在语义相似性任务中优化BERT表现

大型语言模型,MirrorBERT-将模型转化为通用词汇和句子编码器 四海 第1张

引言

众所周知,BERT一类的模型在现代自然语言处理(NLP)应用中起着重要作用。尽管它们在下游任务中的表现出众,但对于没有精调的特定问题,这些模型通常并不完美。来自预训练模型的嵌入构建通常导致指标远离最先进的结果。同时,精调是一个耗时的过程,通常需要至少数千个带标签的数据样本才能使模型更好地理解领域数据。在某些情况下,当我们无法简单地收集已注释的数据或数据价格过高时,这一方面就变得有问题了。

MirrorBERT的设计就是为了克服上述问题。与标准的精调算法不同,MirrorBERT依靠自我监督,通过巧妙地增强初始数据,而无需任何外部知识。这种方法使MirrorBERT在语义相似性问题上表现出可比较的性能。此外,通过使用其创新的对比学习技术,MirrorBERT可以在不到一分钟的时间内将预训练模型(如BERTRoBERTa)转化为通用的词汇编码器!

大型语言模型:RoBERTa – 一个稳健优化的BERT方法

了解用于BERT优化的关键技术

towardsdatascience.com

通过参考官方的MirrorBERT论文,我们将深入了解其关键细节,以了解其如何在内部工作。由于这些讨论的技术在其他处理相似性任务的NLP模型中也可以使用,所获得的知识将是普适的。

方法论

简而言之,MirrorBERT与BERT模型相同,除了在其学习过程中引入了几个步骤。我们来讨论每个步骤。

MirrorBERT学习过程

1. 自我复制

顾名思义,MirrorBERT简单地复制了初始数据。

自我复制

然后,这些复制的数据用于构建两个不同的同一字符串的嵌入表示。

2. 数据增强

论文的作者提出了两种直观的技术,稍微修改数据集文本。据他们称,在绝大多数情况下,这些文本更改不会改变其含义。

2.1. 输入增强

给定一对字符串(xᵢ, x̄ᵢ),算法随机选择其中之一,并应用随机范围掩码,即将文本中长度为k的子字符串随机替换为[MASK]标记。

通过随机范围掩码进行输入增强

2.2. 特征增强

随机遮盖操作在句子/短语级别上进行。为了使模型在词级任务上也能表现良好,需要另一种针对较短文本片段的增强机制。特征增强通过使用dropout来解决这个问题。

所谓dropout过程是指关闭某个网络层中给定百分比p的神经元。可以将其视为网络中相应神经元的置零效果。

本文的作者提出使用dropout进行数据增强。当一对字符串(xᵢ, x̄ᵢ)传递到带有dropout层的网络中时,如果每次前向传递时dropout层总是禁用不同的神经元,它们的输出表示将会稍有不同。

使用dropout进行特征增强的一个重要方面在于,dropout层已经包含在BERT / RoBERTa架构中,因此不需要额外的实现!

虽然随机遮盖仅应用于数据集中的每个第二个对象,但dropout应用于所有对象。

3. 对比学习

对比学习是一种机器学习技术,它在嵌入空间中学习数据表示,使得相似的对象彼此靠近,而不相似的对象则远离彼此。

对比学习的一种实现方式是使用对比损失函数。MirrorBERT选择的损失函数是InfoNCELoss。让我们逐步了解它的工作原理。

InfoNCELoss

乍一看,InfoNCELoss的公式可能看起来让人生畏,所以让我们逐步来理解它。

  1. 两个向量之间的余弦相似度衡量它们的靠近程度,取值范围为-1到1,较大的值表示更高的相似度。
两个向量的余弦相似度

2. 为了更好地理解接下来的步骤,有必要了解InfoNCELoss使用softmax变换,并且通过温度参数T控制输出softmax分布的平滑度。这就是为什么相似度会被T除的原因。

有关softmax温度的更多信息,请参考这篇文章,其中对其进行了更详细的解释。

余弦相似度除以温度参数

3. 与标准softmax公式类似,预测(相似度)被转换为指数形式。

余弦相似度的指数形式

4. 在正常softmax公式中,分子包括一个类别概率的指数,而分母是所有分布概率的指数和。在InfoNCELoss中,相似度的公式类似地遵循以下逻辑:

  • 分子包含了两个稍微修改的相同字符串(xᵢ, x̄ᵢ)的指数相似度,可以看作是正样本的例子。
  • 分母由xᵢ与所有其他数据集字符串xⱼ之间的指数相似度之和组成,可以看作是所有负样本的集合。
余弦相似度的softmax公式。Nᵢ表示除xᵢ和x̄ᵢ之外的所有数据集字符串。

5. 在理想情况下,我们希望相同字符串(xᵢ,x̄ᵢ)之间的相似度很高,而xᵢ与其他字符串xⱼ之间的相似度很低。如果是这样的话,上述公式中的分子会增加,而分母会减小,从而使整个表达式变大。

损失函数的工作方式相反:在理想情况下,它们取较小的值,在较差的情况下,它们会对模型进行严厉惩罚。为了使上述公式符合这个损失原则,让我们在整个表达式之前添加负对数。

Softmax相似度的负对数。此表达式可以视为单个字符串xᵢ的损失值。

6. 前一步中的表达式已经对应单个字符串xᵢ的损失值。由于数据集包含许多字符串,我们需要考虑所有字符串。为此,让我们将此表达式求和,涵盖所有字符串。

InfoNCELoss

得到的公式正是InfoNCELoss!

InfoNCELoss试图将相似的对象靠近,同时将不相似的对象推开,在嵌入空间中。

SBERT中使用的三元组损失是对比学习损失的另一个例子。

大型语言模型:SBERT – 句子-BERT

了解如何使用Siamese BERT网络准确地将句子转换为嵌入向量

towardsdatascience.com

培训资源

MirrorBERT的一个令人惊讶的事实是,它不需要大量的数据进行微调。此外,这些数据不需要外部数据,因为整个训练过程是自我监督的。

研究人员报告称,为了微调词汇表示,他们只使用每种语言中最常见的10k个词。对于句子级任务,使用了10k个句子。

培训细节

MirrorBERT训练的详细信息如下:

  • 在句子级任务中,将温度设为T = 0.04,在单词级任务中,将其设为T = 0.2。
  • 随机索引屏蔽中,k设为5。
  • 将丢弃率设为p = 0.1。
  • 使用AdamW优化器,学习率为2e-5。
  • 批量大小设置为200(或400,有重复)。
  • 词汇模型训练2个时期,句子级模型训练一个时期。
  • 不是对所有输出令牌表示的平均汇聚,而是创建[CLS]标记表示。

单个MirrorBERT训练时期仅需要10-20秒。

评估

作者通过应用镜像微调在一组基准上评估了指标。结果显示,在词汇、句子级和跨语言任务上,MirrorBERT的性能与其他细调的BERT模型相当。

结果还表明,10k至20k的训练示例范围是微调的最佳范围。随着训练示例的增加,模型性能逐渐下降。

结论

镜像微调就像一个魔法咒语:与繁重的微调过程相比,镜像框架所需时间要少得多,而且不需要使用外部数据,在语义相似性任务上与BERT、SBERT或RoBERTa等其他细调模型相媲美。

作为结果,MirrorBERT可以将类似BERT的预训练模型转化为高效捕捉语言知识的通用编码器。

资源

除非另有说明,所有图片均由作者提供

Leave a Reply

Your email address will not be published. Required fields are marked *