文章目录
前言
对于目前火热的ChatGPT,总是想多聊些,那就写点其前身的知识点吧。
GPT概述
GPT(Generative Pre-trained Transformer)是OpenAI公司开发的关于自然语言处理的语言模型。这类模型在知识问答、文本摘要等方面的效果超群,更牛逼的是这居然都是无监督学习出来的模型。在很多任务上,GPT模型甚至不需要样本微调,就能在理解和执行效果上获得比当时最好的监督学习模型更好的性能。
我们就此捋一下GPT三代的历程:
- GPT-1 Improving Lanugage Understanding by Generative Pre-training
- GPT-2 Language Models are UnsupervisedMultitask Learners
- GPT-3 Language Models are Few Shot Learners
提前假设大家都是了解NLP的术语和Transformer结构的,不清楚的可以自行补充知识。
咱们一篇一篇地捋一捋,分别搞清楚基本目标和概念、训练的数据集、模型结构和应用、效果和评估,也就差不多了。先上个一揽子对比图,快乐下。
GPT-1代
在此之前,大部分SOTA的NLP模型都是在特定任务上做有监督训练的,比如情感分类、文本含义等。通常来说,有监督是天然带有如下两个缺陷:
- 需要大量的标签数据来学习特定的任务,而这个打标签的过程是漫长而消耗财力的。
- 特定任务专项训练,也带来了没法向其他任务场景迁移和拓展的问题。
而这篇文章,提出了一个思路:用无标签数据来学习生成模型,然后根据下游任务做微调使用,比如像是分类、情感分析等。
无监督学习作为有监督微调模型的预训练目标,因此被称为生成预训练。
Unsupervised learning served as pre-training objective for supervised fine-tuned models, hence the name Generative Pre-training.
GPT-1 学习目标和概念介绍
- 无监督语言模型(Pre-training)目标如下:
L 1 ( T ) = ∑ i l o g P ( t i ∣ t i − k , . . . , t i − 1 ; θ ) L_1(T)=\sum_i log P(t_i|t_{i-k},...,t_{i-1}; \theta) L1(T)=i∑logP(ti∣ti−k,...,ti−1;θ)
其中T表示时间序列下数据 { t 1 , . . . , t n } \{t_1,...,t_n\}