GPT-2
自google在2018年10月底公布BERT在11项NLP任务中的卓越表现后,BERT(Bidirectional Encoder Representation from Transformers)就成为NLP领域大火、整个ML界略有耳闻的模型。在统治人工智能界长达4个月后,bert终于迎来了一个新的“对手”——GPT-2(openAI产品)。

 

GPT-2模型
最近在做一个项目,其中用到了GPT-2,因此对它深入研究了一下^ ^。
我一共看了2个版本的GPT-2模型源代码,一个是德国学生书写的,另一个是集成在pytorch_transformers中的。这两个模型完全相同的,但德国学生版本的代码更容易阅读、学习。

 

模型浅谈
GPT-2和bert都是基于transformer的模型,两者的结构几乎完全相同。

 


不同点有2点:

bert是输入完整数据序列,然后通过一系列的相似性比对和加权,使句子成为一个整体,句子中的每个单位都一定程度的关联着整体信息。GPT-2则不同,它是输入一个词预测下一个,然后输入二个词预测之后的一个……
GPT-2每一层的自注意层都比bert都多了二个神经网络全连接。它们分别在每个自注意层的头尾部,并且数据进入自注意层前的神经网络时加了归一化。

 


个人感觉若是bert学的666,GPT-2很容易上手的。

 


————————————————