php移动网站开发,蚌埠网站设计,龙华营销型网站费用,静态网页建站文章目录 GPT系列论文速通引言总览GPT和GPT-2区别Abstract1. 概括2. 具体分析 Introduction1. 概括2. 具体分析当前机器学习系统的局限性希望构建通用型系统数据集与任务通用性缺乏的原因 Approach1. 概括与要点2. 原文阅读翻译3. 具体分析论文核心Training DatasetInput Repre… 文章目录 GPT系列论文速通引言总览GPT和GPT-2区别Abstract1. 概括2. 具体分析 Introduction1. 概括2. 具体分析当前机器学习系统的局限性希望构建通用型系统数据集与任务通用性缺乏的原因 Approach1. 概括与要点2. 原文阅读翻译3. 具体分析论文核心Training DatasetInput RepresentationModel 3. BPEBPE 的背景BPE 解决了什么问题BPE 的工作原理论文中的解释BPE 的优点小结 ExperimentsLanguage ModelingChildrens Book Test (CBT)LAMBADAWinograd Schema ChallengeReading ComprehensionSummarizationTranslation什么是贪婪解码Question AnsweringGeneralization vs Memorization Related WorkDiscussion架构总结1. GPT-2的架构2. 公式的解读3. 公式如何应用于模型4. 如何实现无监督学习的出色表现5. 如何实现泛化性6. 总结 作者介绍双非本科大四网络工程专业在读阿里云专家博主专注于Java领域学习擅长web应用开发目前开始人工智能领域相关知识的学习 个人主页逐梦苍穹 所属专栏人工智能 gitee地址xzl的人工智能代码仓库 ✈ 您的一键三连是我创作的最大动力 GPT系列论文速通
GPT、GPT2和GPT3三篇文章都有速通系列这是第二篇 关于另外两篇请看我的这些文章 GPThttps://xzl-tech.blog.csdn.net/article/details/142101342 GPT3https://xzl-tech.blog.csdn.net/article/details/141996726 引言
那么在正式开始本篇文章之前先介绍一下这篇文章总体结构。
首先是阐述一下GPT跟GPT-2之间的区别然后就是往下按照论文原文的各级标题进行分析理解
其中会包括一些论文原文帮助我们快速定位回论文内容
最后会对整个的GPT-2架构做一个总结总结一下GPT-2到底是如何实现了通用模型效果。 下面开始文章内容
总览GPT和GPT-2区别
论文提到 We would like to move towards more general systems which can perform many tasks – eventually without the need to manually create and label a training dataset for each one. 我们希望朝着更通用的系统发展它可以执行许多任务——最终不需要为每个任务手动创建和标记训练数据集。 这句话揭示了GPT和GPT-2之间的关键区别即从任务专门化到通用性增强的过渡。
GPT和GPT-2的主要区别
任务处理方式的变化 GPTGenerative Pre-trained TransformerGPT在设计上主要是为了通过预训练语言模型并在特定任务如文本分类、问答等上进行微调。这意味着GPT虽然具备一定的任务迁移能力但需要针对具体任务进行 有监督微调。GPT-2GPT-2则进一步推动了 通用模型的概念强调模型通过无监督训练学习广泛的语言表示不再局限于某个特定任务。GPT-2可以在零样本zero-shot、少样本few-shot甚至多任务学习中表现出色减少了对人为标注训练数据的依赖展示了更强的通用能力。这也是这句话“eventually without the need to manually create and label a training dataset for each one”的含义表明GPT-2朝向一个不依赖标注数据的通用系统发展。 规模和能力的提升 GPT-2显著扩大了模型的规模从1.17亿参数扩展到15亿参数通过更大规模的训练数据和模型容量增强了其处理不同任务的能力。这种扩展使得GPT-2在处理任务时无需专门的任务微调便能执行多任务推理。这种提升直接支持了开发“更通用的系统”的目标。
总结
GPT强调的是通过生成式预训练后在特定任务上的微调而GPT-2则更加关注构建无需为每个任务单独微调的通用模型并实现了更强的多任务适应能力。这句话体现了GPT-2所追求的愿景即让模型更通用、更自主最终能够不依赖人为标注数据集处理广泛的任务。
Abstract
1. 概括
论文的摘要主要描述了 语言模型在自然语言处理任务如问答、机器翻译、阅读理解和摘要生成中的应用。
传统上这些任务通过监督学习在特定的数据集上进行训练。
然而本文提出了通过无监督学习来解决这些任务的可能性尤其是在训练语言模型时无需明确的监督数据。
论文原文 “Natural language processing tasks, such as question answering, machine translation, reading comprehension, and summarization, are typically approached with supervised learning on taskspecific datasets. We demonstrate that language models begin to learn these tasks without any explicit supervision when trained on a new dataset of millions of webpages called WebText.” 自然语言处理任务如问答、机器翻译、阅读理解和摘要通常在任务特定的数据集上使用监督学习来处理。 我们证明了语言模型在没有任何明确监督的情况下开始学习这些任务当在一个名为WebText的数百万网页的新数据集上训练时。 2. 具体分析
该部分讲述实验结果提出了GPT-2模型能够在多个自然语言任务上实现无监督的多任务学习。在CoQA问答任务上模型的性能达到了55 F1分数与基准系统相媲美。
论文原文 “When conditioned on a document plus questions, the answers generated by the language model reach 55 F1 on the CoQA dataset - matching or exceeding the performance of 3 out of 4 baseline systems without using the 127,000 training examples.” 当以文档和问题为条件时语言模型生成的答案在CoQA数据集上达到55 F1 -在不使用127,000多个训练示例的情况下匹配或超过4个基线系统中的3个的性能。 作者指出模型的规模对于实现无监督任务转移的成功至关重要模型越大任务性能提升越显著。GPT-2模型拥有15亿参数并在多个语言任务中取得了先进的成果。
论文原文 “The capacity of the language model is essential to the success of zero-shot task transfer and increasing it improves performance in a log-linear fashion across tasks. Our largest model, GPT-2, is a 1.5B parameter Transformer that achieves state of the art results on 7 out of 8 tested language modeling datasets in a zero-shot setting but still underfits WebText.” 语言模型的能力对于零样本任务迁移的成功至关重要增加它可以跨任务以对数线性方式提高性能。 我们最大的模型GPT-2是一个1.5B参数的Transformer它在8个测试语言建模数据集中的7个上实现了最先进的结果但仍然不适合WebText。 作者推测通过提高模型的容量语言模型可以更好地从自然发生的任务演示中学习而不需要明确的监督数据。这为构建能够从自然语言学习的系统提供了新的方向。
论文原文 “These findings suggest a promising path towards building language processing systems which learn to perform tasks from their naturally occurring demonstrations.” 这些发现为构建语言处理系统提供了一条很有希望的途径该系统可以从自然发生的演示中学习执行任务。 还有就是 First, word vectors were learned and used as inputs to task-specific architectures (Mikolov et al., 2013) (Collobert et al., 2011), then the contextual representations of recurrent networks were transferred (Dai Le, 2015) (Peters et al., 2018), and recent work suggests that task-specific architectures are no longer necessary and transferring many self-attention blocks is sufficient (Radford et al., 2018) (Devlin et al., 2018). 首先词向量被学习并作为特定任务架构的输入 (Mikolov 等, 2013) (Collobert 等, 2011)随后循环网络的上下文表示被转移 (Dai Le, 2015) (Peters 等, 2018)而最近的研究表明任务特定的架构不再是必需的转移多个自注意力块就已足够 (Radford 等, 2018) (Devlin 等, 2018)。 这段话描述了自然语言处理NLP领域中模型的发展历程从早期的词向量word vectors到当前的自注意力机制self-attention blocks模型它展示了模型如何在不同任务中进行知识传递和泛化。
详细解释
早期阶段词向量Word Vectors 早期的NLP方法如Mikolov等人2013提出的Word2Vec以及Collobert等人2011的方法主要是通过学习词向量word vectors即将每个词表示为一个固定的向量。词向量学习这些词向量是通过无监督方法从大规模文本中学到的能够捕捉到词与词之间的相似性和关系。应用这些词向量被用作输入到任务特定的架构中即每个任务例如文本分类或命名实体识别都有特定的模型结构。 递归网络的上下文表示Contextual Representations of Recurrent Networks 随后研究者们发现可以通过递归神经网络RNN或长短期记忆网络LSTM来捕捉上下文信息。例如Dai Le2015和Peters等人2018的工作展示了如何将上下文表示contextual representations传递给任务特定的模型。递归网络的优势这些模型能够处理序列数据逐步捕获每个词语的上下文信息使得表示不仅依赖于单个词还包括了它在整个句子或段落中的位置和意义。 当前阶段自注意力机制Self-Attention Blocks 最近的工作如Radford等人2018提出的GPT模型以及Devlin等人2018提出的BERT模型表明不再需要为每个任务设计特定的架构自注意力机制self-attention就足以实现任务间的迁移和泛化。自注意力机制的优势通过多层的自注意力块self-attention blocks模型能够捕捉到序列中远距离词语之间的依赖关系而不是像递归网络那样依赖逐词传递的信息。自注意力机制允许模型同时关注到整个序列的不同部分从而提供更丰富的上下文信息。任务无关性这些自注意力机制的模型如GPT和BERT已经显示出在多个任务间的迁移能力不再需要为每个任务设计专门的模型结构只需简单地将这些模型应用到不同任务中即可。
总结
这段话展示了NLP模型的发展历程从早期依赖词向量和任务特定模型到使用递归网络捕捉上下文再到如今的自注意力机制模型可以通过多个自注意力块的迁移来实现强大的任务适应性不再需要任务专门化的架构设计。这是现代NLP模型如GPT和BERT等成功实现多任务学习和强泛化能力的关键。 关于上面提到的recent work suggests that task-specific architectures are no longer necessary and transferring many self-attention blocks is sufficient
这句话的意思是最新的研究表明不再需要为每个任务设计特定的模型架构而通过简单地传递多个自注意力机制块self-attention blocks 就足够了。也就是说任务专属的复杂模型架构已经不再必要而统一的模型结构能够在多个任务上表现良好。
Introduction
1. 概括
论文的Introduction部分主要讨论了当前机器学习系统在特定任务上的卓越表现是通过大型数据集、高容量模型以及监督学习的结合来实现的。然而这些系统在面对数据分布或任务规范的轻微变化时表现出脆弱性。论文认为现有系统更像是“狭窄的专家”而不是“通用型的专家”。作者希望通过无监督学习使模型能够执行更多的任务而无需为每个任务手动创建和标记训练数据集。
2. 具体分析
当前机器学习系统的局限性
论文开篇提到尽管机器学习系统在许多任务上表现优异但这些系统存在局限性
特别是当面对数据分布或任务规范的轻微变化时表现出脆弱。这说明现有的系统更像是“狭窄专家”只能处理特定的任务而非“通用型专家”即可以处理多种任务的系统。
举例来说图片分类器、阅读理解系统等在面对多样化的输入时通常表现不稳定或有误差。
论文原文 Yet these systems are brittle and sensitive to slight changes in the data distribution (Recht et al., 2018) and task specification (Kirkpatrick et al., 2017). Current systems are better characterized as narrow experts rather than competent generalists. 然而这些系统非常脆弱容易受到数据分布Recht et al. 2018和任务规格Kirkpatrick et al. 2017微小变化的影响。当前的系统更像是狭窄的专家而不是具备全面能力的通才。 希望构建通用型系统
作者希望构建一种更加通用的机器学习系统能够在无需为每个任务手动创建和标记训练数据的情况下执行多个任务。
这种愿景是为了解决现有机器学习系统的局限性并通过扩展系统的应用范围创建能够从不同领域和任务中进行学习的模型。
论文原文 “We would like to move towards more general systems which can perform many tasks – eventually without the need to manually create and label a training dataset for each one.” 我们希望朝着更通用的系统发展它可以执行许多任务——最终不需要为每个任务手动创建和标记训练数据集。 数据集与任务
现有的主流方法是为每个任务 收集特定的训练示例并训练系统模仿这些行为然后在相同分布的测试数据上评估其表现。
这个方法虽然在特定任务上取得了很大的成功但也暴露了系统在广泛应用中的不足。
因此论文提出希望通过 无监督任务 的方式训练模型执行多种任务。
论文原文 “The dominant approach to creating ML systems is to collect a dataset of training examples demonstrating correct behavior for a desired task, train a system to imitate these behaviors, and then test its performance on independent and identically distributed (IID) held-out examples.” 创建机器学习系统的主要方法是收集训练示例的数据集展示期望任务的正确行为训练系统模仿这些行为然后在独立和同分布(IID)持有的示例上测试其性能。 通用性缺乏的原因
作者推测现有系统缺乏通用性的一个主要原因是当前的机器学习系统通常只在单一任务上训练并且使用的是单一领域的数据集。
为了让系统能够更好地应对多种任务作者提出要在更广泛的领域和任务上训练和评估模型性能。
论文原文 “Our suspicion is that the prevalence of single task training on single domain datasets is a major contributor to the lack of generalization observed in current systems.” _我们怀疑在 单一领域数据集上流行的单一任务训练 是当前系统中观察到的 缺乏泛化的主要原因。 Approach
在这部分作者详细阐述了他们的 核心方法基于 语言建模 来解决 多任务问题。
这种方法的重点是通过 无监督学习和分布估计 来生成和预测自然语言数据模型不需要事先针对特定任务进行训练或微调能够在零样本zero-shot条件下完成各种任务。
1. 概括与要点
作者通过语言模型处理多种任务特别是“零样本学习”这意味着模型无需任何专门的监督训练即可推断不同任务。这些任务可能包括翻译、阅读理解等多种自然语言处理NLP任务。语言建模通常被视为无监督的分布估计其目标是通过条件概率来预测序列中的下一个符号。论文中的核心思想是将任务本身也嵌入到模型中从而让语言模型不仅能够根据输入生成输出还可以根据任务的不同生成相应的输出。
2. 原文阅读翻译 At the core of our approach is language modeling. Language modeling is usually framed as unsupervised distribution estimation from a set of examples ( x 1 , x 2 , . . . , x n ) (x_1, x_2, ..., x_n) (x1,x2,...,xn) each composed of variable length sequences of symbols ( s 1 , s 2 , . . . , s n ) (s_1, s_2, ..., s_n) (s1,s2,...,sn). Since language has a natural sequential ordering, it is common to factorize the joint probabilities over symbols as the product of conditional probabilities (Jelinek Mercer, 1980) (Bengio et al., 2003): p ( x ) ∏ i 1 n p ( s n ∣ s 1 , . . . , s n − 1 ) p(x) \prod_{i1}^{n} p(s_n | s_1, ..., s_{n-1}) p(x)∏i1np(sn∣s1,...,sn−1) 我们的方法的核心是语言建模。语言建模通常被框定为从一组示例 ( 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)组成。由于语言具有自然的顺序因此通常将符号上的联合概率分解为条件概率的乘积。 This approach allows for tractable sampling from and estimation of p ( x ) p(x) p(x) as well as any conditionals of the form 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(sn−k,...,sn∣s1,...,sn−k−1). In recent years, there have been significant improvements in the expressiveness of models that can compute these conditional probabilities, such as self-attention architectures like the Transformer (Vaswani et al., 2017). 这种方法允许从 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(sn−k,...,sn∣s1,...,sn−k−1)的任何条件中进行易于取样和估计。近年来可以计算这些条件概率的模型的表现力有了显著的提高如Transformer这样的self-attention架构。 Learning to perform a single task can be expressed in a probabilistic framework as estimating a conditional distribution p ( o u t p u t ∣ i n p u t ) p(output | input) p(output∣input). 学习执行单一任务可以在概率框架中表示为估计条件分布 p ( o u t p u t ∣ i n p u t ) p(output | input) p(output∣input) Since a general system should be able to perform many different tasks, even for the same input, it should condition not only on the input but also on the task to be performed. That is, it should model p ( o u t p u t ∣ i n p u t , t a s k ) p(output | input, task) p(output∣input,task). 由于一个通用系统应该能够执行许多不同的任务即使对于相同的输入它也应该不仅取决于输入而且取决于要执行的任务也就是说它应该模型化 p ( o u t p u t ∣ i n p u t , t a s k ) p(output | input, task) p(output∣input,task). This has been variously formalized in multitask and meta-learning settings. Task conditioning is often implemented at an architectural level, such as the task specific encoders and decoders in (Kaiser et al., 2017) or at an algorithmic level such as the inner and outer loop optimization framework of MAML (Finn et al., 2017). But as exemplified in McCann et al. (2018), language provides a flexible way to specify tasks, inputs, and outputs all as a sequence of symbols. 这在多任务和元学习设置中有不同的形式化形式。任务条件反射通常在架构级别实现例如(Kaiser等人2017)中特定于任务的编码器和解码器或者在算法级别实现例如MAML的内部和外部循环优化框架(Finn等人2017)。但正如McCann等人(2018)所举的例子语言提供了一种灵活的方式来指定任务、输入和输出所有这些都是一系列符号。 For example, a translation training example can be written as the sequence (translate to french, english text, french text). Likewise, a reading comprehension training example can be written as (answer the question, document, question, answer). McCann et al. (2018) demonstrated it was possible to train a single model, the MQAN, to infer and perform many different tasks on examples with this type of format. 例如一个翻译训练示例可以写成序列(翻译成法语、英语文本、法语文本)。同样阅读理解训练示例可以写成(回答问题文档问题答案)。McCann等人(2018)证明可以训练单个模型MQAN以这种格式对示例进行推断和执行许多不同的任务。 Language modeling is also able to, in principle, learn the tasks of McCann et al. (2018) without the need for explicit supervision of which symbols are the outputs to be predicted. Since the supervised objective is the same as the unsupervised objective but only evaluated on a subset of the sequence, the global minimum of the unsupervised objective is also the global minimum of the supervised objective. 原则上语言建模也能够学习McCann等人(2018)的任务而不需要明确监督哪些符号是要预测的输出。由于监督目标与无监督目标相同但只对序列的一个子集进行评估因此无监督目标的全局最小值也是监督目标的全局最小值。 In this slightly toy setting, the concerns with density estimation as a principled training objective discussed in (Sutskever et al., 2015) are side stepped. The problem instead becomes whether we are able to, in practice, optimize the unsupervised objective to convergence. Preliminary experiments confirmed that sufficiently large language models are able to perform multitask learning in this toy-ish setup but learning is much slower than in explicitly supervised approaches. 在这个有点像玩具的设置中(Sutskever et al. 2015)中讨论的关于密度估计作为原则性训练目标的关注是次要的。问题变成了我们是否能够在实践中优化无监督目标以达到收敛。初步实验证实足够大的语言模型能够在这种类似玩具的设置中执行多任务学习但学习速度比明确监督的方法慢得多。 While it is a large step from the well-posed setup described above to the messiness of “language in the wild”, Weston (2016) argues, in the context of dialog, for the need to develop systems capable of learning from natural language directly and demonstrated a proof of concept—learning a QA task without a reward signal by using forward prediction of a teacher’s outputs. While dialog is an attractive approach, we worry it is overly restrictive. 虽然从上面描述的良好设置到“野外语言”的混乱是一个很大的步骤但Weston(2016)认为在对话的背景下需要开发能够直接从自然语言中学习的系统并展示了概念证明-通过使用教师输出的前向预测来学习没有奖励信号的QA任务。虽然对话是一种很有吸引力的方法但我们担心它的限制过于严格。 The internet contains a vast amount of information that is passively available without the need for interactive communication. Our speculation is that a language model with sufficient capacity will begin to learn to infer and perform the tasks demonstrated in natural language sequences in order to better predict them, regardless of their method of procurement. If a language model is able to do this it will be, in effect, performing unsupervised multitask learning. We test whether this is the case by analyzing the performance of language models in a zero-shot setting on a wide variety of tasks. 互联网包含了大量的信息这些信息是被动的不需要互动交流。我们的推测是一个有足够能力的语言模型将开始学习推断和执行自然语言序列中展示的任务以便更好地预测它们而不管它们的获取方法是什么。如果一个语言模型能够做到这一点那么它实际上就是在进行无监督的多任务学习。我们通过分析语言模型在各种任务的零射击设置中的性能来测试是否存在这种情况。 下面对这部分论文内容进行详细讲解。
3. 具体分析
论文核心 “Since language has a natural sequential ordering, it is common to factorize the joint probabilities over symbols as the product of conditional probabilities (Jelinek Mercer, 1980) (Bengio et al., 2003)” 由于语言具有自然的顺序顺序因此通常将符号的联合概率分解为条件概率的乘积(Jelinek Mercer, 1980) (Bengio et al. 2003) 论文提出的核心公式是语言模型中的条件概率公式 p ( x ) ∏ i 1 n p ( s n ∣ s 1 , … , s n − 1 ) p(x) \prod_{i1}^{n} p(s_n|s_1, \dots, s_{n-1}) p(x)∏i1np(sn∣s1,…,sn−1)
这表达了通过前面给定的序列符号来预测下一个符号的可能性。
任务推理模型的思想基于条件分布 p ( o u t p u t ∣ i n p u t , t a s k ) p(output|input, task) p(output∣input,task)
作者指出一个通用系统应能够根据任务类型推断输出结果并且这种任务调节可以通过语言本身来完成正如McCann等人2018的工作中所示 Learning to perform a single task can be expressed in a probabilistic framework as estimating a conditional distribution p ( o u t p u t ∣ i n p u t ) p(output|input) p(output∣input). 学习执行单个任务可以在概率框架中表示为估计条件分布 p ( o u t p u t ∣ i n p u t ) p(output|input) p(output∣input)。 Since a general system should be able to perform many different tasks, even for the same input, it should condition not only on the input but also on the task to be performed. That is, it should model p ( o u t p u t ∣ i n p u t , t a s k ) p(output|input, task) p(output∣input,task). 由于一般系统应该能够执行许多不同的任务即使 对于相同的输入它 不仅应该以输入为条件还应该以要执行的任务为条件。也就是说它应该对 p ( o u t p u t ∣ i n p u t , t a s k ) p(output|input, task) p(output∣input,task)建模。 通过语言符号序列来表达任务、输入和输出可以极大地简化不同任务的定义避免任务特定的编码器和解码器的复杂设计。
作者还提到使用 Transformer 架构来进行条件概率的建模这是近年来在语言模型中的重要进展。
通过Transformer结构模型能够在大规模数据上进行高效的条件概率估计和语言生成。 “There have been significant improvements in the expressiveness of models that can compute these conditional probabilities, such as self-attention architectures like the Transformer” 近年来可以计算这些条件概率的模型的表达能力有了重大改进例如Transformer这样的self-attention架构 Training Dataset
这一部分介绍了用于训练语言模型的数据集WebText。
为了避免过度依赖传统数据集如Wikipedia作者通过从网络上收集网页文本构建了一个新的语料库WebText。
具体而言他们从Reddit平台上收集了超过4500万条链接并通过内容提取器清理HTML数据最终形成了一个包含约800万个文档总计40GB的文本数据集。 作者特别强调他们的数据集没有包含Wikipedia因为很多模型已经使用该数据集进行训练可能会在测试集上出现数据重叠的问题。
WebText的构建依赖于Reddit上的用户评价系统只有获得至少3个karma的链接会被包括在内。
这种方式确保了数据的质量因为karma值较高的链接通常更具信息性或更有趣。 The resulting dataset, WebText, contains the text subset of these 45 million links. 得到的数据集WebText包含了这4500万个链接的文本子集。 All results presented in this paper use a preliminary version of WebText which does not include links created after Dec 2017 本文中提供的所有结果都使用WebText的初步版本其中不包括2017年12月之后创建的链接 通过使用Dragnet和Newspaper1内容提取器研究人员进一步清理了数据去除了重复和噪音文本最终形成了一个多样性和规模都较大的数据集为语言模型的训练提供了坚实的基础。
Input Representation
概述 输入表示部分探讨了 如何以最佳方式 将自然语言输入到模型中。
作者选择了字节对编码Byte Pair Encoding, BPE作为折中方案既避免了传统词汇表示的局限性也提升了字符级语言模型的性能。
详细讲解 当前大规模语言模型通常需要对输入文本进行预处理比如统一大小写、分词和处理未登录词out-of-vocabulary, OOV。
但这些方法往往限制了模型的通用性。为了克服这些问题作者 使用BPE作为中间方案该方法能够在处理常见符号序列时利用 词级输入而对不常见的符号则回归到字符级输入。
这种方法确保了模型能够有效处理任意Unicode字符串并避免了传统字节级模型性能不足的问题。 “Byte Pair Encoding (BPE) (Sennrich et al., 2015) is a practical middle ground between character and word level language modeling which effectively interpolates between word level inputs for frequent symbol sequences and character level inputs for infrequent symbol sequences.” 字节对编码(BPE) (Sennrich等人2015)是字符和词级语言建模之间的一个实用的中间地带它有效地在频繁符号序列的词级输入和不频繁符号序列的字符级输入之间进行插值。 通过这种表示方法模型不仅能够在任何数据集上运行无需额外的预处理、分词或词汇表调整而且能够处理具有多样性符号集的数据。
Model
概述 在模型架构部分论文描述了基于Transformer结构的语言模型。作者基于OpenAI GPT的模型架构进行了多项改进并通过增加层数和模型参数设计了四种不同规模的模型。
详细讲解 模型架构的核心是基于Vaswani等人提出的Transformer架构2017模型的细节遵循了OpenAI GPT模型2018。为了提升模型的性能作者对架构进行了若干改进包括将层归一化Layer Normalization移动到每个子模块的输入处并在最终的自注意力块后增加了额外的层归一化操作。此外他们使用了一种改进的初始化方法调整了残差路径的权重以确保模型深度增加时的稳定性。
为了提升模型的容量研究人员设计了四种不同大小的模型参数从1.17亿到15.42亿不等。下表列出了四种模型的超参数
参数量层数 d model d_{\text{model}} dmodel117M12768345M241024762M3612801542M481600 “We use a Transformer (Vaswani et al., 2017) based architecture for our LMs. The model largely follows the details of the OpenAI GPT model (Radford et al., 2018) with a few modifications.” 除了增加模型的层数和参数量作者还扩大了词汇表的大小并将上下文窗口从512个token增加到1024个token以更好地处理长文本。同时作者也采用了较大的批量batch size进行训练。
3. BPE
这里补充一下上面提到的BPE的概念 Byte Pair Encoding (BPE) BPEByte Pair Encoding是一种文本分词算法用于处理自然语言中的词汇表示问题。
它是字符级和词级语言建模之间的一种折衷方案既避免了词级表示的稀疏性问题又克服了字符级建模时上下文太短、难以捕捉长距离依赖的缺点。
BPE 的背景
在自然语言处理中模型通常依赖于词汇表vocabulary来表示输入文本。
传统的做法是把每个词word看作一个独立的单元但这有一些问题
词汇表的大小非常大尤其是在多语言环境下可能需要数十万到数百万个词汇。未登录词OOV, Out-of-Vocabulary问题即测试数据中出现了训练时未见过的词模型无法处理。
另一种方案是字符级建模即把每个字符作为输入单位。
这样可以避免未登录词问题但会导致上下文 过于局部模型难以学习语言中的长距离依赖关系。
BPE 解决了什么问题
BPE是一种折衷方案它介于字符级建模和词级建模之间。
其基本思想是从最小的字符对开始将它们逐步组合成更大、更常见的词或短语。
BPE 的工作原理
BPE 通过逐步合并最频繁出现的字符对或符号对来构建子词单元
初始化将每个单词分解为字符。例如“lower”会分解为 [ l , o , w , e , r ] [l, o, w, e, r] [l,o,w,e,r]。合并频率最高的字符对统计在语料库中哪个字符对最常出现并将它们合并为一个单元。继续合并直到达到预设的合并次数。 例如如果“l”和“o”最常出现它们会被合并为“lo”。 重复操作继续找到最常见的字符对并合并直到合并次数结束。最终常见的单词会被合并成完整的词而不常见的词则保持部分分词。
通过这种方式BPE能够
对常见词如“the”“and”直接使用词级表示。对不常见词分解成子词或字符级单位从而避免未登录词问题。
论文中的解释 “Byte Pair Encoding (BPE) (Sennrich et al., 2015) is a practical middle ground between character and word level language modeling which effectively interpolates between word level inputs for frequent symbol sequences and character level inputs for infrequent symbol sequences.” BPE 的优点
减小词汇表的规模通过将常见的词合并成一个单元而不常见的词分解为子词BPE使得模型能够处理大规模的词汇表。解决未登录词问题即使是测试集中出现的新词也能通过其组成部分子词或字符来表示从而避免了传统词级模型中遇到的 OOV 问题。通用性强BPE适用于多语言环境可以处理各种符号系统包括非拉丁字母语言如中文和阿拉伯文。
小结
BPE 是一种平衡字符级和词级建模的有效方法它能够根据符号的频率选择适当的表示单位常见符号使用词级表示罕见符号使用字符级表示既保证了模型的灵活性又减小了词汇表规模并解决了未登录词的问题。
Experiments
在“Experiments”部分作者详细描述了他们在不同任务上对语言模型的评估涵盖语言建模、儿童图书测试、LAMBADA、Winograd Schema Challenge等任务。
实验的核心在于展示GPT-2模型在“零样本”情况下的多任务处理能力。
Language Modeling
概述 这一小节旨在评估GPT-2在语言建模任务中的表现。
由于模型不需要对输入数据进行损失性预处理或标记化因此可以直接在不同的语言模型基准上评估。
在语言建模中常用的评估标准是计算平均负对数概率的缩放值或指数值。作者通过计算模型对数据集的对数概率并除以标准单元如字节或词来评估模型的表现。GPT-2在多种语言建模基准测试中的表现优于现有的模型。 “We evaluate the same quantity by computing the log-probability of a dataset according to a WebText LM and dividing by the number of canonical units.” 我们通过根据WebText LM计算数据集的对数概率并除以规范单元的数量来评估相同的数量。 模型不仅在小型数据集如Penn Treebank和WikiText-2上取得了显著的提升还在像LAMBADA这样考察长期依赖关系的数据集上也表现出色。 Large improvements are noticed on small datasets such as Penn Treebank and WikiText-2 which have only 1 to 2 million training tokens. Large improvements are also noticed on datasets created to measure long-term dependencies like LAMBADA (Paperno et al., 2016) and the Children’s Book Test (Hill et al., 2015). 在只有1到200万个训练令牌的小数据集如Penn Treebank和WikiText-2上可以看到显著的改进。 在用于测量长期依赖关系的数据集如LAMBADAPaperno等人2016和儿童书籍测试Hill等人2015上也可以看到显著的改进。 Children’s Book Test (CBT)
概述 CBT是为评估语言模型在不同类型词汇上的表现而创建的。该测试主要通过完形填空题要求模型在给定上下文的情况下预测出遗漏的词汇。
详细讲解 在CBT测试中GPT-2的性能随着模型规模的增加而逐步提升并且在常见名词和命名实体上取得了新的最佳成绩。此外作者指出测试集中与《丛林之书》有关的部分与WebText数据集存在一定的重叠因此他们仅报告了不含显著重叠的验证集结果。 “GPT-2 achieves new state of the art results of 93.3% on common nouns and 89.1% on named entities.” GPT-2在普通名词和命名实体上分别达到了93.3%和89.1%的最新水平。 LAMBADA
概述 LAMBADA数据集专门用于测试模型处理长距离依赖关系的能力。
该任务要求模型预测句子最后一个词这通常需要至少50个token的上下文。
详细讲解 GPT-2在LAMBADA测试中将现有的最优模型的困惑度从99.8降低到 8.6 8.6 8.6并将准确率从 19 % 19\% 19%提升至 52.66 52.66% 52.66。
这表明GPT-2能够更好地捕捉长距离依赖关系虽然模型的部分预测是有效的句子延续但却不总是正确的最终词语。 “GPT-2 improves the state of the art from 99.8 (Grave et al., 2016) to 8.6 perplexity and increases the accuracy of LMs on this test from 19% (Dehghani et al., 2018) to 52.66%.” GPT-2将最先进的水平从99.8 (Grave等人2016)提高到8.6并将LMs在该测试中的准确性从19% (Dehghani等人2018)提高到52.66%。 Winograd Schema Challenge Winograd模式挑战 Winograd Schema Challenge是一个测量模型常识推理能力的任务主要通过消解文本中的歧义来评估模型的性能。 GPT-2在该任务上的准确率提升了 7 % 7\% 7%达到了 70.7 % 70.7\% 70.7%。
该数据集规模较小仅包含 273 273 273个样本因此作者建议参考相关文献来更好地理解这一结果。 “GPT-2 improves state of the art accuracy by 7%, achieving 70.70%.” Reading Comprehension
阅读理解任务使用CoQA数据集CoQA的目标是测试模型对文档的理解能力以及模型是否能够根据上下文回答问题。 GPT-2在未经过任何监督学习的情况下通过贪婪解码方式生成答案并在开发集上取得了 55 55 55 F1分数与训练过的基准模型表现相当。 “Greedy decoding from GPT-2 when conditioned on a document, the history of the associated conversation, and a final token A: achieves 55 F1 on the development set.” 当 GPT-2 在给定文档、相关对话的历史以及最终的标记 A 的条件下进行贪心解码时开发集上达到了 55 F1 分数。 Summarization Summarization摘要生成 概述 在这部分实验中作者测试了GPT-2的摘要生成能力使用的是CNN和Daily Mail数据集。
为了诱导模型生成摘要他们在文章后面添加了TL;DR:提示并使用了Top-k随机采样的方法生成摘要。
详细讲解 GPT-2在生成摘要时主要关注的是文章的最新内容有时会混淆一些细节如交通事故涉及的车辆数量或具体标志的描述。尽管GPT-2生成的摘要在某些质量上与常规神经模型相当但在ROUGE得分上仍低于现有基线并且在没有任务提示时摘要生成性能下降了 6.4 6.4 6.4个百分点这表明任务提示能够帮助模型更好地执行特定任务。 “On the commonly reported ROUGE 1,2,L metrics the generated summaries only begin to approach the performance of classic neural baselines and just barely outperforms selecting 3 random sentences from the article.” 在常见的 ROUGE 1、2、L 指标上生成的摘要仅开始接近经典神经网络基线的表现且仅稍微优于从文章中随机选择 3 句的结果。 Translation
概述 这一部分实验探讨了GPT-2是否学会了如何翻译语言。研究人员测试了GPT-2在英语到法语翻译任务中的表现。
详细讲解 为了帮助模型推断这是一个翻译任务作者为模型提供了英语句子法语句子的上下文对然后通过贪婪解码生成翻译。结果表明在WMT-14英法翻译测试集上GPT-2的表现略低于现有的词对词翻译模型只获得了 5 5 5 BLEU分数。这表明尽管模型在其他语言任务上表现良好但在翻译任务上的能力还有待进一步提高。 “On the WMT-14 English-French test set, GPT-2 gets 5 BLEU, which is slightly worse than a word-by-word substitution with a bilingual lexicon inferred in previous work on unsupervised word translation.” 在 WMT-14 英法测试集上GPT-2 得到 5 分的 BLEU 分数稍微逊色于使用双语词典逐词替换的表现这种词典是在之前无监督单词翻译的研究中推断出来的。 什么是贪婪解码
在上一部分的Translation中提到了贪婪解码在这里讲解一下。
贪婪解码Greedy Decoding 是机器翻译、文本生成等任务中常用的一种解码方法。
它的 核心思想 是在每一步生成时选择具有 最高概率 的词作为输出然后将这个词作为接下来一步生成的输入重复这个过程直到生成完整的序列。
贪婪解码的具体步骤
初始状态从起始符号或提供的输入序列开始。生成词语模型根据当前输入计算可能的下一个词的概率分布也就是每个词出现的概率。选择最优词在概率分布中选择概率最高的词作为输出。继续解码将这个输出作为下一个时间步的输入重复这个过程直到生成结束标记或达到预设的最大长度。
在每一步贪婪解码都 只选择当前时刻的最佳词而不会回顾之前的选择或考虑全局的最优性。
因此贪婪解码的策略是 逐步做出“局部最优”的选择而不保证整个生成序列是全局最优的。
GPT-2和贪婪解码
在GPT-2生成翻译的过程中贪婪解码就是通过逐步生成每个词来实现的。
比如在WMT-14英法翻译测试集中GPT-2会从提供的英语句子开始逐步预测出法语单词序列。
每一次预测它都会选择概率最高的词。
然而这种方法的缺点是它有时会错过更合适的词因为它只专注于局部的最佳选择忽略了可能需要等待几步后才能显现出最优结果的情况。
这种局部最优的选择可能导致生成的序列不是全局最优从而影响翻译的准确性和流畅性。 假设要翻译句子 “I like to play soccer”。
起点模型开始处理第一个词 I I I根据上下文生成概率分布可能会输出 J e Je Je我。第二步接着它会生成下一个词可能输出 a i m e aime aime喜欢因为这是当前概率最高的词。第三步继续生成 j o u e r jouer jouer玩。第四步生成 a u au au。第五步生成 f o o t b a l l football football。
通过贪婪解码模型在每一步都选择当前最可能的词从而生成句子 “Je aime jouer au football”。
虽然这个句子在字面意思上正确但它并不是法语中的标准表述正确的翻译应该是 “J’aime jouer au football”但模型在第2步选择了错误的分词组合 J e a i m e Je aime Jeaime从而影响了整体质量。 BLEU得分
BLEUBilingual Evaluation Understudy 双语评估替代是一种常用的自动翻译评估指标用于评估机器生成翻译与参考翻译的相似程度。
BLEU分数的范围是0到1通常以百分比表示越接近1或100%说明翻译质量越好。
在这篇论文中GPT-2在WMT-14英法翻译任务中的贪婪解码得到的 5 5 5 BLEU分说明它的翻译质量较低。
尽管能够生成有意义的句子但这种局部最优的生成方法有时会错过更符合目标语言语法和表达的词。 总结
贪婪解码是一种简单的解码方法在每一步只选择概率最高的词不考虑全局的最优解。在翻译任务中它可能会生成局部合理但全局不佳的结果从而影响翻译的流畅性和准确性。GPT-2在WMT-14英法翻译任务中使用贪婪解码得到了 5 5 5 BLEU分说明其翻译质量与专门的翻译模型相比仍有较大差距。
Question Answering
概述 在这一小节作者测试了GPT-2回答事实性问题的能力使用的是Natural Questions数据集。
详细讲解 GPT-2在问答任务中的准确率为 4.1 % 4.1\% 4.1%虽然远低于当前最优的开放领域问答系统但GPT-2在最有信心的 1 % 1\% 1%问题上的准确率达到了 63.1 % 63.1\% 63.1%。
通过提供示例问题-答案对GPT-2能够推断数据集的简短回答风格从而在零样本的情况下生成答案。 “GPT-2 answers 4.1% of questions correctly when evaluated by the exact match metric commonly used on reading comprehension datasets like SQUAD.” 当使用阅读理解数据集如 SQUAD中常用的“精确匹配”指标进行评估时GPT-2 对问题的准确回答率为 4.1%。 Generalization vs Memorization Generalization vs Memorization泛化与记忆 概述 这一部分讨论了WebText数据集是否存在测试集与训练集重叠的问题作者使用了Bloom Filter进行 8 8 8-gram的重叠分析以测量模型是泛化学习还是简单的记忆。
详细讲解 通过Bloom Filter分析作者发现常见的语言建模数据集与WebText的训练集有 1 − 6 % 1-6\% 1−6%的重叠并且部分数据集与自身训练集的重叠甚至更高达到 5.9 % 5.9\% 5.9%。
为了验证这一现象作者手动检查了测试集中出现的重叠模式确认了某些常见短语和重复数据的存在。 “Common LM datasets’ test sets have between 1-6% overlap with WebText train, with an average of overlap of 3.2%.” Related Work Related Work相关工作 概述 作者在这一部分讨论了他们的工作与现有文献的关系特别是与大规模语言模型训练、生成模型功能和无监督预训练方法的关系。
详细讲解 作者提到许多现有的工作探讨了 如何通过扩展模型规模和数据集来提升性能这与他们的研究方法类似。
相关工作包括Jozefowicz等人扩展RNN语言模型的研究以及Hestness等人分析模型性能与数据集规模关系的研究。 “Our experiments, while much noisier across tasks, suggest similar trends hold for sub-tasks of an objective and continue into the 1B parameter regime.” 我们的实验虽然在不同任务之间噪声较大但表明类似的趋势也适用于目标的子任务并且在超过 10 亿参数的规模中依然持续。 Discussion Discussion讨论 最后的讨论部分总结了研究发现并提出了未来可能的研究方向。 作者认为他们的研究揭示了无监督任务学习是一个有前景的研究方向解释了为什么预训练技术在下游NLP任务中表现优异。他们表明语言模型在没有监督调整的情况下也能逐步学会执行特定任务这为未来的研究提供了新的思路。 “Our results suggest that unsupervised task learning is an additional promising area of research to explore.” 我们的结果表明无监督任务学习是一个值得进一步探索的有前景的研究领域。 架构总结
看了上面那么多内容这部分总结一下GPT-2如何基于Transformer架构、概率分布公式如何用在模型里面的以及如何实现GPT-2如此不错的无监督表现和泛化性。
1. GPT-2的架构
GPT-2基于Transformer架构的Decoder部分。具体来说GPT-2只使用了Transformer的Decoder模块没有使用Encoder模块。Decoder部分的主要作用是生成输出序列而Encoder一般用于处理输入数据。GPT-2的设计中模型通过自回归的方式即基于之前的词生成下一个词因此它只需要使用Decoder部分。
Transformer的Decoder由多个层级的自注意力机制self-attention和前馈神经网络组成这使得它能够有效地捕捉输入序列中的长距离依赖关系。
2. 公式的解读
论文中提到的公式 p ( x ) ∏ i 1 n p ( s i ∣ s 1 , … , s i − 1 ) p(x) \prod_{i1}^{n} p(s_i | s_1, \dots, s_{i-1}) p(x)∏i1np(si∣s1,…,si−1) 解释了语言建模的核心思想即通过条件概率的方式分解句子的联合概率。在这个公式中 x x x 表示整个句子的概率而句子中的每个词 s i s_i si的出现是基于之前所有词 s 1 , … , s i − 1 s_1, \dots, s_{i-1} s1,…,si−1的条件概率。该公式的核心思想是模型根据上下文预测下一个词的概率。这种分解使得模型能够逐步生成序列特别适用于像GPT-2这样自回归的语言模型。
3. 公式如何应用于模型
在GPT-2中这个公式通过Transformer的自注意力机制来实现。具体来说模型会通过自注意力机制从前面的词中提取信息并基于这些信息预测下一个词的概率分布。这个过程是递归的模型从句子的第一个词开始依次生成后续词汇直到生成完整的句子或达到预设的句子长度。
4. 如何实现无监督学习的出色表现
GPT-2的出色无监督表现依赖于以下几点
大规模的训练数据GPT-2使用了一个名为WebText的庞大数据集包含大量不同领域的网页内容。这使得模型可以学习到丰富的语义和上下文信息。Transformer架构的自注意力机制这种机制能够帮助模型捕捉长距离的上下文依赖使得模型在处理复杂的语言模式时更为高效。无监督学习目标GPT-2的训练目标是语言建模即预测序列中的下一个词这是一种无监督的任务不需要特定的标注数据。通过大量语料模型能够学习到足够的语言结构从而在不同任务上泛化。
5. 如何实现泛化性
GPT-2的泛化性体现在模型能够在没有明确监督信号的情况下适应多种不同的NLP任务。这是通过两方面实现的
共享任务格式所有任务都被视为语言建模任务因此不同任务如翻译、问答可以统一到同一个模型框架中。这种统一的格式让模型能够在处理不同任务时不需要额外的监督信号。自回归生成和自注意力机制通过自回归生成和自注意力机制模型可以从一个统一的框架下生成不同类型的输出而不需要为每个任务设计特定的模型结构。这种机制大大提高了模型在多任务上的泛化能力。
6. 总结
GPT-2是基于Transformer的Decoder部分通过自回归生成序列。公式 p ( x ) ∏ i 1 n p ( s i ∣ s 1 , … , s i − 1 ) p(x) \prod_{i1}^{n} p(s_i | s_1, \dots, s_{i-1}) p(x)∏i1np(si∣s1,…,si−1) 用于表示基于上下文生成下一个词的条件概率。GPT-2通过无监督语言建模任务、大规模数据集训练和Transformer架构的自注意力机制实现了出色的无监督表现和良好的泛化能力。