GPT开山论文:通过生成式预训练(GPT)提升语言理解能力
这篇论文是GPT(Generative Pre-Training,生成式预训练)系列的开篇论文(GPT-1),提出了后来影响整个大语言模型领域的“无监督预训练 + 有监督微调(Pre-training + Fine-tuning)”范式。
作者:Alec Radford、Karthik Narasimhan、Tim Salimans、Ilya Sutskever,发表于 OpenAI
摘要
自然语言理解涵盖了广泛且多样化的任务,例如文本蕴含判断、问答、语义相似度评估以及文档分类等。
尽管大规模的无标注文本语料库非常丰富,但用于学习这些特定任务的标注数据却十分有限,这使得采用判别式训练方法的模型难以取得理想效果。
本文证明,通过以下方式可以显著提升这些任务的性能:
- 首先,在大量、多样化的无标注文本语料库上,对语言模型进行生成式预训练;
- 然后,针对每一个具体任务,利用标注数据进行判别式微调(discriminative fine-tuning)。
与以往方法不同的是,我们在微调阶段采用了任务感知的输入转换方法(task-aware input transformations),从而实现了有效的知识迁移,同时只需要对模型架构进行极少的修改。
我们在多个自然语言理解基准测试任务中验证了该方法的有效性。
我们提出的这种通用任务无关模型(general task-agnostic model),超越了那些针对每个任务专门设计架构、并采用判别式训练的模型。
在本文研究的 12 项任务中,该模型在其中 9 项任务上显著超过了当前最先进水平(state of the art)。
例如:
在常识推理任务(Stories Cloze Test)中,取得了8.9% 的绝对性能提升;
在问答任务(RACE)中,取得了5.7% 的绝对性能提升;
在文本蕴含任务(MultiNLI)中,取得了1.5% 的绝对性能提升。
1 引言
从原始文本中有效学习的能力,对于减少自然语言处理(NLP)领域对监督学习的依赖至关重要。
目前,大多数深度学习方法都需要大量人工标注数据,这限制了它们在许多缺乏标注资源领域中的应用。
在这些情况下,能够利用无标注数据中的语言信息进行学习的模型,为获取更多人工标注数据提供了一种有价值的替代方案,因为人工标注过程通常既耗时又昂贵。
此外,即使在拥有大量监督数据的情况下,以无监督方式学习良好的数据表示,也能够显著提升模型性能。
到目前为止,最有说服力的证据来自于预训练词嵌入(pre-trained word embeddings)的大规模应用。研究表明,通过在无标注文本数据上训练得到的词向量,可以有效提升多种自然语言处理任务的性能。
然而,要从无标注文本中学习超过词语层面的信息仍然面临两个主要挑战。
首先,目前尚不清楚哪一种优化目标最适合学习能够有效迁移到其他任务中的文本表示。
近期研究探索了多种不同的学习目标,例如:
- 语言建模(language modeling)
- 机器翻译(machine translation)
- 篇章连贯性建模(discourse coherence)
但不同方法往往只在不同任务上表现更好,尚未形成统一结论。
其次,对于如何将学习得到的文本表示迁移到目标任务,目前也没有统一有效的方法。
现有技术通常需要:
- 针对具体任务修改模型架构;
- 使用复杂的训练策略;
- 添加额外的辅助学习目标。
这些方法增加了模型设计和训练过程的复杂度,使得构建有效的半监督学习方法变得困难。
本文提出了一种用于自然语言理解任务的半监督学习方法(semi-supervised approach),该方法结合:
- 无监督预训练(unsupervised pre-training)
- 监督微调(supervised fine-tuning)
我们的目标是学习一种通用文本表示(universal representation),使其能够经过少量调整后迁移到各种不同任务中。
我们的假设是:
- 可以获得大量无标注文本语料;
- 同时拥有若干包含人工标注训练样本的数据集(即目标任务)。
值得注意的是,我们的方法并不要求目标任务与无标注训练语料来自同一个领域。
我们的训练过程包含两个阶段:
第一阶段:语言模型预训练
首先,我们利用无标注文本数据,通过语言建模目标训练一个神经网络模型,使模型学习语言结构,并获得初始化参数。
第二阶段:目标任务微调
随后,我们利用对应任务的监督学习目标,对这些参数进行调整,使模型适应具体任务。
这种两阶段训练方式,使模型能够首先学习通用语言知识,然后将这些知识迁移到具体自然语言理解任务中。
在模型架构方面,我们采用Transformer。
Transformer 已经在多个任务中表现出强大的能力,例如:
- 机器翻译;
- 文档生成;
- 句法分析。
选择 Transformer 的原因在于,相比循环神经网络(Recurrent Networks),Transformer 能够更好地处理文本中的长期依赖关系,因此能够在多种任务之间实现更加稳定的知识迁移。
在迁移学习阶段,我们采用了一种基于任务特征的输入转换方法。
该方法将不同任务中的结构化文本输入转换为统一的连续 Token 序列,使预训练模型能够直接处理。
通过这种方式,我们避免了针对不同任务大量修改模型架构,从而只需要对预训练模型进行少量调整即可完成微调。
我们在四类自然语言理解任务上评估该方法:
- 自然语言推理(Natural Language Inference)
- 问答(Question Answering)
- 语义相似度分析(Semantic Similarity)
- 文本分类(Text Classification)
实验结果表明:
我们的通用任务无关模型(general task-agnostic model)超过了那些针对单个任务专门设计架构并进行判别式训练的模型。
在本文研究的 12 个任务中,该模型在 9 个任务上显著超过当前最佳水平。
例如:在 GLUE 多任务基准测试中,提升5.5%。
此外,我们还分析了预训练模型在四种不同零样本(zero-shot)场景中的表现,证明该模型能够通过预训练获得对下游任务有价值的语言知识。
