【NLP经典论文精读】Language Models are Few-Shot Learners

Language Models are Few-Shot Learners

  • 前言
  • Abstract
  • 1. Introduction
  • 2. Approach
    • 2.1 Model and Architectures
    • 2.2 Training Dataset
    • 2.3 Training Process
    • 2.4 Evaluation
  • 3. Results
    • 3.1 Language Modeling, Cloze, and Completion Tasks
    • 3.2 Closed Book Question Answering
    • 3.3 Translation
  • 4. Measuring and Preventing Memorization Of Benchmarks
  • 5. Limitations
  • 6. Broader Impacts
    • 6.1 Misuse of Language Models
    • 6.2 Fairness, Bias, and Representation
    • 6.3 Energy Usage
  • 7. Related Work
  • 8. Conclusion
  • 阅读总结

前言

GPT-3的技术报告,在我看来开启了大模型时代的大门,虽然GPT-3的性能和当前的大模型几乎没有可比性,但是在当时看来,一个无所不能的通用模型,能够在现实社会中产生一定的作用,已经让很多工作者兴奋不已了,所谓从0到1比从1到100更难,说的就是这个道理,如果没有GPT-3的工作,可能大模型时代还需要更长时间才能到来。


Paper: https://proceedings.neurips.cc/paper_files/paper/2020/file/1457c0d6bfcb4967418bfb8ac142f64a-Paper.pdf
Code: https://github.com/openai/gpt-3

Abstract

最近的工作表明通过预训练和微调的范式可以在许多NLP任务中取得巨大的成果。但是微调的过程仍需上千数据,因此,本文表明通过扩大模型的规模,可以极大提高模型的小样本能力。具体来说,作者设计了1750亿参数量的大模型GPT-3,无需修改参数就可以处理特定领域任务。GPT-3在许多任务上表现了出色的小样本性能,甚至可以生成人类难以区分的文章。

1. Introduction

近年来NLP领域呈现出预训练的趋势,并且随着Transformer的出现消除了对于特定任务的架构需求。但是这种方法需要任务特定的数据集进行微调,消除这种局限性是有必要的:

  1. 每个任务都需要大量标记的数据,限制了语言模型的适用性,并且标记成本也很高。
  2. 模型过大,又在狭窄的任务上进行微调,导致泛化性能差。
  3. 人类不需要大量监督数据学习各种语言任务,可以在很多任务之间无缝切换。

一个潜在的解决方法是元学习,即在训练时发展一系列广泛的技能和模式识别能力,然后在推理阶段利用这些能力快速泛化到下游任务。这种方法又被称为“上下文学习”,通过自然语言指令和一些示例,来指导模型生成结果。但是实验部分不尽如人意,需要进一步改进。
【NLP经典论文精读】Language Models are Few-Shot Learners_第1张图片
近年来通过增大语言模型的规模,发现每次增加都对下游任务进行了改进,作者分析上下文学习可能也会出现类似的收益。
因此本文设计了1750亿参数量的模型GPT-3,在二十多个NLP任务上评估该模型,每个任务设置了三个场景:

  1. 小样本学习。将演示的数量限制为10—100。
  2. one-shot学习。只应用一个演示样本。
  3. 零样本学习。不添加演示样本,仅提供自然语言指令。

【NLP经典论文精读】Language Models are Few-Shot Learners_第2张图片
上图显示,通过添加自然语言描述和上下文示例,模型的性能得到提升,此外随着模型大小的增加,小样本学习也会得到显著改善。需要值得注意的是,这些曲线都不涉及模型参数更新。
总的来说,GPT-3在零样本和one-shot设置下都得到了不错的结果,并且在小样本设置下甚至超过了当前部分任务的SOTA。GPT-3还展示了类似于人类学习者的小样本学习能力,作者表明,在小样本设置下,GPT-3可以生成人类难以识别的文章。
GPT-3在部分推理和阅读理解任务上即使是小样本设置也表现挣扎,下图是GPT-3在各种任务上的结果:
【NLP经典论文精读】Language Models are Few-Shot Learners_第3张图片
作者还对数据污染进行了研究,即测试集可能出现在训练集中,造成数据泄露。作者发现虽然数据污染对于GPT-3 的性能影响甚微,但是一些数据集还是会夸大结果。
此外作者还训练了一系列更小的模型(从1.25亿到130亿),用于和GPT-3的性能作比较。总的来说,随着模型的增大,模型性能平滑增长,并且作者发现,三种设置下模型的差距会随着模型规模的增大而增大,这表明较大的模型是更好的元学习器。

2. Approach

模型和方法沿用了GPT-2,只是对模型的规模进行了扩大。本文的核心在于系统探索了上下文学习中的不同设置。

  • 微调。效果好,但依赖大量监督数据集,泛化能力差。
  • 小样本。大大减少对特定任务监督数据的依赖,性能比微调差得多(除本文模型外)。
  • one-shot。只允许一个演示的小样本。
  • 零样本。不依赖于任何演示,仅能使用描述任务的自然语言指令,是最具挑战的设置。

