GPT1: 通过生成预训练提高语言理解

目录

GPT1: 通过生成预训练提高语言理解 1

摘要 1

1简介 2

2 相关工作 3

3 框架 3

3.1 无监督预训练 4

3.2 监督微调Supervised fine-tuning 4

3.3 特定于任务的输入转换 5

4 实验 6

4.2 有监督微调 7

5 分析 8

6 结论 10

摘要

自然语言理解包括各种不同的任务,例如文本蕴涵、问题回答、语义相似性评估和文档分类。 尽管大型未标记文本语料库非常丰富,但用于学习这些特定任务的标记数据却很少,这使得经过区分训练的模型难以充分执行。 我们证明,通过在各种未标记文本的语料库上对语言模型进行生成式预训练,然后对每个特定任务进行区分性微调,可以实现这些任务的巨大收益。 与以前的方法相比,我们在微调过程中利用任务感知输入转换来实现有效的传输,同时需要对模型架构进行最小的更改。 我们在各种自然语言理解基准上证明了我们的方法的有效性。 我们的通用任务不可知模型的性能优于经过区分训练的模型,这些模型使用专门为每个任务设计的架构,在所研究的 12 个任务中,有 9 个任务显着改进了现有技术。 例如,我们在常识推理(故事完形填空测试)上实现了 8.9% 的绝对改进,在问答 (RACE) 上实现了 5.7%,在文本蕴涵 (MultiNLI) 上实现了 1.5%。

1简介

从原始文本中有效学习的能力对于减轻自然语言处理 (NLP) 中监督学习的依赖至关重要。 大多数深度学习方法需要大量的手动标记数据,这限制了它们在许多缺乏注释资源的领域的适用性[61]。 在这些情况下,可以利用未标记数据中的语言信息的模型为收集更多注释提供了一种有价值的替代方案,而收集更多注释可能既耗时又昂贵。 此外,即使在有大量监督的情况下,以无监督的方式学习良好的表示也可以显着提高性能。 迄今为止最令人信服的证据是广泛使用预训练词嵌入 [10,39,42] 来提高一系列 NLP 任务的性能 [8,11,26,45]

然而,由于两个主要原因,利用未标记文本中的单词级信息具有挑战性。 首先,目前尚不清楚哪种类型的优化目标在学习对迁移有用的文本表示方面最有效。 最近的研究着眼于各种目标,例如语言建模[44]、机器翻译[38]和话语连贯性[22],每种方法在不同的任务上都优于其他方法。其次,对于最有效的方法还没有达成共识 将这些学习到的表示转移到目标任务。 现有技术涉及对模型架构 [43, 44] 进行特定于任务的更改、使用复杂的学习方案 [21] 和添加辅助学习目标 [50] 的组合。 这些不确定性使得开发有效的语言处理半监督学习方法变得困难。

在本文中,我们结合无监督预训练和监督微调,探索了一种用于语言理解任务的半监督方法。 我们的目标是学习一种通用的表示形式,可以在几乎不适应各种任务的情况下进行迁移。 我们假设可以访问大量未标记文本和多个带有手动注释训练示例(目标任务)的数据集。 我们的设置不要求这些目标任务与未标记的语料库位于同一域中。 我们采用两阶段训练程序。 首先,我们在未标记的数据上使用语言建模目标来学习神经网络模型的初始参数。 随后,我们使用相应的监督目标将这些参数调整到目标任务。

对于我们的模型架构,我们使用 Transformer [62],它已被证明在机器翻译 [62]、文档生成 [34] 和句法解析 [29] 等各种任务上表现出色。 与循环网络等替代方案相比,这种模型选择为我们提供了更结构化的内存,用于处理文本中的长期依赖关系,从而在不同任务中实现稳健的传输性能。 在传输过程中,我们利用源自遍历式方法 [52] 的特定于任务的输入适应,该方法将结构化文本输入处理为单个连续的标记序列。 正如我们在实验中所证明的那样,这些调整使我们能够在对预训练模型的架构进行最小改变的情况下进行有效的微调。

我们在四种类型的语言理解任务上评估我们的方法——自然语言推理、问题回答、语义相似性和文本分类。 我们的通用任务不可知模型优于采用针对每个任务专门设计的架构的有区别训练的模型,在所研究的 12 个任务中的 9 个中显着改进了现有技术。 例如,我们在常识推理(故事完形填空测试)[40]上实现了 8.9% 的绝对改进,在问答(RACE)[30] 上实现了 5.7%,在文本蕴涵(MultiNLI)[66] 上实现了 1.5% 的绝对改进,在 最近推出了 GLUE 多任务基准测试 [64]。 我们还分析了预训练模型在四种不同设置下的零样本行为,并证明它为下游任务获取了有用的语言知识。

