摘要
自然语言处理任务,如问答、机器翻译、阅读理解和摘要,通常在任务特定的数据集上使用监督学习来处理。当在一个名为WebText的数百万网页的新数据集上训练时,我们证明了语言模型在没有任何明确监督的情况下开始学习这些任务。在不使用127,000多个训练示例的情况下,当以文档和问题为条件时,语言模型生成的答案在CoQA数据集上达到55的F1值 -匹配或超过4个基线系统中的3个的性能。语言模型的能力对于zero-shot任务迁移的成功至关重要,增加它可以跨任务以对数线性方式提高性能。我们最大的模型GPT-2是一个1.5B参数的Transformer,它在8个测试语言建模数据集中的7个上实现了最先进的结果,但仍然不适合WebText。模型中的样本反映了这些改进,并包含连贯的文本段落。这些发现为构建语言处理系统提供了一条很有希望的途径,该系统可以从自然发生的演示中学习执行任务。
1 简介
机器学习系统现在通过结合使用大型数据集、高容量模型和监督学习(Krizhevsky et al., 2012) (Sutskever et al., 2014) (Amodei et al., 2016),在训练任务上表现出色(预期)。然而,这些系统很脆弱,对数据分布(Recht等人,2018)和任务规范(Kirkpatrick等人,2017)的微小变化很敏感。目前的系统更倾向于由狭隘的专家组成,而不是有能力的通才。我们希望朝着更通用的系统发展,它可以执行许多任务------最终不需要为每个任务手动创建和标记训练数据集。
创建机器学习系统的主要方法是收集训练示例的数据集,展示期望任务的正确行为,训练系统模仿这些行为,然后在独立和同分布(IID)持有的示例上测试其性能。这有助于在狭隘的专家领域取得进展。但是字幕模型(Lake et al., 2017)、阅读理解系统(Jia & Liang, 2017)和图像分类器(Alcorn et al., 2018)在可能输入的多样性和多样性上的不稳定行为凸显了这种方法的一些缺点。
我们怀疑,在单一领域数据集上流行的单一任务训练是当前系统中观察到的缺乏泛化的主要原因。当前体系结构的鲁棒系统发展可能需要在广泛的领域和任务上进行训练和测量性能。最近,已经提出了几个基准,如GLUE (Wang等人,2018)和decaNLP (McCann等人,2018)已经开始研究这一点。
多任务学习(Caruana, 1997)是一个很有前途的框架,可以提高一般表现。然而,NLP的多任务训练仍处于萌芽阶段。最近的工作报告显示了适度的性能改进(Yogatama等人,2019),迄今为止两个最雄心勃勃的努力分别在总共10和17对(数据集,目标)上进行了训练(McCann等人,2018)(Bowman等人,2018)。从元学习的角度来看,每个(数据集,目标)对是从数据集和目标的分布中采样的单个训练样例。
当前的机器学习系统需要成百上千的例子来推导泛化良好的函数。这表明,多任务训练需要同样多的有效训练对,才能实现当前方法的承诺。将数据集的创建和目标设计扩大到可能要求的程度将会非常困难,特别是以当前的技术手段来强行实现这一目标。这促使我们探索执行多任务学习的其他设置。
目前在语言任务上表现最好的系统利用了预训练和监督微调的结合。这一办法有着悠久的历史,有一种趋向于更灵活的转让形式的趋势。刚开始,学习词向量并将其用作任务特定架构的输入(Mikolov等人,2013)(Collobert等人,2011),然后迁移循环网络的上下文表示(Dai & Le, 2015) (Peters等人,2018)。最近的研究表明,不再需要特定于任务的架构,转移许多自注意力块就足够了(Radford等人,2018)(Devlin等人,2018)。
这些方法仍然需要监督训练才能完成任务。当只有最少或没有监督数据时,另一项研究表明语言模型在执行特定任务方面具有潜力,例如常识推理(Schwartz 等,2017)和情感分析(Radford 等,2017)。
在本文中,我们将这两方面的工作联系起来,并继续推动更通用的迁移方法的发展。我们展示了语言模型可以在zero-shot设置下执行下游任务------无需任何参数或架构的修改。我们通过突出语言模型在零样本设置下执行广泛任务的能力,证明了这种方法的潜力。根据任务的不同,我们取得了有前景的、具有竞争力的和最先进的结果。
2. Approach
我们方法的核心是语言建模。语言建模通常被框架为从一组示例 (x1, x2, ..., xn) 中进行无监督的分布估计,每个示例由变量长度的符号序列 (s1, s2, ..., sn) 组成。由于语言具有自然的顺序性,通常将符号的联合概率分解为条件概率的乘积 (Jelinek & Mercer, 1980) (Bengio et al., 2003)。
这种方法使得从 p(x) 以及任何形式的条件概率 p(sn−k, ..., sn|s1, ..., sn−k−1) 进行可处理的抽样和估计成为可能。近年来,计算这些条件概率的模型表达能力有了显著提升,例如自注意力架构如 Transformer (Vaswani 等,2017)。
学习执行单一任务可以在概率框架中表达为估计条件分布 p(output|input)。由于一个通用系统应该能够执行多种不同的任务,即使对于相同的输入,它也应该不仅对输入进行条件化,还应对待执行的任务进行条件化。也就是说,它应该建模 p(output|input, task)。这一点在多任务学习和元学习设置中有不同的形式化。任务条件化通常在架构层面实现,例如 (Kaiser 等,2017) 中的任务特定编码器和解码器,或者在算法层面实现,如 MAML (Finn 等,2017) 的内外循环优化框架。但正如 McCann 等 (2018) 所示,语言提供了一种灵活的方式来将任务、输入和输出都作为符号序列来指定。
例如,一个翻译训练示例可以写成序列 (翻译成法语, 英文文本, 法文文本)。同样,一个阅读理解训练示例可以写成 (回答问题, 文档, 问题, 答案)。McCann 等 (2018) 演示了可以训练一个单一模型 MQAN,以在这种格式的示例上推断并执行多种不同的任务。
语言建模原则上也能够学习 McCann 等 (2018) 的任务,而不需要明确的监督来指明哪些符号是需要预测的输出。由于监督目标与无监督目标相同,只是评估在序列的一个子集上,因此无监督目标的全局最小值也是监督目标的全局最小值。在这个略显简单的设置中,讨论过的密度估计作为一个原则性训练目标的问题被绕开了。问题转而变成我们是否能够在实践中优化无监督目标以达到收敛。初步实验确认,足够大的语言模型能够在这种简单的设置中进行多任务学习,但学习速度远远慢于显式监督的方法。
尽管从上述良好设定到"现实语言"中的复杂性差距很大,Weston (2016) 在对话的背景下主张需要开发能够直接从自然语言中学习的系统,并展示了一个概念验证------通过使用教师输出的前向预测来学习问答任务,而无需奖励信号。虽然对话是一种有吸引力的方法,但我们担心它过于局限。互联网包含大量被动可用的信息,无需互动沟通。我们推测,一个具有足够容量的语言模型将开始学习推断和执行自然语言序列中展示的任务,以便更好地预测这些任务,无论其获取方式如何。如果语言模型能够做到这一点,它将实际上执行无监督的多任务学习。我们通过分析语言模型在零样本设置下对各种任务的表现来测试这一点。
2.1. Training Dataset
大多数先前的研究都在单一文本领域训练语言模型,如新闻文章(Jozefowicz et al., 2016)、维基百科(Merity et al., 2016)或小说(Kiros et al., 2015)。我们的方法则激励我们构建一个尽可能大且多样化的数据集,以收集尽可能多领域和上下文中的自然语言任务示例。
一个有前途的、多样化且几乎无限的文本来源是网络抓取数据,如 Common Crawl。尽管这些档案比当前的语言建模数据集大许多数量级,但它们存在显著的数据质量问题。Trinh 和 Le (2018) 在他们关于常识推理的研究中使用了 Common Crawl,但指出有大量文档"其内容大多难以理解"。Trinh 和 Le (2018) 的最佳结果是使用了 Common Crawl 的一个小子样本,该样本仅包含与他们目标数据集 Winograd Schema Challenge 最相似的文档。尽管这种方法在特定任务上提高了性能,但我们希望避免提前对要执行的任务做出假设。
相反,我们创建了一个新的网络抓取,强调文档质量。为此,我们仅抓取了由人工策划/筛选过的网页。由于手动筛选完整的网络抓取将非常昂贵,因此作为起点,我们抓取了 Reddit(一种社交媒体平台)上所有至少获得 3 个 karma 的外部链接。这可以被视为一个启发式指标,用于判断其他用户是否觉得该链接有趣、富有教育意义或只是搞笑。
生成的数据集 WebText 包含这 4500 万个链接中的文本子集。我们使用 Dragnet (Peters & Lecocq, 2013) 和 Newspaper(https://github.com/codelucas/newspaper)内容提取器的组合来提取 HTML 响应中的文本。本文中展示的所有结果均使用了 WebText 的初步版本,该版本不包括 2017 年 12 月之后创建的链接,并且在去重和一些基于启发式的清理后,包含了略多于 800 万个文档,总共 40 GB 的文本。
我们从 WebText 中移除了所有 Wikipedia 文档,因为它是其他数据集的常见数据源,并且可能由于训练数据与测试评估任务重叠而复杂化分析。
2.2. Input Representation
通用语言模型应该能够计算(并生成)任何字符串的概率。当前的大规模语言模型包括预处理步骤,如小写化、分词和词汇表外的标记,这限制了模型能够处理的字符串空间。尽管像 Gillick 等(2015)所示的以 UTF-8 字节序列处理 Unicode 字符串的方式优雅地满足了这一要求,但在像 One Billion Word Benchmark(Al-Rfou 等,2018)这样的规模数据集上,当前的字节级语言模型仍不如词级语言模型竞争力强。我们在尝试在 WebText 上训练标准字节级语言模型时观察到了类似的性能差距。
字节对编码(BPE)(Sennrich 等,2015)是字符级和词级语言建模之间的一种实际折中方法,它有效地在常见符号序列的词级输入和不常见符号序列的字符级输入之间进行插值。尽管它的名字里包含"字节",参考 BPE 实现通常操作的是 Unicode 码点而不是字节序列。这些实现需要包含所有 Unicode 符号的完整空间,以便对所有 Unicode 字符串进行建模。这将导致在添加任何多符号标记之前形成一个超过 130,000 的基础词汇表。
这个词汇表的大小相对于通常使用的 32,000 到 64,000 的 BPE 词汇表来说过于庞大。相比之下,字节级 BPE 只需要一个大小为 256 的基础词汇表。然而,直接将 BPE 应用于字节序列会因为 BPE 使用贪婪的频率基础启发式方法来构建标记词汇表而导致子optimal的合并。我们观察到 BPE 包括了许多常见单词的不同版本,如"dog",因为它们出现在许多变体中,比如"dog. dog! dog?"。这导致了有限词汇槽和模型容量的分配不佳。为避免这种情况,我们阻止 BPE 在任何字节序列的字符类别之间进行合并。我们为空格添加了一个例外,这显著提高了压缩效率,同时仅对多个词汇标记中的单词造成了最小的碎片化。
这种输入表示方法使我们能够结合词级语言模型的经验优势与字节级方法的通用性。由于我们的方法可以为任何 Unicode 字符串分配概率,这使得我们能够在任何数据集上评估我们的语言模型,而不受预处理、分词或词汇表大小的限制。
2.3. Model
我们使用基于 Transformer(Vaswani 等,2017)的架构来构建我们的语言模型。该模型大致遵循 OpenAI GPT 模型(Radford 等,2018)的细节,但进行了几个修改。层归一化(Ba 等,2016)被移动到每个子块的输入处,类似于预激活残差网络(He 等,2016),并在最终的自注意力块后添加了额外的层归一化。使用了一种修改后的初始化方法,以考虑模型深度对残差路径的积累。我们在初始化时将残差层的权重缩放因子设置为 1/√N,其中 N 是残差层的数量。词汇表扩展至 50,257,并将上下文大小从 512 增加到 1024 个标记,同时使用了更大的批次大小 512。
3. Experiments
我们训练并基准测试了四个大致对数均匀间隔的语言模型。架构总结在表 2 中。最小的模型相当于原始 GPT,而第二小的模型则等同于 BERT(Devlin 等,2018)中的最大模型。我们最大的模型,称为 GPT-2,参数数量比 GPT 多了一个数量级。每个模型的学习率都经过手动调整,以在 WebText 的 5% 留出样本上获得最佳困惑度。尽管如此,所有模型仍然在 WebText 上表现不足,留出困惑度在更多训练时间下尚未改善。
3.1. Language Modeling
作为zero-shot 任务迁移的初步步骤,我们对了解 WebText 语言模型在zero-shot 领域迁移上的表现感兴趣,特别是在它们训练的主要任务------语言建模上的表现。由于我们的模型在字节级别上操作,并且不需要有损的预处理或标记化,我们可以在任何语言模型基准上进行评估。语言建模数据集上的结果通常以平均负对数概率的缩放或指数形式报告,单位通常是字符、字节或单词。
我们通过计算 WebText 语言模型对数据集的对数概率并除以标准单位的数量来评估相同的量度。对于这些数据集中的许多情况,WebText 语言模型会面临显著的分布外测试,需要预测经过严格标准化的文本、标记化伪影(如断开的标点符号和缩写)、打乱的句子,甚至是 WebText 中极为稀有的字符串 <UNK>
,该字符串在 400 亿字节中仅出现 26 次。我们在表 3 中报告了主要结果,使用了可逆的去标记化器,这些去标记化器尽可能去除了这些标记化/预处理伪影。由于这些去标记化器是可逆的,我们仍然可以计算数据集的对数概率,并且可以将其视为一种简单的领域适应形式。我们观察到,使用这些去标记化器,GPT-2 获得 2.5 到 5 的困惑度。
WebText语言模型在不同领域和数据集上的迁移效果良好,在8个数据集中有7个数据集在零样本设置下提升了最先进的性能。在Penn Treebank和WikiText-2等只有100万到200万训练标记的小型数据集上,模型表现出显著的提升。在测量长期依赖的数据集如LAMBADA和Children's Book Test上也有很大改进。然而,在One Billion Word Benchmark上的表现仍然显著不如之前的研究。这可能是由于该数据集既是最大的数据集,又经过了极具破坏性的预处理------1BW的句子级随机化打乱了所有长期结构。
3.2. Children's Book Test
儿童书籍测试(Children's Book Test, CBT)(Hill 等人,2015)旨在考察语言模型在不同类别的词汇上的表现,包括命名实体、名词、动词和介词。与其报告困惑度(perplexity)作为评估指标不同,CBT 使用一个自动构建的填空测试(cloze test),任务是从10个可能的选项中预测正确的词汇。按照原始论文中提出的语言模型方法,我们计算每个选项的概率以及在该选项下句子的其余部分的概率,并预测概率最高的选项。**正如图2所示,随着模型规模的增大,性能稳步提升,缩小了与人类表现的差距。**数据重叠分析显示,CBT 测试集中的一本书《丛林之书》(The Jungle Book)由鲁德亚德·吉卜林(Rudyard Kipling)所著,包含在 WebText 数据集中,因此我们报告了没有显著重叠的验证集结果。GPT-2 在常见名词上取得了93.3%的前所未有的结果,在命名实体上取得了89.1%的结果。我们使用去标记器(de-tokenizer)来移除 CBT 中 PTB 样式的标记化伪影。
3.3. LAMBADA
LAMBADA 数据集(Paperno 等人,2016)测试系统建模长距离依赖的能力。任务是预测句子的最后一个词,这些句子需要至少50个分词的上下文才能让人类成功预测。GPT-2 将困惑度从99.8(Grave 等人,2016)降低到8.6,并将语言模型在此测试上的准确率从19%(Dehghani 等人,2018)提高到52.66%。对 GPT-2 错误的调查显示,大多数预测是句子的有效延续,但不是有效的最终词。这表明语言模型没有利用额外的有用约束,即该词必须是句子的最后一个词。添加停用词过滤器作为一种近似方法,进一步将准确率提高到63.24%,将此任务的整体最先进水平提高了4%。之前的最先进水平(Hoang 等人,2018)使用了不同的限制预测设置,将模型的输出限制为仅在上下文中出现的词。对于 GPT-2,这种限制是有害的而非有益,因为19%的答案不在上下文中。我们使用未经过预处理的数据集版本。
3.4. Winograd Schema Challenge
(简要介绍)Winograd schema challenge(Winograd question)-CSDN博客
(WSC 的任务是判断在给定的上下文中,一个代词(如"他"或"她")指代的是哪个具体对象。每个问题都包括一个句子,其中代词的指代需要通过上下文中的信息来确定。这种挑战旨在测试系统在处理模糊代词时的推理能力,并提供一种比传统的基于统计的方法更为严格的评估标准。)
Winograd Schema Challenge(Levesque 等人,2012)旨在通过测量系统解决文本中的歧义的能力来评估其常识推理能力。最近,Trinh 和 Le(2018)使用语言模型在此挑战中取得了显著进展,通过预测歧义的解决方案来提高准确率。我们遵循他们的问题表述,并在图3中用完整和部分评分技术可视化我们模型的表现。GPT-2 将最先进的准确率提高了7%,达到70.70%。由于数据集仅有273个例子,建议阅读 Trichelair 等人(2018)以帮助理解这一结果。
SOTA: State of the arts
3.5. Reading Comprehension(阅读理解)
对话问答数据集(CoQA)Reddy 等人(2018)包含来自7个不同领域的文档,这些文档与有关文档的自然语言对话配对,其中包含提问者和回答者之间的对话。CoQA 测试了阅读理解能力以及模型回答依赖于对话历史的问题(例如"为什么?")的能力。
在GPT-2上使用贪婪解码,当条件为文档、相关对话历史和最终分词A时,在开发集上的F1得分达到55。这与4个基准系统中的3个相匹配或超过了这些基准系统的表现,而没有使用那些基准系统训练时所用的127,000多个手动收集的问答对。监督学习中的最先进技术,基于BERT的系统(Devlin等人,2018),其F1得分接近89,接近人类水平。尽管GPT-2在没有任何监督训练的情况下的表现令人兴奋,但对其答案和错误的一些检查表明,GPT-2经常使用简单的基于检索的启发式方法,例如在回答"谁"类问题时用文档中的名字。
3.6. Summarization(摘要)
我们在CNN和Daily Mail数据集(Nallapati等人,2016)上测试了GPT-2的摘要能力。为了引导摘要生成行为,我们在文章后添加了文本"TL;DR:",然后使用Top-k随机采样(Fan等人,2018),生成100个标记,其中k=2,这样可以减少重复并鼓励生成比贪婪解码更具抽象性的摘要。我们使用这100个标记中的前三句话作为摘要。虽然从质量上看,生成的内容类似于摘要,如表14所示,但它们通常关注文章中的最新内容,或者混淆具体细节,例如涉及多少辆车的事故,或一个徽标是在帽子上还是在衬衫上。在常用的ROUGE 1、2、L指标上,生成的摘要仅开始接近经典神经基线的表现,并且仅略微优于从文章中随机选择3句话。去除任务提示时,GPT-2在综合指标上的表现下降了6.4分,这表明通过自然语言引导任务特定行为的能力。
3.7. Translation
我们测试了GPT-2是否已经开始学习从一种语言翻译到另一种语言。为了帮助它推断这是期望的任务,我们在上下文中提供了示例对(格式为英语句子 = 法语句子),然后在最终提示为英语句子 = 后,使用贪婪解码从模型中采样,并将第一个生成的句子作为翻译。在WMT-14英语-法语测试集中,GPT-2得到了5 BLEU,这稍微逊色于以前的无监督词汇翻译工作中推断的词汇替换(Conneau等人,2017b)。在WMT-14法语-英语测试集中,GPT-2能够利用其强大的英语语言模型显著提高表现,获得了11.5 BLEU。这超越了几种无监督机器翻译基线(Artetxe等人,2017;Lample等人,2017),但仍然远远低于当前最佳无监督机器翻译方法(Artetxe等人,2019)的33.5 BLEU。这个任务的表现让我们感到意外,因为我们故意在过滤步骤中移除了WebText中的非英语网页。为了确认这一点,我们在WebText上运行了一个字节级语言检测器,该检测器仅检测到10MB的法语数据,这大约是之前无监督机器翻译研究中常见的单语法语语料库的500倍小。
3.8. Question Answering
测试语言模型中包含的信息的一种潜在方法是评估其生成正确答案的频率。之前在所有信息都存储在参数中的神经系统中展示这种行为(如A Neural Conversational Model(Vinyals & Le, 2015))由于缺乏高质量评估数据集而仅报告了定性结果。最近推出的Natural Questions数据集(Kwiatkowski et al., 2019)是一个有前途的资源,可以更定量地测试这一点。类似于翻译,将语言模型的上下文注入示例问题答案对可以帮助模型推断数据集的短答案风格。GPT-2在使用通常用于阅读理解数据集(如SQUAD)的精确匹配度量进行评估时,正确回答了4.1%的问题。作为对比,最小的模型在每种问题类型(如谁、什么、哪里等)中最常见的答案的简单基线准确率不超过1.0%。GPT-2正确回答了5.3倍的问题,表明模型容量在神经系统在这种任务上的差表现中是一个主要因素。GPT-2对其生成答案分配的概率经过良好校准,GPT-2在最自信的1%问题上的准确率为63.1%。表5中显示了GPT-2在开发集问题上生成的30个最自信的答案。GPT-2的表现仍远远低于开放领域问答系统中30%到50%的范围,这些系统将信息检索与抽取文档问答结合使用(Alberti et al., 2019)。
4. Generalization vs Memorization
近期在计算机视觉领域的研究表明,常见的图像数据集中包含了非平凡数量的近重复图像。例如,CIFAR-10中训练集和测试集之间有3.3%的重叠(Barz & Denzler, 2019)。这导致了对机器学习系统泛化性能的过度报告。随着数据集规模的增加,这个问题变得越来越可能,这也暗示类似的现象可能发生在WebText中。因此,重要的是分析测试数据中有多少也出现在训练数据中。
为研究这一问题,我们创建了包含WebText训练集标记的8-grams的Bloom过滤器。为了提高召回率,我们将字符串标准化为仅包含小写字母和数字字符,并使用单个空格作为分隔符。Bloom过滤器的构造使得假阳性率的上限为 。我们进一步通过生成100万个字符串进行验证,结果发现过滤器没有检测到任何一个字符串。
这些Bloom过滤器使我们能够计算给定数据集中有多少8-grams也出现在WebText训练集中。表6展示了对常见语言模型基准测试集的重叠分析。常见语言模型数据集的测试集与WebText训练集的重叠率在1%到6%之间,平均重叠率为3.2%。令人有些惊讶的是,许多数据集与其自身的训练集重叠率更高,平均为5.9%。
我们的方法优化了召回率。尽管手动检查这些重叠部分显示了许多常见的短语,但也存在许多由于数据重复而导致的较长匹配。这种情况不仅限于WebText。例如,我们发现WikiText-103的测试集中有一篇文章也出现在训练数据集中。由于测试集中只有60篇文章,因此至少有1.6%的重叠。更令人担忧的是,根据我们的方法,1BW与其自身训练集的重叠率接近13.2%。
在Winograd Schema Challenge中,我们发现只有10个模式与WebText训练集有8-gram重叠。其中,2个是虚假的匹配。在剩下的8个中,仅有1个模式出现在任何泄露答案的上下文中。
对于CoQA,新闻领域约有15%的文档已经出现在WebText中,模型在这些文档上的F1得分提高了约3分。CoQA的开发集指标报告了5个不同领域的平均表现,我们测得由于各领域间的重叠,F1得分提高了约0.5-1.0分。然而,由于CoQA在WebText链接的截止日期之后发布,因此WebText中没有实际的训练问题或答案。
在LAMBADA上,平均重叠率为1.2%。GPT-2在重叠率超过15%的示例上,表现出约2的困惑度提升。排除所有有重叠的示例后重新计算指标,困惑度从8.6降至8.7,准确率从63.2%降至62.9%。这个非常小的结果变化可能是由于只有每200个示例中有1个具有显著重叠。
总体而言,我们的分析表明,WebText训练数据与特定评估数据集之间的数据重叠对报告结果提供了小但一致的好处。然而,对于大多数数据集,我们并未发现比标准训练集和测试集之间已有的重叠显著更大,正如表6所强调的那样。
理解和量化高度相似的文本对性能的影响是一个重要的研究问题。更好的去重技术,例如可扩展的模糊匹配,也有助于更好地回答这些问题。目前,我们建议在创建新的NLP数据集的训练和测试划分时,使用基于n-gram重叠的去重方法作为一个重要的验证步骤和理智检查。
另一种确定WebText语言模型性能是否由于记忆化造成的方法是检查它们在自身保留数据集上的表现。如图4所示,WebText的训练集和测试集上的表现相似,并且随着模型规模的增加而共同提高。这表明,即使是GPT-2在WebText上在许多方面仍然存在欠拟合。
GPT-2也能够撰写关于发现会说话的独角兽的新闻文章。表13中提供了一个例子
5. Related Work
这项工作的一个重要部分测量了在更大数据集上训练的更大语言模型的性能。这类似于Jozefowicz等人(2016年)的研究,他们在10亿词基准上扩展了基于RNN的语言模型。Bajgar等人(2016年)也通过从古腾堡计划中创建一个更大的训练数据集来补充标准训练数据集,从而在《儿童书籍测试》中取得了更好的结果。Hestness等人(2017年)对各种深度学习模型的性能如何随模型容量和数据集大小变化进行了全面分析。尽管我们的实验在任务间噪声较大,但结果表明类似的趋势在目标的子任务中也存在,并且这种趋势延续到了超过10亿参数的范围。
之前已经记录了一些生成模型中的有趣学习功能,例如RNN语言模型中的单元能够执行行宽跟踪和引用/评论检测(Karpathy等人,2015年)。对我们工作更具启发性的是Liu等人(2018年)观察到的现象:一个训练生成维基百科文章的模型也学会了在不同语言之间翻译名字
之前的工作探讨了过滤和构建大规模网页文本语料库的替代方法,例如iWeb语料库(Davies,2018年)。
在语言任务的预训练方法上已有大量工作。除了介绍中提到的,GloVe(Pennington等人,2014年)将词向量表示学习扩展到了整个Common Crawl数据集。对文本深度表示学习的早期有影响的工作是Skip-thought Vectors(Kiros等人,2015年)。McCann等人(2017年)探讨了利用机器翻译模型生成的表示,Howard和Ruder(2018年)改进了RNN基础的微调方法(Dai和Le,2015年)。Conneau等人(2017年a)研究了自然语言推理模型学习的表示的迁移性能,而Subramanian等人(2018年)则探讨了大规模多任务训练。
(Ramachandran等人,2016年) 证明了seq2seq模型通过使用预训练语言模型作为编码器和解码器进行初始化会带来好处。最近的研究表明,当对困难的生成任务(如闲聊对话和基于对话的问题回答系统)进行微调时,语言模型的预训练也非常有帮助(Wolf等人,2019年;Dinan等人,2018年)。
6. Discussion
大量研究已致力于学习(Hill等人,2016年)、理解(Levy & Goldberg,2014年)和批判性评估(Wieting & Kiela,2019年)监督和无监督预训练方法的表示。我们的结果表明,无监督任务学习是一个值得进一步探索的有前景的研究领域。这些发现可能有助于解释预训练技术在下游NLP任务中广泛成功的原因,因为我们展示了在极限情况下,这些预训练技术开始直接学习执行任务,而无需监督适应或修改。
在阅读理解任务中,GPT-2在zero-shot设置下的表现与监督基线相当。然而,在如总结等其他任务上,尽管它在定性上能执行任务,但根据定量指标,其表现仍然仅是初步的。尽管这一研究结果有一定的启示性,但在实际应用中,GPT-2的zero-shot性能仍远未达到可用水平。
我们研究了 WebText 语言模型在许多标准自然语言处理任务上的zero-shot 性能,但还有许多额外的任务可以进行评估。毫无疑问,存在许多实际任务中 GPT-2 的表现仍然不如随机预测。即使在我们评估的常见任务中,例如问答和翻译,语言模型只有在具备足够的能力时,才会开始超越简单的基准线。
虽然zero-shot 性能为 GPT-2 在许多任务上的潜在表现建立了基准,但尚不清楚通过微调能达到的上限。在某些任务中,GPT-2 的完全抽象输出与当前在许多问答和阅读理解数据集上处于最前沿的基于抽取指针网络(Vinyals 等,2015)的输出相比,有显著的不同。
鉴于微调 GPT 取得的先前成功,我们计划在像 decaNLP 和 GLUE 这样的基准上进行微调,特别是因为尚不清楚 GPT-2 的额外训练数据和容量是否足以克服 BERT(Devlin 等,2018)所展示的单向表示的低效性。
7. Conclusion
当一个大型语言模型在足够大且多样的数据集上进行训练时,它能够在许多领域和数据集上表现优异。GPT-2 在 8 个测试的语言建模数据集中有 7 个达到了最先进的性能。模型在zero-shot 设置下能够执行的任务多样性表明,高容量的模型在训练时最大化对足够多样的文本语料库的似然时,开始学会在没有明确监督的情况下执行大量任务。
Text Memorization
我们观察到,GPT-2 在长字符串中存在一定的记忆行为,尤其是在数据集中重复多次的著名引用或演讲中。例如,当以《葛底斯堡演说》的前一句半作为条件时(该演说在WebText中出现约40次),GPT-2 的 argmax 解码能够恢复出这篇演讲。即使在采样时没有截断,我们发现模型会在一段时间内复制这篇演讲,然后才开始偏离,尽管风格相似。通常它会在100-200个分词内发生偏离,并在偏离后显示出更大的多样性。为了量化这种精确记忆出现的频率,我们从GPT-2生成了以WebText测试集文章为条件的样本,并比较了GPT-2生成的文本与真实完成的重叠率。分析结果显示,GPT-2重复训练集中的文本的频率低于持出文章的基准率。
图5。对于WebText测试集和样本(以WebText测试集为条件,k = 40的top-k截断随机抽样),与WebText训练集重叠百分比8克的CDF。大多数样本的重叠小于1%,其中超过30%的样本没有重叠,而测试集的中位数为2.6%重叠