当前位置:   article > 正文

【大模型】GPT-2_gpt2

gpt2

        在GPT1问世不久,和GPT很相似的BERT横空出世,并且在各方面都超越GPT-1。OpenAI在《Language Models are Unsupervised Multitask Learners》中于2019年提出的GPT-2,全称为Generative Pre-Training 2.0。提出语言模型式无监督的多任务学习 ,通过无监督学习也能达到和finetune一样的效果,并且拥有更强的泛化能能力。 

1.GPT-2提出背景

        现有基于监督学习训练的模型的泛化性不是很好,在一个任务上训练好的模型也很难迁移到下一个任务上。多任务学习(Multitask learning)是指在训练一个模型时,同时看多个任务的数据集,而且可能通过多个损失函数来达到一个模式在多个任务上都能用的效果,但是在NLP领域用的不多。NLP领域主流的做法还是像GPT-1或BERT那样先在大量无标签数据上预训练语言模型,然后在每个下游任务上进行有监督的fine-tune,但是这样也有两个问题:

  • 对于下游的每个任务,还是要重新训练模型
  • 需要收集有标签的数据

        这样导致在拓展到新任务上时还是有一定的成本。因此,GPT-2提出利用语言模型做下游任务时,不需要下游任务的任何标注信息,即zero-shot设定,也不用训练模型。因此基本实现一劳永逸,训练一个模型,在多个任务上都能用。

2.GPT-2简介

        GPT-2继续沿用了原来在GPT中使用的单向 Transformer 模型,尽可能利用单向Transformer的优势,做一些BERT使用的双向Transformer所做不到的事。那就是通过上文生成下文文本。

​        GPT-2的目标是为了训练一个泛化能力更强的词向量模型,它并没有对GPT-1的网络机构进行过多的结构创新和设计,只是使用了更大的数据集和更大的网络参数。更大的数据集和更大的模型(15亿个参数),用于zero-shot(不作任何训练直接用于下游任务)效果还不错:在某些任务上和当前的模型效果差不多,但是某些任务上效果很一般。

            GPT-2适用于文本生成任务,并且仍然固执地用单向语言模型,而不是双向语言模型。生成内容后续单词这种模式,单向语言模型更方便;想证明通过增加数据量和模型结构,单向模型未必输双向模型。

2-1. GPT-2的核心思想

        GPT-2的学习目标是使用无监督的预训练模型做有监督的任务。因为文本数据的时序性,一个输出序列可以表示为一系列条件概率的乘积p(s_n|s_1,s_2,...s_{n-1})。它的实际意义是根据已知的上文,预测未知的下文。这种模型之所以效果好是因为在每个新单词产生后,该单词就被添加在之前生成的单词序列后面,这个序列会成为模型下一步的新输入。语言模型其实也是在给序列的条件概率建模。这种机制叫做自回归(auto-regression),同时也是令 RNN 模型效果拔群的重要思想。

        基于上面的思想,当一个语言模型的容量足够大时,它就足以覆盖所有的有监督任务,也就是说所有的有监督学习都是无监督语言模型的一个子集。例如当模型训练完“Micheal Jordan is the best basketball player in the history”语料的语言模型之后,便也学会了(question:“who is the best basketball player in the history ?”,answer:“Micheal Jordan”)的Q&A任务。

        综上,GPT-2的核心思想概括为:任何有监督任务都是语言模型的一个子集,当模型的容量非常大且数据量足够丰富时,仅仅靠训练语言模型的学习便可以完成其他有监督学习的任务。

2-2. GPT-2其他知识

        1.语言模型其实也是在给序列的条件概率建模,即 本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】

推荐阅读
相关标签