2 相关工作

NLP 的半监督学习 我们的工作大致属于自然语言半监督学习的范畴。 这种范式引起了人们的极大兴趣,应用于序列标记 [24, 33, 57] 或文本分类 [41, 70] 等任务。 最早的方法使用未标记的数据来计算单词级或短语级统计数据,然后将其用作监督模型中的特征[33]。 在过去的几年中,研究人员已经证明了使用在未标记的语料库上训练的词嵌入 [11,39,42] 来提高各种任务的性能的好处 [8,11,26,45]。 然而,这些方法主要传输单词级信息,而我们的目标是捕获更高级别的语义。

最近的方法已经研究了从未标记的数据中学习和利用不仅仅是单词级语义。 短语级或句子级嵌入可以使用未标记的语料库进行训练,已用于将文本编码为适合各种目标任务的向量表示[28,32,1,36,22,12,56,31]

无监督预训练 无监督预训练是半监督学习的一种特殊情况,其目标是找到一个好的初始化点而不是修改监督学习目标。 早期的作品探索了该技术在图像分类 [20,49,63] 和回归任务 [3] 中的使用。 随后的研究 [15] 证明预训练可以作为正则化方案,从而在深度神经网络中实现更好的泛化。 在最近的工作中,该方法已被用来帮助训练深度神经网络来完成各种任务,如图像分类[69]、语音识别[68]、实体消歧[17]和机器翻译[48]。

与我们最接近的工作涉及使用语言建模目标预训练神经网络,然后在监督下针对目标任务对其进行微调。 戴等人 [13]以及Howard和Ruder[21]遵循这种方法来改进文本分类。 然而,尽管预训练阶段有助于捕获一些语言信息,但他们对 LSTM 模型的使用将其预测能力限制在一个小范围内。 相比之下,我们选择的变压器网络使我们能够捕获更长期的语言结构,正如我们的实验所证明的那样。 此外,我们还证明了我们的模型在更广泛的任务上的有效性,包括自然语言推理、释义检测和故事完成。 其他方法 [43,44,38] 使用来自在目标任务上训练监督模型时,将预训练的语言或机器翻译模型作为辅助特征。 这涉及每个单独的目标任务的大量新参数,而我们在传输过程中需要对模型架构进行最小的更改。

辅助训练目标 添加辅助无监督训练目标是半监督学习的另一种形式。 Collobert 和 Weston [10] 的早期工作使用了各种辅助 NLP 任务,例如词性标记、分块、命名实体识别和语言建模来改进语义角色标记。 最近,Rei [50] 在其目标任务目标中添加了辅助语言建模目标,并展示了序列标记任务的性能提升。 我们的实验还使用辅助目标,但正如我们所展示的,无监督预训练已经学习了与目标任务相关的几个语言方面。

3 框架

我们的训练程序由两个阶段组成。 第一阶段是在大型文本语料库上学习高容量语言模型。 接下来是微调阶段,我们使模型适应带有标记数据的判别任务。

3.1 无监督预训练

给定一个无监督的 token 语料库 U = {u1, . 。 。 , un},我们使用标准语言建模目标来最大化以下可能性:

其中 k 是上下文窗口的大小条件概率 P 使用参数为 θ 的神经网络进行建模。 这些参数使用随机梯度下降进行训练[51]。

在我们的实验中,我们使用多层 Transformer 解码器 [34] 作为语言模型,它是 Transformer [62] 的变体。 该模型对输入上下文标记应用多头自注意力操作,然后是位置前馈层,以生成目标标记的输出分布

其中 U = (u−k, ..., u−1) 是标记的上下文向量,n 是层数,We 是标记嵌入矩阵Wp 是位置嵌入矩阵

3.2 监督微调Supervised fine-tuning

在用方程(2)中的目标训练模型后。我们调整参数以适应监督目标任务。 我们假设一个标记数据集 C,其中每个实例由一系列输入标记 x1….xm组成,以及标签 y。 输入通过我们预先训练的模型,以获得最终 Transformer 块的激活,然后将其馈送到带有参数 Wy 的添加线性输出层以预测 y:

这为我们提供了以下最大化目标:

