【深度学习】GPT-2,Language Models are Unsupervised Multitask Learners,【语言建模】

论文:https://d4mucfpksywv.cloudfront.net/better-language-models/language_models_are_unsupervised_multitask_learners.pdf

文章目录

      • 摘要
      • 引言
      • 方法
      • 2.1 训练数据集
      • 2.2 输入表示
      • 2.3 模型
      • 3. 实验
      • 3.1 语言建模
      • 3.2 Children’s Book Test
      • 3.3 LAMBADA
      • 3.4 Winograd Schema Challenge
      • 3.5 阅读理解
      • 3.6 摘要生成
      • 3.7 翻译
      • 3.8 问答
      • 4. 泛化与记忆
      • 5. 相关工作
      • 6. 讨论
      • 7. 结论
      • GPT-2 论文总结

摘要

自然语言处理任务,如问答、机器翻译、阅读理解和摘要生成,通常通过在特定任务的数据集上进行监督学习来实现。我们展示了当在一个包含数百万网页的新数据集WebText上进行训练时,语言模型在没有任何明确监督的情况下开始学习这些任务。以文档加问题作为条件,语言模型生成的答案在CoQA数据集上达到了55 F1分数——在没有使用超过127,000个训练样例的情况下,匹配或超过了四个基线系统中的三个系统的表现。语言模型的容量对零样本任务转移的成功至关重要,并且随着容量的增加,任务的表现以对数线性方式提高。我们最大的模型GPT-2是一个1.5B参数的Transformer,它在零样本设置下在测试的八个语言建模数据集中七个上达到了最新的结果,但仍未能完全拟合WebText。模型生成的样本反映了这些改进,并包含连贯的段落文本。这些发现表明了一条有前途的路径,即构建能够从自然发生的示范中学习执行任务的语言处理系统。

引言

机器学习系统现在在使用大规模数据集、高容量模型和监督学习来训练的任务上表现出色(Krizhevsky et al., 2012)(Sutskever et al., 2014)(Amodei et al., 2016)。然而,这些系统对数据分布的细微变化(Recht et al., 2018)和任务规范的变化(Kirkpatrick et al., 2017)非常敏感。当前的系统更适合作为狭窄的专家,而不是称职的通才。我们希望朝着能够执行多种任务的更通用系统发展——最终不需要为每个任务手动创建和标注训练数据集。

创建机器学习系统的主要方法是收集一个展示正确行为的训练样本数据集,训练一个系统来模仿这些行为,然后在独立同分布(IID)的保留样本上测试其表现。这在使狭窄专家领域取得进展方面效果很好。但是,字幕模型(Lake et al., 2017)、阅读理解系统(Jia & Liang, 2017)和图像分类器(Alcorn et al., 2018)在面对多样化输入时的行为经常不稳定,这突显了这种方法的一些缺点。

我们怀疑单任务训练在单一领域数据集上的普遍性是当前系统缺乏泛化能力的一个主要原因。朝着稳健系统进展的可能路径是在广泛的领域和任务上进行训练和测量表现。最近,提出了几个基准测试,如GLUE(Wang et al., 2018)和decaNLP(McCann et al., 2018),以开始研究这一点。

多任务学习(Caruana, 1997)是提高总体表现的一个有希望的框架。然而,自然语言处理中的多任务训练仍处于初期阶段。最近的工作报告了适度的性能改进(Yogatama et al., 2019),到目前为止最雄心勃勃的两个努力分别在总共10和17个(数据集,目标)对上进行了训练(McCann et al., 2018)(Bowman et al., 2018)。从元学习的角度来看,每个(数据集,目标)对是从数据集和目标分布中抽样的一个单一训练样本。当前的机器学习系统需要数百到数千个样本才能诱导出泛化良好的函数。这表明,多任务训练可能也需要同样多的有效训练对才能实现其在当前方法上的承诺。随着数据集创建和目标设计规模的不断扩大,要用当前技术来强行实现这一目标将非常困难。这促使我们探索其他的多任务学习设置。

当前在语言任务上表现最好的系统利用了预训练和监督微调相结合的方法。这种方法有着悠久的历史,并且有一种趋势,转向更灵活的传递形式。首先,学习词向量并将其用作特定任务架构的输入(Mikolov et al., 2013)(Collobert et al., 2011),然后传递递归网络的上下文表示(Dai & Le, 2015)(Peters et al., 2018),最近的工作表明,特定任务的架构不再必要,传递许多自注意力块就足够了(Radford et al., 2018)(Devlin et al., 2018)。这些方法仍然需要监督训练才能执行任务。当只有最少或没有监督数据时,另一系列工作展示了语言模型在执行特定任务(如常识推理(Schwartz et al., 2017)和情感分析(Radford et al., 2017))方面的前景。

在本文中,我们将这两条工作线联系起来,并继续更通用传递方法的趋势。我们展示了语言模型可以在零样本设置下执行下游任务——无需任何参数或架构修改。通过强调语言模型在零样本设置下执行多种任务的能力,我们展示了这种方法的潜力。我们在不同的任务上取得了有前景的、竞争性的和最新的结果。

