返回介绍

数学基础

统计学习

深度学习

工具

Scala

五、GPT2 [2019]

发布于 2023-07-17 23:38:25 字数 43166 浏览 0 评论 0 收藏 0

  1. 目前,机器学习系统通过使用大数据集、大容量模型、以及监督学习的组合,在它们所训练的任务中表现出色。然而,这些系统很脆弱,对数据分布(《Do cifar-10 classifiers generalize to cifar-10?》)和任务规范 task specification 的轻微变化很敏感。目前的系统更多地被描述为狭隘的专家 narrow expert 而不是称职的通才 competent generalist 。我们希望迈向更通用的系统,该系统可以执行许多任务,并最终无需为每个任务手动创建和标注一个训练集。

    建立机器学习系统的主流方法是:

    • 收集一个包含训练样本的数据集,这些样本展示所需任务的正确行为。
    • 训练一个系统来模仿这些行为。
    • 最后在独立同分布independent and identically distributed: IIDheld-out 实例上测试其性能。

    这对于狭隘专家上的进展起到了很好的作用。但是,captioning model、阅读理解系统、图片分类器在多样化和多变的、可能的 input 上经常出现不稳定的行为,突出了这种方法的一些缺点。

    《Language Models are Unsupervised Multitask Learners》的作者怀疑:单领域数据集上的单任务训练的盛行,是当前系统中观察到的缺乏泛化性的主要原因。要想在当前架构下实现强大的系统,可能需要在广泛的领域和任务上进行训练和度量性能。最近,人们已经提出了几个 benchmark(如 GLUEdecaNLP )以开始研究这个问题。

    多任务学习是一个有前途的框架,它可以提高通用的性能general performance 。然而,NLP 中的多任务训练仍然处于起步阶段。最近的工作报告了适当modest的性能改进(《Learning and evaluating general linguistic intelligence》),迄今为止两个最雄心勃勃的工作分别在 17(dataset, objective) pair 上进行训练(《The natural language decathlon: Multitask learning as question answering》《Looking for elmo’s friends: Sentence-level pretraining beyond language modeling》) 。从元学习 meta-learning 的角度来看,每个 (dataset, objective) pair 都是从数据集和目标的分布中采样到的一个训练实例。目前的机器学习系统需要数百到数千个样本来诱导induce出泛化良好的函数。这表明,多任务训练需要同样多的有效的训练的 (dataset, objective) pair ,从而实现良好的效果。继续扩大数据集的创建和目标的设计,从而达到所需要的程度将是非常困难的。这就促使我们去探索更多的 setup 来进行多任务学习。

    目前在语言任务上表现最好的系统是利用预训练和监督微调的组合。这种方法有很长的历史,其趋势是更灵活的迁移形式。

    • 首先,一些方法学习word vector 并用作 task-specific architecture 的输入(《Distributed representations of words and phrases and their compositionality》《Natural language processing (almost) from scratch》)。
    • 然后,另一些方法迁移 RNN 网络的 contextual representation《Semi-supervised sequence learning》《Deep contextualized word representations》)。
    • 最近的工作表明,task-specific architecture 不再是必须的,迁移许多自注意力块就足够了(《Improving language understanding by generative pre-training》《Bert: Pretraining of deep bidirectional transformers for language understanding》)。

    这些方法仍然需要有监督的训练,以便执行任务。当只有极少或者没有监督数据时,另一个方向已经证明了语言模型执行特定任务的前景,如常识推理 common-sense reasoning、情感分析sentiment analysis

    在论文 《Language Models are Unsupervised Multitask Learners》 中,作者将这两个方向的工作联系起来(预训练和 zero-shot ),并延续了更通用的迁移方法的趋势。作者证明了语言模型可以在 zero-shot 中执行下游任务,无需修改任何参数或架构。作者通过强调语言模型在 zero-shot setting 中执行各种任务的能力,从而证明这种方法的潜力。根据不同的任务,作者取得了有前景的、有竞争力的、和state-of-the-art 结果。其中,GPT-28 个测试的语言建模数据集中的 7 个上达到了 state-of-the-art 的性能。

  2. 相关工作:

    • 这项工作的很大一部分衡量了在更大数据集上训练的更大语言模型的性能。

      • 这与《Exploring the limits of language model》 的工作类似,他们在 1 Billion Word Benchmark 数据集上 scaleRNN-based 语言模型。
      • 《Embracing data abundance:Booktest dataset for reading comprehension》 之前也通过从 Project Gutenberg 中创建一个更大的训练数据集来补充标准的训练数据集,从而改善了 Children’s Book Test 的结果。
      • 《Deep learning scaling is predictable, empirically》 对各种深度学习模型的性能如何随着模型容量和数据集大小而变化进行了深入分析。

      我们的实验,虽然在不同的任务中更加 noisy ,但表明类似的趋势也存在于子任务中并且持续到 1B+ 的参数规模。

    • 人们已经记录下来生成模型中有趣的学习功能,如 RNN 语言模型中的 cell 执行 line-width trackingquote/comment detection《Visualizing and understanding recurrent networks》)。对我们的工作更有启发的是 《Generating wikipedia by summarizing long sequences》 的观察,一个被训练用于生成维基百科文章的模型也学会了翻译语言之间的 name

    • 先前的工作已经探索了过滤和构建大型网页文本语料库的替代方法,如 iWeb Corpus《The 14 billion word iweb corpus》)。

    • 关于语言任务的预训练方法,已经有了大量的工作。

      • 除了 Introduction 中提到的那些之外,GloVeword vector representation learning 扩展到所有的 Common Crawl
      • 关于文本 deep representation learning 的一个有影响力的早期工作是 Skip-thought Vectors
      • 《Learned in translation: Contextualized word vectors》 探索了使用来自机器翻译模型的 representation
      • 《Universal language model fine-tuning for text classification》 改进了《Semi-supervised sequence learning》基于 RNN 的微调方法。
      • 《Supervised learning of universal sentence representations from natural language inference data》 研究了由自然语言推理模型natural language inference model学到的 representation 的迁移性能。
      • 《Learning general purpose distributed sentence representations via large-scale multi-task learning》 探索了大规模多任务训练。
    • 《Unsupervised pretraining for sequence to sequence learning》 证明了 seq2seq 模型得益于用预训练的语言模型作为编码器和解码器的初始化。最近的工作表明,语言模型预训练在微调困难的生成任务(如闲聊对话和基于对话的问答系统)时也有帮助(《Transfertransfo: A transfer learning approach for neural network based conversational agents》《Wizard of wikipedia: Knowledge-powered conversational agents》)。