我们还发现,将语言建模作为微调的辅助目标有助于通过(a)提高监督模型的泛化性和(b)加速收敛学习。 这与之前的工作 [50, 43] 一致,他们也观察到使用这种辅助目标可以提高性能。 具体来说,我们优化以下目标(权重为 λ):

L3(C) = L2(C) + λ ∗ L1(C)

总体而言,微调期间我们需要的唯一额外参数是 Wy,并且嵌入为分隔符标记(下面第 3.3 节中描述)。

图 1:(左)本工作中使用的 Transformer 架构和培训目标。(右)用于对不同任务进行微调的输入转换。 我们将所有结构化输入转换为令牌序列,以便由我们的预训练模型进行处理,然后是线性+softmax层。

3.3 特定于任务的输入转换

对于某些任务,例如文本分类,我们可以如上所述直接微调我们的模型。 某些其他任务,例如问答或文本蕴涵,具有结构化输入,例如有序句子对或文档、问题和答案的三元组。 由于我们的预训练模型是在连续的文本序列上进行训练的,因此我们需要进行一些修改才能将其应用于这些任务。 之前的工作提出了基于转移表示的学习任务特定架构[44]。 这种方法重新引入了大量特定于任务的定制,并且不对这些额外的架构组件使用迁移学习。 相反,我们使用遍历式方法[52],将结构化输入转换为我们的预训练模型可以处理的有序序列。 这些输入转换使我们能够避免跨任务对架构进行大量更改。 我们在下面提供了这些输入转换的简要描述,图 1 提供了直观的说明。 所有转换都包括添加随机初始化的开始和结束标记 (<s>,<e>)。

文本蕴涵 对于蕴涵任务,我们将前提 p 和假设 h 标记序列连接起来,中间使用分隔符标记 ($)。

相似性 对于相似性任务,被比较的两个句子没有固有的顺序。 为了反映这一点,我们修改输入序列以包含两种可能的句子顺序(中间有分隔符),并独立处理每个句子以生成两个序列表示 hm l,它们在输入线性输出层之前按元素添加。

问答和常识推理 对于这些任务,我们得到一个上下文文档 z、一个问题 q 和一组可能的答案 {ak}。 我们将文档上下文和问题与每个可能的答案连接起来,在两者之间添加分隔符以获得 [z; q; $; AK]。 每个序列都用我们的模型独立处理,然后通过 softmax 层进行标准化,以生成可能答案的输出分布。

4 实验

4.1 设置无监督预训练

我们使用 BooksCorpus 数据集 [71] 来训练语言模型。 它包含 7,000 多本独特的未出版书籍,涵盖冒险、奇幻和浪漫等多种类型。 至关重要的是,它包含长段的连续文本,这使得生成模型能够学习以远程信息为条件。 另一种数据集 1B Word Benchmark 由类似方法 ELMo [44] 使用,大小大致相同但在句子层面上被打乱——破坏了长程结构。 我们的语言模型在此语料库上实现了 18.4 的非常低的标记级别困惑度。(句子层级打乱破坏了long-range structure)

表 1:我们实验中使用的不同任务和数据集的列表。

模型规格 我们的模型很大程度上遵循原始变压器的工作[62]。

  • 我们训练了一个仅包含 12 层解码器的 Transformer,它带有屏蔽的自注意力头(768 个维度状态和 12 个注意力头)
  • 对于位置前馈网络,我们使用 3072 维内部状态。我们使用 Adam 优化方案 [27],最大学习率为 2.5e-4。
  • 前 2000 次更新中,学习率从零线性增加,并使用余弦时间表退火到 0。 我们在 64 个随机采样的、包含 512 个 token 的连续序列的小批量上训练 100 个 epoch
  • 由于层归一化 [2] 在整个模型中广泛使用,因此简单的权重初始化 N (0, 0.02) 就足够了。
  • 我们使用具有 40,000 次合并的字节对编码 (BPE) 词汇表 [53] 以及残差、嵌入和注意力丢失率 0.1 进行正则化。 我们还采用了[37]中提出的 L2 正则化的修改版本,其中所有非偏差或增益权重的 w = 0.01。
  • 对于激活函数,我们使用高斯误差线性单元(GELU)[18]。 我们使用学习的位置嵌入而不是原始工作中提出的正弦版本。 我们使用 ftfy 库来清理 BooksCorpus 中的原始文本,标准化一些标点符号和空格,并使用 spaCy tokenizer.