方法

我们方法的核心是语言建模。语言建模通常被框定为从一组样本( x 1 , x 2 , . . . , x n x_1, x_2, ..., x_n x1,x2,...,xn),每个样本由可变长度的符号序列( s 1 , s 2 , . . . , s n s_1, s_2, ..., s_n s1,s2,...,sn)组成的无监督分布估计。由于语言具有自然的顺序,通常将符号上的联合概率分解为条件概率的乘积(Jelinek & Mercer, 1980)(Bengio et al., 2003):

p ( x ) = ∏ i = 1 n p ( s i ∣ s 1 , . . . , s i − 1 ) p(x) = \prod_{i=1}^{n} p(s_i | s_1, ..., s_{i-1}) p(x)=i=1np(sis1,...,si1)

这种方法允许从 p ( x ) p(x) p(x)以及任何形式为 p ( s n − k , . . . , s n ∣ s 1 , . . . , s n − k − 1 ) p(s_{n-k}, ..., s_n | s_1, ..., s_{n-k-1}) p(snk,...,sns1,...,snk1)的条件概率进行可行的采样和估计。近年来,能够计算这些条件概率的模型在表现力方面有了显著的改进,如自注意力架构如Transformer(Vaswani et al., 2017)。

学习执行单个任务可以在概率框架中表示为估计条件分布 p ( o u t p u t ∣ i n p u t ) p(output|input) p(outputinput)。由于一个通用系统应能够执行多种不同任务,即使对于相同的输入,它也应以任务为条件。即,它应建模 p ( o u t p u t ∣ i n p u t , t a s k ) p(output|input,task) p(outputinput,task)。这在多任务和元学习设置中已被不同形式化。任务条件通常在架构层次上实现,如(Kaiser et al., 2017)中的特定任务编码器和解码器,或在算法层次上如MAML(Finn et al., 2017)的内外循环优化框架。但正如McCann et al.(2018)所示,语言提供了一种灵活的方式,将任务、输入和输出都指定为符号序列。例如,一个翻译训练样本可以写成序列(translate to french, english text, french text)。同样,一个阅读理解训练样本可以写成(answer the question, document, question, answer)。McCann et al.(2018)展示了可以训练一个模型,MQAN,来推断和执行这种格式的许多不同任务。

语言建模原则上也能够在没有明确监督的情况下学习McCann et al.(2018)的任务。由于监督目标与无监督目标相同,但仅在序列的子集上进行评估,因此无监督目标的全局最小值也是监督目标的全局最小值。在这个略显玩具的设置中,避免了(Sutskever et al., 2015)中讨论的密度估计作为原则性训练目标的问题。问题变成了我们是否能够在实践中将无监督目标优化到收敛。初步实验证实,足够大的语言模型能够在这个略显玩具的设置中执行多任务学习,但学习速度比明确监督的方法要慢得多。

虽然从上述定义明确的设置到“野外语言”的混乱是一个很大的跨越,但Weston(2016)在对话的背景下,论证了开发能够直接从自然语言学习系统的必要性,并展示了一个概念验证——通过预测教师输出学习QA任务,而无需奖励信号。虽然对话是一个有吸引力的方法,我们担心它过于限制。互联网包含大量信息,这些信息是被动可用的,无需互动交流。我们的猜测是,一个具有足够容量的语言模型将开始学习推断和执行在自然语言序列中示范的任务,以更好地预测它们,而不管其获取方法。如果语言模型能够做到这一点,它实际上将执行无监督多任务学习。我们通过分析语言模型在零样本设置下在各种任务上的表现来测试是否是这种情况。

在这里插入图片描述

2.1 训练数据集

大多数以往的工作在单一领域的文本上训练语言模型,例如新闻文章(Jozefowicz et al., 2016)、Wikipedia(Merity et al., 2016)或小说(Kiros et al., 2015)。我们的方法旨在构建尽可能大且多样化的数据集,以收集尽可能多样的领域和上下文中的自然语言任务示例。

一个有希望的多样化和几乎无限的文本来源是网络抓取,如Common Crawl。虽然这些档案比当前的语言建模数据集大几个数量级,但它们存在显著的数据质量问题。Trinh & Le(2018)在他们的常识推理工作中使用了Common Crawl,但指出大量文档“内容大多无法理解”。在我们的初步实验中也观察到了类似的数据问题,例如:

“I’m not the cleverest man in the world, but like they say in French: Je ne suis pas un imbecile [I’m not a fool]. In an now-deleted post from Aug. 16, Soheil Eid, Tory candidate in the riding of Joliette, wrote in French: ‘Mentez mentez, il en restera toujours quelque chose,’ which translates as, ‘Lie lie and something will always remain.’”

为了提高数据质量,我们创建了一个新的网络抓取,重点是文档质量。为此,我们仅抓取了经过人工筛选/过滤的网页。手动过滤整个网络抓取将非常昂贵,所以我们作为起点,抓取了来自社交媒体平台Reddit的所有外部链接,这些链接至少获得了3个karma。这可以被视为其他用户是否觉得该链接有趣、教育性或仅仅有趣的启发性指标。