5.1 模型

  1. 我们方法的核心是语言建模language modeling 。语言建模通常是指从样本集合(x1,x2,,xn)$ (\mathbf x_1,\mathbf x_2,\cdots,\mathbf x_n) $ 中进行无监督的分布估计distribution estimation ,每个样本都由可变长度的符号symbol 序列(s1,s2,,sm)$ (s_1,s_2,\cdots,s_m) $ 组成。由于语言具有自然的序列顺序 natural sequential ordering ,通常将符号的联合概率分解为条件概率的乘积:

    p(x)=i=1mp(sis1,,si1)

    这种方法允许对p(x)$ p(\mathbf x) $ 以及任何形式的条件概率p(smk,,sms1,,smk1)$ p(s_{m-k},\cdots,s_m\mid s_1,\cdots,s_{m-k-1}) $ 进行可操作的采样和估计。近年来,能够计算这些条件概率的模型的表达能力有了很大的提高,比如像 Transformer 这样的自注意力架构。

    GPT-2GPT-1 一样都是自回归模型。

  2. 单个任务的学习可以在概率框架中表示为估计一个条件分布p(outputinput)$ p(\text{output}\mid \text{input}) $ 。由于一个通用系统应该能够执行许多不同的任务,甚至针对相同的输入(即不同任务采用相同的输入),因此系统不仅应该以输入为条件,还应该以将要执行的任务为条件。即,系统应该建模p(outputinput,task)$ p(\text{output}\mid \text{input,task}) $ 。这在多任务multi-task和元学习meta-learning 的环境中已经被不同程度地公式化了。

    任务调节 task conditioning 通常在架构层面上实现,如《One model to learn them all》 中的特定任务编码器和解码器;或者在算法层面上实现,如 MAML 的内循环和外循环优化框架(《Model-agnostic meta-learning for fast adaptation of deep networks》)。

    但是,正如 《The natural language decathlon: Multitask learning as question answering》 所举的例子,语言提供了一种灵活的方式来指定 task, input, output 都是符号的一个序列。例如,一个翻译任务的训练样本可以写成序列 (translate to french, english text, french text)。同样地,一个阅读理解的训练样本可以写成 (answer the question, document, question, answer)《The natural language decathlon: Multitask learning as question answering》 证明有可能训练单个模型,即 MQAN ,来推断和执行具有这种类型格式样本的许多不同任务。

  3. 语言建模原则上也能够学习 《The natural language decathlon: Multitask learning as question answering》 的任务,而无需明确监督哪些符号是要预测的输出。监督目标与无监督目标相同,但是监督目标只需要对序列的一个子集进行评估,无监督目标的全局最小值也是监督目标的全局最小值。在这个略微玩具性质的 setting 中,《Towards principled unsupervised learning》 中讨论的对密度估计作为原则性训练目标的担忧被忽略了。现在的问题是,我们是否能够在实践中优化无监督目标以达到收敛。初步实验证实,足够大的语言模型能够在这种玩具性的 setup 中进行多任务学习,但学习速度比显式的监督方法慢得多。

    因为将监督学习任务改写成 (task, input, output) 格式的符号序列之后,监督目标就变成了无监督目标。但是,在所有的序列中,仅有从监督任务改写而来的序列才可以构成验证集(或测试集)。

    虽然从上面描述的精心设计的 setup 到混乱的 "language in the wild" 是一大步,但是《Dialog-based language learning》 认为,在 dialog 的上下文中,有必要开发能够直接从自然语言中学习的系统,并展示了一个概念证明a proof of concept :在没有奖励信号reward signal的情况下,通过使用对 teacher 的输出的前向预测forward prediction来学习QA 任务。虽然 dialog 是一种有吸引力的方法,但我们担心它过于严格。

    互联网包含了大量的信息,这些信息是被动可用的而无需交互式通信。我们的推测是:具有足够能力的语言模型将开始学习推断和执行自然语言序列中阐述的任务,以便更好地预测它们,而无论它们的获取方法如何。如果一个语言模型能够做到这一点,那么它实际上是在进行无监督的多任务学习。我们通过分析语言模型在各种任务上的 zero-shot setting 的表现,来测试情况是否如此。