【NLP经典论文精读】Language Models are Few-Shot Learners_第4张图片
本文重点关注后面三种设置,特别是小样本场景,因为其性能甚至能超过SOTA,当然零样本和one-shot设置下和人类表现是最公平的比较。

2.1 Model and Architectures

模型采用和GPT-2一样的架构和方法,不同之处在于在Transformer中采用了类似于稀疏Transformer的机制。之前的工作表明,如果有足够的训练数据,验证集损失会随着模型的增大而呈现平滑的幂律变化。【NLP经典论文精读】Language Models are Few-Shot Learners_第5张图片
上表展示了8个不同规模的模型。作者通过模型多维切分实现多GPU训练。

2.2 Training Dataset

Common Crawl数据集包含T级别token,足以训练本文的模型,但是需要进一步提升数据质量:

  1. 首先根据高质量数据相似性进行第一轮的过滤。
  2. 执行文档级别的模糊重复数据删除,防止数据冗余。
  3. 训练组合中添加高质量的语料库,以增强数据集的多样性。

【NLP经典论文精读】Language Models are Few-Shot Learners_第6张图片
上表是最终训练数据集的组成,在训练期间,数据集并不是按照大小比例进行采样的,而是根据设定的比例进行采样,目的是提高训练数据集的质量。
语言模型预训练上的一个问题是测试集数据可能出现在训练集中,造成知识泄露,污染下游任务。虽然作者尝试消除重叠数据,但是还是存在数据泄露的问题,这需要进一步的探索。

2.3 Training Process

较大的模型通常使用较大的批量和较小的学习率。作者在训练期间测量梯度噪声比例,并根据这个比例选择批量大小。2.1表中展示了对于不同模型,批量大小和学习率的选择情况。

2.4 Evaluation

对于每个下游任务,从其训练集中采样 K K K个样本作为条件,Prompt采用“Answer”或者“A“。如果是二分类,答案会是”True“或者”False“,不是0和1,因为0和1在训练时出现的概率没有”True“和”False“高;如果是一个问答任务,采用束搜索,使用F1相似度得分、BLEU或者精确匹配来评估模型。

3. Results

【NLP经典论文精读】Language Models are Few-Shot Learners_第7张图片
上图展示了8个模型的训练曲线,可以看到模型的性能遵循幂律,即随着计算量的指数增加,损失是线性下降的。

3.1 Language Modeling, Cloze, and Completion Tasks

【NLP经典论文精读】Language Models are Few-Shot Learners_第8张图片
如上图所示,在完形填空和补全任务上,GPT-3显著提高了零样本领域的SOTA,并且小样本设置下的性能接近人类表现。
【NLP经典论文精读】Language Models are Few-Shot Learners_第9张图片
开放问答任务结果如上表所示,可以看到GPT-3在三个场景设置下都要高于T5模型微调的结果。

3.2 Closed Book Question Answering

大型语言模型可以不通过辅助信息(即不需要进行信息检索)直接回答问题。结果如下图所示:
【NLP经典论文精读】Language Models are Few-Shot Learners_第10张图片
GPT-3的性能随着模型大小增加而平稳增长,这表明语言模型随着容量的增加而持续吸收知识。小样本设置超过了微调的SOTA。

3.3 Translation

GPT-3在GPT-2的基础上扩大了训练数据集的范围,以包含更多的其他语言表示。
【NLP经典论文精读】Language Models are Few-Shot Learners_第11张图片
随着模型规模的扩大,所有数据集都呈现出一致的改进趋势,并且英语翻译的趋势比英语翻译的趋势更强。

作者在第三章做了很多的工作,通过在不同任务上进行实验,来验证GPT-3在NLP的各个领域所表现出的性能。由于篇幅的限制,这里就不一一展示结果了,只以其中几个实验为例,总的来说,在这三种设置下,小样本的表现能力无疑是最好的,并且在部分数据集上甚至超过了微调SOTA,但是仍和人类表现有所差距。

4. Measuring and Preventing Memorization Of Benchmarks

作者任务数据污染问题对于大模型训练来说格外重要,因为这涉及到模型的能力是学习到的还是模仿得到的。GPT-2中做了相关的工作,发现尽管模型在训练和测试之间重叠的数据上确实表现得较好,但这并没有对报告的结果产生显着影响,因为受到污染的数据比例很小。但是GPT-3运行的机制略有不同,首先数据规模上就不是一个数量级,并且使用的Common Crawl数据集质量不佳,增加了污染的可能性。另一方面,由于数据量大,模型很难过拟合(如下图所示),因此污染可能频繁发生。
【NLP经典论文精读】Language Models are Few-Shot Learners_第12张图片
主动搜索重叠的方式成本高,因此作者转而调研这些重叠如何对结果进行影响。对于每个基准测试的数据集,作者都进行了清洗,并在这些数据集上进行评估,与原始分数比较。结果如下:
【NLP经典论文精读】Language Models are Few-Shot Learners_第13张图片
尽管潜在的污染很高,但是造成的性能变化可以忽略不计。这有两种可能的原因,一是作者大大高估了污染比例,二是污染对性能影响不大。