结果数据集WebText包含这些4500万个链接的文本子集。为了从HTML响应中提取文本,我们使用了Dragnet(Peters & Lecocq, 2013)和Newspaper1内容提取器的组合。本文中呈现的所有结果均使用了WebText的初步版本,该版本不包括2017年12月之后创建的链接,经过去重和一些基于启发式的清理后,包含稍多于800万个文档,总共40 GB文本。我们移除了WebText中的所有Wikipedia文档,因为它是其他数据集的常见数据源,可能会因训练数据与测试评估任务重叠而导致分析复杂化。

2.2 输入表示

一个通用的语言模型(LM)应该能够计算任何字符串的概率(并生成任何字符串)。当前的大规模LMs包括预处理步骤,如小写处理、分词和处理超出词汇表的词,这限制了可建模字符串的空间。虽然将Unicode字符串作为UTF-8字节序列进行处理优雅地满足了这个要求,如Gillick et al.(2015)的工作所示,但当前的字节级LMs在像One Billion Word Benchmark(Al-Rfou et al., 2018)这样的大规模数据集上与词级LMs竞争力不强。在我们自己尝试在WebText上训练标准字节级LMs时也观察到了类似的性能差距。

Byte Pair Encoding(BPE)(Sennrich et al., 2015)是字符和词级语言建模之间的一个实际中间点,它有效地在频繁符号序列的词级输入和不频繁符号序列的字符级输入之间进行插值。尽管其名称如此,参考BPE实现通常在Unicode代码点上操作,而不是字节序列。这些实现将需要包括Unicode符号的全部空间以便对所有Unicode字符串进行建模。这将在添加任何多符号标记之前产生超过130,000的基础词汇量。这与BPE通常使用的32,000到64,000标记词汇量相比是不可接受的。相比之下,字节级BPE仅需要256大小的基础词汇量。然而,直接将BPE应用于字节序列会由于BPE使用基于频率的贪心启发式来构建标记词汇而导致次优合并。我们观察到BPE包括许多常见词的多个版本,因为它们在许多变体中出现,如dog. dog! dog?。这导致了有限词汇槽和模型容量的次优分配。为了避免这种情况,我们防止BPE跨字符类别合并任何字节序列。我们为空格添加了一个例外,这显著提高了压缩效率,同时仅增加了单词在多个词汇标记中的最小碎片化。

这种输入表示允许我们结合词级LMs的经验效益和字节级方法的通用性。由于我们的方法可以对任何Unicode字符串分配概率,这使我们能够在任何数据集上评估我们的LMs,无论预处理、分词或词汇大小如何。

2.3 模型

我们使用基于Transformer(Vaswani et al., 2017)架构的语言模型。该模型大体上遵循OpenAI GPT模型(Radford et al., 2018)的细节,但有一些修改。层归一化(Ba et al., 2016)被移到了每个子块的输入处,类似于预激活残差网络(He et al., 2016),并在最终自注意力块之后添加了额外的层归一化。使用了一种修改的初始化方法,考虑了随模型深度在残差路径上的累积。在初始化时我们按 1 / √ N 1/√N 1/√N的因子缩放残差层的权重,其中N是残差层的数量。词汇量扩展到50,257。我们还将上下文大小从512增加到1024个标记,并使用了512的更大批量。

3. 实验

我们训练并基准测试了四个具有大约对数均匀分布大小的语言模型。架构总结在表2中。最小的模型相当于原始GPT,第二小的模型相当于BERT(Devlin et al., 2018)的最大模型。我们最大的模型,称为GPT-2,比GPT多了一个数量级以上的参数。每个模型的学习率都经过手动调整,以在5%的WebText保留样本上获得最佳困惑度。所有模型仍然未能完全拟合WebText,随着更多训练时间,保留困惑度有所改善。

3.1 语言建模

作为实现零样本任务迁移的初步步骤,我们希望了解WebText语言模型在零样本领域迁移中对其主要任务——语言建模的表现。由于我们的模型在字节级别操作,不需要有损的预处理或分词,我们可以在任何语言模型基准上评估它。语言建模数据集的结果通常以平均负对数概率的缩放或指数化版本来报告——通常是字符、字节或单词的预测单位。我们通过计算数据集根据WebText语言模型的对数概率并除以规范单位的数量来评估相同的数量。对于许多这些数据集,WebText语言模型将被显著地测试出分布,需要预测高度标准化的文本、如断开的标点符号和缩写的分词工件、打乱的句子,甚至是极其罕见的字符串——在WebText中仅出现了26次(在400亿字节中)。我们在表3中报告了使用可逆去标记器的主要结果,这些去标记器尽可能移除了这些分词/预处理工件。由于这些去标记器是可逆的,我们仍然可以计算数据集的对数概率,它们可以被视为一种简单的领域适应形式。对于GPT-2,这些去标记器带来了2.5到5的困惑度提升。