5.1.1 训练集

  1. 大多数先前的工作是在单个领域的文本上训练语言模型,如新闻文章、维基百科、或小说书 fiction book 。我们的方法鼓励我们建立一个尽可能大和多样化的数据集,从而收集尽可能多的领域和上下文的自然语言演示 natural language demonstration 任务。

    一个有前景的多样化的、几乎无限的文本源是网络爬虫web scrape,如 Common Crawl 。虽然这些文档比目前的语言建模数据集大很多个数量级,但是它们有重大的数据质量问题。《A simple method for common-sense reasoning》 在他们关于常识推理的工作中使用了 Common Crawl ,但是注意到大量的文件 “其内容几乎是不可理解的”。我们在使用 Common Crawl 的初步实验中观察到了类似的数据问题。《A simple method for common-sense reasoning》 的最佳结果是使用 Common Crawl 的一个小的子集来实现的,该子集仅包含与他们的 target datasetWinograd Schema Challenge)最相似的文件。虽然这是一个务实的方法从而提高特定任务的性能,但是我们希望避免提前对将要执行的任务做出假设。

    相反,我们创建了一个新的、强调文档质量的网络爬虫。为了做到这一点,我们仅爬取那些已经被人类精心管理/过滤的网页。人工过滤一个完整的网络爬虫将非常昂贵,因此作为一个开始,我们从 Reddit (一个社交媒体平台)爬取了所有的外链 outbound link ,这些外链至少收到了 3karma (类似于点赞数或评论数的一种计数机制)。这可以被认为是一个启发式指标,表明其它用户是否认为该链接有趣、有教育意义。

    由此产生的数据集 WebText ,包含了这 4500 万个链接的文本子集。为了从 HTML response 中提取文本,我们使用了 DragnetNewspaper 内容提取器的组合。本文介绍的所有结果都使用了 WebText 的初步版本preliminary version,该版本不包括 201712 月之后创建的链接,并且在去重和一些基于启发式的清理之后包含了略微超过 800 万个文档,共计 40GB 的文本。

    我们从 WebText 中删除了所有的维基百科文档,因为它是其它数据集的一个常见数据源,并且由于训练数据与测试评估任务的重叠overlapping,可能会使分析变得复杂。

    下表所示为 WebText 训练集中发现的自然发生的 English to FrenchFrench to English 的例子:

5.1.2 Input Representation

  1. 一个通用的语言模型应该能够计算出任何字符串的概率(当然也能生成任何字符串)。目前的大型语言模型包括预处理步骤,如 lowercasingtokenizationout-of-vocabulary tokens ,这些预处理步骤限制了可建模字符串的空间。

    虽然将 Unicode 字符串处理为 UTF-8 bytes 序列可以优雅地满足这一要求(如 《Multilingual language processing from bytes》),但是目前的 byte-level 语言模型在大型数据集(如 One Billion Word Benchmark)上与 word-level 语言模型相比没有竞争力。在我们自己尝试在 WebText 上训练标准的 byte-level 语言模型时,我们也观察到了类似的性能差距。

  2. Byte Pair Encoding: BPE《Neural machine translation of rare words with subword units》)是 character-levelword-level 语言建模之间的一个实用的中间地带 middle ground ,它有效地在 word-level inputcharacter-level input 之间进行插值。尽管它的名字叫 BPE,但是参考的 BPE 实现通常是在 Unicode code point 而不是字节序列上操作。这些实现需要包括 Unicode symbol 的全部空间,以便为所有 Unicode 字符串建模。这将导致在添加任何 multi-symbol token 之前, base vocabulary 超过了 130k 。与 BPE 经常使用的 32k64ktokenvocabulary 相比,这个规模太大了。相比之下,BPEbyte-level 版本只需要 256 大小的 base vocabulary

    然而,直接将 BPE 应用于字节序列会导致次优的 merge,这是因为 BPE 使用贪心的 frequency-based 启发式方法来构建 token vocabulary 。我们观察到 BPE 包括了许多像 dog 这样的常见词的变体,如 dog.dog!dog? 。这导致了对有限的 vocabulary slot 和模型容量的次优分配。为了避免这种情况,我们防止 BPE 对任何字节序列进行跨 character category 的合并。我们为空格space 增加了一个例外,这极大地提高了压缩效率,同时在多个 vocabulary token 中仅添加最小的单词碎片 word fragmentation

    这种 input representation 使我们能够将 word-level 语言模型的经验优势与 byte-level 方法的通用性相结合。由于我们的方法可以给任何 Unicode 字符串分配一个概率,这使得我们可以在任何数据集上评估我们的语言模型,而无需考虑预处理、tokenization、或 vocabulary size

5.1.3 模型

  1. 我们的语言模型使用 Transformer-based 架构。该模型大体上遵循 OpenAI GPT 模型的细节,并作了一些修改:

    • layer normalization 被移到每个子块的 input ,类似于一个 pre-activation residual network 。并且在 final self-attention block 之后增加了一个额外的 layer normalization

      即:x+Sublayer(LayerNorm(x))$ \mathbf{\vec x} + \text{Sublayer}\left(\text{LayerNorm}\left(\mathbf{\vec x}\right)\right) $ 。

    • 使用了修改过的初始化,它考虑了随着模型深度的增加时残差路径residual path上的累积 accumulation 。我们在初始化时将残差层的权重按照1N$ \frac{1}{\sqrt N} $ 的系数进行缩放,其中N$ N $ 为残差层的数量。

    • vocabulary 扩大到 50257 个。

    • 我们还将上下文窗口大小从 512 增加到 1024 ,并使用更大的 batch size = 512

5.2 实验

  1. 我们训练和评测了四个语言模型,它们具有大约对数均匀log-uniformly 间隔的大小。下表中总结了这些架构。最小的模型相当于原始的 GPT,次小的模型相当于 BERT 的最大模型。我们最大的模型,称之为 GPT-2,其参数规模比 GPT 大一个数量级。

    每个模型的学习率都是手动调优的,以便在 WebText5%held-out 样本上获得最佳困惑度 。所有的模型对 WebText 仍然欠拟合 under-fit ,并且如果给定更多的训练时间那么 held-out 数据上的困惑度将会进一步改善。

    这些模型在不同任务上的表现如下图所示:

5.2.1 语言建模

  1. 作为实现 zero-shottask transfer 的第一步,我们有兴趣了解 WebText 语言模型在它们被训练的主要任务(即,语言建模 language modeling )上的表现。由于我们的模型是在 byte-level 上运行的,不需要有损的预处理或 tokenization ,我们可以在任何语言模型 benchmark 上评估它。

  2. WebText 语言模型在大多数的数据集上的测试大大超出了分布范围 out-of-distribution,如必须预测极端标准化的文本 aggressively standardized text、标记化的人造物tokenization artifact (如断开的标点符号和缩略语、混洗的句子)、甚至是 WebText 中极其罕见的字符串 <UNK> (该字符串在 400 亿的字节中仅出现 26 次)。

    我们使用了可逆的 de-tokenizer 从而尽可能多地移除这些 tokenization/pre-processing 的人造物 artifact 。由于这些 de-tokenizer 是可逆的,我们仍然可以计算出数据集的对数概率,它们可以被认为是一种简单的领域适配domain adaptation形式。我们观察到,使用这些 de-tokenizerGPT-2 的困惑度提高了 2.55

  3. WebText 语言模型在不同领域和数据集之间有很好的迁移,在 zero-shotsetting 下,在 8 个数据集中的 7 个上提高了 state-of-the-art

    • 我们观察到在小的数据集上有很大的改进,如 Penn Treebank: PTBWikiText-2 (它们只有1百万到 2 百万个训练 token)。在为衡量长期依赖关系而创建的数据集上也有很大的改进,如 LAMBADAChildren’s Book Test: CBT
    • One Billion Word Benchmark: 1BW 上,我们的模型仍然比先前的工作要差很多。这可能是因为它既是最大的数据集,又有一些最具破坏性的预处理:1BWsentence-level 混洗移除了所有的长程结构long-range structure

