传统的Transformer模型依赖大量标注数据进行训练,这种方式需要大量人工标注,成本较高。OpenAI的研究人员提出了一种不依赖标注数据的方法,即通过在大规模未标注文本上进行生成式预训练,并在特定任务上进行判别式微调,以提升自然语言理解任务的性能。GPT模型的结构与Transformer类似,但仅使用了Transformer的解码器部分。该方法在多个自然语言理解基准测试中表现优异,超越了为每个任务专门设计的判别式训练模型,并在12项研究任务中的9项上取得了当时最先进的性能表现。
GPT模型的结构及微调后的应用场景如图3-1所示。
图3-1 GPT模型的结构及微调后的应用场景
GPT模型的结构图来源于论文“Improving Language Understanding by Generative Pretraining”。GPT模型的核心是一个由多个Transformer模块组成的Transformer解码器。每个Transformer模块包含一个多头自注意力机制和一个前馈神经网络。GPT模型的输入为文本序列,模型需要预测下一个词。这种自回归方式能够利用大规模文本数据,适用于多种自然语言处理任务。图3-1左侧展示了GPT模型的结构,主要包括以下几个方面。
(1)文本和位置嵌入
文本嵌入(Text Embed)将单词转换为向量,而位置嵌入(Position Embed)则为模型提供单词在序列中的位置信息。这一结合使模型能够捕捉单词的语义及其在序列中的位置关系。
(2)掩码多头自注意力
这是Transformer模型中的一个关键机制,用于在预训练阶段处理语言模型任务。该机制允许模型在预测当前单词时考虑之前的单词,但不允许模型“看到”未来的单词。此掩码机制对生成文本和理解语言模型具有重要作用。
(3)网络层归一化
网络层归一化是一种正则化技术,用于稳定训练过程。它对每个样本的每层的激活值进行归一化,有助于防止梯度消失或梯度爆炸问题。
(4)前馈神经网络
这是Transformer模型中的另一个关键组件,用于在多头自注意力机制之后进行特征提取和映射。这个结构允许模型在不同的层次上提取和组合特征,从而更好地理解文本。
图3-1右侧展示了GPT微调后的应用场景,涵盖以下几个方面。
(1)文本分类
该部分展示了模型处理文本分类任务的过程。输入文本首先通过Transformer编码器,再通过线性层(Linear Prediction Classifier)进行分类。该线性层输出概率分布,表示文本属于各类别的概率。
(2)文本推理
文本推理任务涉及判断两个文本之间的逻辑关系(推理、矛盾或中立)。在该任务中,首先通过“分隔符”将“前提”和“假设”文本分开,然后将其一并输入Transformer编码器。接着,经过线性层处理,最终输出两个文本间蕴含关系的概率分布。
(3)文本相似度
文本相似度任务旨在评估两段文本的语义相似性。两段文本(Text 1和Text 2)分别经过Transformer编码器处理,再通过线性前馈神经网络层进行相似度评分。
(4)多项选择
多项选择任务要求模型从多个选项中选择正确答案。在流程中,上下文和分隔符首先输入Transformer编码器,然后输入一系列可能的答案(Answer 1、Answer 2、…、Answer N )。每个答案通过一个Transformer编码器和线性层处理,最后通过掩码多头注意力层整合所有答案信息,输出最终预测结果。