WebText语言模型在跨领域和数据集的迁移上表现良好,在零样本设置下改进了8个数据集中的7个的最新结果。在小数据集上,如只有1到2百万训练标记的Penn Treebank和WikiText-2上,取得了较大的改进。在用于测量长期依赖的数据集上,如LAMBADA(Paperno et al., 2016)和Children’s Book Test(Hill et al., 2015),也取得了显著改进。我们的模型在One Billion Word Benchmark(Chelba et al., 2013)上的表现仍显著低于先前的工作。这可能是由于它是最大的训练数据集之一,并且具有一些最具破坏性的预处理——1BW的句子级别打乱移除了所有长距离结构。

3.2 Children’s Book Test

Children’s Book Test(CBT)(Hill et al., 2015)被创建用于检查语言模型在不同类别词汇上的表现:命名实体、名词、动词和介词。CBT不是报告困惑度作为评估指标,而是在自动构建的完形填空测试上报告准确率,任务是预测省略词的10个可能选择中哪个是正确的。按照原始论文中引入的语言模型方法,我们计算根据语言模型每个选择和句子的概率,并预测概率最高的那个。正如图2所示,随着模型大小的增加,表现稳步提高,并在此测试中缩小了与人类表现的大部分差距。数据重叠分析显示,CBT测试集中的一本书,鲁德亚德·吉卜林的《丛林之书》,在WebText中,因此我们报告没有显著重叠的验证集结果。GPT-2在常见名词上达到了93.3%的最新结果,在命名实体上达到了89.1%。去标记器用于移除CBT中的PTB风格分词工件。

3.3 LAMBADA

LAMBADA数据集(Paperno et al., 2016)测试系统建模文本长期依赖关系的能力。任务是预测需要至少50个标记上下文才能成功预测的句子的最后一个词。GPT-2将最新结果从99.8(Grave et al., 2016)提高到8.6困惑度,并将语言模型在此测试上的准确率从19%(Dehghani et al., 2018)提高到52.66%。调查GPT-2的错误显示,大多数预测是句子的有效延续,但不是有效的最后一个词。这表明语言模型没有使用额外的有用约束,即词必须是句子的最后一个词。添加一个停用词过滤器作为此的近似进一步将准确率提高到63.24%,在此任务上整体提高了4%。先前的最新结果(Hoang et al., 2018)使用了一种不同的受限预测设置,模型的输出仅限于上下文中出现的词。对于GPT-2,这种限制是有害而不是有帮助的,因为19%的答案不在上下文中。我们使用的是未预处理的数据集版本。

3.4 Winograd Schema Challenge

Winograd Schema挑战(Levesque et al., 2012)旨在通过测量系统解决文本中歧义的能力来评估其常识推理能力。最近Trinh & Le(2018)通过预测歧义的解决方案的概率展示了在此挑战上的显著进展。我们遵循他们的问题表述,并在图3中通过完整和部分评分技术可视化我们的模型表现。GPT-2将最新准确率提高了7%,达到70.70%。由于数据集非常小,只有273个样本,因此我们建议阅读Trichelair et al.(2018)以帮助理解这一结果。

3.5 阅读理解

Conversation Question Answering数据集(CoQA)(Reddy et al., 2018)包括来自7个不同领域的文档与关于文档的问答对话。CoQA测试阅读理解能力以及模型回答依赖于对话历史的问题(如“为什么?”)的能力。当根据文档、相关对话历史和最后一个标记A:贪婪解码时,GPT-2在开发集上达到55 F1。这在没有使用127,000多个手动收集的问答对的情况下匹配或超过了4个基线系统中的3个。最新的监督学习方法,基于BERT的系统(Devlin et al., 2018),接近89 F1的人类表现。尽管GPT-2在没有任何监督训练的系统上表现令人兴奋,但检查其答案和错误表明,GPT-2经常使用简单的基于检索的启发式方法,例如在回答“谁”问题时用文档中的名字回答。

3.6 摘要生成

我们测试了GPT-2在CNN和Daily Mail数据集(Nallapati et al., 2016)上执行摘要生成的能力。为了引导摘要生成行为,我们在文章后添加了文本“TL;DR:”,并使用Top-k随机采样(Fan et al., 2018)生成100个标记,k=2,这减少了重复并鼓励更抽象的摘要,而不是贪婪解码。我们使用这100个标记中的前3个生成的句子作为摘要。尽管从质量上看,生成的文本类似于摘要,如表14所示,但它们通常集中在文章的最新内容上,或混淆了具体细节,例如有多少辆车涉及车祸,或徽标是在帽子上还是在衬衫上。在常见的ROUGE 1,2,L指标上,生成的摘要仅开始接近经典神经基线的表现,刚刚超出从文章中选择的3个随机句子。去掉任务提示后,GPT-2的表现下降了6.4分,这表明通过自然语言调用任务特定行为的能力。

3.7 翻译

