searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

GPT的技术历程

2023-05-12 01:20:37
6
0

GPT-1:无监督预训练与有监督微调

       自然语言处理领域中标注过的数据体量较小,但是存在大量的未标注数据,这些数据的利用极大的影响着深度学习模型的性能。因此,为了提高数据利用率,从而进一步提升模型在任务上的表现,无监督学习扮演了重要的角色。早期的词嵌入就属于这类方法,但是但是词嵌入生成的向量是上下文无关的,不能很好地对文本进行表征。预训练模型的发展极大的解决了这个问题,提升了模型的特征提取能力。

       GPT-1模型是2018年6月由OpenAI团队提出的一种预训练语言模型,它是“Generative Pre-training”的简写,与BERT不同的是,GPT-1是基于Transformer decoder的模型结构,一共包含了12层的Transformer,属于典型的单向模型,它首先在大量的无标注文本数据上进行预训练后,接下来再针对下游的特定任务使用少量数据进行微调。这种无监督预训练+有监督微调的任务模式可以在命名实体识别、文本分类等多个任务上取得不错的效果。

       但是针对不同任务,GPT-1模型需要我们对输入数据的格式进行修改,具体的来说,对于常见的文本分类问题,不需要做什么修改,直接输入待分类的句子即可。对于文本蕴涵类的任务,可以将先验句子和假设句子用一个分隔符分割开来,共同输入模型。对于文本相似度判定的任务,由于模型是单向的,但是句子之间的相似度与顺序无关,所以需要将两个句子顺序颠倒后两次输入的结果相加来做最后的推测,也就是先计算文本1与文本2的相似性,再计算文本2与文本1的相似性。最后,对于问答类的任务,首先将背景信息与问题进行拼接,然后再将拼接后的文本依次与每个答案进行拼接,最后依次传入Transformer模型,最后接一层线性层得多每个输入的预测值。

GPT-2:多任务系统

      之前的NLP模型多数是两阶段模型(无监督预训练+有监督微调),这类方法可能存在的问题就是对于具体的任务仍然需要特定类型的标注数据进行训练。后续OpenAI构建了GPT-2模型,该模型仍然采用了Transformer,具体的结构与GPT-1相比变化不大,总共有48层,包含1.5B参数,是GPT-1模型的10倍,拥有更高的性能。与此同时,GPT-2模型的训练数据集更大,包含了Common Crawl、BooksCorpus等等,这些训练数据经过了一些简单的数据清洗,并且覆盖了多个领域。

       GPT-2模型在预训练阶段,采用了多任务的方式,也就是说,它不仅仅只在单一的任务上进行学习,而是让多个不同的任务共享同一套Transformer的参数,用来进一步提升模型的泛化能力,并且去掉了GPT-1模型的有监督微调阶段,也就是说把有监督的具体训练某个NLP任务替换为了无监督训练该任务,当问题的输入和输出均为文字时,只需要用特定方法组织不同类型的有标注数据即可代入模型,如对于问答使用“问题+答案+文档”的组织形式,对于翻译使用“英文+法文”形式。用前文预测后文,而非使用标注数据调整模型参数。这样既使用了统一的结构做训练,又可适配不同类型的任务,在文本摘要等相关领域仍然取得了很好的表现效果。

GPT-3:突破性进展

      GPT-3的作者认为模型规模的增加和训练数据量的增加都可以带来性能上的提升,并且模型可以从新数据中推断知识,而不需要进行梯度的更新,能够解决在训练时未见过数据的问题。GPT-3是一个用于1750亿参数的自回归语言模型。由于其体量十分庞大,因此在下游任务中的微调成本就变得很高,与此相对,作者引入了“In-Context Learning”的方式,具体而言,是在不进行参数更新的情况下,直接在上下文中学习对应的知识。GPT-3模型提供了三种不同的方法用来评估下游任务的效果:

  1. Zero-shot:输入当前任务的语言描述,不更新参数
  2. One-shot:输入当前任务的语言描述和一个输入输出样例,不更新参数
  3. Few-shot:输入当前任务的语言描述和少量输入输出样例,不更新参数

实验结果表明,对于多个NLP任务,GPT-3都可以在没有任何参数更新的情况下,仅仅通过与模型的文本交互来展现其强大性能。

0条评论
作者已关闭评论
z****n
4文章数
0粉丝数
z****n
4 文章 | 0 粉丝
z****n
4文章数
0粉丝数
z****n
4 文章 | 0 粉丝
原创

