+
95
-

GPT1.0、2.0、3.0、3.5、4.0有啥区别?这些都开源了吗?

GPT1.0、2.0、3.0、3.5、4.0有啥区别?这些都开源了吗?


网友回复

+
15
-

Generative Pre-trained Transformer(GPT)系列是由OpenAI提出的非常强大的预训练语言模型,这一系列的模型可以在非常复杂的NLP任务中取得非常惊艳的效果,例如文章生成,代码生成,机器翻译,Q&A等,而完成这些任务并不需要有监督学习进行模型微调。而对于一个新的任务,GPT仅仅需要非常少的数据便可以理解这个任务的需求并达到接近或者超过state-of-the-art的方法。

当然,如此强大的功能并不是一个简单的模型能搞定的,GPT模型的训练需要超大的训练语料,超多的模型参数以及超强的计算资源。GPT系列的模型结构秉承了不断堆叠transformer的思想,通过不断的提升训练语料的规模和质量,提升网络的参数数量来完成GPT系列的迭代更新的。GPT也证明了,通过不断的提升模型容量和语料规模,模型的能力是可以不断提升的。

800_auto 这篇文章会依次介绍GPT-1[1],GPT-2[2],GPT-3[3],并介绍它们基于上个版本的改进点,文章主要的介绍的包括四个主要方向:算法的思想和目标,使用的数据集和预处理方式,模型结构以及算法的性能。

1. GPT-1:无监督学习

在GPT-1之前(和ELMo同一年),传统的NLP模型往往使用大量的数据对有监督的模型进行任务相关的模型训练,但是这种有监督学习的任务存在两个缺点: 需要大量的标注数据,高质量的标注数据往往很难获得,因为在很多任务中,图像的标签并不是唯一的或者实例标签并不存在明确的边界; 根据一个任务训练的模型很难泛化到其它任务中,这个模型只能叫做“领域专家”而不是真正的理解了NLP。 这里介绍的GPT-1的思想是先通过在无标签的数据上学习一个通用的语言模型,然后再根据特定热任务进行微调,处理的有监督任务包括 自然语言推理(Natural Language Inference 或者 Textual Entailment):判断两个句子是包含关系(entailment),矛盾关系(contradiction),或者中立关系(neutral); 问答和常识推理(Question answering and commonsense reasoning):类似于多选题,输入一个文章,一个问题以及若干个候选答案,输出为每个答案的预测概率; 语义相似度(Semantic Similarity):判断两个句子是否语义上市是相关的; 分类(Classification):判断输入文本是指定的哪个类别。 将无监督学习左右有监督模型的预训练目标,因此叫做通用预训练(Generative Pre-training,GPT)。 1.1 GPT-1的训练 GPT-1的训练分为无监督的预训练和有监督的模型微调,下面进行详细介绍。 1.1.1 无监督预训练 GPT-1的无监督预训练是基于语言模型进行训练的,给定一个无标签的序列 ,语言模型的优化目标是最大化下面的似然值: 其中 是滑动窗口的大小, 是条件概率, 是模型的参数。这些参数使用SGD进行优化。 在GPT-1中,使用了12个transformer[5]块的结构作为解码器,每个transformer块是一个多头的自注意力机制,然后通过全连接得到输出的概率分布。 其中$U=(u_{-k},\dots,u_{-1})$是当前时间片的上下文token,$n$是层数,$W_e$是词嵌入矩阵,$W_p$是位置嵌入矩阵。 1.1.2 有监督微调 当得到无监督的预训练模型之后,我们将它的值直接应用到有监督任务中。对于一个有标签的数据集 ,每个实例有 个输入token: ,它对于的标签 组成。首先将这些token输入到训练好的预训练模型中,得到最终的特征向量 。然后再通过一个全连接层得到预测结果 : 其中 为全连接层的参数。有监督的目标则是最大化(5)式的值: 作者并没有直接使用 ,而是向其中加入了 ,并使用 进行两个任务权值的调整, 的值一般为 : 当进行有监督微调的时候,我们只训练输出层的 和分隔符(delimiter)的嵌入值。 1.1.3 任务相关的输入变换 在第1节的时候,我们介绍了GPT-1处理的4个不同的任务,这些任务有的只有一个输入,有的则有多组形式的输入。对于不同的输入,GPT-1有不同的处理方式,具体介绍如下: 分类任务:将起始和终止token加入到原始序列两端,输入transformer中得到特征向量,最后经过一个全连接得到预测的概率分布; 自然语言推理:将前提(premise)和假设(hypothesis)通过分隔符(Delimiter)隔开,两端加上起始和终止token。再依次通过transformer和全连接得到预测结果; 语义相似度:输入的两个句子,正向和反向各拼接一次,然后分别输入给transformer,得到的特征向量拼接后再送给全连接得到预测结果; 问答和常识推理:将 个选项的问题抽象化为 个二分类问题,即每个选项分别和内容进行拼接,然后各送入transformer和全连接中,最后选择置信度最高的作为预测结果。 https://pic4.zhimg.com/80/v2-ec3f2132533559b7c054edbed946afbb_720w.jpg 图2:(左):transformer的基本结构,(右):GPT-1应用到不同任务上输入数据的变换方式 1.2 GPT-1的数据集 GPT-1使用了BooksCorpus数据集[7],这个数据集包含 本没有发布的书籍。作者选这个数据集的原因有二:1. 数据集拥有更长的上下文依赖关系,使得模型能学得更长期的依赖关系;2. 这些书籍因为没有发布,所以很难在下游数据集上见到,更能验证模型的泛化能力。 1.3 网络结构的细节 GPT-1使用了12层的transformer,使用了掩码自注意力头,掩码的使用使模型看不见未来的信息,得到的模型泛化能力更强。 1.3.1 无监督训练