5. Limitations

GPT-3仍有很多局限性。

  1. 在文本生成上仍有不足,如语义重复,前后矛盾等。
  2. 在结构和算法上有局限性,自回归架构不包含其它预训练目标,因此完型填空、阅读理解等任务不如BERT。
  3. 容易受到预训练目标的限制。即对于任何token赋予相同的权重,而不会自己“划重点”,并且缺乏多模态知识。
  4. 预训练样本效率差。无法达到接近人类的学习效率。
  5. 小样本场景下,无法知晓模型是重新学习该任务还是简单识别预训练期间学到的知识。
  6. GPT-3成本高昂推理不便,缺乏实用性,可以考虑知识蒸馏方法。
  7. 缺乏解释性。包括哪些权重在生成过程中起到决定性作用。

6. Broader Impacts

语言模型功能强大, 势必会对社会产生影响,本章关注语言模型的潜在危害,防患于未然。

6.1 Misuse of Language Models

语言模型容易被恶意使用,如生成垃圾邮件、钓鱼信息、虚假新闻等,由于生成文本高质量性,人类很难将其进行区分。此外,语言模型降低了恶意组织的上手门槛,这增加了恶意攻击的风险,并且语言模型可以被利用牟利。

6.2 Fairness, Bias, and Representation

训练数据中存在的偏差可能会导致模型生成刻板印象或偏见的内容。这会加深现实中存在的刻板印象和其它潜在危害。这些偏见包括性别、种族、宗教等。
比如性别上,作者测试了388个职业,发现83%的职业更可能被GPT-3标记为男性。
【NLP经典论文精读】Language Models are Few-Shot Learners_第14张图片
上表是描述男性和女性的词语,可以看到对于女性更多的描述为“漂亮”,这虽然是褒义词,但是从某种意义上来说也是一种偏见。
【NLP经典论文精读】Language Models are Few-Shot Learners_第15张图片
对于种族的偏见更为明显,可以看到在不同大小规模的模型下,黑人几乎一直处于负面评分,而亚裔的评分都是正面的。
【NLP经典论文精读】Language Models are Few-Shot Learners_第16张图片
在不同的宗教上也呈现出不同的偏见。根据上表可以看到伊斯兰教会牵扯到暴力、恐怖主义等相关词语。
因此,日后的工作需要建立一个相关的词表,设计减轻偏差的规范。

6.3 Energy Usage

大规模语言模型训练需要大量计算,需要在成本和效率之间得到折中。如可以采用知识蒸馏的方式降低成本。

7. Related Work

略。

8. Conclusion

本文提出了一个1750亿参数量的语言模型,该模型在零样本、一样本、小样本设置下,在多个NLP任务上表现出强大的性能。此外,作者还讨论了此类模型对社会的影响,尽管存在很多局限性和缺陷,但是多个结果表明,大规模语言模型是通用语言系统的重要组成部分。

阅读总结

一篇长达75页的技术报告,但是大部分工作和重点都放在了实验部分,方法部分仅仅一笔带过,如果没有GPT-2相关的阅读经验,很难理解GPT-3工作的重点。和GPT-2的零样本设置不同,GPT-3又将目光转向了小样本设置,因为GPT-2虽然提出了一个非常新颖且通用的问题场景,但是效果不尽如人意,作者沿用了GPT-2利用自然语言调整输出无需更新梯度的方法,在小样本设置下甚至超过了一些领域的微调SOTA,这证明了大规模语言模型是通用语言系统的重要组成部分。
总的来说,整个工作的核心在于两个地方,第一是数据集的构建与选择,第二是模型的构建,这些都没有什么创新内容,因此作者将大量的经历放在实验部分,所谓大力出奇迹,通过大量的实验分析,确实更全面的展现了模型的性能,也在一定程度上验证了GPT-2中部分思想的合理性,从而开启了大模型时代的大门。
对于写作者来说,最大的收获在于学习了如何更全面去设计实验,如何通过实验自圆其说,所谓实践出真知,一个完整的文章除了有精彩的故事,也有要令人信服的实验结果。
最后,GPT-3拥有1750亿参数,在时间、算力等成本上都不是个人甚至一个小团队能够消化的,因此才有了现在的参数有效性学习,知识蒸馏等工作的进行。

你可能感兴趣的:(NLP经典论文,LLM,自然语言处理,语言模型,人工智能,gpt-3,gpt)