OpenAI 通过无监督学习提升语言理解
OpenAI 开发了一种两阶段训练流程,使单个 Transformer 模型能够在广泛的自然语言处理(NLP)任务中实现高性能。首先在大量数据上使用无监督语言建模进行训练,然后在更小的、特定任务的监督数据集上进行微调,该系统能够以最小的适配解决复杂问题。
两阶段训练架构
系统采用由无监督预训练随后是监督微调组成的流水线。这种方法使模型在应用于特定任务之前能够形成对语言的通用理解。
- 无监督预训练: 该模型是一个在海量数据上使用语言建模作为训练信号进行训练的 Transformer。此阶段使模型能够从原始文本中学习判别特征,而无需人工标注。
- 监督微调: 预训练的核心模型随后使用更小的监督数据集适配到特定任务。此过程只需极少的适配,即可将模型从通用语言模型转变为任务特定的求解器。
与先前研究的比较
本工作在无监督和半监督学习的若干既有方法基础上进行构建和扩展:
- 半监督序列学习: 该研究确立了使用 LSTM 的无监督预训练随后进行监督微调以提升文档分类的方法。
- ULMFiT: 该工作展示了单一与数据集无关的 LSTM 语言模型可以通过微调在各种文档分类数据集上实现最先进的性能。
- ELMo: 虽然 ELMo 也包含预训练,但 OpenAI 的方法更具任务无关性,而 ELMo 则使用任务定制的架构来实现其结果。
性能与能力
该模型在超出简单文档分类的广泛任务上表现出强劲性能,包括语义相似度、阅读理解和常识推理。
常识推理与世界知识
最重要的成果之一是模型在 COPA、RACE 和 ROCStories 数据集上的表现。模型在这些数据集上以大幅领先的优势取得了新的最先进结果。由于这些任务被认为需要多句推理和大量世界知识,结果表明模型主要通过无监督学习阶段提升了这些能力。
任务多样性与最小调参
该系统旨在实现高效和一致性。所有数据集均使用单一前向语言模型进行处理,未使用集成,并且大多数报告的结果都是在完全相同的超参数设置下获得的,这表明实现这些结果几乎不需要调参。
评估数据集与任务示例
模型在多样的 NLP 基准测试上进行了评估,包括:
| 数据集 | 任务类型 | 示例 |
|---|---|---|
| SNLI | 自然语言推理 | 判断两个句子是矛盾(Contra.)还是相互蕴含。 |
| SciTail | 自然语言推理 | 判断一个句子相对于另一个句子是蕴含还是中立。 |
| QNLI | 自然语言推理 | 判断陈述是否蕴含上下文。 |
| RTE | 自然语言推理 | 判断句子是否与另一句矛盾。 |
| STS-B | 语义文本相似度 | 对两个句子的相似度进行打分(例如 2/5)。 |
| QQP | Quora 问题对 | 判断两个问题是否相同。 |
| MRPC | Microsoft Research Paraphrase Corpus | 判断两个句子是否相同。 |
| RACE | 阅读理解 | 根据文本段落回答多项选择题。 |
| ROCStories | 常识推理 | 选择最可能的故事结局。 | | COPA | 常识推理 | 识别事件的原因或结果。 | | SST-2 | 情感分析 | 将文本分类为正面或负面。 | | CoLA | 语言可接受性 | 判断句子在语法上是否可接受。 |