文章目录
GPT-1
- GPT-1的核心:基于Transformer的解码器构建一个模型,在大量无标号的文本数据上训练一个模型,然后再在下游的子任务上进行微调。
- 当前面临的问题:在NLP领域,有各种各样的下游任务。目前,自然语言处理中有标号的数据是非常少的,大部分的数据都是无标注的数据。因此,这就使得基于有标号的数据训练一个非常强大的NLP模型是非常困难的。另外,由于一个句子蕴含的信息内容大致只有一张图片的十分之一,因此如果需要构造一个规模很大的带标号的NLP领域数据集,需要比图像数据集规模更大。目前,在词嵌入模型之后,并没有基于无标文本号数据进行训练的很优秀的自然语言处理模型。
- 第一作者:Radford。其著名的工作还包括生成对抗网络领域的DCGAN以及强化学习领域的PPO算法。
- 模型架构:12层的Transformer解码器块,隐藏层维度是768。
- 预训练过程:基于语言模型目标函数,在大量没有标号的数据集上训练。
- 微调过程:同时使用了两个目标函数。第一个目标函数是根据文本序列进行标号,第二个目标函数则是语言模型的目标函数。
- GPT和BERT的效果比较:BERT模型在训练阶段的目标函数是完形填空,相较于语言模型目标函数来说更加简单,因此在数据量较小的情况下更容易取得好的效果;GPT模型所基于的语言模型目标函数更加困难,因此在较小规模数据训练的情况下效果不如BERT,但是其上限会比BERT更高。
GPT-2
- GPT-2概述:创建了一个更大的数据集,并且将模型的参数量变为了15亿,从而提升了GPT-1的效果。该模型主打的是将GPT-2应用于下游任务中时可以做到Zero-shot。
- 第一作者:仍然是Radford。
- 数据集来源:通过reddit搜集数据集,搜集到了有史以来最大的数据集。
GPT-3
- GPT-3概述:GPT-3是一个含有1750亿参数的模型。GPT-3不用也不能进行微调,因为这么大的模型即使是微调也是非常困难的。相反,它提出通过Few-shot的方法将GPT-3直接应用于下游的NLP任务中。
- GPT-3的不同规模:GPT-3模型有多个不同大小的版本,最小的仅包含1亿多的参数,最大的模型有1750亿的参数。
- 实验结果:在所有NLP任务上取得了很好的成绩。