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
最近的工作表明通过预训练和微调的范式可以在许多NLP任务中取得巨大的成果。但是微调的过程仍需上千数据,因此,本文表明通过扩大模型的规模,可以极大提高模型的小样本能力。具体来说,作者设计了1750亿参数量的大模型GPT-3,无需修改参数就可以处理特定领域任务。GPT-3在许多任务上表现了出色的小样本性能,甚至可以生成人类难以区分的文章。
近年来NLP领域呈现出预训练的趋势,并且随着Transformer的出现消除了对于特定任务的架构需求。但是这种方法需要任务特定的数据集进行微调,消除这种局限性是有必要的:
一个潜在的解决方法是元学习,即在训练时发展一系列广泛的技能和模式识别能力,然后在推理阶段利用这些能力快速泛化到下游任务。这种方法又被称为“上下文学习”,通过自然语言指令和一些示例,来指导模型生成结果。但是实验部分不尽如人意,需要进一步改进。
近年来通过增大语言模型的规模,发现每次增加都对下游任务进行了改进,作者分析上下文学习可能也会出现类似的收益。
因此本文设计了1750亿参数量的模型GPT-3,在二十多个NLP任务上评估该模型,每个任务设置了三个场景:
上图显示,通过添加自然语言描述和上下文示例,模型的性能得到提升,此外随着模型大小的增加,小样本学习也会得到显著改善。需要值得注意的是,这些曲线都不涉及模型参数更新。
总的来说,GPT-3在零样本和one-shot设置下都得到了不错的结果,并且在小样本设置下甚至超过了当前部分任务的SOTA。GPT-3还展示了类似于人类学习者的小样本学习能力,作者表明,在小样本设置下,GPT-3可以生成人类难以识别的文章。
GPT-3在部分推理和阅读理解任务上即使是小样本设置也表现挣扎,下图是GPT-3在各种任务上的结果:
作者还对数据污染进行了研究,即测试集可能出现在训练集中,造成数据泄露。作者发现虽然数据污染对于GPT-3 的性能影响甚微,但是一些数据集还是会夸大结果。
此外作者还训练了一系列更小的模型(从1.25亿到130亿),用于和GPT-3的性能作比较。总的来说,随着模型的增大,模型性能平滑增长,并且作者发现,三种设置下模型的差距会随着模型规模的增大而增大,这表明较大的模型是更好的元学习器。
模型和方法沿用了GPT-2,只是对模型的规模进行了扩大。本文的核心在于系统探索了上下文学习中的不同设置。
本文重点关注后面三种设置,特别是小样本场景,因为其性能甚至能超过SOTA,当然零样本和one-shot设置下和人类表现是最公平的比较。
模型采用和GPT-2一样的架构和方法,不同之处在于在Transformer中采用了类似于稀疏Transformer的机制。之前的工作表明,如果有足够的训练数据,验证集损失会随着模型的增大而呈现平滑的幂律变化。
上表展示了8个不同规模的模型。作者通过模型多维切分实现多GPU训练。
Common Crawl数据集包含T级别token,足以训练本文的模型,但是需要进一步提升数据质量:
上表是最终训练数据集的组成,在训练期间,数据集并不是按照大小比例进行采样的,而是根据设定的比例进行采样,目的是提高训练数据集的质量。
语言模型预训练上的一个问题是测试集数据可能出现在训练集中,造成知识泄露,污染下游任务。虽然作者尝试消除重叠数据,但是还是存在数据泄露的问题,这需要进一步的探索。
较大的模型通常使用较大的批量和较小的学习率。作者在训练期间测量梯度噪声比例,并根据这个比例选择批量大小。2.1表中展示了对于不同模型,批量大小和学习率的选择情况。
对于每个下游任务,从其训练集中采样 K K K个样本作为条件,Prompt采用“Answer”或者“A“。如果是二分类,答案会是”True“或者”False“,不是0和1,因为0和1在训练时出现的概率没有”True“和”False“高;如果是一个问答任务,采用束搜索,使用F1相似度得分、BLEU或者精确匹配来评估模型。
上图展示了8个模型的训练曲线,可以看到模型的性能遵循幂律,即随着计算量的指数增加,损失是线性下降的。
如上图所示,在完形填空和补全任务上,GPT-3显著提高了零样本领域的SOTA,并且小样本设置下的性能接近人类表现。
开放问答任务结果如上表所示,可以看到GPT-3在三个场景设置下都要高于T5模型微调的结果。
大型语言模型可以不通过辅助信息(即不需要进行信息检索)直接回答问题。结果如下图所示:
GPT-3的性能随着模型大小增加而平稳增长,这表明语言模型随着容量的增加而持续吸收知识。小样本设置超过了微调的SOTA。
GPT-3在GPT-2的基础上扩大了训练数据集的范围,以包含更多的其他语言表示。
随着模型规模的扩大,所有数据集都呈现出一致的改进趋势,并且英语翻译的趋势比英语翻译的趋势更强。
作者在第三章做了很多的工作,通过在不同任务上进行实验,来验证GPT-3在NLP的各个领域所表现出的性能。由于篇幅的限制,这里就不一一展示结果了,只以其中几个实验为例,总的来说,在这三种设置下,小样本的表现能力无疑是最好的,并且在部分数据集上甚至超过了微调SOTA,但是仍和人类表现有所差距。
作者任务数据污染问题对于大模型训练来说格外重要,因为这涉及到模型的能力是学习到的还是模仿得到的。GPT-2中做了相关的工作,发现尽管模型在训练和测试之间重叠的数据上确实表现得较好,但这并没有对报告的结果产生显着影响,因为受到污染的数据比例很小。但是GPT-3运行的机制略有不同,首先数据规模上就不是一个数量级,并且使用的Common Crawl数据集质量不佳,增加了污染的可能性。另一方面,由于数据量大,模型很难过拟合(如下图所示),因此污染可能频繁发生。
主动搜索重叠的方式成本高,因此作者转而调研这些重叠如何对结果进行影响。对于每个基准测试的数据集,作者都进行了清洗,并在这些数据集上进行评估,与原始分数比较。结果如下:
尽管潜在的污染很高,但是造成的性能变化可以忽略不计。这有两种可能的原因,一是作者大大高估了污染比例,二是污染对性能影响不大。
GPT-3仍有很多局限性。
语言模型功能强大, 势必会对社会产生影响,本章关注语言模型的潜在危害,防患于未然。
语言模型容易被恶意使用,如生成垃圾邮件、钓鱼信息、虚假新闻等,由于生成文本高质量性,人类很难将其进行区分。此外,语言模型降低了恶意组织的上手门槛,这增加了恶意攻击的风险,并且语言模型可以被利用牟利。
训练数据中存在的偏差可能会导致模型生成刻板印象或偏见的内容。这会加深现实中存在的刻板印象和其它潜在危害。这些偏见包括性别、种族、宗教等。
比如性别上,作者测试了388个职业,发现83%的职业更可能被GPT-3标记为男性。
上表是描述男性和女性的词语,可以看到对于女性更多的描述为“漂亮”,这虽然是褒义词,但是从某种意义上来说也是一种偏见。
对于种族的偏见更为明显,可以看到在不同大小规模的模型下,黑人几乎一直处于负面评分,而亚裔的评分都是正面的。
在不同的宗教上也呈现出不同的偏见。根据上表可以看到伊斯兰教会牵扯到暴力、恐怖主义等相关词语。
因此,日后的工作需要建立一个相关的词表,设计减轻偏差的规范。
大规模语言模型训练需要大量计算,需要在成本和效率之间得到折中。如可以采用知识蒸馏的方式降低成本。
略。
本文提出了一个1750亿参数量的语言模型,该模型在零样本、一样本、小样本设置下,在多个NLP任务上表现出强大的性能。此外,作者还讨论了此类模型对社会的影响,尽管存在很多局限性和缺陷,但是多个结果表明,大规模语言模型是通用语言系统的重要组成部分。
一篇长达75页的技术报告,但是大部分工作和重点都放在了实验部分,方法部分仅仅一笔带过,如果没有GPT-2相关的阅读经验,很难理解GPT-3工作的重点。和GPT-2的零样本设置不同,GPT-3又将目光转向了小样本设置,因为GPT-2虽然提出了一个非常新颖且通用的问题场景,但是效果不尽如人意,作者沿用了GPT-2利用自然语言调整输出无需更新梯度的方法,在小样本设置下甚至超过了一些领域的微调SOTA,这证明了大规模语言模型是通用语言系统的重要组成部分。
总的来说,整个工作的核心在于两个地方,第一是数据集的构建与选择,第二是模型的构建,这些都没有什么创新内容,因此作者将大量的经历放在实验部分,所谓大力出奇迹,通过大量的实验分析,确实更全面的展现了模型的性能,也在一定程度上验证了GPT-2中部分思想的合理性,从而开启了大模型时代的大门。
对于写作者来说,最大的收获在于学习了如何更全面去设计实验,如何通过实验自圆其说,所谓实践出真知,一个完整的文章除了有精彩的故事,也有要令人信服的实验结果。
最后,GPT-3拥有1750亿参数,在时间、算力等成本上都不是个人甚至一个小团队能够消化的,因此才有了现在的参数有效性学习,知识蒸馏等工作的进行。