5.2.2 Children’s Book Test

  1. Children’s Book Test: CBT 是为了考察语言模型在不同类别的单词上的表现:命名实体named entity 、名词 noun、动词 verb、介词prepositionCBT 没有将困惑度作为评估指标,而是报告了自动构建的完形填空测试cloze test的准确率,其中的任务是:预测一个被省略的单词的 10 个可能的候选中,哪一个候选是正确的。按照原始论文中介绍的语言模型方法,我们根据语言模型计算每个候选的概率,和以该候选为条件的句子剩余部分的概率,并选择联合概率最高的那个选项。此外,我们应用一个 de-tokenizer 从而移除 CBT 中的 PTB styletokenization artifact

    PTB style 指的是 Penn Treebank styletokenization,它是一种常用的 tokenization 标准。

    如下图所示,随着模型大小的增加,模型性能稳步提高,并在该测试中缩小了与人类的差距的大部分。

    数据重叠分析 data overlap analysis 表明:CBT 测试集中的一本书(即 Rudyard Kipling《Jungle Book》 )在 WebText 中,所以我们报告了没有重大重叠的验证集的结果:GPT-2 在普通名词上获得了 93.3%new state-of-the-art 结果(即上表中的CTB-CN),在命名实体上获得了 89.1%new state-of-the-art 结果(即上表中的 CBT-NE)。

5.2.3 LAMBADA

  1. LAMBADA 数据集测试了系统对文本中长距离依赖 long-range dependency 的建模能力。任务是预测句子的最后一个单词。对于人类而言,该任务需要至少 50token 的上下文才能成功预测。GPT-2state-of-the-art99.8 的困惑度提高到 8.6,并将语言模型在该测试中的准确率从 19% 提高到 52.66% 。其中,我们使用一个没有预处理的数据集版本。

    研究 GPT-2 的错误表明:大多数预测是句子的有效延续 continuation ,但不是有效的最终词 final word 。这表明:语言模型没有使用额外的有用的约束条件,即该词必须是句子的最后一个。在此基础上增加一个 stop-word filter 作为近似 approximation ,可以使准确率进一步提高到 63.24% ,使该任务的整体 state-of-the-art 提高了 4%

  2. 先前的 state-of-the-art 使用了一个不同的约束性的预测 settting ,其中模型的输出被限制为仅出现在上下文中的单词。对于 GPT-2,这种约束是有害而无益的。因为 19% 的答案不在上下文中。

5.2.4 Winograd Schema Challenge

  1. Winograd Schema challenge 的目标是:通过衡量系统解决文本中的歧义ambiguity 的能力,来衡量系统进行常识推理common-sense reasoning的能力。该数据集相当小,只有 273 个样本,所以我们建议阅读《On the evaluation of common-sense reasoning in natural language understanding》,从而帮助理解这一结果的背景。

    Winograd Schema challenge 任务要求机器识别出一个歧义的代词的祖先,如:

    
    
    xxxxxxxxxx
    The fish ate the worm. It is hungry.

    问题:It 指代 fish 还是 worm

    最近,《A simple method for commonsense reasoning》 通过预测更高概率的歧义的解决方案,证明了使用语言模型在这个Challenge上的重大进展。我们遵从了他们的问题表述,并在下图中直观地展示了我们的模型在完全评分技术full scoring technique和部分评分技术partial scoring technique下的表现。GPT-2state-of-the-art 准确率提高了 7%,达到了 70.70% (部分评分技术的准确率)。

    假设文本序列为x=(s1,s2,,sk1,sk,sk+1,,sm)$ \mathbf x=(s_1,s_2,\cdots,s_{k-1},s_k,s_{k+1},\cdots,s_m) $ ,并且需要解决的歧义词为sk$ s_k $ 。假设候选的词为c$ c $ ,那么:

    • 完全评分技术:将c$ c $ 替代sk$ s_k $ 的评分为ffull(skc)=P(s1,s2,,sk1,c,sk+1,,sm)$ f_\text{full}(s_k\leftarrow c) = P(s_1,s_2,\cdots,s_{k-1},c,s_{k+1},\cdots,s_m) $ 。
    • 部分评分技术:将c$ c $ 替代sk$ s_k $ 的评分为fpartial(skc)=P(sk+1,,sms1,s2,,sk1,c)$ f_\text{partial}(s_k\leftarrow c) = P(s_{k+1},\cdots,s_m\mid s_1,s_2,\cdots,s_{k-1},c) $ 。

    然后选择评分最高的候选词作为预测结果。