使用字节对编码(byte pair encoding,BPE),共有 个字节对;

词编码的长度为 ;

位置编码也需要学习;

层的transformer,每个transformer块有 个头;

位置编码的长度是 ;

Attention, 残差,Dropout等机制用来进行正则化,drop比例为 ;

激活函数为GLEU;

训练的batchsize为 ,学习率为 ,序列长度为 ,序列epoch为 ;

模型参数数量为 亿。

1.3.2 有监督微调 无监督部分的模型也会用来微调; 训练的epoch为 ,学习率为 ,这表明模型在无监督部分学到了大量有用的特征。 1.4 GPT-1的性能 在有监督学习的12个任务中,GPT-1在9个任务上的表现超过了state-of-the-art的模型。在没有见过数据的zero-shot任务中,GPT-1的模型要比基于LSTM的模型稳定,且随着训练次数的增加,GPT-1的性能也逐渐提升,表明GPT-1有非常强的泛化能力,能够用到和有监督任务无关的其它NLP任务中。GPT-1证明了transformer对学习词向量的强大能力,在GPT-1得到的词向量基础上进行下游任务的学习,能够让下游任务取得更好的泛化能力。对于下游任务的训练,GPT-1往往只需要简单的微调便能取得非常好的效果。 GPT-1在未经微调的任务上虽然也有一定效果,但是其泛化能力远远低于经过微调的有监督任务,说明了GPT-1只是一个简单的领域专家,而非通用的语言学家。 2. GPT-2:多任务学习 GPT-2的目标旨在训练一个泛化能力更强的词向量模型,它并没有对GPT-1的网络进行过多的结构的创新与设计,只是使用了更多的网络参数和更大的数据集。下面我们对GPT-2展开详细的介绍。 2.1 GPT-2的核心思想 GPT-2的学习目标是使用无监督的预训练模型做有监督的任务。因为文本数据的时序性,一个输出序列可以表示为一系列条件概率的乘积: 上式也可以表示为 ,它的实际意义是根据已知的上文 预测未知的下文 ,因此语言模型可以表示为 。...

点击查看剩余70%

我知道答案,我要回答