🕜论文阅读:Improving language understanding by generative pre-training
2024-1-10
| 2024-1-10
0  |  阅读时长 0 分钟
type
status
password
date
slug
summary
category
URL
tags
icon
模型规格 我们的模型很大程度上遵循了原始transformer模型[62]。我们训练了一个 12 层的Transformer Decode模型(屏蔽的自注意力头由768 维状态和 12 个注意力头组成)。对于位置前馈网络,我们使用了 3072 维内部状态。我们使用了Adam优化器[27],最大学习率为2.5e-4,在前 2000 次更新中,学习率从 0 线性增加;2000次之后,使用余弦调度将学习率降至0。我们在 minibatches=64 的连续序列(包含 512 个token)数据集上训练了 100 个 epoch。由于在整个模型中广泛使用了 layernorm[2],因此只需将权重初始化为即可。我们使用了具有40,000次合并的字节对编码(BPE)词汇表[53],以及残差、入和注意力的dropout设置为为0.1。我们还采用了文献[37]中提出的改进版L2正则化,所有非偏置或增益权重的w=0.01。在激活函数方面,我们使用了高斯误差线性单元(GELU)[18]。我们使用了学习的位置嵌入,而不是原作品中提出的正弦版本。我们使用ftfy 库对BooksCorpus中的原始文本进行了清理,规范了一些标点符号和空白,并使用了spaCy分词器。
转载:张天明 - 博客园

背景

自然语言理解包括诸多不同的任务,如文本关联、问答、语义相似性评估和文档分类。虽然大量未标注的文本语料库随处可见,但用于学习这些特定任务的标注数据却非常匮乏。我们证明,通过在各种未标注文本语料库上对语言模型进行生成性预训练,然后在每个特定任务上进行判别性微调,可以在这些任务上取得巨大的收益。与之前的做法不同,我们在微调期间利用了任务感知的输入转换,以实现有效的迁移,同时只需对模型架构进行最小的更改。

1. 引言

然而,从无标签文本中获取单词级以上的信息具有挑战性,主要有两个原因。首先,目前还不清楚哪种类型的优化目标能最有效地学习有助于迁移的文本表征。最近的研究考察了各种目标,如语言建模[44]、机器翻译[38]、话语连贯性[22],每一种方法都在不同任务上表现出胜过其他方法的效果。其次,对于将这些学习到的表征迁移到目标任务的最有效方法还没有达成共识。现有的技术包括对模型结构进行特定任务的修改[43,44]、使用复杂的学习方案[21]以及添加辅助学习目标[50]。这些不确定性使得为语言处理开发有效的半监督学习方法变得十分困难。
在本文中,我们结合无监督预训练和有监督微调,探索了一种用于语言理解任务的半监督方法。我们的目标是学习一种通用表征,这种表征只需稍加调整即可适用于各种任务。我们假定可以访问大量未标注文本的语料库和几个带有人工标注训练示例(目标任务)的数据集。我们不要求这些目标任务与未标注的语料库属于同一领域。我们采用两阶段训练过程。首先,我们使用未标注数据上的语言建模目标来学习神经网络模型的初始参数。随后,我们使用相应的监督目标将这些参数调整为目标任务的参数。

3. 框架

我们的训练程序包含两个阶段。第一阶段是在大型文本语料库上学习高容量语言模型。随后是一个微调阶段,我们将模型调整为使用标注数据的判别任务。

3.1 无监督预训练

给定一个无监督标记语料库 ,我们使用标准语言建模目标来最大化以下可能性:
其中 是上下文窗口的大小,条件概率 使用参数为 的神经网络进行建模。这些参数使用随机梯度下降进行训练[51]。
在我们的实验中,我们使用多层 Transformer Decoder [34] 作为语言模型。该模型模型如下:
其中 是token序列, 是层数, 是token embedding矩阵, 是position embedding矩阵。
💡
gpt文本输入的token用的,输出用的,使用同一套词向量。bert输入使用,但输出使用另外一个,使用不同的词向量矩阵。

3.2 监督微调