5.2.5 Reading Comprehension

  1. 《A conversational question answering challenge》Conversation Question Answering: CoQA 数据集包含来自 7 个不同领域的文档,每个文档都是关于:问题提出者和问题回答者之间的自然语言对话的 pair 对。CoQA 测试阅读理解能力,也测试模型回答那些依赖于对话历史的问题的能力(如 why? )。

    当以文档、相关对话历史、 final token (即 A: )为条件时,来自 GPT-2 的贪心解码 greedy decoding 在验证集上达到了 55 F1 。在没有使用 127k 个人工收集的 question-answer pair 的情况下,我们的方法达到了与 4baseline system 中的 3 个相当甚至更好的效果,而这些 baseline system 是在这 127k 个人工收集的 question-answer pair 上训练的。

    监督的 state-of-the-art 是一个基于 BERT 的系统,它接近人类的 89 F1 的性能。虽然 GPT-2 的性能对于一个没有任何监督训练的系统而言是令人振奋的,但是对GPT-2 的答案和错误的一些检查表明:GPT-2 经常使用简单的基于检索retrieval based 的启发式方法,例如在回答 who 的问题时采用文档中的一个名字来回答。

5.2.6 Summarization

  1. 我们在 CNNDaily Mail 数据集上测试 GPT-2 执行文本摘要的能力。为了诱发摘要行为induce summarization behavior,我们在文章后面添加了文本 TL;DR: ,并使用k=2$ k=2 $ 的 Top-k 随机采样(《Hierarchical neural story generation》)来生成 100token ,这可以减少重复并鼓励比贪心解码更 abstractive 的摘要(类似于 beam search)。我们使用这 100token 中所生成的句子的前面三句话作为摘要。

    TL;DR: 是一个缩写,可以是 Too long; Didn't read (太长,所以没看)、也可以是 Too long; Don't read (太长,不要看)。它通常作为一篇很长的文章的摘要的标题。

    虽然从质量上讲,这些生成结果类似于摘要,如下表所示,但是它们通常关注文章中的最近的内容,或者混淆具体细节(如车祸中涉及多少辆车,或帽子/衬衫上是否有 logo )。

    • 在通常报告的 ROUGE 1,2,L 指标上,生成的摘要仅开始接近经典的 neural baseline 的性能,并且勉强超过了从文章中随机选择的 3 个句子。

      ROUGE-N (其中 N 可以为 1/2/...)为 N-gram 召回率:

      ROUGE-N=Num of co-occurrent N-gram in model-output and ground-truthnum of N-gram in ground-truth

      ROUGE-L 为最长公共子序列的重合率:

      ROUGE-L=(1+β2)RlcsPlcsRlcs+β2PlcsRlcs=lcs(model-output,ground-truth)num of N-gram in ground-truth,Plcs=lcs(model-output,ground-truth)num of N-gram in model-output

      其中:lcs() 为最长公共子串函数,R$ R $ 为召回率,P$ P $ 为精准率。β$ \beta $ 为精准率权重。

    • 当任务提示被删除时(即没有 TL;DR: 提示),GPT-2 的性能在综合指标上下降了 6.4 分,这表明了用自然语言在语言模型中调用特定任务行为的能力。

5.2.7 翻译

  1. 我们测试 GPT-2 是否已经开始学习如何从一种语言翻译到了另一种语言。为了帮助它推断出这是目标任务,我们将语言模型置于 english sentence = french sentence 格式的样本 pair 对的上下文中,然后在一个 final prompt (即 english sentence = )之后,我们使用贪心解码从模型中采样,并使用第一个生成的句子作为翻译。

    • WMT-14 English-French 测试集上,GPT-2 达到了 5 BLUE,这比先前的无监督单词翻译工作(《Word translation without parallel data》)略差,该方法通过推断出的双语词库bilingual lexicon进行逐字替换。
    • WMT-14 French-English 测试集上,GPT-2 能够利用其非常强大的英语语言模型,表现明显更好,达到 11.5 BLUE 。这超过了 《Unsupervised neural machine translation》《Unsupervised machine translation using monolingual corpora only》 的几个无监督机器翻译 baseline,但是仍然比目前最好的无监督机器翻译方法的 33.5 BLUE 差很多(《An effective approach to unsupervised machine translation》)。

    这项任务的表现让我们感到惊讶,因为我们故意从 WebText 中删除非英文网页作为过滤步骤。为了证实这一点,我们在 WebText 上运行了一个 byte-level 的语言检测器,该检测器仅检测到 10MB 的法语数据,这比之前无监督机器翻译研究中常见的单语言法语语料库小了约 500 倍。