我们测试了GPT-2是否已经开始学习如何在不同语言之间翻译。为了帮助它推断这是所需的任务,我们将语言模型置于一系列格式为english sentence = french sentence的示例对上下文中,然后在最后一个提示english sentence =之后进行贪婪解码,并使用生成的第一个句子作为翻译。在WMT-14英法测试集上,GPT-2获得了5 BLEU,这略低于以前无监督词翻译工作中推断的双语词典逐字替换。在WMT-14法英测试集上,GPT-2能够利用其非常强大的英文语言模型表现显著更好,达到了11.5 BLEU。这超过了几种无监督机器翻译基线(Artetxe et al., 2017; Lample et al., 2017),但仍远低于当前最好的无监督机器翻译方法的33.5 BLEU(Artetxe et al., 2019)。此任务的表现令我们惊讶,因为我们在过滤步骤中故意移除了非英语网页。为了确认这一点,我们在WebText上运行了一个字节级语言检测器,它检测到仅有10MB的法语数据,这大约是以往无监督机器翻译研究中常用的法语语料库的500倍。

3.8 问答

评估语言模型生成正确答案的频率是一种潜在的方法,可以测试语言模型包含的信息。以前展示神经系统这种行为的例子,如A Neural Conversational Model(Vinyals & Le, 2015),由于缺乏高质量评估数据集,仅报告了定性结果。最近引入的

Natural Questions数据集(Kwiatkowski et al., 2019)是测试这一点的有希望的资源。类似于翻译,语言模型的上下文通过问答对的示例来初始化,帮助模型推断数据集的简短答案风格。在按阅读理解数据集如SQUAD常用的精确匹配指标评估时,GPT-2正确回答了4.1%的问题。作为对比点,最小的模型没有超过一个极其简单的基线的1.0%准确率,该基线为每个问题类型(谁,什么,哪里等)返回最常见的答案。GPT-2正确回答的问题是最小模型的5.3倍,这表明模型容量是神经系统在这类任务上表现不佳的主要因素。GPT-2为其生成的答案分配的概率是校准良好的,并且在其最有信心的1%的问题上准确率为63.1%。GPT-2在开发集问题上生成的30个最有信心的答案显示在表5中。GPT-2的表现仍然远远低于开放域问答系统在信息检索与抽取文档问答混合时的30%到50%的范围(Alberti et al., 2019)。

4. 泛化与记忆

最近在计算机视觉领域的工作表明,常见的图像数据集包含大量接近重复的图像。例如,CIFAR-10的训练和测试图像之间有3.3%的重叠(Barz & Denzler, 2019)。这导致了机器学习系统泛化性能的过度报告。随着数据集规模的增加,这个问题变得越来越可能,这表明WebText可能也发生了类似的现象。因此,分析测试数据在训练数据中出现的频率很重要。

为此,我们创建了包含WebText训练集标记的8-gram的Bloom过滤器。为了提高召回率,字符串被规范化为只包含小写字母和数字单词,以单个空格作为分隔符。Bloom过滤器的构造使得假阳性率的上限为 1 / 1 0 8 1/10^8 1/108。我们通过生成100万个字符串进一步验证了低假阳性率,其中零个被过滤器找到。

这些Bloom过滤器让我们能够计算,对于给定的数据集,来自该数据集的8-gram在WebText训练集中也找到的百分比。表6显示了常见语言模型基准测试集的重叠分析。常见语言模型数据集的测试集与WebText训练集之间有1-6%的重叠,平均重叠为3.2%。有些数据集与它们自己的训练集有更大的重叠,平均重叠为5.9%。

我们的方法优化了召回率,虽然手动检查重叠显示了许多常见短语,但由于重复数据,也存在许多更长的匹配。这不仅仅是WebText独有的。例如,我们发现WikiText-103的测试集中有一篇文章也在训练集中。由于测试集中只有60篇文章,至少有1.6%的重叠。更令人担忧的是,1BW的训练集与其测试集的重叠接近13.2%。

对于Winograd Schema挑战,我们发现只有10个schema与WebText训练集有任何8-gram重叠。其中2个是错误匹配。在剩下的8个中,只有1个schema出现在任何给出答案的上下文中。

对于CoQA,新闻领域中约15%的文档已经在WebText中,模型在这些文档上的表现提高了约3 F1。CoQA的开发集指标报告了5个不同领域的平均表现,我们测量到由于不同领域之间的重叠,整体提升约0.5-1.0 F1。然而,由于CoQA在WebText的链接截止日期之后发布,WebText中没有实际的训练问题或答案。

在LAMBADA上,平均重叠为1.2%。GPT-2在超过15%重叠的样本上的表现提高了约2个困惑度。重新计算排除所有有任何重叠的样本的指标将结果从8.6变为8.7困惑度,并将准确率从63.2%降至62.9%。这一总体结果的微小变化可能是由于只有1/200的样本具有显著重叠。

总体而言,我们的分析表明,WebText训练数据与特定评估数据集之间的数据重叠对报告结果有小但一致的好处。然而,对于大多数数据集,我们没有注意到比标准训练和测试集之间已有的重叠显著更大的重叠,正如表6所强调的那样。

理解和量化高度相似文本对性能的影响是一个重要的研究问题。更好的去重技术,如可扩展的模糊匹配,也可以帮助更好地回答这些问题。目前,我们建议在创建新的NLP数据集的训练和测试集拆分过程中,使用基于n-gram重叠的去重作为重要的验证步骤和合理性检查。