GPT的技术历程

2023-05-12 01:20:37
6
0

GPT-1:无监督预训练与有监督微调

       自然语言处理领域中标注过的数据体量较小,但是存在大量的未标注数据,这些数据的利用极大的影响着深度学习模型的性能。因此,为了提高数据利用率,从而进一步提升模型在任务上的表现,无监督学习扮演了重要的角色。早期的词嵌入就属于这类方法,但是但是词嵌入生成的向量是上下文无关的,不能很好地对文本进行表征。预训练模型的发展极大的解决了这个问题,提升了模型的特征提取能力。

       GPT-1模型是2018年6月由OpenAI团队提出的一种预训练语言模型,它是“Generative Pre-training”的简写,与BERT不同的是,GPT-1是基于Transformer decoder的模型结构,一共包含了12层的Transformer,属于典型的单向模型,它首先在大量的无标注文本数据上进行预训练后,接下来再针对下游的特定任务使用少量数据进行微调。这种无监督预训练+有监督微调的任务模式可以在命名实体识别、文本分类等多个任务上取得不错的效果。

       但是针对不同任务,GPT-1模型需要我们对输入数据的格式进行修改,具体的来说,对于常见的文本分类问题,不需要做什么修改,直接输入待分类的句子即可。对于文本蕴涵类的任务,可以将先验句子和假设句子用一个分隔符分割开来,共同输入模型。对于文本相似度判定的任务,由于模型是单向的,但是句子之间的相似度与顺序无关,所以需要将两个句子顺序颠倒后两次输入的结果相加来做最后的推测,也就是先计算文本1与文本2的相似性,再计算文本2与文本1的相似性。最后,对于问答类的任务,首先将背景信息与问题进行拼接,然后再将拼接后的文本依次与每个答案进行拼接,最后依次传入Transformer模型,最后接一层线性层得多每个输入的预测值。

GPT-2:多任务系统

      之前的NLP模型多数是两阶段模型(无监督预训练+有监督微调),这类方法可能存在的问题就是对于具体的任务仍然需要特定类型的标注数据进行训练。后续OpenAI构建了GPT-2模型,该模型仍然采用了Transformer,具体的结构与GPT-1相比变化不大,总共有48层,包含1.5B参数,是GPT-1模型的10倍,拥有更高的性能。与此同时,GPT-2模型的训练数据集更大,包含了Common Crawl、BooksCorpus等等,这些训练数据经过了一些简单的数据清洗,并且覆盖了多个领域。

       GPT-2模型在预训练阶段,采用了多任务的方式,也就是说,它不仅仅只在单一的任务上进行学习,而是让多个不同的任务共享同一套Transformer的参数,用来进一步提升模型的泛化能力,并且去掉了GPT-1模型的有监督微调阶段,也就是说把有监督的具体训练某个NLP任务替换为了无监督训练该任务,当问题的输入和输出均为文字时,只需要用特定方法组织不同类型的有标注数据即可代入模型,如对于问答使用“问题+答案+文档”的组织形式,对于翻译使用“英文+法文”形式。用前文预测后文,而非使用标注数据调整模型参数。这样既使用了统一的结构做训练,又可适配不同类型的任务,在文本摘要等相关领域仍然取得了很好的表现效果。

GPT-3:突破性进展

      GPT-3的作者认为模型规模的增加和训练数据量的增加都可以带来性能上的提升,并且模型可以从新数据中推断知识,而不需要进行梯度的更新,能够解决在训练时未见过数据的问题。GPT-3是一个用于1750亿参数的自回归语言模型。由于其体量十分庞大,因此在下游任务中的微调成本就变得很高,与此相对,作者引入了“In-Context Learning”的方式,具体而言,是在不进行参数更新的情况下,直接在上下文中学习对应的知识。GPT-3模型提供了三种不同的方法用来评估下游任务的效果:

  1. Zero-shot:输入当前任务的语言描述,不更新参数
  2. One-shot:输入当前任务的语言描述和一个输入输出样例,不更新参数
  3. Few-shot:输入当前任务的语言描述和少量输入输出样例,不更新参数

实验结果表明,对于多个NLP任务,GPT-3都可以在没有任何参数更新的情况下,仅仅通过与模型的文本交互来展现其强大性能。

文章来自个人专栏
文章 | 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0