文献阅读:Language Models are Few-Shot Learners

  • 文献阅读:Language Models are Few-Shot Learners
    • 1. 内容简介
    • 2. 模型 & 实验
      • 1. 模型 & 训练
      • 2. 调用方法
      • 3. 模型效果
    • 3. 总结 & 思考
  • 文献链接:https://arxiv.org/abs/2005.14165

1. 内容简介

这篇文献就是大名鼎鼎的GPT3的工作。

在这篇文章当中,OpenAI提出了GPT3模型,将自回归语言模型的参数量从前作GPT2的1.5B直线提升到了175B,并且同步增大了对应的训练数据的数量和质量。

最终,训练得到的GPT3模型的效果也算是轰动一时,直到现在都很难有模型可以超越。

更值得一提的是,OpenAI在模型的训练范式方面似乎坚持地走自回归语言模型的预训练模型,然后在范式选择似乎非常不喜欢预训练+finetune的方式,而是希望直接一步到位的给出一个通用的万能模型,而到了GPT3的规模,这种愿景多少有了一些可能性。

在此基础上,OpenAI给出了few-shot的方式,使得模型在不经过任何finetune的情况下也能够获得效果上的提升。

2. 模型 & 实验

1. 模型 & 训练

下面,我们首先来看一下GPT3模型的模型设计以及训练方式。

首先,关于模型本身,按照文献中的描述,GPT3其实与GPT2并没有结构上的差别,差别仅在于规模以及训练数据上面。

给出文中关于模型参数以及训练数据的图表如下:

文献阅读:Language Models are Few-Shot Learners_第1张图片

文献阅读:Language Models are Few-Shot Learners_第2张图片

可以看到:

  • 无论是在模型层数还是在唯独上面,GPT3较之GPT2都有明显的提升,且训练数据无论是在质量、数量还是diversity上面都同样明显增加。

2. 调用方法

而关于模型的使用方法,如前所述,OpenAI还是比较坚持走通用大模型路线的,不太喜欢预训练+finetune的常规范式,文中给出的理由是finetune很可能导致模型的过拟合破坏预训练学习到的信息。

而如果不通过finetune又想要获得更好的模型效果,文中开创性地提出了few-shot的应用方式,即通过几个实例来暗示语言模型的后续生成方向。

文献阅读:Language Models are Few-Shot Learners_第3张图片

3. 模型效果

这篇文献对于GPT3的效果进行了极其细致的分析,从各个任务均进行了考察,毕竟文献的正文都一共41页,不过结果大都也是些平凡的结论,这里就不全部摘录了,就偷个懒,只在这里稍微整理一下总体的结论:

  1. 随着参数总量的持续增加,模型效果基本上是不断在提升的;
  2. 175B的GPT3模型在各类任务当中都能够获取很好的效果,且在无监督模型当中基本上都表达了最优的效果,说明GPT3模型不但学到了东西,且在各类任务当中都具有很好的表达,确实具备有通用大模型的潜力。
  3. 样例文本作为输入是可以优化模型的表达的,具体表现在one-shot的结果普遍优于zero-shot的结果,而few-shot的结果又进一步超过了one-shot的结果。

3. 总结 & 思考

总结来说,GPT3这个工作给我的感觉始终就是量变产生质变,模型本身其实不存在什么fancy的东西,few-shot的方法确实有点意思,但是整体上还是一个预训练的语言模型,因此他无论在其他任务上表现的有多好,它本质上在做的一件事就是生成概率上最为通顺的文本,无关内容本身,只是确保通顺度而已。

文献中自身也是对GPT3的应用以及其可能的在宗教啊、种族问题上可能出现的bias问题进行了讨论,但是我是觉得没啥必要啦,毕竟这种概率统计模型只能按照训练数据来跑出一个黑盒,在这方面进行过多的讨论个人感觉意义不是很大……

不过这里我最佩服的一点还是说量变产生质变,当训练数据足够多足够好,参数量足够大的情况下,模型依然还没有达到瓶颈,还能够持续地优化,且给出非常通顺的结果,甚至在大量数据当中学到实体之间的关联特性,这个是非常厉害的。

现在OpenAI据说马上就要提出GPT4了,要把参数量及从175B进一步往上提升到100Trillion这个量级,到时候看看那个模型的效果吧……

不过模型本身是已经玩不起了,就只能看研究院的大佬们烧钱玩了,就这方面来说,较之大模型方面的研究,我个人还是对于模型本身的结构优化更感兴趣一点……

你可能感兴趣的:(文献阅读,GPT3,Zero-Shot,Prompt,LLM,Few-Shot)