确定WebText语言模型的性能是否归因于记忆的另一种潜在方法是检查它们在自己的保留集上的表现。如图4所示,WebText训练集和测试集上的表现是相似的,并且随着模型大小的增加而共同提高。这表明即使GPT-2在许多方面仍未能完全拟合WebText。

GPT-2还能够撰写关于发现会说话的独角兽的新闻文章。表13提供了一个示例。

5. 相关工作

本工作的一个重要部分是测量在更大数据集上训练的更大语言模型的性能。这类似于Jozefowicz等人(2016)在1 Billion Word Benchmark上扩展RNN语言模型的工作。Bajgar等人(2016)也通过从古腾堡计划中创建一个更大的训练数据集来补充标准训练数据集,从而提高了Children’s Book Test上的结果。Hestness等人(2017)对各种深度学习模型的性能随模型容量和数据集大小的变化进行了详细分析。尽管我们的实验在任务间噪声更大,但结果表明,类似的趋势在目标的子任务上也成立,并继续进入超过10亿参数的范围。

在生成模型中记录了有趣的学习功能,例如RNN语言模型中的单元执行行宽跟踪和引号/注释检测(Karpathy等人,2015)。对我们工作更具启发性的是Liu等人(2018)的观察,即训练生成Wikipedia文章的模型也学会了在语言之间翻译名字。

以前的工作探讨了过滤和构建大型网页文本语料库的替代方法,例如iWeb Corpus(Davies,2018)。

在语言任务的预训练方法上已经进行了大量工作。除了介绍中提到的那些,GloVe(Pennington等人,2014)将词向量表示学习扩展到整个Common Crawl。早期对文本进行深度表示学习的有影响的工作是Skip-thought Vectors(Kiros等人,2015)。McCann等人(2017)探索了从机器翻译模型中获得的表示的使用,Howard & Ruder(2018)改进了RNN的微调方法(Dai & Le,2015)。Conneau等人(2017a)研究了通过自然语言推理模型学习的表示的传递性能,Subramanian等人(2018)探索了大规模的多任务训练。

Ramachandran等人(2016)展示了seq2seq模型在用预训练的语言模型初始化编码器和解码器时受益。最近的工作表明,当微调用于困难的生成任务(如聊天对话和基于对话的问答系统)时,语言模型预训练是有帮助的(Wolf等人,2019)(Dinan等人,2018)。

6. 讨论

大量研究致力于学习(Hill等人,2016),理解(Levy & Goldberg,2014),并批判性地评估(Wieting & Kiela,2019)监督和无监督预训练方法的表示。我们的结果表明,无监督任务学习是一个有前景的研究领域。这些发现可能有助于解释预训练技术在下游NLP任务中广泛成功,因为我们表明,在极限情况下,这些预训练技术之一开始学习直接执行任务,而不需要监督适应或修改。

在阅读理解方面,GPT-2在零样本设置下的表现与监督基线竞争。然而,在其他任务上,如摘要生成,尽管从质量上看执行了任务,但根据定量指标,其表现仍然很初级。尽管作为研究结果具有启示意义,但在实际应用方面,GPT-2的零样本表现仍然远未达到可用水平。

我们研究了WebText语言模型在许多经典NLP任务上的零样本表现,但还有许多额外的任务可以进行评估。无疑有许多实际任务GPT-2的表现仍然不比随机好。即使在我们评估的

常见任务上,如问答和翻译,语言模型只有在具有足够容量时才开始超越简单的基线。

尽管零样本表现建立了GPT-2在许多任务上的潜在表现基线,但尚不清楚通过微调的上限在哪里。在某些任务上,GPT-2的完全抽象输出与目前在许多问答和阅读理解数据集上最先进的抽取指针网络(Vinyals等人,2015)输出有显著差异。鉴于微调GPT的先前成功,我们计划在decaNLP和GLUE等基准上进行微调,尤其是由于尚不清楚GPT-2的额外训练数据和容量是否足以克服BERT(Devlin等人,2018)所展示的单向表示的低效性。

7. 结论

当一个大型语言模型在足够大且多样化的数据集上进行训练时,它能够在许多领域和数据集上表现良好。GPT-2在零样本设置下在8个测试的语言建模数据集中有7个达到了最新的表现。模型在零样本设置下能够执行的任务多样性表明,高容量模型在最大化足够多样的文本语料库的可能性时,开始学习如何在不需要明确监督的情况下执行大量任务。

GPT-2 论文总结