微调细节 除非另有说明,否则我们将重用无监督预训练中的超参数设置。 我们以 0.1 的比率向分类器添加 dropout。 对于大多数任务,我们使用 6.25e-5 的学习率和 32 的批量大小。我们的模型微调速度很快,3 轮训练对于大多数情况来说就足够了。 我们使用线性学习率衰减计划,其中预热时间超过训练的 0.2%,λ设置为0.5。

4.2 有监督微调

我们对自然语言推理、问答、语义相似度和文本分类等各种监督任务进行了实验。 其中一些任务可以作为我们最近发布的 GLUE 多任务基准测试 [64] 的一部分来使用。 图 1 概述了所有任务和数据集。

自然语言推理 自然语言推理(NLI)的任务也称为识别文本蕴涵,涉及阅读一对句子并从蕴涵、矛盾或中性中判断它们之间的关系。 尽管最近引起了很多兴趣[58,35,44],但由于存在多种现象,如词汇蕴含、共指以及词汇和句法歧义,这项任务仍然具有挑战性。 我们评估了五个来源不同的数据集,包括图像标题 (SNLI)、转录语音、通俗小说和政府报告 (MNLI)、维基百科文章 (QNLI)、科学考试 (SciTail) 或新闻文章 (RTE)。

表 2 详细介绍了我们的模型和之前最先进方法的不同 NLI 任务的各种结果。 我们的方法在五个数据集中的四个上显着优于基线,与之前的最佳结果相比,在 MNLI 上绝对提高了 1.5%,在 SciTail 上提高了 5%,在 QNLI 上提高了 5.8%,在 SNLI 上提高了 0.6%。 这证明了我们的模型能够更好地推理多个句子,并处理语言歧义的各个方面。 在 RTE(我们评估的较小数据集之一(2490 个示例))上,我们实现了 56% 的准确率,低于多任务 biLSTM 模型报告的 61.7%。 鉴于我们的方法在较大的 NLI 数据集上的强大性能,我们的模型很可能也将从多任务训练中受益,但我们目前尚未对此进行探索。

表 2:自然语言推理任务的实验结果,将我们的模型与当前最先进的方法进行比较。 5x 表示 5 个模型的集合。 所有数据集都使用准确性作为评估指标。

表 3:问答和常识推理的结果,将我们的模型与当前最先进的方法进行比较。9x 表示 9 个模型的集合。

问答和常识推理 另一项需要单句和多句推理的任务是问答。 我们使用最近发布的 RACE 数据集 [30],其中包含英语段落以及初中和高中考试的相关问题。 该语料库已被证明包含比 CNN [19] 或 SQuaD [47] 等其他数据集更多的推理类型问题,为我们经过训练以处理远程上下文的模型提供了完美的评估。 此外,我们评估了故事完形填空测试[40],其中涉及从两个选项中选择多句故事的正确结局。 在这些任务上,我们的模型再次显着优于之前的最佳结果 - Story Cloze 的成绩高达 8.9%,RACE 的总体成绩高达 5.7%。 这证明了我们的模型有效处理远程上下文的能力。

语义相似性 语义相似性(或释义检测)任务涉及预测两个句子在语义上是否等效。 挑战在于识别概念的改写、理解否定以及处理句法歧义。 我们使用三个数据集来完成此任务 - Microsoft Paraphrase corpus (MRPC) [14](从新闻来源收集)、Quora Question Pairs (QQP) 数据集 [9] 和语义文本相似度基准 (STS-B) [6 ]。 我们在三个语义相似性任务中的两个上获得了最先进的结果(表 4),在 STS-B 上绝对增益为 1 点。 QQP 的性能增量非常显着,与单任务 BiLSTM + ELMo + Attn 相比绝对提高了 4.2%。

分类 最后,我们还评估了两种不同的文本分类任务。 语言可接受性语料库(CoLA)[65]包含对句子是否符合语法的专家判断,并测试训练模型的固有语言偏差。 另一方面,斯坦福情感树库(SST-2)[54]是一个标准的二元分类任务。 我们的模型在 CoLA 上获得了 45.4 的分数,这比之前的最佳成绩 35.0 有了很大的飞跃,展示了我们的模型学习到的先天语言偏差。 该模型在 SST-2 上也达到了 91.3% 的准确率,这与最先进的结果具有竞争力。 我们还在 GLUE 基准测试中获得了 72.8 的总分,明显优于之前的最高分 68.9。

