UER:一种解决预训练模型选择困难的开放解决方案

来源:爱酷猪责编:网络时间:2024-05-30 17:05:24

论文标题:UER:一种开放的预研究;

论文地址:

自然语言处理(NLP)主要研究如何让计算机理解人类的自然语言。该技术是人工智能中最重要的研究领域之一,也是人工智能中最难解决的问题之一。幸运的是,得益于迁移学习技术的发展,自然语言处理近年来也取得了快速的进步,并被广泛应用于机器翻译、信息检索等领域。

什么是迁移学习?在自然语言处理的背景下,迁移学习本质上是在源域()数据集上预训练模型,然后调整模型在目标域()数据集上执行自然语言处理功能。在这个过程中,用于训练模型的源域和用于执行任务的目标域之间往往存在不一致。因此,预训练的模型通常不能直接完成目标域中的自然语言处理任务。那么为什么我们需要预训练模型呢?

首先,源域与目标域之间存在差异性和一致性,用大数据训练出来的模型参数往往也普遍适用于小数据集。

其次,在源域中预训练的模型只需要进行微调就可以应用于目标域,而无需重新训练,从而节省了训练时间和计算工作量。

预训练模型有很多种,例如 BERT模型、GPT模型、ELMo模型等。由于下游任务的多样性以及算力的限制,现有的预训练模型都无法完美地应用于所有任务,这也导致预训练模型的选择变得十分困难。针对这一问题,论文提供了一种切实可行的解决方案,即UER()。

UER通过构建一体化预训练工具箱,包含了多个低耦合的模块,每个模块都包含了现有的主流模型,用户可以方便地调用这些模型,也可以根据任务需求设计自己的预训练模型。此外,UER还提供了一组基于不同语料训练的模型,可以帮助用户在下游数据集上取得良好的语言处理效果。

NLP 模型包含很多超参数,这些参数的确定过程通常很复杂,不同的参数值会对模型的性能产生很大的影响。一般的文章很难记录选择超参数的细节和代码,这也是为什么我们在重复别人的工作时很难得到与原作者相似的结果。为此,很多系统提供了解决方案。

1)

(Open-)是一款开源神经网络翻译机器,由哈佛NLP研究组与该公司于2016年联合开发。该系统具有高效、模块化、易扩展等优点,并取得了很高的翻译准确率。

2)

该模型由AI实验室于2017年提出,主要用于机器翻译,采用基于CNN的模型结构,具有翻译速度快、准确率高的优势,为英语到法语、英语到德语、英语到罗马尼亚语的翻译提供了预训练模型。

3)NCRF++

NCRF++是一个基于的开源神经序列注释工具包,可用于各种神经序列注释工具包的快速实现。

4)

N-Gram(有时也叫N-gram模型)是自然语言处理中一个非常重要的概念,通常在NLP中,人们可以利用N-Gram来基于一定的语料库来预测或者评估一个句子是否合理,另一方面N-Gram的另一个作用就是评估两个字符串之间的差异,这是模糊匹配中常用的方法。

以上这些模型都是目前最主流的NLP模型预训练工具,对NLP技术的发展有着深远的影响。然而这些方法也存在着各自的不足,比如往往只用于解决某一领域的特定问题,难以普适性。因此提出一个可以整合各类模型并加以改进的工具箱有着十分重要的价值,本文提出的UER就是为了解决这个问题。

如图所示:

UER主要由四部分组成:子编码器(),主编码器(),以及微调(fine-)。

每部分都包含了大量可执行模型,用户可以根据自己的需求调用相应的模型,也可以根据自己的需要自行设计相应的模型。

此外,为了达到更好的预训练效果,在UER中可以将不同的模型进行组合。

1)二次编码器

这部分主要用于学习单词的底层特征。对于英文单词,底层特征主要指组成单词的字母;对于中文,底层特征可以用字的部首或拼音来表示。

通过学习,模型可以学习到单词的内部结构。UER采用CNN和RNN作为子编码器,采用平均池化或最大池化策略,得到固定长度的词向量(word)。

2)主编码器

这部分主要用于学习词向量的主要特征,UER可以直接执行基本编码器,例如LSTM,GRU,CNN等,也可以根据需要实现不同编码器的组合,构建任意的网络结构。

