1.GPT1
无监督预训练+有监督的子任务finetuning
https://cdn.openai.com/research-covers/language-unsupervised/language_understanding_paper.pdf
1.1 Unsupervised pre-training
(1)基于一个transformer decoder,通过一个窗口的输入得到下一个token在目标token上的一个概率分布,其中窗口大小是k
(2)针对一个预料库,不断滑动窗口k,每次最大化下一个token的概率作为loss,相加得到总的loss
1.2 Supervised fine-tuning
(1)将transformer的输出经过一个线性层后,经softmax后得到对目标token的预测结果,最大化预测结果与真值作为loss
(2)同时增加预训练loss作为辅助loss,有助于模型泛化、提升训练速度
2.GPT2
https://cdn.openai.com/better-language-models/language_models_are_unsupervised_multitask_learners.pdf
GPT2的主要贡献是:基于GPT1的网络结构,用更大的数据和更多的参数经过无监督预训练的模型在其它下游任务中能得到很好的泛化能力,无需再进行下游任务的finetuning。
3.GPT3
https://arxiv.org/pdf/2005.14165.pdf
GPT3沿用了GPT2的结构,但是网络容量上做了极大的提升,达到175B的参数:
- GPT-3采用了96层的多头transformer,头的个数为96;
- 词向量的长度是12888 ;
- 上下文划窗的窗口大小提升至2048个token;
- 使用了alternating dense和locally banded sparse attention。
使用不同的promt方法,都不需要改变模型权重
4.InstuctGPT