在使用方程 1 中的目标训练模型后,我们将根据有监督的目标任务调整参数。我们假设有一个带标签的数据集,其中每个实例都由一系列输入tokens 和一个标签 组成。输入通过我们预先训练好的模型,得到transformers模块的激活值,然后将其输入到参数为的附加线性输出层,以预测
这为我们提供了以下最大化目标:
我们还发现,将无监督目标函数作为辅助函数进行微调,不仅可以提高有监督模型的泛化能力,而且可以加快收敛速度。这与之前的研究结果[50, 43]一致,他们也观察到辅助目标能提高性能。具体来说,我们优化了以下目标(权重为
总体而言,我们在微调期间仅需要额外的参数,以及分隔符的embedding(详见下文第3.3节)
 
图1:(左)本工作中使用的Transformer 架构和训练目标。(右图)针对不同任务进行微调的输入变换。我们将所有结构化输入转换为token序列,由我们的预训练模型处理,然后是线性+softmax层。
图1:(左)本工作中使用的Transformer 架构和训练目标。(右图)针对不同任务进行微调的输入变换。我们将所有结构化输入转换为token序列,由我们的预训练模型处理,然后是线性+softmax层。

3.3 特定于任务的转换(输入阶段)

对于某些任务,如文本分类,我们可以如上所述直接对模型进行微调。其他一些任务,如问题解答或自言语言推理,则需要结构化的输入,如有序的句子对或文档、问题和答案的三元组。由于我们的预训练模型是在连续的文本序列上进行训练的,因此我们需要进行一些修改才能将其应用到这些任务中。图 1 提供了可视化说明。所有转换都包括添加随机初始化的开始和结束tokens(<s>,<e>)。
  • 自然语言推理:也称为引申任务,我们将前提 p 和假设 h 标记序列连接起来,中间加上分隔符($)。
  • 相似性 对于相似性任务,被比较的两个句子没有固有的顺序。为此,我们将两种顺序全部输入到模型中,生成两个序列表示 ,最后将按元素相加输入线性输出层中。
  • 问答和常识推理 对于这些任务,我们给定一个上下文文档、一个问题 和一组可能的答案。我们将文档上下文和问题与每个可能的答案连接起来,在中间加入分隔符得到,我们的模型独立处理这些序列,然后通过softmax 层进行归一化处理,输出不同答案的概率。

4. 实验

4.1 设置

无监督预训练 我们使用 BooksCorpus 数据集 [71] 来训练语言模型。它包含 7,000 多本未出版书籍,涵盖冒险、奇幻和浪漫等多种类型。关键是,它包含了长段连续的文本,使得生成模型能够学习到依赖长期信息。另一种数据集,1BWord Benchmark,被ELMo[44]使用,大小大约与BooksCorpus相同。但是在句子级别上进行了打乱——破坏了长距离结构。我们的语言模型在这个语料库上实现了非常低的词符级困惑度,为18.4。
💡
困惑度是用来评价语言模型好坏的指标;困惑度越小,也就是模型对句子越不困惑,模型越好。其基本思想是:给测试集的句子赋予较高概率值的语言模型较好。
表 1:我们实验中使用的不同任务和数据集的列表。
表 1:我们实验中使用的不同任务和数据集的列表。
调细节 除非特别说明,否则我们将复用无监督预训练中的超参数设置。我们向分类器添加了0.1的dropout。对于大多数任务,我们使用的学习率为6.25e-5,批量大小为32。我们模型的微调速度很快,大多数情况下3个epochs的训练就足够了。我们使用线性学习率衰减调度策略,其中warmup=0.2%、

4.2 监督微调

我们对各种有监督的任务进行了实验,包括自然语言推理、问题解答、语义相似性和文本分类。其中一些任务是最近发布的 GLUE 多任务基准[64]的一部分,我们利用了该基准。图 1 提供了所有任务和数据集的概览。
自然语言推理 自然语言推理(NLI)任务也称为识别文本引申,包括阅读一对句子,并判断它们之间的关系是引申、矛盾还是中性。虽然最近有很多人对此感兴趣 [58, 35, 44],但由于存在词性蕴涵、核心参照、词法和句法歧义等多种现象,这项任务仍然具有很大的挑战性。我们在五个不同来源的数据集上进行了评估,包括图片说明 (SNLI)、转录语音、流行小说和政府报告 (MNLI)、维基百科文章 (QNLI)、科学考试 (SciTail) 或新闻文章 (RTE)。
表 2 详细列出了我们的模型和之前最先进方法在不同 NLI 任务上的各种结果。在五个数据集中的四个数据集上,我们的方法明显优于基线方法,在 MNLI、SciTail、QNLI 和 SNLI 数据集上,我们的方法比之前的最佳结果分别提高了 1.5%、5%、5.8% 和 0.6%。这表明我们的模型有能力更好地对多个句子进行推理,并处理语言歧义方面的问题。在我们评估的较小数据集之一 RTE(2490 个示例)上,我们的准确率为 56%,低于多任务 biLSTM 模型报告的 61.7%。鉴于我们的方法在较大的 NLI 数据集上表现出色,我们的模型很可能也能从多任务训练中获益,但目前我们尚未对此进行探索。
表 2:自然语言推理任务的实验结果,将我们的模型与当前最先进的方法进行比较。5x 表示 5 个模型的集合。所有数据集均使用准确率作为评估指标。
表 2:自然语言推理任务的实验结果,将我们的模型与当前最先进的方法进行比较。5x 表示 5 个模型的集合。所有数据集均使用准确率作为评估指标。
表 3:问题解答和常识推理的结果,将我们的模型与当前最先进的方法进行比较。9x 表示 9 个模型的组合。
表 3:问题解答和常识推理的结果,将我们的模型与当前最先进的方法进行比较。9x 表示 9 个模型的组合。
问题解答和常识推理 另一项需要单句和多句推理的任务是问题解答。我们使用的是最近发布的 RACE 数据集 [30],该数据集由英语段落组成,并附有初中和高中考试的相关问题。与其他数据集(如 CNN [19] 或 SQuaD [47])相比,该语料库包含了更多推理类型的问题,为我们的模型提供了完美的评估,我们的模型经过训练,可以处理长距离语境。此外,我们还对 "Story Cloze Test”[40]进行了评估,该测试涉及从两个选项中选出多句故事的正确结尾。在这些任务中,我们的模型再次以显著的优势超越了之前的最佳结果--在 Story Cloze 中的得分率高达 8.9%,在 RACE 中的总体得分率为 5.7%。这表明我们的模型能够有效地处理长距离语境。
语义相似性 语义相似性(或意译检测)任务涉及预测两个句子在语义上是否等同。其挑战在于识别概念的重新表述、理解否定以及处理句法歧义。我们在这项任务中使用了三个数据集--微软转述语料库(MRPC)[14](收集自新闻来源)、Quora 问题对(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=马修斯相关性,acc=准确性,pc=皮尔逊相关系数)
表 4:语义相似性和分类结果,将我们的模型与当前最先进的方法进行比较。表中所有任务评估均使用 GLUE 基准。(mc=马修斯相关性,acc=准确性,pc=皮尔逊相关系数)
总体而言,我们的方法在我们评估的 12 个数据集中的 9 个中取得了新的最先进结果,在许多情况下优于集成模型。我们的研究结果还表明,我们的方法适用于不同规模的数据集,从较小的数据集,如STS-B(≈5.7k训练样本)到最大的数据集,如SNLI(≈550k训练样本)。

5 分析

层数转移的影响 我们观察了从无监督预训练中转移不同数量层到有监督目标任务的影响。图2(左)显示了我们的方法在MultiNLI和RACE上的性能与转移层数的函数关系。我们观察到,转入预训练layers可以提高性能,而在MultiNLI测试中,每个transformer层都能进一步提高性能,最高可达9%。这表明,预训练模型中的每一层都包含解决目标任务的有用功能。
图2:(左)将越来越多层从预训练语言模型中转移到RACE和MultiNLI上的效果。(右)图中显示了不同任务的零样本性能变化与LM 预训练更新的函数关系。每个任务的性能在随机猜测基线和当前最先进的单一模型之间进行了归一化处理。
图2:(左)将越来越多层从预训练语言模型中转移到RACE和MultiNLI上的效果。(右)图中显示了不同任务的零样本性能变化与LM 预训练更新的函数关系。每个任务的性能在随机猜测基线和当前最先进的单一模型之间进行了归一化处理。
零样本行为 我们希望更好地理解为什么对transformer进行语言模型预训练是有效的。一种假设是底层生成模型学习执行许多我们在评估过程中的任务,以提高其语言建模能力,并且与LSTM相比,transformer更结构化的注意力记忆有助于转移。我们设计了一系列启发式解决方案,这些解决方案使用底层生成模型在没有监督微调的情况下执行任务。我们在图2(右)中可视化了这些启发式解决方案在生成预训练过程中的有效性。我们观察到这些启发式的性能是稳定的,并且在训练过程中稳步提高,这表明生成式预训练支持各种任务相关功能的学习。我们还观察到LSTM在零样本性能上展示出更高的方差,这表明Transformer架构的归纳偏差有助于迁移。
表5:不同任务的各种模型消融分析。平均得分是所有结果的非加权平均值。(mc=马修斯相关系数,acc=准确性,pc=皮尔逊相关系数)
表5:不同任务的各种模型消融分析。平均得分是所有结果的非加权平均值。(mc=马修斯相关系数,acc=准确性,pc=皮尔逊相关系数)
对于CoLA(语言可接受性),我们根据生成模型输出的平均token对数概率对示例进行评分。对于SST-2(情感分析),我们会在每个示例中附加token very,并将语言模型的输出分布限制在只包含正面和负面词语的范围内,然后猜测其赋予较高概率的标记作为预测结果。对于RACE(问题解答),我们根据文档和问题的条件,选择生成模型分配的平均token对数概率最高的答案。对于 DPRD[46](winograd模式),我们将定代词替换为两个可能的指称,并预测生成模型在替换后为序列其余部分分配的平均标记对数概率较高的分辨率。
消融研究 我们进行了三项不同的消融研究(表5)。首先,我们检查了我们的方法在微调过程中没有辅助LM目标时的性能。我们观察到辅助目标在NLI 任务和QQP 上有所帮助。总的趋势表明,较大的数据集受益于辅助目标,而较小的数据集则不会。其次,我们通过将其与使用相同框架的单层2048单元LSTM进行比较,来分析 Transformer 的效果。我们观察到使用LSTM代替Transformer时平均分数下降了5.6分。LSTM仅在一个数据集(MRPC)上优于Transformer。最后,我们还与直接在监督目标任务上训练的 transformer 架构进行了比较,无需预训练。我们观察到,缺乏预训练会损害所有任务的性能,导致与我们的完整模型相比下降了 14.8%。

6 结论

我们引入了一个框架,通过生成预训练和判别性微调,使用单一任务无关模型实现强大的自然语言理解。通过在包含连续长文本的多样化语料库上进行预训练,我们的模型获得了大量的世界知识和处理长距离依赖关系的能力,然后成功地将这些知识和能力转移到解决判别性任务,如问题回答、语义相似性评估、词义判断和文本分类,提高了我们研究的 12 个数据集中的 9 个的最新技术水平。使用无监督(预)训练来提高判别性任务的性能,长期以来一直是机器学习研究的一个重要目标。我们的工作表明,显著提高性能确实是可能的,并提供了哪些模型(Transformers)和数据集(具有长距离依赖性的文本)最适合采用该方法的线索。我们希望这将有助于为无监督学习的新研究提供帮助,无论是自然语言理解还是其他领域,进一步提高我们对无监督学习如何及何时发挥作用的理解。
  • NLP
  • 旋转编码(RoPE)Armbian Docker Openwrt 旁路由详细设置教程
    Loading...
    目录