5.2.8 问答

  1. 测试语言模型中包含哪些信息的一个潜在方法是:评估语言模型对虚构风格 factoid-style 问题产生正确答案的频率。由于缺乏高质量的评估数据集,先前对神经系统中这种行为的 showcasing 报告了定性的结果( 《A Neural Conversational Model》)。

    最近引入的 Natural Questions 数据集是一个有希望的资源,可以更定量地测试。与翻译类似,语言模型的上下文是以 question answer pair 作为样本的,这有助于模型推断出数据集的简短答案风格short answer style 。当使用 SQUAD 等阅读理解数据集上常用的精确匹配指标exact match metric来评估时,GPT-2 能够正确回答 4.1% 的问题。GPT-2 在所生成的答案上分配的概率是经过良好校准well calibrated的,并且 GPT-2 在它最有把握的 1% 问题上的准确率为 63.1%

    但是,GPT-2 的最少参数的版本未能超越一个难以置信的、仅有 1.0% 准确率的简单 baseline ,该 baseline 返回每个问题类型(who, what, where 等等)的最常见答案。GPT-2 最大参数的版本回答了 5.3 倍正确的问题(相比较于最少参数的版本),这表明到目前为止,模型容量一直是神经系统在该任务上表现不佳的主要因素。

    下表展示了 GPT-2 在验证集问题上生成的 30 个最有信心的答案。GPT-3 的性能仍然比混合了信息检索和抽取式文档问答的开方域问答系统open domain question answering system30% ~ 50% 区间差很多很多。

5.3 Generalization vs Memorization

  1. 最近在计算机视觉方面的工作表明:常见的图像数据集包含了不可忽略 non-trivial amount 的近乎重复的图像。例如,CIFAR-10 在训练集和测试集之间有 3.3% 的重叠(《Do we train on test data? purging cifar of near-duplicates》 )。这导致了对机器学习系统的泛化性能的过度报告 over-reporting 。随着数据集规模的增加,训练集和验证集重叠的问题变得越来越可能,而类似的现象可能也发生在 WebText 上。因此,分析有多少测试数据也出现在训练集中是很重要的。

    为了研究这个问题,我们创建了 Bloom Filter ,其中包含了 8-gramWebText 训练集的 token 。为了提高召回率,字符串被规范化为仅包含小写字母的 alpha-numeric 单词并以空格作为分隔符。 Bloom Filter 的构造使得 false positive rate 的上限为1/108$ 1/10^{8} $ 。我们通过生成 100 万个字符串进一步验证了低 false positive rate ,其中 Bloom Filter 没有命中这 100 万个字符串的任何一个。

    注意:这里评估的是 8-gram 的重复率,而不是整篇文档的重复率。每篇文档包含多个 8-gram 。有可能存在这样的情况:两篇文档不重复,但是它们包含相同的 8-gram

    通过 Bloom Filter 我们计算得到:给定一个数据集,该数据集中的 8-gramWebText 训练集中出现的比例。下表展示了常见的语言模型 benchmark 的这种 overlap 分析。常见的语言模型数据集的测试集与 WebText 训练集有 1% ~ 6% 的重叠 overlap ,平均重叠为 3.2%。令人惊讶的是,在许多数据集内部,它们的测试集与自己的训练集有较大的重叠,平均有 5.9% 的重叠。

  2. 我们观察到 GPT-2 在数据集中的那些较长且重复多次的字符串上的一些记忆行为,如名言或演讲。例如,当以 Gettysburg Address (该演说在整个 WebText 中出现了 40 次)的第一句半为条件时,GPT-2argmax 解码可以恢复该演说。甚至当使用无截断的采样时,我们发现模型在漂移drifting 之前会复制一段时间的演讲。模型通常在 100-200token 内漂移,并且一旦漂移就会展示出很大的多样性。

    为了量化 exact memorization 在样本中出现的频率,我们从 GPT-2 中生成了以 WebText 测试集文章为条件的样本,并将 GPT-2generation 的重叠率与 ground-truth completion 的重叠率进行比较。比较结果如下所示,结果表明:GPT-2 重复训练集中的文本的频率低于 held-out 文章(baseline)的重叠率。

    这里的重叠率指的是:给定一段文本,在训练集中重复出现的 8-gram 数量占它总 8-gram 数量的比例。下图中曲线上的点表示:重叠率低于指定值的文本数量占比。

  3. 我们的方法针对召回率进行优化。虽然对重叠部分的人工检查显示了许多常见的短语,但是有许多更长的匹配 longer match 是由于重复的数据造成的。这并不是 WebText 所独有的。例如:

    • 我们发现 WikiText-103 的测试集有一篇文章也在训练集中。由于测试集仅有 60 篇文章,因此这导致至少有 1.6% 的重叠。
    • 可能更令人担忧的是,根据我们的程序计算到:1BW 与它自己的训练集有大约 13.2% 的重叠。
    • 对于 Winograd Schema Challenge,我们发现只有 10schemataWebText 训练集有 8-gram overlap 。其中,有 2 个是虚假的匹配,而剩下的 8 个中只有 1 个泄露了答案。
    • 对于 CoQA 而言,新闻领域中大约 15% 的文档已经出现在 WebText 中,该模型在这些数据集上提高了 3 F1 的性能。CoQA 的验证集指标报告了 5 个不同领域的平均性能,由于不同领域上的 overlap 现象(与 WebText 训练集的重叠),我们测得约 0.5 ~ 1.0 F1 的增益。然而,由于 CoQAWebText 的链接截止日期之后发布的,所以 WebText 中没有实际的训练问题或答案。
    • LAMBADA 上,平均重叠为 1.2%。在重叠大于 15%case 上,GPT-2 的表现提高了大约 2 perplexity 。在排除了所有任何 overlap 样本时,重新计算指标后,结果从 8.6 perplexity 变为 8.7 perplexity ,并将准确率从 63.2% 降低到 62.9% 。总体结果的变化较小,可能是因为 200 个样本中只有 1 个样本有明显的重叠。

    总体而言,我们的分析表明:WebText 训练数据和特定的评估数据集之间的数据重叠为报告的结果提供了一个小的但是一致的好处。然而,对于大多数数据集而言,我们并没有发现比原始训练集和测试集之间已经存在的重叠而明显更大的重叠,正如上表所强调的。

  4. 了解和量化高度相似的文本如何影响性能是一个重要的研究问题。更好的去重技术(如,可扩展的模糊匹配)也可以帮助更好地回答这些问题。目前,我们建议使用基于 n-gram 重叠的去重,作为新的 NLP 数据集创建 train-test split 时的一个重要验证步骤和理性检查。

  5. 确定 WebText 语言模型的性能是否归因于 memory 的另一个潜在方法是:检查它们在自己的 held-out 上的性能。如下图所示,WebText 的训练集和测试集上的性能是相似的,并且随着模型规模的增加而共同提高。这表明,即使是 GPT-2 ,它仍然在 WebText 上是欠拟合的。

  6. 下表给出了最小的 WebText 语言模型(GPT-2 的最小版本)和 GPT-2 在随机未见的 WebText 测试集文章上的 side-by-side completion

  7. GPT-2 也能写出关于发现会说话的独角兽的新闻文章。下表提出了一个例子。

  8. 下表展示了同一个随机 WebText 测试集上下文的多个 completion ,这显示了标准采样 setting 下,completion 的多样性:

5.4 讨论

  1. 许多研究致力于学习learning、理解 understanding、批判性地评估 evaluating 有监督和无监督预训练方法的 representation 。我们的结果表明:无监督的任务学习是另一个有前途的、有待探索的研究领域。这些发现可能有助于解释预训练技术在下游 NLP 任务中的广泛成功。因为我们表明,在极限情况下,某些预训练技术开始直接学习执行任务,而不需要监督的适配或修改。

    在阅读理解方面,GPT-2zero-shot setting 下的性能与监督的 baseline 是可比的。然而,在其它任务上(如 summarization),虽然GPT-2 执行了任务,但是根据定量指标,其性能仍然只是入门级的。作为一项研究成果而言,GPT-2 是有启发意义的。而就实际应用而言,GPT-2zero-shot 性能还远未达到可使用的程度。

    我们已经研究了 WebText 语言模型在许多典型 NLP 任务上的 zero-shot 性能,但还有许多其它任务可以评估。毫无疑问,在许多实际任务中,GPT-2 的性能仍然不比随机的好。即使在我们评估的常见任务上(如问答和翻译),语言模型只有在足够的模型容量时才开始超越最平凡的 baseline

    虽然 zero-shot 性能为 GPT-2 在许多任务上的潜在性能建立了一个 baseline,但是并不清楚微调的上限在哪里。在某些任务上,GPT-2fully abstractive output 与基于 extractive pointer network 的输出有很大不同,后者是目前许多问答和阅读理解数据集上的 state-of-the-art 。鉴于之前微调 GPT 的成功,我们计划在 decaNLPGLUEbenchmark 上研究微调,尤其是目前还不清楚 GPT-2 的额外训练数据和容量是否足以克服 BERT 所展示的单向 representation 的低效率问题。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文