近年来,技术在文本特征提取任务上表现出了优越的性能。因此,UER的主编码器部分也集成了模块,以方便执行BERT等模型。

3)

选择正确的模型是预训练成功的关键,虽然可用的模型有很多,但都有各自的优缺点,UER 包含了很多种,用户可以选择其中一种或多种,​​并赋予不同的权重,根据不同的原理,UER 又可以分为监督型和无监督型。

无监督学习有很多种,比如:LM模型(LM)、MLM模型(MLM)和AE模型(AE)都是字符级别的,主要用于预测词义;NSP模型(NNext)主要用于判断两个句子之间是否有连续性。

监督训练主要有两种类型:NMT 和 CLS。监督训练通常可以为模型提供源语料库无法提供的额外信息。

4)微调

UER开发了类似GPT、BERT的微调策略,用于下游任务的模型往往与预训练模型有类似的结构和参数,因此预训练模型在使用前只需要进行微调即可。

很多预训练任务包括两个阶段,即模型预训练和微调。而 UER 包括三个阶段,即在广领域语料上预训练、在下游数据库上预训练、在下游数据库上微调。这样做的好处是模型可以提前熟悉下游数据库的数据分布,从而在微调阶段取得更好的训练效果。

为了验证UER的性能,作者设计了一系列基于不同数据集的实验。

论文中作者以基于BERT的英文和中文模型为例,评估了UER的模型复现性(即生成目标模型的能力),并讨论了选择不同编码器时UER的性能提升。

1)模型可重复性

如上所述,UER内置了大量的模型,用户可以直接调用这些模型,而不必自己编写模型代码。调用方式也非常简单,用户只需要根据需求编写几行代码即可:

UER模型调用方法演示

图中演示了执行不同模型时的模型调用方法,可以看出模型调用代码非常简单,即使是刚接触UER的用户也可以快速上手,这也是UER的特色之一。

模型调用完成后需要验证在UER中调用的模型与实际模型是否有偏差,也就是验证模型在UER中的准确率。本文以BERT模型为例,分别对英文和中文的自然语言处理结果进行验证。

在英语验证部分,论文采用了GLUE基准,并将UER得到的测试结果与(表1)的测试结果进行了比较:

表1 GLUE基准测试结果与UER测试结果对比

在中文验证部分,论文采用了百度ERNIE基准,并将UER得到的测试结果与ERNIE提供的测试结果进行了比较(表2):

表2 ERNIE 基准上的 ERNIE 测试结果与 UER 测试结果对比

通过对比结果可以看出,UER得到的测试结果与ERNIE相似,因此可以认为使用UER不会影响模型训练效果。

2)编码器对测试结果的影响

当选择不同的和编码器时,模型的测试结果也有所不同。论文中作者分别选择了不同的和编码器,并使用UER在数据集上记录了预训练模型的测试结果。豆瓣书评、亚马逊产品用户评论和三个中文情感分析数据集作为下游数据集。

首先作者在 UER 中使用 BERT-base 中文模型进行预训练,然后在下游数据集上对预训练模型进行微调。为了对比,作者分别使用了 MLM 和 CLS 作为模型,并记录了测试结果(表 3):

表3 不同预训练模型性能对比

通过对比不难发现,选择不同的会对预训练模型的性能产生较大的影响,当使用CLS作为模型时,可以取得最高的测试结果。

由于BERT对算力的要求较高,为了提高计算效率,作者在UER中使用2层LTSM编码器替代了原来的12层,并记录了更换编码器时预训练模型的测试结果(表4):

表4 使用不同编码器的预训练模型性能比较

通过数据对比可以看出,使用LSTM编码器预训练的模型可以获得与BERT模型相似甚至更好的测试结果。该实验证明了在使用UER进行模型预训练时,可以灵活选择不同的编码器,以达到更好的训练效果和更高的训练效率。

论文提出了一个开源的NLP模型预训练工具箱,并详细介绍了其组件和使用方法。通过UER,用户可以轻松高效地执行各种预训练模型,并根据需求调整模型完美代码,从而提高模型性能和训练速度。

投稿者须知

猜你喜欢
最新游戏更多
热门专题更多
最新资讯更多