GPT的前世今生

一、GPT

简单来说,GPT的底层架构是transformer,是由pre-training和fine-tuning两部分构成的。

1.无监督pre-training

transformer里有encoder层和decoder层,而GPT里主要用的是decoder层,不过做了一点改变,就是去掉了中间的Encoder-Decoder Attention层(因为没有encoder层,所以也就不需要Encoder-Decoder Attention这一层了)。
在这里插入图片描述GPT Transformer
整个过程如上图所示,词向量(token embedding)和位置向量(position embedding)的和作为输入,经过12层的Masked Multi-Head Attention和Feed Forward(当然中间也包括Layer Norm),得到预测的向量和最后一个词的向量,最后一个词的词向量会作为后续fine-tuning的输入。

问题1:无监督训练的终止条件是什么呢?训练到什么时候可以停止呢?

答:可以通过准确率来评价训练何时停止。训练的时候生成的文本和原文本进行比对,得到准确率,通过准确率是否达到预期值或是准确率是否一直上下波动等来确定是否该停止训练。

2. 有监督fine-tuning

微调:先将大部分的参数通过无监督预训练训练好,然后通过微调确定最后一个参数w的值,以适应不同的任务。利用无监督最后一个词的向量作为微调的输入。
在这里插入图片描述
上图展示了对于不同NLP任务的微调过程:

分类任务:输入就是文本,最后一个词的向量直接作为微调的输入,得到最后的分类结果(可以多分类)

推理任务:输入是 先验+分隔符+假设,最后一个词的向量直接作为微调的输入,得到最后的分类结果,即:是否成立

句子相似性:输入是 两个句子相互颠倒,得到的最后一个词的向量再相加,然后进行Linear,得到最后分类结果,即:是否相似

问答任务:输入是上下文和问题放在一起与多个回答,中间也是分隔符分隔,对于每个回答构成的句子的最后一个词的向量作为微调的输入,然后进行Linear,将多个Linear的结果进行softmax,得到最后概率最大的

问题2:对于问答任务,最后多个Linear的结果如何进行softmax?

对于问答任务来说,一个问题对应多个回答,而最后我要取最准确的回答(分值最高)作为结果,通过对多对问题答案做transformer后,再分别做linear,可以将维度统一,然后对多个linear进行softmax~之前都是对一个linear做softmax,直接取概率值最大的即可。

以上就是GPT的大致描述,采用无监督的预训练和有监督的微调可以实现大部分的NLP任务,而且效果显著,但是还是不如Bert的效果好。不过GPT采用单向transformer可以解决Bert无法解决的生成文本任务。

二、GPT-2

GPT-2依然沿用GPT单向transformer的模式,只不过做了一些改进与改变。

  1. GPT-2去掉了fine-tuning层:不再针对不同任务分别进行微调建模,而是不定义这个模型应该做什么任务,模型会自动识别出来需要做什么任务。

  2. 增加数据集:GPT-2收集了更加广泛、数量更多的语料组成数据集。该数据集包含800万个网页,大小为40G。

  3. 增加网络参数:GPT-2将Transformer堆叠的层数增加到48层,隐层的维度为1600,参数量更是达到了15亿。15亿什么概念,Bert的参数量也才只有3亿当然,这样的参数量也不是说谁都能达到的,这也得取决于money的多少啊

  4. 调整transformer:将layer normalization放到每个sub-block之前,并在最后一个Self-attention后再增加一个layer normalization。

  5. 其他:GPT-2将词汇表数量增加到50257个;最大的上下文大小 (context size) 从GPT的512提升到了1024 tokens;batchsize增加到512。
    在这里插入图片描述

三、GPT-3

GPT-3依旧延续自己的单向语言模型训练方式,只不过把模型尺寸增大到了1750亿,并且使用45TB数据进行训练。同时,GPT-3主要聚焦于更通用的NLP模型,解决当前BERT类模型的两个缺点:
1.对领域内有标签数据的过分依赖:虽然有了预训练+精调的两段式框架,但还是少不了一定量的领域标注数据,否则很难取得不错的效果,而标注数据的成本又是很高的。
2.对于领域数据分布的过拟合:在精调阶段,因为领域数据有限,模型只能拟合训练数据分布,如果数据较少的话就可能造成过拟合,致使模型的泛华能力下降,更加无法应用到其他领域。

延伸:第一版GPT于2018年发布,包含1.17亿个参数。2019年发布的GPT-2包含15亿个参数。
相比之下,GPT-3拥有1750亿个参数,比其前身多100倍,比之前最大的同类NLP模型要多10倍。
GPT-3的训练数据集也十分庞大。整个英语维基百科(约600万个词条)仅占其训练数据的0.6%。
训练数据的其他部分来自数字化书籍和各种网页链接。不仅包括新闻文章、食谱和诗歌之类的内容,还包括程序代码、科幻小说、宗教预言等各种你可以想象到的任何文字。
上传到互联网的文本类型都可能成为其训练数据,其中还包括不良内容。比如伪科学、阴谋论、种族主义等等。这些内容也会投喂给AI。
这种不可置信的深度和复杂性使输出也具有复杂性,从而让GPT-3成为一种非常灵活的工具。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值