GPT(Generative Pre-trained Transformer)是由 OpenAI 开发的一系列自然语言处理模型。
GPT-1
- 结构: 基于 Transformer Decoder,但只使用了 Masked Multi-Head Attention,以预测下一个词。
- 预训练:使用了大量无监督数据,通过最大化似然函数来训练。
- 微调:在特定任务上进行有监督的微调。
生成式预训练 Transfomer 模型(Generative Pre-Trained Transformer,GPT),将无监督学习应用到有监督模型的预训练目标。
GPT-1 语言模型结构上对 Transformer Decoder 进行了一些改动,原本的 Decoder 包含了两个 Multi-Head Attention 结构,GPT 只保留了 Mask Multi-Head Attention。
GPT-1 语言模型通过大量的无监督预训练(Unsupervised Pre-Training)(无监督是指不需要人工介入,不需要标注数据集的预训练),再通过少量**有监督微调(Supervised Fine-Tuning)**来修正其理解能力。
在预训练阶段,GPT-1 使用无标注文本数据集(数据量约 5 GB 大小,模型自身参数 1.17 亿,Transfomer Layer 堆叠 12 层),通过最大化预训练数据集上的似然函数 log-likelihood 来训练模型参数。
在微调阶段,GPT-1 将预训练模型的参数用于特定的自然语言处理任务。
GPT-2
GPT-2 的目标旨在训练一个泛化能力更强的词向量模型,它并没有对 GPT-1 的网络进行过多的结构的创新与设计,只是使用了更多的网络参数和更大的数据集。
GPT-2 模型主推零样本学习(Zero Shot Learning),使用了更多的数据(数据集增加 40 GB大小,模型自身参数高达15亿,Transfomer Layer 堆叠 48 层)进行预训练 Pre_Training,将有监督 Fine-Tuning 微调阶段变成了一个无监督的模型,同时增加了预训练多任务 MultiTask 模式(即主张不通过专门的标注数据集训练专用的AI,而是喂取了海量数据后,任意任务都可以完成)。
GPT-3
从理论上讲 GPT-3 也是支持 Fine-Tuning 的,但是 Fine-Tuning 需要利用海量的标注数据进行训练才能获得比较好的效果,但是这样也会造成对其它未训练过的任务上表现差,所以 GPT-3 并没有尝试 Fine-Tuning。
零样本学习(Zero-Shot Learning)
一种能够在没有任何样本的情况下学习新类别的方法。通常情况下,模型只能识别它在训练集中见过的类别。但通过零样本学习,模型能够利用一些辅助信息来进行推理,并推广到从未见过的类别上。这些辅助信息可以是关于类别的语义描述、属性或其他先验知识。
一次样本学习(One-Shot Learning)
一种只需要一个样本就能学习新类别的方法。这种方法试图通过学习样本之间的相似性来进行分类。例如,当我们只有一张狮子的照片时,一次样本学习可以帮助我们将新的狮子图像正确分类。
少样本学习(Few-Shot Learning)
介于零样本学习和一次样本学习之间的方法。它允许模型在有限数量的示例下学习新的类别。相比于零样本学习,少样本学习提供了更多的训练数据,但仍然相对较少。这使得模型能够从少量示例中学习新的类别,并在面对新的输入时进行准确分类。
元学习(Meta Learning)
核心思想在于通过少量的数据寻找一个合适的初始化范围,使得模型能够在有限的数据集上快速拟合,并获得不错的效果(对于一个少样本的任务来说,模型的初始化值非常重要,从一个好的初始化值作为起点,模型能够尽快收敛,使得到的结果非常快的逼近全局最优解)。
GPT-3 模型使用更多的高质量的数据(数据集增加 45 TB大小,模型自身参数高达 1750 亿,Transformer Layer 也从48层提升到 96 层),使用 **MAML(Model Agnostic Meta Learning)**算法学习一组 Meta-Initialization,能够快速应用到其它任务中。