表 4:语义相似性和分类结果,将我们的模型与当前最先进的方法进行比较。 该表中的所有任务评估都是使用 GLUE 基准测试完成的。(mc= Mathews 相关性,acc=准确度,pc=Pearson 相关性)

总体而言,我们的方法在我们评估的 12 个数据集中的 9 个数据集中取得了最新的结果,在许多情况下优于集成。我们的结果还表明,我们的方法在不同大小的数据集上都能很好地工作,从较小的数据集如 STS-B(约 5.7k 训练样本)到最大的数据集 - SNLI(约 550k 训练样本)。

5 分析

转移层数的影响 我们观察了将可变层数从无监督预训练转移到监督目标任务的影响。 图 2(左)说明了我们的方法在 MultiNLI 和 RACE 上的性能随传输层数的变化。 我们观察到的标准结果是,传输嵌入提高了性能,并且每个转换器层为 MultiNLI 上的完全传输提供了高达 9% 的进一步优势。 这表明预训练模型中的每一层都包含用于解决目标任务的有用功能。

图 2:(左)从预训练语言模型中转移越来越多的层对 RACE 和 MultiNLI 的影响。 (右)该图显示了不同任务上的零样本性能随 LM 预训练更新的变化。 每个任务的性能在随机猜测基线和当前最先进的单个模型之间进行归一化。

我们想更好地理解为什么Transformer的语言模型预训练是有效的。一个假设是,潜在的生成模型学习执行我们评估的许多任务,以提高其语言建模能力,并且与LSTMs相比,transformer更结构化的注意力记忆有助于迁移。我们设计了一系列启发式解决方案,使用底层的生成模型来执行任务,而无需监督微调。我们在图2(右)中可视化了这些启发式解决方案在生成性预训练过程中的有效性。我们观察到这些试探法的性能是稳定的,并且随着训练稳步增加,这表明生成性预训练支持多种任务相关功能的学习。我们还观察到,LSTM在其零触发性能中表现出更高的方差,表明变压器架构的电感偏置有助于传输。

表 5:不同任务上的各种模型消融分析。 平均。 分数是所有结果的未加权平均值。 (mc= Mathews 相关性,acc=准确度,pc=Pearson 相关性)

对于 CoLA(语言可接受性),示例被评分为生成模型分配的平均标记对数概率,并通过阈值进行预测。 对于SST-2(情感分析),我们将标记very附加到每个示例,并将语言模型的输出分布限制为仅积极和消极的单词,并猜测它分配更高概率的标记作为预测。 对于 RACE(问答),我们选择生成模型在以文档和问题为条件时分配最高平均标记对数概率的答案。 对于 DPRD [46](winograd 模式),我们用两个可能的指代词替换定代词,并预测生成模型在替换后将更高的平均标记对数概率分配给序列的其余部分的分辨率。

消融研究 我们进行了三种不同的消融研究(表 5)。 首先,我们在微调期间检查我们的方法在没有辅助 LM 目标的情况下的性能。 我们观察到辅助目标有助于 NLI 任务和 QQP。 总体而言,趋势表明较大的数据集受益于辅助目标,但较小的数据集则不然。 其次,我们通过将 Transformer 与使用相同框架的单层 2048 单元 LSTM 进行比较来分析 Transformer 的效果。 我们观察到,当使用 LSTM 而不是 Transformer 时,平均分数下降了 5.6。 LSTM 仅在一个数据集(MRPC)上优于 Transformer。 最后,我们还与直接在监督目标任务上训练的变压器架构进行比较,无需进行预训练。 我们观察到,缺乏预训练会损害所有任务的性能,导致与我们的完整模型相比下降 14.8%。

6 结论

我们引入了一个框架,通过生成性预训练和判别性微调,使用与任务无关的单一模型来实现强大的自然语言理解。 通过对具有长连续文本的多样化语料库进行预训练,我们的模型获得了重要的世界知识和处理远程依赖性的能力,然后成功地转移到解决判别性任务,例如问答、语义相似性评估、蕴含确定和 文本分类,提高了我们研究的 12 个数据集中 9 个数据集的最新技术水平。 使用无监督(预)训练来提高判别任务的性能长期以来一直是机器学习研究的一个重要目标。 我们的工作表明,实现显着的性能提升确实是可能的,并提供了关于哪些模型(Transformers)和数据集(具有长期依赖关系的文本)最适合这种方法的提示。 我们希望这将有助于对自然语言理解和其他领域的无监督学习进行新的研究,进一步提高我们对无监督学习如何以及何时发挥作用的理解。

Written on August 14, 2024