这篇关于GPT-2的论文主要探讨了在大规模、多样化的文本数据集上训练的大型语言模型在各种自然语言处理任务中的零样本表现。以下是论文的关键点总结:

  1. 数据集和训练

    • 构建了一个名为WebText的大规模数据集,该数据集从Reddit等平台的高质量网页链接中抓取文本,总共包含约40 GB的文本。
    • 为了提高数据质量,过滤了低质量的内容和常见的数据源如Wikipedia,确保数据多样性和实用性。
  2. 模型架构和输入表示

    • 使用Transformer架构进行训练,进行了少量修改以提高性能和稳定性。
    • 使用了Byte Pair Encoding(BPE)进行分词,结合了字符级和词级模型的优点,处理任何Unicode字符串,支持多种语言和格式。
  3. 零样本任务迁移

    • 通过在不同任务上进行测试,展示了GPT-2在没有任何任务特定调整的情况下,能够执行各种下游任务,如语言建模、阅读理解、问答和翻译等。
    • 在许多基准测试数据集上,GPT-2的表现超过了已有的最新模型,尤其是在Penn Treebank和WikiText-2等小数据集上取得了显著的提升。
  4. 实验结果

    • 语言建模:在零样本设置下,GPT-2在7个测试的数据集中取得了最新的结果。
    • Children’s Book Test(CBT):在常见名词和命名实体的测试中,GPT-2分别达到了93.3%和89.1%的准确率。
    • LAMBADA:在测试长距离依赖关系的能力上,GPT-2将准确率提高到了52.66%。
    • Winograd Schema Challenge:在常识推理任务上,GPT-2的准确率达到了70.70%。
    • 阅读理解:在CoQA数据集上,GPT-2达到了55 F1分数,接近人类表现。
    • 摘要生成:尽管生成的摘要在质量上有一定相似性,但在定量指标上仍需改进。
    • 翻译:在WMT-14测试集上,GPT-2的表现超越了几种无监督机器翻译基线,但仍有改进空间。
  5. 泛化与记忆

    • 研究了数据集之间的重叠对模型表现的影响,发现WebText训练数据与评估数据集之间的重叠对结果有小但一致的好处。
    • 提出了使用n-gram重叠去重作为创建新NLP数据集时的重要验证步骤。
  6. 未来工作和讨论

    • 讨论了GPT-2在零样本设置下的潜力和局限性,并计划在未来研究中进行微调,以进一步提高模型在各种任务上的表现。
    • 强调了在足够大且多样化的数据集上训练的大型语言模型能够学习执行大量任务,而无需明确的监督。

总体而言,这篇论文展示了GPT-2在多种NLP任务中的零样本能力,证明了大型、多样化数据集和高容量模型在实现通用语言理解和生成任务中的潜力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/31256.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自动驾驶学习-车载摄像头ISP(2)

背景 智能驾驶ISP(Image Signal Processor,图像信号处理器)在自动驾驶和辅助驾驶系统中扮演着至关重要的角色。 典型的ISP通常会对摄像头输出的RAW数据先做黑电平矫正(BLC)、坏点矫正(DPC)、数…

如何DIY出专属个性化的CSDN主页?一招教你搞定!

个人主页:学习前端的小z 个人专栏:HTML5和CSS3悦读 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结,欢迎大家在评论区交流讨论! 文章目录 💯如何通过HTMLCSS自定义模板diy出自己的个性化csdn主页&#x…

SD3发布,送你3个ComfyUI工作流

大家好,我是每天分享AI应用的萤火君! 这几天AI绘画界最轰动的消息莫过于Stable Diffusion 3(简称SD3)的发布。SD3是一个多模态的 Diffusion Transformer 模型,其在图像质量、排版、复杂提示理解和资源效率方面具有显著…

ADC常用的十大滤波算法(C语言)

一、限幅滤波法 1、方法&#xff1a; 根据经验判断两次采样允许的最大偏差值&#xff08;设为A&#xff09; 每次检测到新值时判断&#xff1a; a. 如果本次值与上次值之差<A&#xff0c;则本次值有效 b. 如果本次值与上次值之差>A&#xff0c;则本次值无效&#xf…

QT MQTT (二)编译与集成

一、QT MQTT 提供 MQTT 客户端服务的 Qt 专用库基于标准化发布 / 订阅协议&#xff0c;用于在设备和组件之间可靠地共享数据。MQTT 是为保证状态正确性、满足高安全标准和交换最小数据而设计的协议&#xff0c;因此被广泛应用于各种分布式系统和物联网解决方案中。 Qt开发MQT…

【Oracle篇】Oracle数据库坏块处理:rman修复坏块实践与案例分析(第七篇,总共八篇)

&#x1f4ab;《博主介绍》&#xff1a;✨又是一天没白过&#xff0c;我是奈斯&#xff0c;DBA一名✨ &#x1f4ab;《擅长领域》&#xff1a;✌️擅长Oracle、MySQL、SQLserver、阿里云AnalyticDB for MySQL(分布式数据仓库)、Linux&#xff0c;也在扩展大数据方向的知识面✌️…

git配置ssh key

一、生成ssh公钥和私钥对 打开终端&#xff0c;输入命令&#xff0c;-C 后是git邮箱&#xff0c;在 Enter file in which to save the key (/home/my/.ssh/id_rsa): 后可以输入公钥和私钥对保存路径及文件名&#xff0c;默认是 /home/my/.ssh/id_rsa&#xff0c;其它的全部按回…

从0开始C++(五):友元函数运算符重载

友元函数 介绍 C中的友元函数是一种特殊的函数&#xff0c;它可以访问和操作类的私有成员和保护成员。友元函数可以在类的内部或外部声明和定义&#xff0c;但在其声明和定义中需要使用关键字 friend 来标识。友元函数可以是全局函数&#xff0c;也可以是其他类的成员函数。 …

Web APIs--Dom获取属性操作

目录 1.DOM&#xff08;操作网页内容、用户交互&#xff09; 2.DOM对象获取&#xff08;querySelect(‘’)、querySelectAll(‘’)&#xff09; 总结&#xff1a; 3.操作元素内容&#xff08;修改元素的文本更换内容&#xff09; 1. 元素innerText 属性 2.元素.innerHTML…

第一百一十六节 Java 面向对象设计 - Java 终止块

Java 面向对象设计 - Java 终止块 ​try ​块也可以有零个或一个​ finally​ 块。 ​finally ​块总是与 ​try ​块一起使用。 语法 使用 ​finally​ 块的语法是 finally {// Code for finally block }​finally​ 块以关键字 ​finally​ 开始&#xff0c;后面紧跟一对…

深入分析 Android BroadcastReceiver (四)

文章目录 深入分析 Android BroadcastReceiver (四)1. 广播接收器的深入优化与应用1.1 实时性要求高的应用1.1.1 示例&#xff1a;音乐播放器中处理耳机插拔事件1.1.2 动态注册接收器 1.2 处理耗时操作1.2.1 示例&#xff1a;使用 IntentService 处理耗时操作 1.3 安全性管理1.…

【机器学习】深度学习赋能:基于 LSTM 的智能日志异常检测

目录 1. LSTM 简介 2. 日志序列异常检测概述 3. 数据预处理 3.1 日志解析 3.2 数据清洗 3.3 序列化 3.4 特征提取 示例代码 4. 构建 LSTM 模型 4.1 模型结构 4.2 模型构建示例 5. 训练 LSTM 模型 5.1 数据准备 5.2 模型训练 示例代码 6. 异常检测 6.1 异常分数…

处理文本内容的命令和正则表达式

处理文本内容的命令 正则表达式匹配的是文本内容&#xff0c;linux的文本三剑客 都是针对文本内容 文本三剑客&#xff1a; grep 过滤文本内容 sed 针对文本内容进行增删改查 awk 按行取列 文本三剑客都是按行进行匹配。 grep grep的作用就是使用正则表达式来匹配文本内…

虚拟现实环境下的远程教育和智能评估系统(十一)

视频帧画面知识点区域划分 知识点区域精确分割技术: 在深度学习检测模型结果基础上使用基于交并比&#xff08;IoU&#xff09;阈值的目标合并算法&#xff0c;合并过度重合目标区域面积&#xff0c;实现知识点区域精确分割 多模态知识点内容匹配策略: 图像&#xff1a;利用…

【第18章】Vue实战篇之登录界面

文章目录 前言一、数据绑定1. 数据绑定2. 数据清空 二、表单校验1. 代码2. 展示 三、登录1.登录按钮2.user.js3. login 四、展示总结 前言 上一章完成用户注册&#xff0c;这一章主要做用户登录。 一、数据绑定 登录和注册使用相同的数据绑定 1. 数据绑定 <!-- 登录表单 -…

紧凑型计算微型仿生复眼

欢迎关注&#xff1a;GZH《光场视觉》 图1 研制的计算微型复眼的成像原理 1. 导读 微型曲面复眼由于具有大视场成像、大景深成像、体积较小的优势&#xff0c;在机器视觉、无人机导航、生物灵感机器人等领域引起了广泛关注。然而&#xff0c;传统的微型曲面复眼存在设计/加工…

HTTP详细总结

概念 HyperText Transfer Protocol&#xff0c;超文本传输协议&#xff0c;规定了浏览器和服务器之间数据传输的规则。 特点 基于TCP协议: 面向连接&#xff0c;安全 TCP是一种面向连接的(建立连接之前是需要经过三次握手)、可靠的、基于字节流的传输层通信协议&#xff0c;在…

SpringMvc—域对象共享数据和视图

一、向request域创建对象 先创建首页&#xff1a; 在testController这个类中&#xff1a; package com.pon.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; Controller public class test…

后台管理系统登录业务分析(图片验证码登录)

文章目录 1、登录业务分析2、登录开发流程2.1、获取图片验证码接口业务2.2、CodeImgServiceImpl2.2.1、响应 2.3、IndexController2.4、SysUserServiceImpl2.5、SysUserMapper.xml 3、springmvc拦截器创建&注册3.1、springmvc拦截器的创建3.2、springmvc拦截器注册3.3、Sys…

【Oracle APEX开发小技巧1】转换类型实现显示小数点前的 0 以 及常见类型转换

在 apex 交互式式网格中&#xff0c;有一数值类型为 NUMBER&#xff0c;保留小数点后两位的项&#xff0c;在 展示时小数点前的 0 不显示。 效果如下&#xff1a; 转换前&#xff1a; m.WEIGHT_COEFFICIENT 解决方案&#xff1a; 将 NUMBER&#xff08;20&#xff0c;2&#xf…